xOS -- A hyper-realistic OS, created on Roblox

Hey there my fellow developers! I have posted on the Feedbacks cause I am willing to get suggestions and get a review!

Things you may ask:

  1. Is it just GUI or is it more of a realistically simulated kernel.
    It definitely is a realistically simulated kernel. Very so. It does some stuff similar to the linux kernel:
    – FIle system management
    – Process management
    – Memory management
    – Low level keyboard interactions

  2. Can people code / are programs files with their content strings?
    Programs are files with their content being strings. But trust me, I did NOT take this lightly. I give ZERO Roblox API access. Virtually, all you will have is some Enums, all the APIs mentioned before, and core language functions like pcall, and more. It uses vLua. Code is ran locally.

Let’s take a look at a basic example: Booting it up

First page is Root/uefiboot.efi
It is the initialization of the whole project. The process manager runs this every .start()

Second page is Root/uefiselect.efi
This is the default second program that gets ran, but can be changed in Root/ueficonfig.cfg (User is unable to change yet)

Third page is Root/uefi.efi
This program simulates a basic UEFI, but of course I can’t really provide a lot of methods like a real UEFI does, but I can add some menus for my own APIs and files.
As you can see, when the button shut down is pressed, the OS shuts down accordingly.

There is some more backend tho. Shutdown is clearing all the logs, and it is gracefully terminating all the programs

What does a restart look like?


It is basically the equivalent of shutting down and starting the game again, but no leaving required.

Something that some of you will ask yourselves

“But he mentioned that programs are gracefully stopped during shut down, what happens if there is an infinite loop that won’t be gracefully stopped?”

Well, I thought of that as well!

Let’s take some notes here:

  1. The log you see “A stop job is running for …” – This message is taken from the Linux kernel
    Sometimes, when I go by my day and type sudo reboot in the Konsole (I use KDE) – the program gets stuck on this “A stop job is running” – and it waits for the time to end – I have no idea why tho.

  2. Programs are ended on Linux with signals. The main signals are: SIGINT, SIGTERM and SIGKILL
    SIGINT and SIGTERM are the same stuff, but SIGINT is initiated by the user and SIGTERM is initiated by the kernel, for example.
    I am doing this in my Process Manager, programs are killed with signals, names exactly as specified above.
    SIGTERM and SIGINT are the “graceful stoppers” – let’s call them that.
    During shut down, SIGTERM is signaled to all the currently running processes. After it is signaled to all, it waits 1 second and then checks which program was terminated and which was not.
    If a program that has the is_alive variable set to true during that search, it then tried SIGTERM 10 more times, 1 each second, hence the message “A stop job is running for… (10s timeout)”. If after 10 tries the program is still alive, SIGKILL is called, ending the program.
    True multitasking is supported by the process manager as well so it makes the immersion so much more realistic.

One thing to note: Namings are currently not too perfect, expect changes.

Please rate this project a 1-10 and please, suggest me some stuff to add!
Thank you all for taking a look at my creation! I hope everyone has an amazing day!

8 Likes

can we test it in a game? i find this hella cool, and im interested into how it works and how will it evolve in the future

30

30 chaaaaaaaaaaaaarrrrrrrsssssssssss .

1 Like

Could this be inserted into something like a model? It’d be a nice idea.

Hey there! Thanks for the reply. Once the Kernel is fully complete (The kernel APIs and all the kernel related stuff), I will add the Kernel to a model, but not the whole OS files (I see how the Kernel can be used for other similar projects like mine, that’s why)

Hey there! Thanks for the reply. Do you want me to publish it on Roblox as a testing place OR do you want me to send you over the place file? I can do both!

1 Like

I know I’m not who you’re replying to but I, personally, would appreciate it if you put it in a testing place, hey, maybe you could even setup some donation gamepasses and make a couple robux off it.

Hey there! I will put it in a testing place! But first I will have to work a couple of extra days on it so people can actually have something to test. Booting, rebooting and some logs won’t be enough. The APIs are there, and they are all used, I need to create more files tho that can bring more functionality and testing! Thanks for the suggestion!

1 Like

oooh a place file would be cool! i want to see the coding behind it.

1 Like