GN⁺: 커모도어 64에서의 Linux
(github.com/onnokort)- 1980년대의 클래식 홈 컴퓨터인 커모도어 C64에서 리눅스 성공적인 운영에 대한 기사
- 리눅스 운영 체제는 커모도어 C64에서 매우 느리게 작동하며, 컴퓨터의 제한된 64KiB 메모리 때문에 RAM 확장 유닛(REU)가 필요
- 시스템은 메모리 관리 유닛(MMU)을 사용하여 가상 메모리를 에뮬레이션
- 저자는 아직 실제 하드웨어에서 설정을 테스트하지 않았으며 독자들이 경험을 공유하도록 권장
- 시스템을 구축하려면 'make' 명령과 'mos-c64-clang' 도구를 사용해야 함
- 커널 구성은 큰 섹션 정렬 때문에 원래 semu 커널과 다름. 더 적합한 커널 구성은 config 하위 폴더에서 찾을 수 있음
- VICE 에뮬레이터에 필요한 REU 이미지를 모두 조립하기 위해 'mk_linux_reu.py' 스크립트를 사용
- 시스템을 실행하려면 컴파일된 semu 실행 파일이 포함된 .d64 파일을 생성. 이 파일은 그 후 VICE 에뮬레이터에 로드됨
- 저자는 GitHub에 필요한 모든 사전 제작 바이너리를 포함한 아카이브를 추가할 계획
- 저자는 또한 컴파일된 6502 코드를 최적화하여 성능을 향상시키고, 긴 부팅 과정을 피하기 위해 체크포인트 VM을 구현하는 가능성을 언급
- 기사는 이 프로젝트를 가능하게 한 최소주의 RISC-V32 에뮬레이터인 semu와 llvm-mos 도구의 작업을 인정하며 마무리
Hacker News 의견
- Onno Kortman이 semu라는 최소한의 RISC-V 에뮬레이터와 llvm-mos, MOS 6502 프로세서에 대한 LLVM 포트를 사용하여 Commodore 64에서 Linux를 성공적으로 실행하였습니다.
- 이 과정은 시간이 많이 소요되며, '워프 모드'에서 스크린샷을 생성하는 데 몇 시간이 걸립니다. 실제 C64는 일주일 내에 Linux를 부팅할 수 있어야 합니다.
- 이 프로젝트는 16MB REU라는 드문 하드웨어를 필요로 합니다. 당시 C64에 사용 가능했던 REU는 256kB와 512kB였습니다.
- 이 프로젝트는 386에서 Doom3를 실행하는 것과 비교되지만, 386은 현대 PC의 PCI 카드입니다. 이 비교는 기술적으로 가능하다는 것을 제안하지만, 원래 하드웨어의 능력을 대표하는 것은 아닙니다.
- 원래 SuperCPU 회로도가 사라진 후, 오픈 소스 "슈퍼 CPU" 회로도에 대한 요청이 있습니다. SuperCPU와 그 DMA 컨트롤러는 현재 강력한 FPGA를 사용하여 에뮬레이트됩니다.
- 일부 사용자들은 "Kung Fu Flash"와 같은 최근의 C-64 액세서리를 실험하고 있으며, 이는 "슈퍼 스냅샷"을 에뮬레이트 할 수 있지만 REU는 아닙니다.
- 현대 Linux를 부팅할 수 있는 가장 오래된 하드웨어에 대한 토론이 있으며, 이는 일상적으로 사용할 수 있습니다.
- 이 프로젝트는 튜링 동등성의 시연으로 간주되며, 충분한 시간이 주어지면 모든 튜링 완전 컴퓨터가 다른 튜링 완전 컴퓨터가 할 수 있는 것을 보여줍니다.
- 이 프로젝트가 Commodore 64용 작고 다중 작업 운영 체제인 Lunix와 다른지에 대한 질문이 있습니다.
- 일부 사용자들은 C64에서 Linux를 실행하기 위한 대안적인 방법을 제안하며, 이는 RAM으로 여러 플로피 디스크를 사용하고 필요에 따라 교체하는 것을 포함합니다.
- 이 프로젝트는 C64가 Linux를 직접 실행하는 것이 아니라 RISC-V 환경을 에뮬레이트하는 것으로 명확히 설명되었습니다.
- 이 프로젝트는 다른 사람들이 Gameboy에서 RISC-V를 실행하거나 TRS-80 Model 4에 Unix 스타일 시스템을 설치하는 등 비슷한 프로젝트를 고려하게 했습니다.