- Fusion OS는 x86-64용 취미 운영체제로, 구현 언어로 Nim을 사용함
- 현재 구현된 기능은 UEFI 부트로더, 메모리 관리, 작업 관리, 시스템 호출, IPC, 하드웨어 지원으로 나뉨
- 메모리와 작업 관리에는 demand paging, 선점형 멀티태스킹, 우선순위 기반 스케줄링, ELF 로더가 포함됨
- 실행 환경은 현재 QEMU이며, 빌드에는 Nim, LLVM의 clang·lld, Just가 필요함
- 향후 계획에는 capability 기반 보안, 디스크 I/O, 파일 시스템, 셸, GUI, 네트워킹이 포함됨
Fusion OS 개요
- Fusion은 x86-64용 취미 운영체제이며 Nim으로 구현됨
- 개발 과정은 0xc0ffee.netlify.app에 문서화되어 있음
- 스크린샷 항목에는 UEFI 부트로더, 커널 부팅 및 실행 화면이 포함됨
- GUI 스크린샷은
graphics브랜치의 화면이며, 해당 브랜치는 아직 작업 중임
현재 구현된 기능
-
부트
- UEFI Bootloader 구현됨
-
메모리 관리
- Single Address Space 구조의 Higher Half Kernel
- Physical Memory Manager
- Virtual Memory Manager
- Demand Paging
-
작업 관리
- Kernel Tasks
- User Mode Tasks
- Preemptive Multitasking
- Priority-based Scheduling
- Demand Paged 및 Relocation을 지원하는 ELF Loader
-
시스템 호출
- System Call Interface
- User Mode Library
-
IPC
- Channel-based IPC
- Message Passing
-
하드웨어
- PCI Device Enumeration
- ACPI Configuration
- Local APIC Timer
- I/O APIC Interrupts
- PS/2 Keyboard Driver
- Bochs Graphics Adapter Driver
계획된 기능
- Capability-based Security
- Event-based Task State Machines
- Disk I/O
- File System
- Shell
- GUI
- Networking
빌드와 실행
- 빌드에는 Nim, LLVM의
clang·lld, Just가 필요함 clang과lld바이너리는PATH에 있어야 함PATH에 없으면.env파일에서 해당 바이너리 경로를 지정할 수 있음
- 빌드 명령은 다음과 같음
just build
- Fusion은 현재 QEMU에서 실행됨
- 실행 명령은 다음과 같음
just run
라이선스
- 라이선스는 MIT임