HN 공개: 내가 직접 작성한 취미 OS, 빈티지 IBM ThinkPad에서 드디어 실행

2 days ago 7

  • RetrOS-32는 i386 아키텍처 기반 32비트 취미용 운영체제 프로젝트임
  • 그래픽, 멀티태스킹, 네트워킹 기능을 제공하며 실제 하드웨어에서도 테스트됨
  • C, C++, 어셈블리어로 작성되었고 Docker를 통해 크로스플랫폼 컴파일을 지원함
  • 사용자 시스템 구축, QEMU 에뮬레이션 실행, 실기기 부팅이 가능함
  • 프로젝트는 완성도 높은 커널 기능네트워크 스택을 갖추고 있으며 지속적으로 기능 추가 중임

RetrOS-32bit 프로젝트 소개

  • i386 아키텍처를 기반으로 한 32비트 취미용 운영체제 개발 프로젝트임
  • 그래픽 환경, 멀티태스킹, 네트워크 기능을 지원함
  • 프로젝트 시작일: 2022년 5월 12일

기본 로그인 정보

  • 기본 사용자 계정: system, admin, guest
  • admin 비밀번호는 admin, guest는 비밀번호 없음
  • 새로운 사용자는 admin create <사용자명> <비밀번호> 명령어로 생성 가능

주요 개발 언어 및 툴

  • C, Assembly: 커널, 유틸리티, 빌드 시스템
  • C++: 사용자 공간 애플리케이션
  • Make: 빌드 자동화
  • Docker: 크로스플랫폼 컴파일 환경 제공

테스트된 하드웨어

  • Lenovo x240
  • Asus Eee PC 시리즈
  • Dell Optiplex 780
  • Samsung N150 Plus
  • Samsung NP-NC10
  • IBM Thinkpad a21p

시작하기 (Getting Started)

필요한 도구 (Prerequisites)

  • Docker: 크로스플랫폼 컴파일
  • QEMU: 가상 머신 에뮬레이션
  • Linux/WSL 환경: build-essential, gcc-multilib, grub2, xorriso, xxd
  • MacOS: Docker 사용 필요 (32비트 x86 빌드 제한)

설치 방법 (Installation)

  • Git 저장소 클론
  • Git 서브모듈 초기화
  • make compile, make img 명령으로 이미지 파일 생성
  • make qemu 명령으로 QEMU 에뮬레이터 실행

MacOS와 Windows에서는 Docker 사용 권장

사용법 (Usage)

  • copy.sh v86 사이트에서 .img 파일 업로드하여 실행
  • QEMU로 직접 실행 가능: make qemu 또는 qemu-system-i386 <이미지명>
  • 실기기에서는 GRUB 기반 ISO를 USB/CD로 구워서 부팅 가능

프로젝트 구조 (간단 요약)

  • apps: 사용자 공간 애플리케이션
  • bin: 바이너리 파일
  • boot: 부트로더 소스
  • drivers: 커널 드라이버
  • fs: 파일 시스템 코드
  • graphics: 그래픽 처리 코드
  • include: 헤더 파일
  • kernel: 커널 주요 소스
  • lib: 라이브러리
  • net: 네트워킹 코드
  • rootfs: 루트 파일 시스템
  • tests: 테스트 코드
  • tools: 빌드 및 유틸리티 도구

개발 로드맵 (Roadmap)

  • 커스텀 부트로더 및 GRUB 호환 부트 완료
  • 멀티스레드 선점형 스케줄링커널/유저 공간 분리 구현
  • 네트워크 스택: Ethernet, IP, ARP, UDP, TCP, DHCP, DNS 완료
  • 그래픽스 시스템: 창 관리자, 위젯, 더블 프레임버퍼 렌더링 구현
  • 파일 시스템: Ext2 유사, FAT16 지원, 읽기/쓰기 가능
  • 향후 계획: 웹서버, FTP, IRC, SSH, Telnet, HTTP, HTML 지원 추가 예정

Read Entire Article