[1000줄 OS 구현하기] 시작하기

2025. 1. 17. 19:06CS/OS

 

 

1. 출처

 

 

Intro | OS in 1,000 Lines

 

operating-system-in-1000-lines.vercel.app

 

1000줄로 운영체제를 직접 구현할 수 있다고 한다.

 

운영체제를 공부할 겸 한번 만들어 보자.

 

실제로 Linux의 0.01 version이 8413 줄에 불과했다고 하니 충분히 가능할 것 같다.

 

글에 따르면 완성된 OS에선 기본적인 context switching, paging, user mode, a command shell, disk device driver, file read/write operations in C 등을 할 수 있다고 한다.

 

이 과정에서 가장 어려운 부분은 ‘디버깅’이라고 한다.

 

구현되지 않은 printf 없이 디버깅하는 방법을 배워야 한다.

 

충분히 재미있고 의미 있는 시간이 될 것 같다.

 


2. 개발환경 구성

 

일전에 구축한 Proxmox에 Ubuntu 가상머신을 생성한다.

 

이유는 맥에 불필요한 의존성들을 설치하기 싫어서다.

 

 

VSCode의 Remote Development를 활용해서 SSH를 통해서 원격으로 개발한다.

 

 

GitHub - ramen4598/MyOS: 1000줄로 운영체제 구현하기. 출처 : https://operating-system-in-1000-lines.vercel.app/en/

1000줄로 운영체제 구현하기. 출처 : https://operating-system-in-1000-lines.vercel.app/en/ - ramen4598/MyOS

github.com

 

Github에 새로운 Repo를 만든다.

/disk/*
!/disk/.gitkeep
*.map
*.tar
*.o
*.elf
*.bin
*.log
*.pcap

.gitignore를 추가한다.

 


3. 준비물

 

 

Getting Started | OS in 1,000 Lines

 

operating-system-in-1000-lines.vercel.app

 

Ubuntu에 필요한 패키지를 설치한다.

 

sudo apt update && sudo apt install -y clang llvm lld qemu-system-riscv32 curl
  • clang: C 언어 컴파일러로, LLVM 프로젝트의 프론트엔드
  • llvm: 컴파일러 인프라스트럭처 프로젝트로, 다양한 프로그래밍 언어를 지원
  • lld: LLVM 프로젝트의 링커로, 오브젝트 파일을 실행 파일로 연결
  • qemu-system-riscv32: RISC-V 32비트 아키텍처를 에뮬레이션 하는 시스템 에뮬레이터
  • curl: URL을 통해 데이터를 전송하는 명령줄 도구

 

curl -LO https://github.com/qemu/qemu/raw/v8.0.4/pc-bios/opensbi-riscv32-generic-fw_dynamic.bin
  • OpenSBI : RISC-V 시스템의 부팅과 초기화를 담당하는 펌웨어

 


'CS > OS' 카테고리의 다른 글

[1000줄 OS 구현하기] Boot  (0) 2025.01.21
[1000줄 OS 구현하기] RISC-V Assembly  (0) 2025.01.17