Programming hobbyists enjoy taking on challenges, and one challenge that many find irresistible is getting Linux to run on various devices. The latest example of this involves getting Linux to run on the iconic Commodore 64 computer. While achieving this feat on a Mac is one thing, accomplishing it on a 40-year-old computer with only 64KB of memory is an entirely different level of challenge.
Developer Onno Kortmann (as reported by Slashdot) utilized Semu, a lightweight RISCV32 emulator, and cross-compiled it with llvm-mos, enabling the code to be executed on the MOS Technologies 6502 processor of the Commodore 64. It should be noted that this accomplishment was achieved using an emulator and not on actual hardware, although it is only a matter of time before it becomes possible on real hardware.
By utilizing the VICE Commodore emulator, Kortmann activated "warp mode," which accelerated the display of the initial boot messages within a few minutes. However, it should be noted that on an actual Commodore 64 machine, the boot process would take significantly longer. The screenshot provided below was captured after a few hours using Warp mode, indicating that it would take a week or more for a real C64 to fully boot Linux.
The original Commodore 64 was equipped with only 64KB of memory, making it impossible to run a lightweight operating system without the assistance of a RAM Expansion Unit (REU). Kortmann does not specify the specific REU used, but it is worth noting that C64 REUs were available with memory capacities of up to 512KB, or a substantial 0.5MB. Additionally, the MOS Technology processor of the C64, operating at approximately 1MHz, cannot be described as a high-speed performer.
Kortmann believes that there is significant potential for improvement, suggesting that a 10x speed increase could be achievable. However, even with such a speed boost, the limitations of the C64 hardware mean that running extensive software applications after completing the boot sequence is unlikely. This accomplishment primarily serves as a demonstration of feasibility rather than practicality. Nonetheless, it remains an impressive achievement with its own inherent coolness.
If you are interested, you can find the code and instructions on Kortmann's Github page. It is uncertain whether many programmers, except for the most masochistic or bored ones, would take on this challenge. However, for those who do choose to do so, they deserve respect for their efforts.
Is it practical to have Linux running on a C64? Not at all. However, it is undoubtedly an impressive accomplishment and one that fans of one of the greatest computers of all time will truly appreciate.