The concept of creating an operating system wrapped around Luau sounded very cool for me. So I started working on this little project trying to replicate something like a mixture of Linux and Windows.
I took my time to search for similiar projects on the Devforum, but seems most of them just try to replicate an operating system without attempting to make it something similiar to how an operating system would work, and I mean by that creating processes / tasks / filesystem / etc…
I was also inspired by games like Windows 10 OS, and decided to make mine based on the Linux filesystem, with some elements from Windows.
This is how the current structure looks like:
The only LocalScript the system has is the init.luau file which will initialize the other modules that makes the system work.
ProcessManager is a very important module in the system, which handles creating User Interface applications.
I am open sourcing this project because an operating system needs much more than that, and with others collaboration this project can expand further and improve alot.
Feel free to contribute to the code, by creating applications or system utilities, or by improving the existing code.
Please note I’m not an expert at computer systems and I programmed this on what I think how these operating systems works.
I created a Process “class” inside of the module to make it easier to create new processes. Also rewrote the cmd starter program according to the new changes.
I had to wrap my head around creating a script to manage processes, since the whole system depends on that to work. But the workflow of the system is pretty simple:
The init file traverses the filesystem to find the System Libraries
Require the ProcessManager file and run the main process (this may be the Login panel or the Workspace)
And the ProcessManager works like this:
Require the UI libraries
Define the spawn_process function, which creates a sandbox (Frame), parents it to the ScreenGui, and renders your ui inside of that Frame. Then return a Process object, which you can do Process:kill() to destroy the ui.
If I were to make a game like Windows 10 OS I probaly wouldn’t go as far as trying to replicate how an actual OS works If the user isn’t even gonna know about the technical details behind, that’s why I open sourced it so other people can expand this project as they like.