RaSOS is not a fully featured OS. It’s not supposed to be a fully featured OS. It’s not bug free. It’s not supposed to be bug free. I'll fix/improve it if I have time. It’s a proof-of-concept I came up with in a couple of minutes to demonstrate how I think OSes in CC should be programmed.
Firstly, it doesn’t use shell.run(). If it used that to launch programs, it wouldn’t be an OS. It would be a fancy program launcher. Instead, RaSOS uses loadfile() and coroutines to load and run programs.
Secondly, it isn’t one or two massive files. It’s like Linux, in that the OS is divided up into several bits, each with their own specific purpose, and each one of those bits can be replaced without affecting the others.
system
The system module of the OS is in charge of loading the other APIs, and after that, hands over control of the main coroutine to the process module.
process
The process module is in charge of the management of processes/threads (coroutines). It keeps track of all the processes running on the computer, and is in charge of their execution.
xwin
The xwin module, named after the (real life) X Window System (on Linux), is in charge of the management of windows. It keeps track of all of the windows open on the system, where they are, etc. Note that it doesn’t do any actual drawing. The drawing of windows is left to the active window manager.
raswm
The raswm module is the default window manager in the OS. It is in charge of how everything looks on the screen, and the drawing of windows. It is also in charge of processing user input (dragging windows, clicking the “close” button, etc.)
Like I said before, any one of these components may be replaced. The most useful to replace would be the window manager. RaSWM is designed to look like Mac OS 9 (with some adjustments) and does not have any configuration options. If you don’t like the look of it, you could program a separate window manager and replace the raswm module, without touching anything else.
Okay. I think I’ve finished my rant on how OSes in CC aren’t OS-ey enough. Picture time!
What it’s supposed to look like (the plan):
What it actually looks like (the reality):
Download (why would you want to download this?):
v0.1b2 | Dropbox
v0.1b1 | Dropbox
Place files in root directory of computer. Run “sys/bin/system”. Press the “R” button. Click "Terminal1" to spawn a new instance of “testTerm”. Press the green button (“_”) to make it into a strip. Move it around. Whoo (dejectedly). Press the “R” button again. Click Shutdown. That's it.
Changelog
Spoiler
v0.1b2- (Not a cliche) Complete rewrite
- New "program" API - uses event handlers instead of infinite rendering
- R button actually opens a menu now
- New "Run File" button/program
- New error message "API"
- Initial release
Thank you for reading this.