PatchworkOS - x86_64 아키텍처용 모듈형 비POSIX 운영체제
(github.com/KaiNorberg)- Plan9의 “everything is a file” 철학을 엄격히 따르는 실험적 운영체제
- 교육적·실험적 목적의 OS 개발을 위해 C와 어셈블리로 완전 새로 작성
- EEVDF 스케줄러 기반의 완전 선점형·틱리스 커널 구조. SMP 및 멀티스레딩 및 세밀한 락 제어 지원
-
파일 기반 IPC 시스템 제공 : 파이프, 공유 메모리, 소켓 및 Plan9
signals스타일의 notes 시스템 포함 - 파일 기반 디바이스 추상화 계층으로 프레임버퍼·입력 장치 등 통합 관리
- 동기화 프리미티브로 mutex, rwlock, futex 등 지원
- 모듈형 커널 설계, 런타임에서 모듈 로드/언로드 가능
- 파일 시스템은 Unix 스타일 VFS 구조. 마운트포인트, 하드링크, 프로세스별 네임스페이스 지원
-
사용자 공간은 자체 C 표준 라이브러리와 시스템 라이브러리로 구성
- 공유 메모리 기반 모듈형 데스크톱 환경 제공
-
POSIX와의 주요 차이점
-
fork(), exec()대신spawn()사용 - 사용자 개념 제거, 비POSIX 표준 라이브러리 채택
- 파일 모드 대신 파일 플래그로 접근 제어
-
-
현재 제약사항
- RAM 디스크만 지원, x86_64 전용
-
향후 계획
- LUA 포팅 및 동적 시스템 설정
- 비동기 I/O 및 시스템콜 (io_uring 고려)
- USB 지원 추가 예정
-
Shell 유틸리티는 파일 플래그 시스템에 맞게 재설계
-
touch,cat,echo,ls,rm등 POSIX 유틸리티와 유사한 인터페이스 제공
-
- 빌드 환경 : Linux, GCC, NASM, mtools, QEMU 필요
- Doxygen 기반 문서 제공, 코드 주석과 참고문헌 포함
- xv6와 Linux 사이의 교육용 중간 단계 OS로 설계