Vinix – A modern operating system written in V
Vinix – V 언어로 작성된 모던 운영체제
V 언어로 커널을 처음부터 작성한 Unix-like 운영체제 Vinix가 Apple Silicon Mac 지원과 Alpine Linux 바이너리 호환을 내세우며 다시 주목받고 있습니다. 부팅 후 약 100MB RAM과 1GB 디스크만 사용하며, Linux 시스템 콜 인터페이스를 구현해 Chromium, GIMP, Blender 등 기존 패키지를 네이티브로 실행합니다. 현재 M1 GPU 드라이버 개발이 진행 중이며, Wine과 x86 변환 레이어를 기반으로 한 게이밍 지원도 로드맵에 포함되어 있습니다.
- 주제
본문
Vinix는 V 언어로 커널을 처음부터 작성한 독립형 Unix-like 운영체제입니다. Linux 배포판이 아니지만, openat, mmap, clone, futex 등 수백 개의 Linux 시스템 콜 인터페이스와 ELF 레이아웃, musl 동작을 구현해 수정되지 않은 aarch64 Alpine Linux 패키지를 네이티브로 실행합니다. 가상머신이나 CPU 에뮬레이션 없이 바이너리가 베어 CPU에서 실행되며, 시스템 콜은 Vinix 커널에 직접 전달됩니다.
GC 없는 커널과 미니멀 설계
부팅 후 약 100MB RAM, 설치 후 약 1GB 디스크를 사용하며 이것이 축소 모드가 아닌 전체 시스템입니다. 커널은 -gc none 옵션과 수동 메모리 관리로 빌드되어 가비지 컬렉션이 시스템 콜이나 인터럽트 핸들러, 컴포지터를 멈추는 일이 없고, 메모리 사용량이 톱니 모양으로 오르내리지 않고 평탄하게 유지됩니다. systemd도 백그라운드 인덱서도 원격 통신도 없으며, 데스크톱은 디스플레이 서버 없이 프레임버퍼에 직접 그리고 자체 윈도우를 합성합니다. iOS식 샌드박스도 선택 사항으로 제공되는데, 샌드박스된 프로그램은 자신의 전용 디렉터리만 볼 수 있어 SSH 키나 다른 앱의 데이터에 접근할 수 없습니다. 기본값은 꺼져 있으며 브라우저나 검증되지 않은 다운로드 바이너리 같은 경우에 켜는 방식입니다.
Alpine 패키지 호환과 pkg 패키지 매니저
pkg 도구는 Alpine Linux의 aarch64 리포지터리에서 패키지와 런타임 의존성을 해결하며, 현재 Alpine 3.21을 추적합니다. Alpine 자체 init 시스템을 가정하는 maintainer 스크립트는 건너뜁니다. 이 덕분에 Chromium, GIMP, Blender, Sublime Text, Gnumeric, Wine 등 수천 개의 기존 패키지가 이미 동작하며, Vinix가 아직 구현하지 않은 Linux 커널 기능을 필요로 하는 애플리케이션만 제한됩니다. 그래픽 앱 스토어는 아직 없고 pkg는 터미널 도구입니다.
Apple Silicon 드라이버 작업
Apple은 macOS 외부용 GPU 문서나 드라이버를 제공하지 않으므로, Vinix는 M1을 시작으로 자체 드라이버를 작성하고 있습니다. M1에서는 AGX GPU 드라이버와 DCP 디스플레이 컨트롤러 드라이버 두 개가 필요하며, 둘 다 Apple의 mailbox와 RTKit 인터페이스를 통해 접근하고 DART IOMMU가 GPU의 메모리 뷰를 커널과 분리합니다. 그 위에 GEM 버퍼 객체를 갖춘 최소한의 DRM 서브시스템과 Mesa, OpenGL을 얹어 실제 하드웨어 가속을 제공하는 것이 목표입니다. M2~M5는 M1 완료 후 같은 드라이버를 확장해 지원할 예정입니다. 현재 공식 지원은 M1 Mac뿐이며(2026년 9월 10일 기준), 이후 2010 Mac mini까지 거슬러 올라가는 Intel Mac 지원이 계획되어 있습니다. amd64 머신에는 이미 설치 가능하지만 드라이버 지원이 부족해 VM 실행이 권장됩니다.
커널 구조와 역사
Limine 부트로더로 부팅되는 모놀리식 커널로, 스케줄러, 물리·가상 메모리 매니저, VFS, 드라이버, 네트워크 스택이 하나의 커널 이미지에서 특권 모드로 실행됩니다. 로더블 커널 모듈은 없고 드라이버는 커널에 정적으로 컴파일되는데, V 언어의 빠른 컴파일 덕분에 전체 커널 재빌드가 몇 초면 끝나 재부팅이 빠른 경로입니다. 선점형이며 SMP를 지원하고 per-CPU 상태와 파인그레인 락킹, NUMA 인식을 갖췄습니다. 원래 커널 코어는 Limine의 제작자 mintsuki가 작성했고, 약 2년의 개발 중단 후 V 언어의 창시자인 Alexander Medvednikov가 새 메인테이너가 되었습니다. 이후 스토리지, 네트워킹, 입력, 그래픽, Unix 스타일 유저스페이스, Alpine 바이너리 호환이 추가되었습니다. 리얼타임 OS는 아니며 SCHED_FIFO나 SCHED_RR 요청은 EINVAL로 실패합니다. 커널 서브시스템은 시드된 의사난수 시퀀스로 결정론적 테스트를 수행해 실패를 정확히 재현합니다.
목표와 게이밍 로드맵
프로젝트의 존재 이유는 MacBook을 위한 빠르고 오픈소스이며 미니멀한 OS를 제공하는 것입니다. 하나의 배포판, 데스크톱, 패키지 매니저, init 시스템, 바이너리 포맷으로 구성되어 선택지 없이 바로 작업을 시작할 수 있습니다. 기본 데스크톱은 V + V UI2로 작성된 네이티브 환경이며, 호환성 목적으로 X.org와 Hyprland 기반 ARM64 Wayland 세션도 지원합니다. 게이밍 계획으로는 Wine과 ARM64 하드웨어에서 x86-64 바이너리를 실행하는 유저모드 x86 변환 레이어를 기반으로 The Witcher 3, Counter-Strike 2, Elden Ring, GTA V 등을 지원하겠다고 밝혔지만, 이는 아직 계획 단계이며 Apple GPU 드라이버 완성에 달려 있습니다.
Hacker News 반응
- @foul — V 언어는 요즘 어떻게 되어가고 있나요? 과거에 이 언어에 대한 부정적인 보도를 본 적이 있습니다. 잠깐 써봤을 때는 꽤 괜찮았는데요.
- @Matl — 제가 이해하기로는 이렇습니다. 부정적 보도는 GitHub 초기 공개 릴리스가 구현된 것처럼 보였던 대부분의 기능(Rust식 메모리 안전성 등)을 실제로 구현하지 않았기 때문이었습니다. 시간이 지나며 실제로 많은 사람들의 기여가 이어졌고 지금은 Go, Rust, D만큼 다듬어지지는 않았지만 꽤 쓸만해졌습니다. 사용하기 매우 쉬워서 그런 사용자층을 끌어들이기도 하고요.
- @d-us-vb — 부정적 보도의 이유는, 릴리스에서 주장된 기능을 실제로 출시하지 않은 것을 지적한 사람들이 GitHub에서 기여와 코멘트를 금지당했기 때문입니다.
- @MisterTea — 이 주제에 대한 의견은 없지만, 이른바 논란에 대해 흥미로운 분석을 발견했습니다: https://justinas.org/the-bizarre-world-of-v
- @novacrazy — 첫 릴리스는 Go의 파서를 뜯어내 대학 1학년 수준의 컴파일러에 붙여놓은 것이었는데 "Rust보다 안전하다", "밀리초 만에 컴파일된다"고 홍보했습니다. 당시 진짜 타입 검사도 없었고 메모리 해제도 못 했으며 기본 기능들이 빠져 있었죠. 게다가 그 시절 페이지 상단에 저자의 Patreon 광고가 걸려 있어 한동안 매달 수천 달러를 긁어모았던 것으로 기억합니다. 다만 수년에 걸쳐 실력 있는 사람들(그리고 요즘은 아마 LLM)이 가장 큰 문제들을 어떻게든 대부분 고쳐놓았습니다.
원문: vinix-os.org / 번역·요약: Trawling