What is it?
So I started working on a new ComputerCraft OS, that is based around the Ubuntu distribution of Linux. The whole OS will be made in Lua of course due to it being based in CC, and won’t use a TLCO (top-level coroutine override), but instead will use a function overwrite, which will change the base functions globally.

Personal Development
The OS was a project I saw to be more beneficial to me, and would include some interesting learning experiences. The OS will have a kernel, which will manage ALL operations, then the Shell will call an API that the Kernel exposes. This API, will also be what overwrites the current functions of base CC.

Ideas and Feature Plans
One of the things I plan to add is filesystem virtualisation. So this is an idea, and not yet fully worked out. I see the filesystem being an object stored by the kernel in a file. The kernel will then store pointers to the actual files based off of where the file is held, all files will still be held in the /home/ directories, but not based off of file name, the shell will make calls which the kernel has already overwritten meaning the shell would still run the same as it usually would, but using a virtualised file system, this allows me the following: cloud-based file/folder traversing, so I can move through files that are on a server, and feel like they are on the computer, it also allows me to support backups for users, where users can backup system files and user files to a cloud. It also will support and store meta content for each file, including extension, meta content, permissions and more.

To me the above design would mean that I have a lot more control over the filesystem, without breaking current applications and supporting more options for the OS to be more manageable, without the CC limitations.

Cloud storage will be a big thing in the OS, which will allow you to run, edit and manage files/folders that don’t physically exist on your local computer machine.

The kernel will also expose extensions to many of the core CC apis including extra functions for managing syncing between the cloud, meta content, and setting the default launcher for each file extension.

Third Party Libraries
The OS will contain many third-party libraries including a possible framework, which may be Titanium, as I love the design of it, and my own GUI framework from my BaseAPI. Writing programs for the OS is simple, using a global variables _G.EXECUTING_OS = ‘SteelOS’; which will allow developers to make programs that used the extended functions or just not for a normal program.

I will also be including a ton of the Discover Network features directly in the OS, and this will include the most recently updated version of the Discover API, which is currently in Alpha stage.

It will have access to a notification bar, which will store system and app messages, as well as support for creating popups. I will also be including a service type background processor in the kernel which works the same as service/systemctl allowing you to run background programs. It will also include a file-transfer application and an external type SSH platform for portable computers. Possibly using what Lyqyd made.

I want to thing of the kernel as the base of this project, and then add integrations and extensions.

Conclusion
The whole OS will be a proof-of-concept and is something that can be used for daily tasking in Craft OS. The OS by default will be based as a CLI application, but you can set in your user settings to launch the GUI by default instead, and have access to the shell as a program inside of the OS.

Designs for the OS are yet to come, and I shall post here once I have them.

Contributions / More Developers
I am looking for other ComputerCraft developers to help work on this project with me, and we shall all be in the credits! I want to make this something of a community made project, where we make it as powerful and linux-like for it to be a benefit to use in CC and not a pointless OS no one will use.

If you wish to work on it, message me on my profile on the ComputerCraft Forums (Danny SMc).

Leave a Reply