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

> Clean Markdown view of GeekNews topic #20555. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=20555](https://news.hada.io/topic?id=20555)
- GeekNews Markdown: [https://news.hada.io/topic/20555.md](https://news.hada.io/topic/20555.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-04-27T10:01:26+09:00
- Updated: 2025-04-27T10:01:26+09:00
- Original source: [github.com/joexbayer](https://github.com/joexbayer/RetrOS-32)
- Points: 4
- Comments: 1

## Topic Body

- 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](http://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 지원 추가 예정

## Comments



### Comment 37876

- Author: neo
- Created: 2025-04-27T10:01:26+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=43803148) 
- 이런 프로젝트는 AI보다 훨씬 더 보기 좋음. 판매될 것 같진 않지만, 기술자가 창의적으로 작업을 하는 모습임
  - 10대 후반에 취미로 OS 개발을 많이 공부했음. 여전히 작은 커널을 만들곤 함 (최근에는 RISCV 작은 커널로 파트너에게 메시지를 출력했음)
- 오랫동안 본 것 중 가장 인상적인 열정 프로젝트 중 하나임. 왜 직접 C 컴파일러를 작성했는지 궁금함
- 기본 시스템 폰트는 더 압축된 변형이어야 함. 시스템이 훨씬 더 정제되어 보일 것임
  - 문자에 더 많은 가로 공간이 필요함이 명확함. 각 문자는 너비가 적어야 하고, 문자 간의 공간은 가능한 한 적어야 함 - 현재 사용 중인 폰트 크기와 해상도에서는 한 픽셀 정도면 충분함
  - 폰트 시스템에 대해 잘 모르지만, 고정 폭 비트맵 폰트라고 가정함. 코드베이스 내에서 이러한 변경을 하는 것이 얼마나 어려운지 모르겠지만, 너무 많은 작업이라면 걱정하지 말 것
  - 웹 OS 사이트를 처음부터 만들고 있으며, 최근 폰트 클래스를 완전히 다시 작성했음. 그래서 이 문제가 머릿속에 있음
- 훌륭함! 오늘 다시 시작한다면 무엇을 다르게 할 것인가?
  - 하위 레벨 부분에 대한 언어 적합성에 대한 생각은? (예: C에 머무르거나 C++의 간단한 부분 집합 또는 새로운 언어 중 하나)
  - 다양한 리소스가 있는 상황에서 어떻게 다른 사람의 코드를 복사하지 않고 프로젝트를 흥미롭게 유지했는가?
- 축하함! 1977년에 Commodore PET 2001을 사용했던 사람으로서 멋지게 보임. KolibriOS와 MenuetOSx64를 가지고 놀고 있었지만, 나만의 OS를 만들고 싶었음. 해냈음! 계속 전진하길 바람
- 축하의 말을 전하고 싶음. 프로젝트에 깊은 인상을 받았음. 10대 때부터 OS 개발 팬이었고, 이 성과가 실현되는 것을 보니 기분이 좋음. 그래픽 서브시스템이 어떻게 초기화되는지 궁금함. 성공을 기원함
- GNU처럼 크고 전문적일 것인가? :)
- 이 컴파일러가 운영 체제와 어떻게 상호작용하는지 설명해 줄 수 있는가? 특히 구조체 같은 기능을 어떻게 처리하는지, 이 분야의 현재 제한 사항이나 계획된 개선 사항은 무엇인지 궁금함
- 몇몇 프로젝트가 동시에 이정표에 도달하는 것이 흥미로움. 컴퓨터와 깊이 있게 작업하고 결과를 공유하는 사람들이 여전히 있다는 것이 안심이 됨
  - 계속 전진하길 바람
- 에디터에서 Turbo C/QBasic의 흔적을 봄
  - 프로젝트에 찬사를 보냄
