Reddit

This Month in Redox OS - September 2026

Redox OS 9월 개발 현황

Redox OS가 9월 한 달간 커널 성능, 그래픽·드라이버, POSIX 호환성, 빌드 도구와 앱 지원을 개선했습니다. 시스템 호출 IPC 지연을 최대 24% 줄였고, page fault 처리와 JIT 지원을 보강했으며, 외부 디스플레이 핫플러그와 i586 동적 링크도 추가했습니다.

에디터 노트

이번 달 수치 가운데 IPC 지연 24% 감소와 14% 감소는 서로 다른 변경 사항의 결과이며, 75% 감소는 합성 벤치마크의 TLB 미스 측정치입니다. SDL2 성능이 거의 두 배라는 결과도 JIT와 KVM을 쓰지 않은 테스트에 한정됩니다. Redox 팀은 다른 환경에서 더 큰 향상을 기대한다고 밝혔지만, 실제 하드웨어 결과는 제시하지 않았습니다. 댓글은 page fault 처리와 JIT 지원이 브라우저 엔진 같은 앱에 도움이 될 것이라는 기대를 보탭니다. 다만 원문은 특정 브라우저 엔진의 실행 성능이나 호환성을 확인하지 않았습니다. 댓글 작성자의 실제 하드웨어 사용 경험은 몇 달 전 부팅이 불안정했다는 개인 경험이며, 이번 달의 PS/2 부팅 수정이 그 문제를 해결했는지는 확인되지 않습니다. 현재 기능의 범위와 성능 수치를 구분해 보면, Redox는 여러 아키텍처와 앱 지원을 넓히면서도 자원 제한 적용과 일부 아키텍처의 page fault 지원 같은 작업을 남겨두고 있습니다.

AI 요약

Redox OS는 Rust로 작성한 Unix 계열 범용 운영체제입니다. 9월 개발 내역에는 커널 성능 개선부터 드라이버, libc, 앱과 빌드 시스템 작업까지 포함됐습니다.

커널과 성능

4lDO2는 앱이 시스템 서비스를 호출할 때 스케줄러를 거치지 않는 direct context switching을 구현했습니다. 프로세스 우선순위를 관리하는 BTreeMap 탐색을 피하면서 IPC 지연을 24% 줄였고, 작은 버퍼를 쓰는 I/O 성능은 5% 개선했습니다. 물리 메모리 매핑에 2MiB 페이지를 적용한 합성 벤치마크에서는 TLB 미스가 75% 줄었습니다. AVX 레지스터 저장·복원 작업을 제거해 IPC 지연을 14% 줄였으며, 잦은 fork와 무작위 쓰기를 섞은 테스트에서는 page fault 오버헤드가 5% 감소했습니다.

실행 호환성과 앱 지원

Wildan Mubarok은 page fault 처리 기능을 구현해 프로그램 충돌을 POSIX signal로 처리하게 했습니다. 이 기능을 활용해 LLVM 등 컴파일러의 JIT 실행을 막던 TLS 초기화 계산 오류도 찾아 수정했습니다. page fault 처리는 현재 x86-64와 i586에만 구현됐습니다. uutils를 0.11.0으로 올렸고 getrlimit, setrlimit을 추가했지만, 자원 제한이 실제로 적용되도록 하는 작업은 남아 있습니다. i586 동적 링크도 수정해 메모리가 적은 구형 x86-32 기기에서 앱을 실행할 기반을 마련했습니다. 레시피 대부분에 동적 링크를 켰지만, 빌드된 프로그램 수는 아직 적습니다.

그래픽과 개발 도구

Intel Tiger Lake GPU에서 외부 디스플레이 핫플러그를 지원해 재부팅 없이 외부 화면을 연결할 수 있게 했습니다. Orbital은 기본적으로 여러 디스플레이에 화면을 확장합니다. SDL2 OpenGL 버퍼가 Orbital 버퍼를 재사용해 복사를 생략하도록 바꿨으며, 작성자의 JIT 미사용, KVM 미사용 테스트에서는 성능이 거의 두 배가 됐습니다. QEMU KVM과 실제 하드웨어에서는 더 큰 향상을 기대한다고 밝혔습니다. Clang 교차 컴파일을 지원해 C/C++ 코드의 진단과 정의되지 않은 동작 검출에 Clang을 쓸 수 있습니다. relibc 추적 기능에는 close, fork, poll, pipe, fcntl 호출을 추가해 hang과 crash 디버깅 범위를 넓혔습니다. 터미널은 ransid에서 alacritty_terminal로 옮겨 더 많은 escape code와 창 크기 변경 시 줄 재배치를 지원합니다.

드라이버, 라이브러리와 패키지

그래픽 드라이버와 데몬 API를 Linux DRM으로 이전해 앱 이식 작업을 줄이고 DRM event와 호환성을 보강했습니다. VirtIO-GPU의 다중 디스플레이 지원도 수정했습니다. relibc에는 getentropy, 제한된 IPv4 전용 gethostbyname2, readv, writev 등이 추가됐고 ARM64와 i586의 TLS·동적 링커 문제도 수정됐습니다. 앱 쪽에서는 BIND9와 OpenSSH 10.5p1을 추가·갱신하고 SDL2_image, SDL2_ttf, SDL2_mixer를 업데이트했습니다. Google Cloud에서 Redox 부팅을 확인했고 WebKitGTK3의 HTML 레이아웃도 수정했습니다.

빌드와 테스트

빌드 시스템은 GCC 또는 Clang을 선택하고 필요에 따라 LTO를 끄는 옵션을 추가했습니다. Redoxer에서 RISC-V와 i586 테스트를 켰으며, acid test suite에는 AMD 성능 카운터와 CPU별 L2 data TLB 지표를 더했습니다. 변경 사항은 매일 빌드하는 서버 또는 데스크톱 이미지로 시험할 수 있습니다. 가상 머신에는 harddrive 이미지, 실제 기기에는 livedisk 이미지를 사용하도록 안내합니다.

Reddit 반응

  • @ribbon_45 — 부팅 수정, 외부 디스플레이 핫플러그, page fault 처리와 JIT 지원, 성능 개선, rlimit 지원, uutils 0.11, 웹 수정, SDL2 성능 개선, Clang 포팅, i586 동적 링크, 터미널과 디버깅 개선 등이 있습니다.
  • @EdibleBedtime — 한 달 동안 진척이 정말 많네요. page fault 처리와 JIT 지원은 큰 변화이고, 제대로 된 브라우저 JS 엔진이 매끄럽게 실행되는 길을 열어줄 수 있습니다. 몇 달 전 실제 하드웨어에서 Redox를 시험했을 때는 부팅이 여전히 들쭉날쭉했는데 계속 다듬고 있어 반갑습니다. 외부 디스플레이 핫플러그는 필요할 때야 운영체제의 실제 기능이라는 걸 실감합니다. GCC와 Clang 도구 체인을 함께 쓰면 빌드 시스템과 씨름하지 않고 컴파일되는 프로그램이 늘어날 것 같아 Clang 포팅도 흥미롭습니다.

원문: Redox OS / 번역·요약: Trawling