[1000줄 OS 구현하기] 시작하기
2025. 1. 17. 19:06ㆍCS/OS
1. 출처
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에 새로운 Repo를 만든다.
/disk/*
!/disk/.gitkeep
*.map
*.tar
*.o
*.elf
*.bin
*.log
*.pcap
.gitignore
를 추가한다.
3. 준비물
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 |