Rust & x86 Assembly DOS-like OS: QEMU, ARM, GRUB2, FAT12
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

rou2exOS - Rust와 x86 어셈블리어로 작성된 Dos-like 취미 OS

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

운영체제 개발, 런타임 설계, 네트워킹 스택 구현

대상자

x86_64 및 ARM 아키텍처에 관심 있는 개발자, 운영체제 학습을 위한 취미 프로젝트 수행자, Rust 언어 및 저수준 시스템 프로그래밍에 관심 있는 프로그래머

핵심 요약

  • Rustx86 어셈블리어를 결합한 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-mkrescuexorriso 사용
  • FAT12 플로피 이미지 생성 및 마운트 지원
  • ASCII 아트 로고 출력 후 쉘 루프에 제어 이관

결론

  • Rust와 x86 어셈블리어를 활용한 취미 운영체제로, 저수준 시스템 프로그래밍 학습에 적합
  • SLIP 네트워킹FAT12 파일시스템을 기반으로 네트워킹 스택 구현 가능
  • QEMU 기반 테스트 환경을 통해 실기기 지원OS 실험이 용이함