2026년 5월 Redox의 최신 소식: Redox Summer of Code, EEVDF 스케줄러, 성능 개선, XFCE와 COSMIC Monitor 포팅, relibc와 빌드 시스템 업데이트 등.
Redox OS는 Rust로 작성된 완전한 Unix 계열 범용 마이크로커널 기반 운영체제입니다. 5월은 Redox에 매우 흥미진진한 달이었습니다! 최신 소식을 모두 소개합니다.
Redox를 후원하고 싶다면, 기부하거나 굿즈를 구매하는 것을 고려해 주세요!
학생 개발자를 지원하는 2026년 Redox Summer of Code(RSoC) 프로젝트 두 건을 공식적으로 발표하게 되어 기쁩니다.
올해 각 Summer of Code 프로젝트는 학생들에게 $5,000가 넘는 자금을 제공합니다. 이 프로젝트들 외에도 Redox는 현재 학생이 아닌 다른 기여자 3명에게도 지속적으로 소액의 자금을 지원하고 있습니다. 현재 지출은 월간 기부액을 꽤 많이 초과하고 있으며, RSoC를 지원하기 위해 이전 몇 년 동안 받은 기부금에 의존하고 있습니다. 여유가 되신다면 Donorbox, Patreon, 또는 Donate 페이지에 있는 Bitcoin 및 Ethereum 지갑을 통해 월간 또는 일회성 기부를 해주시면 대단히 감사하겠습니다.
Akshit Gaur는 앞서 DWRR 스케줄러를 구현한 데 이어 EEVDF 스케줄러도 성공적으로 구현했습니다. 이 스케줄러는 단순한 DWRR보다 더 동적인 계산을 사용하며, 많은 시스템 호출을 수행하거나 더 낮은 프로세스 우선순위를 부여받은 경우에도 작업에 충분한 CPU 시간을 보장해 줄 것입니다. 새 스케줄러는 이전 것보다 더 일관적이며 Pixelcannon에서 약 200 FPS 향상을 보여줍니다. 다만 EEVDF 구현은 아직 최적화 단계를 거치지 않았다는 점에 유의해 주세요. 이제 시스템이 더 일관되고 공정해질 것으로 기대할 수 있습니다!
벤치마크 비교를 보려면 EEVDF 진행 보고서를 읽어보세요.
Wildan Mubarok은 비-KVM QEMU 벤치마크에서 poll과 epoll의 성능을 4배 향상시켰습니다! 두 함수의 타임아웃 정확도도 크게 개선되었습니다. QEMU KVM과 실제 하드웨어에서의 향상은 훨씬 더 클 수 있습니다.
이로 인해 X11 성능이 많이 향상되었으며, 다른 응용 프로그램들에서도 어떤 추가 이득이 있는지 확인하려면 측정이 필요합니다.
Wildan Mubarok은 inode 캐싱을 구현하여 비-KVM QEMU에서 단순한 GCC 컴파일 시간을 약 2.411초에서 670ms로 줄였습니다! QEMU KVM과 실제 하드웨어에서의 향상은 훨씬 더 클 수 있습니다.
콜드 캐시:
user:~$ time gcc test.c -o t
CHECK: /usr/libexec/gcc/x86_64-unknown-redox/13.2.0/cc1
SEARCH: 3ms
READ: 1178ms
DSO: 4ms
LOAD: 1ms
...
cc1: fatal error: test.c: No such file or directory
compilation terminated.
real 2.411483288s
핫 캐시:
user:~$ time gcc test.c -o t
...
CHECK: /usr/libexec/gcc/x86_64-unknown-redox/13.2.0/cc1
SEARCH: 2ms
READ: 5ms
DSO: 2ms
LOAD: 1ms
...
cc1: fatal error: test.c: No such file or directory
compilation terminated.
real 0.670010746s
오랫동안 패키지 업데이트 작업이 트리거될 때 패키지 서버가 불필요하게 전체 패키지 정리를 수행하여 증분 컴파일이 불가능해지는 문제가 있었습니다. 이 때문에 더 큰 패키지를 제공할 수 없었습니다.
마침내 이를 수정했으며, 이제 패키지 업데이트가 몇 시간이 아니라 몇 분 안에 완료됩니다!
Wildan Mubarok은 더 나은 X11 경험을 위해 몇 가지 노력을 거쳐 XFCE 데스크톱 환경 포팅에 성공했습니다. 현재 이 포트는 Caja 충돌 문제로 인해 MATE보다 더 안정적입니다. 다만 실제로 사용 가능하다고 보기 위해서는 많은 버그를 수정해야 합니다.

Jeremy Soller는 최근의 COSMIC Monitor 애플리케이션을 포팅하여, Redox에 첫 그래픽 시스템 모니터를 제공했습니다!

Jeremy Soller는 우리의 Rust 포크 버전을 1.98 nightly (2026-05-24)로 성공적으로 업데이트했으며, 이로써 더 새로운 Rust 버전이 필요했던 crate들의 문제가 해결되었습니다.
Wildan Mubarok은 패키지 웹 UI에 파일 브라우저와 심볼릭 링크 시각화를 구현했으며, 이 링크를 클릭해 사용할 수 있습니다.

Migue Magic은 Redox 터미널에 글꼴 사용자 지정 기능을 구현했습니다! (COSMIC Terminal은 아님)

Wildan Mubarok은 파일시스템 구성 수정 없이 레시피 유형을 빠르게 바꿀 수 있는 “recipe rule” 메커니즘을 구현하여 개발 워크플로를 더 쉽게 만들었습니다. 다음 명령을 제공합니다:
make lc.recipe-name : 커밋되지 않은 소스 변경 손실과 활성 브랜치 변경을 방지하기 위해 하나의 레시피에 로컬 레시피 소스 모드를 활성화make nc.recipe-name : 하나의 레시피 설치를 무시하고 레시피 바이너리를 정리make bc.recipe-name : 바이너리 모드(사전 빌드 패키지 다운로드)를 활성화하여 컴파일을 비활성화하고 레시피 바이너리를 정리make sc.recipe-name : 소스 컴파일을 다시 활성화하고 레시피 바이너리를 정리make cc.recipe-name : 기본 레시피 규칙(소스)을 복원하고 레시피를 정리또한 그는 더 작은 버그 재현 사례로 디버깅을 개선하기 위해 레시피 커밋 롤백도 구현했습니다:
(먼저 make unfetch prefix_clean PREFIX_BINARY=0 명령을 실행하세요)
make repo-rollback.<COMMIT_HASH> : 지정한 빌드 시스템 커밋으로 롤백make repo-lock : 현재 빌드 시스템 커밋을 고정하고 레시피 fetch 단계를 비활성화make repo-unlock : 현재 빌드 시스템 커밋 고정을 해제하고 레시피 fetch 단계를 활성화make distclean all : 모든 레시피 소스와 빌드 시스템 바이너리를 정리하고 최신 레시피 커밋으로 Redox 이미지를 다시 빌드futex 성능을 개선했습니다epoll에 오래된 데이터가 남아 X11 충돌을 유발하던 버그를 수정했습니다EBADF 경쟁 상태에 대한 잠재적 수정 작업을 했습니다pcid에 구현했습니다audiod의 데드락을 수정했습니다free, top, w 도구 제외, 작업 진행 중), 기본 Redox watch 구현을 대체했습니다nproc 성능을 개선했습니다/usr 디렉터리로 이동했습니다df 도구 회귀를 수정했습니다uutils UTF-8 로캘 처리(기본 로캘 누락(대체값으로 UTF-8 설정) 및 파일명 이스케이프)를 수정하여, 예를 들어 acute accent 문자가 올바르게 표시되도록 했습니다uutils의 nice 도구를 활성화하고 renice를 포팅했습니다call과 std_fs_call에 여러 fds 변형을 추가했습니다static_assert, pselect, qsort_r 함수를 구현했습니다strftime 함수에 %x 지원을 구현했습니다sys/resource.h, sys/ipc.h, sys/shm.h, setjmp.h, elf.h 헤더를 수정했습니다sigjmp_buf 함수를 수정하고 테스트를 추가했습니다pthread_key_delete 함수의 EINVAL 문제를 수정했습니다utimes 함수의 정의되지 않은 동작을 수정했습니다libm을 수정했습니다alarm 테스트를 수정했습니다nice, pselect, utimes 함수용 테스트를 추가했습니다pthread 함수를 문서화했습니다utimensat 함수를 구현했습니다threads.h 헤더를 구현했습니다*at 변형을 사용하도록 마이그레이션했습니다openat2 함수의 EINVAL 문제를 수정했습니다alarm 함수를 수정했습니다fmtmsg 함수를 구현했습니다sys/types.h 정의를 분리했습니다cbindgen 구성 파일에 정의를 포함시켜 더 많은 C 헤더 파일 조각을 제거했습니다ifconfig 도구의 장치 목록 표시를 수정했습니다nc -l이 종료되던 버그를 수정했습니다initfs에서 fbcond를 제거했습니다ramfs용 relpathat 함수를 구현했습니다no_std 기능을 사용하는 프로그램을 수정했습니다c, cpp, css, java, js, py를 COSMIC Editor로 열리도록 구성했습니다webp와 gif 파일이 Orbital Image viewer로 열리도록 구성했습니다epub와 cbz 파일이 COSMIC Reader로 열리도록 구성했습니다demo Redox 변형에 추가했습니다libdrm 포팅을 마무리했습니다groff 컴파일을 수정했습니다/usr 디렉터리에 저장되도록 개선했습니다autotools 메타 패키지를 만들었습니다uutils-procps를 minimal Redox 변형에 추가했습니다file을 desktop Redox 변형에 추가했습니다wget과 COSMIC Reader를 x86-64 demo Redox 변형에 추가했습니다linux-relibc 타깃을 구현했습니다python Cookbook 템플릿을 구현했습니다REPO_BINARY와 binary 레시피 유형이 source로 대체되도록 업데이트했습니다make qemu 명령이 Redox 파일시스템을 자동으로 언마운트하도록 업데이트했습니다make prefix_clean 명령이 모든 Rust 및 GCC 의존성을 정리하도록 업데이트했습니다REPO_BINARY와 binary 레시피 유형에서 레시피 패키지가 부분적으로 다운로드되었을 때 추출과 push를 수정했습니다make prefix를 먼저 실행하지 않았을 경우 make fetch 명령이 작동하지 않던 문제를 수정했습니다make push가 레시피 의존성을 무시하던 버그를 수정했습니다pkg install과 pkg update가 작동하지 않던 문제를 수정했습니다apt 패키지 관리자를 사용할 경우 부트스트랩 스크립트를 수정했습니다[[files]] 섹션)이 덮어써지는 것을 방지하기 위해 파일시스템 구성에 파일 append를 구현했습니다/etc/os-release에 빌드 시스템 커밋을 추가했습니다auto-test.toml 파일시스템 구성을 수정하고 단순화했습니다HARDWARE.md의 일부 문법을 수정했습니다make rebuild-push(기존 QEMU 이미지의 시스템과 애플리케이션을 업데이트해 데이터를 보존)와 make fetch push(REPO_BINARY가 활성화된 경우 사전 빌드 패키지 업데이트 및 설치) 명령을 문서화했습니다make lc.recipe 명령을 추가했습니다REPO_BINARY 컴파일 동작을 문서화했습니다이번 달의 변경 사항을 테스트하려면 daily images의 server 또는 desktop 변형을 다운로드하세요.
그래픽 인터페이스를 원하면 desktop 변형을 사용하세요. 터미널 스타일 인터페이스를 선호하거나 desktop 변형이 작동하지 않는 경우에는 server 변형을 사용해 보세요.
가상 머신 또는 실제 하드웨어에서 이미지를 사용하는 방법을 알아보려면 다음 페이지를 읽어보세요:
때때로 daily image가 오래되어 소스에서 Redox를 빌드해야 할 수 있습니다. 방법은 Building Redox 페이지를 읽어보세요.
기여하고 싶거나, 피드백을 주고 싶거나, 그냥 대화를 지켜보고 싶다면 Matrix Chat에 참여해 주세요.