rou2exOS - Rust와 x86 어셈블리어로 작성된 Dos-like 취미 OS
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
운영체제 개발, 런타임 설계, 네트워킹 스택 구현
대상자
x86_64 및 ARM 아키텍처에 관심 있는 개발자, 운영체제 학습을 위한 취미 프로젝트 수행자, Rust 언어 및 저수준 시스템 프로그래밍에 관심 있는 프로그래머
핵심 요약
- Rust 및 x86 어셈블리어를 결합한 64비트 DOS 스타일 운영체제로, QEMU에서 실행 가능
- SLIP/ICMP/UDP/TCP/HTTP 네트워킹 스택과 FAT12 파일시스템이 포함되어 있으며, VGA 텍스트 모드 지원
- GRUB2 부트로더를 사용한 Long Mode 진입 및 Multiboot2 포인터 설정 포함
섹션별 세부 요약
1. OS 개요 및 기능
- 64비트 운영체제로, DOS 스타일의 사용자 인터페이스 제공
- VGA 텍스트 모드, FAT12 파일시스템, SLIP 기반 네트워킹 지원
- QEMU 기반 가상 머신에서 실행 가능하며, FAT12 플로피 이미지 생성 및 마운트 지원
- Shell 명령어 처리기, 텍스트 에디터, Snake 게임, fsck 도구 등 기본 유틸리티 포함
2. 부트로더 및 커널 구조
- 직접 작성한 부트로더로 커널 메모리에 로딩
- GRUB2 부트로더를 활용한 Long Mode 진입 및 Protected Mode 전환 처리
- stage2 부트로더가 GDT, IDT, 페이징 설정, Multiboot2 포인터 할당 수행
3. 네트워킹 및 파일 시스템
- SLIP 프로토콜 기반 IPv4 패킷 송수신 지원
- ICMP Echo, UDP, TCP(SYN/SYNACK 상태 머신) 등 네트워킹 스택 구현
- FAT12 파일시스템에서 파일 읽기/쓰기/검색/삭제 및 디렉토리 생성/삭제 지원
- FAT32 지원 계획 중이며, fsck 도구로 파일시스템 일관성 점검 기능 포함
4. 게임 및 기타 기능
- Snake 게임 내장, P2P TCP 기반 멀티플레이 계획
- 게임 데이터는 텍스트 파일로 저장 및 불러오기 가능
- HTTP 서버 제공으로 정적 HTML 페이지 호스팅 가능
5. 개발 환경 및 테스트
- QEMU를 통한 가상 머신 환경에서 개발 및 테스트 진행
- ISO 이미지 생성은 grub2-mkrescue 및 xorriso 사용
- FAT12 플로피 이미지 생성 및 마운트 지원
- ASCII 아트 로고 출력 후 쉘 루프에 제어 이관
결론
- Rust와 x86 어셈블리어를 활용한 취미 운영체제로, 저수준 시스템 프로그래밍 학습에 적합
- SLIP 네트워킹과 FAT12 파일시스템을 기반으로 네트워킹 스택 구현 가능
- QEMU 기반 테스트 환경을 통해 실기기 지원 및 OS 실험이 용이함