- Rust로 개발된 64비트 DOS 스타일 운영체제로, 일부 x86 어셈블리도 커널 로딩에 사용
- VGA 텍스트 모드(80x25), FAT12 파일시스템, SLIP을 통한 IPv4 네트워크 스택(ICMP/UDP/TCP/HTTP) 구현
- QEMU 기반 가상머신에서 실행 및 개발이 이루어지며, 일부 실물 플로피 미디어도 지원
- 간단한 텍스트 에디터, TAB 파일/디렉토리 자동완성, Snake 게임 등 기본 유틸리티 포함
아키텍처 및 부트로더
- 대상 CPU는 x86_64이며, 향후 ARM(aarch) 아키텍처 지원 예정
- 초기 버전은 직접 작성한 부트로더로 커널을 메모리에 올리고 실행
- 64비트 커널에서는 GRUB2 부트로더를 활용해 Long Mode 진입과 Protected Mode 전환 처리
- stage2 부트로더가 GDT, IDT, 페이징 세팅 및 Multiboot2 포인터 할당 등 수행
- 커널은 쉘 명령어 처리기 및 다양한 커스텀 컴포넌트로 구성됨
QEMU에서의 에뮬레이션 및 이미지
- QEMU를 통한 가상 머신 환경에서 개발 및 테스트 진행
- ISO 이미지 생성: grub2-mkrescue와 xorriso 사용
- FAT12 플로피 이미지 생성 및 마운트 지원, 실제 장치 또는 QEMU 플래그(-fda fat.img)로 활용 가능
초기화 절차
- 커널 진입 시 Long Mode, Multiboot2 태그, FAT12 파일시스템, VGA 상태 등 확인
- ASCII 아트 로고 출력 후, 쉘 루프에 제어 이관
파일시스템
- FAT12 파일시스템 지원: 파일 읽기/쓰기/검색/삭제, 디렉토리 생성/삭제 등 지원
- 텍스트 파일 생성 및 덮어쓰기, 하위 디렉토리 지원
- fsck 툴로 파일시스템 일관성 점검 기능 포함
- 추후 FAT32 지원도 계획
네트워크 스택
- SLIP 프로토콜 기반 IPv4 패킷 송수신
- 이더넷 프레임 처리 지원(테스트 미완료)
- ICMP Echo(Request/Reply), UDP, TCP(SYN/SYNACK 상태 머신) 등 지원
- 간단한 HTTP 서버: 정적 HTML 페이지 제공
Snake 게임
- Snake 게임 내장, 향후 멀티플레이(P2P TCP) 버전도 계획
- 게임 데이터(레벨, 점수)는 텍스트 파일로 저장 및 불러오기 가능
- ESC로 게임 종료, 점수에 따라 High Score 저장
프로젝트 가치 및 활용 포인트
- Rust로 작성된 운영체제 예제로, 저수준 소프트웨어 개발의 안전성과 생산성 향상 효과 체감 가능
- SLIP/ICMP 테스트, 간편한 배포 및 실기기 지원 등으로, OS 실험 및 커스텀 구현 학습에 적합
- Rust와 x86 어셈블리가 결합된 DOS 유사 시스템 구조를 직접 경험할 수 있음