Ubuntu 26.10, Rust 기반 coreutils로 전환 완료
요약
Ubuntu가 coreutils를 Rust 기반 uutils로 전환하는 것에 대한 비판적인 분석입니다. 작성자는 새로운 구현이 기존의 안정성을 해치고 잠재적 버그를 유발할 수 있으며, 이는 사용자에게 불필요한 위험을 초래한다고 지적합니다. 또한, 이러한 변화는 기술적 필요성보다는 Canonical의 이념적 목표(Rust 채택 및 개발자 확보)에 가깝다고 분석합니다.
핵심 포인트
- uutils coreutils가 깊은 디렉터리 삭제 시 Segmentation fault를 일으키는 버그가 발견됨.
- 새로운 Rust 기반 구현이 기존 안정성을 해치고 사용자에게 불필요한 위험을 초래할 수 있음.
- 이번 전환의 주된 동기는 기술적 우수성보다는 Canonical의 이념적 목표(Rust 채택)에 가까움.
- 라이선스 문제 해결 및 개발자 확보가 변화를 추진하는 주요 배경으로 추정됨.
Canonical이 왜 이렇게 서두르는지 이해하기 어려움. rm이 모든 디렉터리 항목을 삭제하지 못한다면 큰 결함임.
Ubuntu 26.10 컨테이너에서 패키지를 갱신한 뒤 확인한 rm은 uutils coreutils 0.10.0임. gnumkdir -p $(yes a/ | head -n $((32 * 1024)) | tr -d '\n')로 깊게 중첩된 디렉터리를 만들고 rm -rf a를 실행하면 Segmentation fault (core dumped)가 발생하고 디렉터리가 남음. 반면 gnurm -rf a는 정상적으로 삭제함.
서두른다고? 사용자 약 95%는 LTS만 쓰는데, 이건 아직 출시되지도 않은 중간 릴리스임. 시간이 있다면 버그를 신고하면 됨.
Snap부터 고쳐야 함.
버그이고 고쳐야 하는 건 맞지만, 많은 사용자에게 영향을 줄 것 같지는 않음. 시스템에 3만 2천 단계 깊이의 디렉터리를 두는 사람이 얼마나 될까?
제대로 작동해야 하는 건 맞지만, 우선순위가 낮을 만한 이유도 이해할 수 있지 않을까?
메모리 안전성이라더니 이런 결과라니! 오래전 친구가 IRC에서 “어, tail이 세그멘테이션 오류로 죽었네”라고 해서 “Hurd 쓰고 있어?”라고 물었더니 “응”이라고 답했던 게 떠오름.
Rust를 좋아하느냐와 별개로, Canonical이 이렇게까지 강하게, 또 무신경하게 밀어붙이는 이유는 의문임.
이게 정말 coreutils의 보안을 강화할까? 오히려 새로운 버그가 쏟아질 것 같음. 왜 Rust를 이토록 밀어붙이는 걸까? Microsoft가 Rust를 Tier-1 언어로 삼은 것도 좋은 징조로 보이지 않음.
몇 년 전이라는 말이 과장은 아니네. 글의 날짜가 2022년 9월 13일이니 정확히 4년 전임.
uutils의 존재 이유는 기술이 아니라 이념임. 그러니 그 목적을 이루는 데 코드 품질은 쓸모가 없음.
온라인에서 이런 걸 볼 때마다 Ubuntu가 초기화 스크립트용 셸을 dash로 전환하던 무렵이 떠오름. 참 재미있던 시절임.
기존 구현에 무슨 결함이 있었던 걸까, 아니면 그냥 Rust로 전환했다는 훈장이 갖고 싶은 걸까?
둘 다 아님. 기본적으로 Rust를 미래로 보기 때문임. Rust와 그 안전성 기능에 관심이 많은 젊은 기여자를 끌어들이고, 그런 젊은 직원을 채용하고 싶은 것임. Linux 개발자의 평균 연령이 높아지고 있다는 점도 고려해야 함.
Rust에 기술적 이점이 있다고 보기도 함. 내 기억이 맞는다면 Rust 도구뿐 아니라 C로 작성된 도구의 테스트 커버리지도 확대하고 있음. 근거는 이 주제를 다룬 Canonical 엔지니어링 부사장 인터뷰임. https://corrode.dev/podcast/s05e05-canonical/.
라이선스 때문임. GNU 쪽은 카피레프트이고 새 구현은 허용적 라이선스임.
서서히 균열이 벌어질 수도 있음. 내게는 AGPL조차 충분하지 않음.
이해하기 어려운 결정임. 수십 년간 성숙해 안정적으로 작동하는 유틸리티를 덜 성숙한 것으로 교체해서는 안 됨. 배포판 사용자 모두가 미묘한 버그부터 명백한 버그까지 온갖 결함에 노출될 것임.
최신 nodejs를 빌드하거나 마이크로컨트롤러에 펌웨어를 올리려다가 정체불명의 세그멘테이션 오류를 마주하고 싶지는 않음. Ubuntu를 거의 23년간 써왔는데 참 안타까움.
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기