1991년 Linux 0.11, Rust로 재작성되어 QEMU 부팅 성공... AI 생성 의혹 논쟁
- 1991년 공개된 Linux 0.11 커널을 idiomatic Rust로 재작성한 프로젝트가 QEMU에서 부팅에 성공해 GitHub에 공개됨
- HN 사용자가 원본 C 코드(약 8천~1만2천 줄)와 비교한 결과 Rust 버전 전체는 약 5만 줄에 달했으나, ghloc 분석 결과 실제 커널 코드는 약 1만5천 줄이고 나머지는 유틸리티·라이브러리·유저스페이스 프로그램임이 드러남
- README의 이모지 사용과 'idiomatic abstractions everywhere' 같은 문구 때문에 다수의 댓글이 해당 프로젝트가 AI(코덱스 등)로 생성됐을 가능성을 제기함
- 일부 사용자가 fork 시스템콜 등 실제 코드를 직접 비교했을 때 원본과 큰 구조적 차이는 없었으며, 라인 수 차이는 주로 부속 프로그램들 때문이라는 반박이 나옴
- Linus Torvalds가 과거 Linux 커널 전체를 Rust로 재작성하지 않겠다고 밝힌 점을 언급하며, Ubuntu 26.04의 uutils 기반 러스트 코어유틸 탑재와 비교하는 논의로 이어짐
Hacker News opinions
원본 C 소스랑 비교해봤는데 Rust 버전이 대략 5만 줄이고 원래 C는 8천에서 1만2천 줄 정도더라. 왜 이렇게 차이가 크지?
라인 수 늘어나면 나중에 성과 부풀리기 좋잖아. 코드 품질은 그 다음 사람 문제고.
Rust 특성상 원래 verbose한 편이긴 해. 대신 명시성은 확실히 올라가지.
ghloc으로 뜯어보니까 커널 자체는 1만5천 줄 정도고 나머지는 유틸리티랑 라이브러리, 유저 프로그램들이더라.
README 보면 손으로 쓴 것 같지 않아. Codex 냄새 남. 'идиоматic abstractions everywhere' 같은 문구가 딱 AI 프롬프트 느낌이야.
fork 시스템콜 하나 골라서 원본이랑 비교해봤는데 생각보다 차이 안 크던데. 커널 코드 자체는 비슷하고 이 repo에 유저스페이스 프로그램이 훨씬 많이 들어가 있어서 전체 라인 수가 뻥튀기된 거임.
길다고 무조건 나쁜 건 아니지. C는 int랑 enum 막 섞어 쓰는데 Rust는 enum 정의하고 예외 처리까지 다 해야 하니까 그만큼 늘어나는 거고. 그래도 자동생성 코드 의심은 여전히 남음.
이모지 잔뜨한 문서 보니까 이거 AI 슬롭 아니냐. uutils coreutils도 있고 Ubuntu 26.04는 이미 러스트 유틸을 기본으로 넣었더라. 근데 Linus는 커널 전체를 Rust로 바꿀 일은 없다고 했었지.
Linus 은퇴하면 LLM 도움받아서 커널을 Rust로 갈아엎으려는 움직임 분명히 나올 듯. man page에도 이모지 도배될 걸 상상해봐.
'idiomatic Rust'라는게 뭐냐면 그냥 C를 그대로 옮기는 게 아니라 최대한 안전한 코드로 다시 짜는 걸 의미하는 거지.
5년 전이었으면 이 헤드라인 보고 멋지다고 생각했을 텐데 지금은 그냥 '오늘 토큰 얼마나 썼나' 싶음.
AI가 쓴 거라니까 감동이 확 식네. 진짜 사람이 시간 들여서 만든 거라고 생각했는데 아쉽다. 이제 누구나 복제 가능한 물건이 됐어.
이거 장난감 프로젝트인 거 알지만, 요즘 AI로 Rust 포팅하는 방법으로는 이게 맞는 거 같아. 그냥 포크해서 AI로 통째로 변환하고 한동안 병렬 돌려서 회귀 찾아내면 됨. 반쪽짜리 프랑켄슈타인식 마이그레이션보다 나음.
언젠가 전체 배포판이 Rust로 나올 거 같은데. 나는 반대쪽에서 uutils 기반으로 bash, git, make, iptables 클론 만드는 작업 하고 있음. 손으로 짤 때는 Rust 별로였는데 vibe coding 언어로는 최애임.
몇 주 전에 누군가 LLM으로 Linux를 Rust로 재작성할 거라고 예측했다가 다운보트 먹었는데 결국 그 사람이 만들었고 지금 HN 1위네.