Ok, since my Adventure Hame OS Idea I have spent a little time here and there thinking about implementing an “os” in uxn.
I think one of the main things that has been me working things out has been what a kernel would look like on uxn now pretty much seems like a bunch of wasted though.
Why write a kernel for it when uxn basically already is a kernel. It already supplies almost all of the important hardware abstraction needed.
My proposal is... no kernel.
Not as such anyhow.
What, in my mind, a uxn ‘os’ would look like is basically 3 applications.
A memory manager, this launches applications and keeps tabs on where in memory they all are.
A shell, it’s a shell. It allows you to interact with the file system and stuff. (Technically made up of lots of smaller applications that get called)
An assembler that gives you access to some sort of standard library of convenient methods.
Now, I haven’t fully fleshed out how this works. It’s fully possible I am still barking up the wrong tree.
However, I see it working a bit like this:
You first launch the memory manager. It always sits at the same spot in memory and reserves most of the zero page for operating.
It provides a set of methods at fixed locations used for launching, tracking and clearing applications from memory.
The memory manager kicks the shell into life and then retires into the background.
This is all very rough. I really don’t see the need for the traditional bootloader/ kernel implementation here though.
There is an argument to be made that the memory manager is a kernel, but really it’s only half a kernel living in user space. It cares nothing for peripherals at all, leaving all of that up to the host system.
As an extra thought:
The memory manager is also going to have to be in charge of swapping what the vectors point at between applications.
It’s not much use swapping from a text editor to something else and back if the memory manager doesn’t also swap the vectors in and out for each application lifecycle.
Maybe it does have to act a bit more like a traditional kernel than original intended.
@jameschip This sounds intriguing, but I need some context to follow along ... can you point me at something that starts the conversation about "uxn"?
@jameschip Site bookmarked ... thank you. Looks intriguing. I doubt that I have the skills or time to get involved, but I'll enjoy a peruse.
Typo on this page: https://100r.co/site/sailing.html
My Chartodon 'bot couldn't chart your thread ... is your account locked in some way?
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!