Page 1 of 1

TinyCore on the Foenix!

Posted: Tue Sep 03, 2019 11:28 pm
by gadget
Following Stefany's request that the developers on Discord start posting to the forum, this thread is for my current project!

For years, I've been working on an OS built around the general outlines of Smalltalk-80, but designed for real-world use, with real world networking, and real-world security. The OS consists of a multi-threading virtual machine, a network stack, device drivers, and an "image". Unlike most operating systems, there isn't a file-system per-se. Instead, all data (including code and call stacks) exist as globally named objects, and the storage system moves objects between memory, local storage, and network peers as needed (the 'image' is the local object store). With a network and the right access credentials, you can seamlessly access any of your objects and processes from any machine :).

I wanted to turn it into a commercial product a decade ago, but life got in the way. Then, two years ago, I burned a winter break seeing if I could get it to run on an original 64K Tandy Color Computer with encouraging results. After that, the Commodore 64 with its large retro community was the next step, and I spent the next 18 months or so of bus rides getting astonishing performance out of the C64 :). Then, the C256 Foenix appeared! The retro machines were a fun way of continuing development while life was otherwise too full for productizing the real thing, but with the Foenix -- and especially the FMX -- the retro platform becomes powerful enough that I can see myself using it as a primary home machine. And unlike practically everything else on the market, it's a machine that can be fully owned and understood.

I placed my order for a C256 three months ago, and immediately went to work :). I threw together a simple 65816 emulator, familiarized myself with its programming model, and started porting! At this point, I have the system architecture, memory manager, bytecode dispatcher, the Class, Context, LargeInteger, and Method objects, and a good start on the byte code operations, including basic integer operations (Large and Small), dynamic dispatch, and enough I/O to run build-time unit-tests.

Note that this is a very different kind of operating system in that it only runs bytecode and it doesn't really have a concept of stand-alone applications. If you are more interested in a conventional OS that provides runtime services for 3rd party binaries, you'll want to pay attention to Mike Bush's C256 Foenix Workbench. That said, the Foenix is a doorway back to a time when there was still room for creativity in the operating system space, and I'm hoping I can convert some of you to an old new way of thinking!