2000줄 C++ 에뮬레이터로 Linux 커널 부팅하기
How to bring up the Linux Kernel on a new platform

임베디드 시스템에서 Linux를 사용하려면 종종 새 하드웨어에 커널을 직접 포팅해야 합니다. WerWolv는 실제 PCB 대신 최소한의 RISC-V CPU 에뮬레이터를 C++로 약 2000줄로 구현하고, Linux 커널, Device Tree, initramfs를 구성하여 부팅하는 과정을 설명합니다. 이 글에서는 crosstool-ng로 툴체인을 만들고, 커널을 RV32IMA용으로 컴파일하며, init 프로그램과 initramfs를 생성하고, 디바이스 트리를 작성하는 방법을 단계별로 다룹니다. 에뮬레이터 코드는 GitHub에서 공개되어 있으며, 실제 하드웨어와의 차이점도 설명합니다.
Linux는 매우 복잡한 소프트웨어지만, 실제로 실행되기 위해 필요한 것은 MMU가 있는 CPU, 커널과 디바이스 트리와 initramfs를 로드할 충분한 RAM, 그리고 주기적으로 발생하는 시스템 클록 타이머뿐입니다.