a simple x86_64 Operating System in C made from scratch
-> emexOS is not based on any existing kernel <-emexOS is a small graphical operating system entirely written from scratch in C by emex and all its contributors. It's designed for customizer and retro-enthusiasts, who want to fully change the look of their system and love retro-style.
For building and compiling emexOS, ensure you have the following installed:
- x86_64 GCC cross-compiler - This is our preferred compiler for the source code. Currently, emexOS only supports 64-bit x86 machines, but we plan to support more architectures in the future.
- NASM - Assembler.
- QEMU - Our preferred emulator.
- Xorriso - ISO creation.
- Git and wget - To fetch dependencies.
- CPIO (use brew install cpio) - For the RAM disk.
You can also use Zig instead of GCC if you prefer to.
Ensure you have flakes enabled first, then run nix develop to enter the provided development shell which will have all build dependencies and such installed for you. I'd recommend updating the flake using nix flake update as it's sometimes not updated for long periods of time.
With all build dependencies installed, you can finally build and run emexOS.
Using gnu-make
make fetchDeps- Fetch all libraries and such that emexOS depends on e.g. Limine.gitandwgetare used for this.make- Build emexOS.make run- Emulate emexOS using QEMU.make clean- Clean up all build outputs.
Using Zig
zig build- Fetch, build and run.zig build -Dnofetch- Build and run.zig build -Dclean- Remove (cache, output), fetch, build and run.zig build -Dnofetch -Dclean- Remove (cache, output), build and run.
After booting, you will get into login and will be asked for a password and username, both are emex by default. but you can change it in user/apps/login/login.c .
Currently, no SMP support is available just yet so emexOS runs using only a single core.
readme by emex, Voxi0 and Bi Moz







