Raspberry Pi 3b에서 드디어 Oberon 시스템이 동작합니다!
위 이미지는 실제로 동작하는 시스템의 모습인데요. 원래 Raspberry Pi 모니터와 Lenovo ThinkPad TrackPoint 키보드(Oberon 시스템에서 권장하는 3개 마우스 버튼 포함)를 사용했습니다.
SD 카드에 이미지 플래싱하기
준비된 이미지 파일(oberon-rpi3.img)을 첨부했으니, 이를 SD 카드에 플래싱하면 직접 Raspi 3b에서 시스템을 실행할 수 있습니다.
먼저 이미지 파일을 압축 해제한 후, 다음 방법으로 진행하세요:
Linux에서:
sudo dd if=oberon-rpi3.img of=/dev/sdX bs=4M conv=fsync status=progress && sync
Windows 또는 Mac에서:
Raspberry Pi Imager나 Etcher 같은 도구를 사용하면 됩니다.
직접 빌드하기
물론 전체 시스템을 직접 빌드할 수도 있습니다. 편의를 위해 필요한 Raspberry Pi 부트 파일과 Linux x64용 사전 컴파일된 toolchain을 함께 제공했어요. 빌드 스크립트와 SD 카드 플래싱 스크립트는 arm32/build 디렉토리에 있습니다.
지원하는 하드웨어
이 이미지는 Raspi 2b(v1.2 이상), Zero 2에서도 동작합니다.
이 모델들을 선택한 이유는 기본적으로 동일한 하드웨어 아키텍처를 공유하면서도 지금도 정기적으로 주문할 수 있기 때문입니다. 제조사에 따르면 Raspberry Pi 3b는 최소 2028년까지, Pi Zero 2는 2030년까지 생산 예정이거든요. Pi 2b v1.3도 여전히 구입 가능합니다. 모델 1과 2의 생산 주기를 보면, 3b와 Zero 2의 수명도 연장될 가능성이 높습니다. 향후 Raspi 4로의 마이그레이션도 충분히 가능해 보입니다.
ARM 포팅 완료
Oberon 시스템의 핵심인 Kernel, Reals, File System과 platform별 드라이버(Display, USB, Math)를 32비트 ARM으로 완전히 포팅했습니다. 이제 QEMU 10.2에서 Raspberry Pi 2B(raspi2b machine)를 에뮬레이션할 때도 부팅되고 동작합니다.
i386 버전과 마찬가지로 전체 ARM 시스템을 처음부터 빌드하는 속도가 매우 빠릅니다. 모듈 컴파일, 코어 정적 링킹, AosFs 드라이브 생성, 그리고 모든 런타임 파일 배포까지 단 1분 미만에 완료되거든요(저의 경우 T480 노트북 기준).
QEMU 이미지의 사전 컴파일 버전과 이를 빌드하는 데 사용한 toolchain을 첨부했습니다.
다음 단계
다음 목표는 Raspberry Pi Model 2B, 3B, Zero 2의 실제 하드웨어에서 JTAG를 통한 디버깅입니다. 베어 메탈에서 시스템이 정상 동작하면, 네트워크 드라이버(최소한 이더넷, WiFi는 작업량이 많아 보입니다)를 포팅할 예정입니다.
빌드 안정성
현재 시스템은 충분히 안정적으로 동작합니다. i386과 portable 디렉토리에서 358개 중 355개 모듈을 제 toolchain으로 성공적으로 빌드했거든요.
Debian Bookworm x64가 설치된 Lenovo T480에서 전체 빌드(드라이브 생성 및 모든 파일 업로드 포함)가 51초 안에 완료됩니다.