“But does it run Linux?” can now be finally and affirmatively answered for the Commodore C64!
There is a catch (rather: a couple) of course: It runs extremely slowly and it needs a RAM Expansion Unit (REU), as there is no chance to fit it all into just 64KiB.
It even emulates virtual memory with an MMU.
Insanity. A real C64 would take about a week (!) to boot Linux.
The old “scientists were so preoccupied with whether or not they could that they didn’t stop to think if they should” meme is pretty apt here. Sure, it’s great that Linux is portable enough to run and boot on a C64, but there is literally no practical reason to ever even try. If you have to overclock by over a factor of 100 in a VM just to make it barely usable, there’s essentially no hope of it being useful on real hardware.
There’s several native 6502 unix-likes. If you truly need to run a UNIX CLI program on a C64, you could probably rewrite or port said program to one of those OSes in the time it took for Linux to boot.
https://www.hackster.io/news/ted-fried-s-mcl64-is-a-teensy-4-1-powered-drop-in-upgrade-for-your-commodore-64-6630915d888d
Replace with C64 cpu with MCL64 you go from 1Mhz clock to 800Mhz clock in high performance mode(and pushing the hardware a little hard). So 800x overclock in the physical hardware if you push things. 300x is practical. Yes MCL64 is kind of a wacky because its a VM of a 6510 in Teensy 4.1 doing a pin compatible signals to the C64 motherboard. Yes the 800x overclock is overclocking the teensy4.1. Yes some parties have done insane CPU overclocking on a C64 for the hell of it.
Remember we are running out of original 6510 CPU the c64 uses this is what has been behind these beasts using modern parts to keep C64 going and the effect has been over 100 times overclock on the physical C64 hardware is a practical overdrive value with the right replacement CPU.
But you are right to say not really that practical to run Linux on c64 as there are tones of better options.
https://dmitry.gr/?r=05.Projects&proj=07.%20Linux%20on%208bit
The insanity of running Linux on different 8bit CPU starts with the above party.
But I will give you native 65xx Unixs for the 64 would be still a better choice.
The CPU in the example clip ran at 1200% faster than a 6502 at 1mhz. that means the emulator speed ran at 12x the speed of the original processor. Or about what a WDC 65816 cpu upgrade on the C64 runs at (14mhz).
The factor of 100 is not applicable in this case, but a factor of 12. (or zero if the 65816 is the target)
“With 200MHz+ 8-bit W65C02S and 100MHz+ 8/16-bit W65C816S processors coming on line in ASIC and FPGA forms, we see these annual volumes continuing for a long, long time.” – Bill Mensch
That in fact wrong that the C64 CPU processor runs at 14mhz..
https://en.wikipedia.org/wiki/Commodore_64
https://www.lemon64.com/forum/viewtopic.php?p=451380#p451380
The second link gives you what the dividers are.
C64 has two different master clocks ~17Mhz for Pal and 14Mhz for NTSC but there is a divider before the CPU.
The divider. The divider results in the clock getting to the CPU being 1.023 MHz NTSC and 0.985 MHz PAL Yes the divide is 18 for pal and 14 for NTSC.
There is a reason why MCL64 can do 600 to 800 times speed on a C64 is that it can ignore the motherboard clock source.
NaGERST you just made a common mistake a lot of people think a C64 CPU clock run a lot faster than it really did due to missing either the 18/14 divider that makes the clock speed way slower. Yes the 6502 at 1Mhz is faster than a PAL C64 cpu and slower than a NTSC C64 CPU.
https://www.c64-wiki.com/wiki/SuperCPU
Please note the W65C816S/WDC65816 with C64 was not replacement to motherboard CPU but a plug in card. Yes also run at 20Mhz historically but there is a lot of software incompatibility using it. Yes the SuperCPU with add on 16 megs of ram starts getting to a more reasonable sized system.
It does not change the fact that the 6502 ran at ~1mhz and the 65816 at 14 mhz. I still have no idea where OP got the 800mhz OR “a factor of 100” from in the original post when the video clearly states a factor of 12.
NaGERST I did not include links for no reason. The 65816 add on of the C64 does not run at 14Mhz it runs at 20Mhz that the SuperCPU. Yes add on cartridge its a 20Mhz 65816 with 16 Megs of ram in best configuration. The SuperCPU has issues with compatibility with C64 applications due to instructional and ram differences. This Linux on Commodore 64 is not coded for the SuperCPU/65816. Yes there is a miss alignment here between the W65C816S/WDC65816 spec sheet that says its max clock is 14mhz and what you find that same chip running at really. Yes W65C816S/WDC65816 being used with C64 is running 4Mhz above specification yes a from factory overclock basically also explains why finding one of these working is so hard. Yes the normal overclock=shorter lifespan.
The MCL64 CPU replacement for the C64 is able to run at 800Mhz or 800x the C64 default.
Yes the video of the semu-c64 running in a VM only has a overclock of 12 times that is 12 times from what a C64 real CPU clock is so since the real C64 clock is only ~1mhz that VM is only running the C64 at ~12mhz. So SuperCPU cartridge C64 from 1996 exceed that overclock because its 20mhz..
MCL64 due to being teensy 4.1 and it emulation it can also make the C64 with it as the replacement CPU appear to have a SuperCPU with the min amount of ram being 128kb for the Super cartridge..
Something else to be aware of the SuperCPU does not work if the C64 motherboard CPU is broken or missing.
NaGERST basically I gave links for reasons. No C64 CPU that can be classed as original or original third party(as in before 2000) in fact runs at 14Mhz. Yes the CPU clock speeds is either ~1Mhz(difference between pal and ntsc why it not clean 1mhz) or 20Mhz. If a person says 14Mhz they are either miss using the NTSC master clock or using a 65816 specifications sheet that don’t match the clock speed the C64 addon CPUs really run at.
12x if you were starting up shells and other things as in really attempting to use the Linux would turn bad quickly so bit more would be good.
Reality here is modern FPGA versions of the C64 cpu are also able to run at 100-300Mhz(there are differences based on FPGA used). So people replacing C64 cpu with new hardware today end up with machines that can run between 100x to 800x original hardware.
Yes the Supercpu was a 20x overclock back in the day. Today C64 built with new parts(yes people do build new C64 clones) have 100x to 800x over-clocks on the original.
Factor of 100 faster that a modern build C64 clone with its overclocking switches turned on.