I had to do some digging into our archives to see if we ever covered GeckOS before, but apparently we haven’t – and that’s a shame. GeckOS is a pre-emptive multitasking operating system for the Commodore 64 and the PET, and should be easily portable to other 6502-based machines, and offers multithreading, TCP/IP networking, and more. Version 2.1 has just been released, and it adds a ton of new features and bugfixes.
Interesting. I wonder if this is software MMU or if it includes optional hardware other systems didn’t typically have due to cost.
Ok im probably confusing memory management with multitasking, but i know hardware helped in various ways on the following generations of hardware. Time to dive into this one.
mattsaved,
An MMU doesn’t technically have to reside inside the CPU and I’m seeing sources claiming an MMU was available for some 6502 based commodore systems. It would have been very difficult to implement robust isolation with these simple bank switching MMUs, I believe they needed to keep the OS in range to allow for operating system interrupts. The major selling point of an MMU was adding a lot more addressable memory.
corei64.com/shop/index.php?route=product/product&product_id=265
This link is quite detailed.
http://www.baltissen.org/newhtm/74ls612.htm
It appears that GeckOS supports switching MMUs to provide each task with it’s own memory region.
https://github.com/fachat/GeckOS-V2/blob/v2.1.0/doc/mmu.7.adoc
Their documentation indicates support for non-MMU systems. An MMU isn’t technically necessary even for multitasking if applications can be trusted to “stay within their lanes” so to speak, it just means there’s no hardware protection against erroneous memory access. Memory bugs in one application would reduce the stability of the whole system.
https://github.com/fachat/GeckOS-V2/blob/v2.1.0/doc/nommu.7.adoc
This whole OS runs on an 8-bit processor, probably in 64k of RAM? Impressive. I don’t think you get MMU with a 6502.