Operating system

RACE can support various operating systems, they must be compatible with the file structure.

Installation of a RACE-based Operating System

First, the BIOS search for a bootloader which will load the OS. Read Booting sequencefor more information. The operating system can be everywhere in the file tree, but we recommend to locate it directly in the root C:/ .

The OS folder is ready

In this case, it means that the OS is ready for installation. It contains a table called installation with everything required to install the OS.

local extensions = require(script.Parent.RACE.neurox_interpreter.extensions)

local root = {}

root.file_structure = {

    windows = {
        name = "WINDOWS",
	file_type = extensions.file_type.f,
	parent = "root",
	content = "",
	
        installation = {
            name = "Installation",
	    file_type = extensions.file_type.exe,
	    parent = "root",
	    content = "...",
        }
    }
}

return root

The content of installation.exe is indeed a Neurox script

DEFINE NEUROX

SET os = "Windows" // system variable
MKDIR("C:/WINDOWS/COMMAND")
MKDIR("C:/WINDOWS/CONFIG")
MKDIR("C:/WINDOWS/DESKTOP")
MKDIR("C:/WINDOWS/FONTS")
MKDIR("C:/WINDOWS/HELP")
MKDIR("C:/WINDOWS/CONFIG_OS_INI") // bootloader
// etc

After the installation, the system calls the bootloader and starts the OS.

The OS folder is not ready

In this case, the BIOS found that the OS was in C:/WINDOWS. Unfortunately, it does not contain the installation file or the bootloader. The BIOS will be stuck and the OS will not be loaded.

local extensions = require(script.Parent.RACE.neurox_interpreter.extensions)

local root = {}

root.file_structure = {

    windows = {
        name = "WINDOWS",
	file_type = extensions.file_type.f,
	parent = "root",
	content = "",
	
	-- empty or contain files except Installation and config_os_ini
    }
}

return root

The OS is installed

And finally, in this case, the OS is installed. The bootloader is config_os_ini. As it may be strange to have a .ini file as a bootloader, it actually sets some system variables which define the OS and then starts it.

local extensions = require(script.Parent.RACE.neurox_interpreter.extensions)

local root = {}

root.file_structure = {

    windows = {
        name = "WINDOWS",
	file_type = extensions.file_type.f,
	parent = "root",
	content = "",
	
        config_os_ini = {
            name = "CONFIG.INI",
            file_type = extensions.file_type.ini,
	    parent = "windows",
	    content = "...",
	},
	
	-- other files
    }
}

return root

Content of config_os_ini

DEFINE NEUROX

//system variables
SET os = "WINDOWS"
SET OsName = "Windows 95 Fan Made"
SET OsVersion = "4.00.950C_2"
SET OSBuilderVersion = 2
SET BuildDate = "07/26/2024"

SET wallpaper = "DESKTOP.BMP"
SET theme = "DEFAULT.TXT"

START os

START os will be actually the last BIOS operation, which will start the operating system.

Last updated