32-bit x86 multiprocessing OS capable of running console or graphical user applications.
Please find all releases at https://github.com/scopeInfinity/FuzzyOS/releases
The boot image can be found under Assets for the corresponding release.
The screenshots can be located as Artifacts under completed run on Actions/CI.
| Bootloader | Kernel Turnup |
|---|---|
![]() |
![]() |
| Simple Shell | cat |
|---|---|
![]() |
![]() |
| fork() | TicTacToe Game |
|---|---|
![]() |
![]() |
| PingPong Game | Logo Programming |
|---|---|
![]() |
![]() |
| Desktop |
|---|
![]() |
- Download image from one of the Release.
- Or directly build image using
make imagesafter cloning the repository.
- Create VM with
FuzzyOS.vdias storage.
- Create VM with
FuzzyOS.vmdkas storage.
- Use
ddorscripts/burn.shto burn image into the disk (potentially destructive). bash scripts/burn.sh build/FuzzyOS.raw /path/to/devicefile
| Feature | Exists |
|---|---|
| Boot: Legacy BIOS | ✔️ |
| Boot: UEFI | ❌ |
| Disk partitioning style: MBR | ✔️ |
| Disk partitioning style: GPT | ❌ |
| Exported disk image: vmdk | ✔️ |
| Exported disk image: vdi | ✔️ |
| Exported disk image: raw | ✔️ |
| kernel <-> app and app <-> app isolation | ✔️ |
| opearating-mode: real mode (boot-loader + realmode-library) | ✔️ |
| opearating-mode: protected mode (kernel + user application) | ✔️ |
| driver: disk IO | ✔️ |
| driver: PIC | ✔️ |
| driver: PIT | ✔️ |
| driver: Keyboard | ✔️ |
| file-system: FFS (in-house) (read-only) | ✔️ |
| interrupt handler | ✔️ |
| syscall: text console IO | ✔️ |
| syscall: graphics | ✔️ |
| syscall: keyboard | ✔️ |
| syscall: file handlers | ✔️ |
| process-scheduler: Round Robin | ✔️ |
| file-system: FFS (custom) (read-only) | ✔️ |
| display: text-mode | ✔️ |
| display: graphics-vga 320x200 256 colors | ✔️ |
| concurrency: Multiprocessing | ✔️ |
| concurrency: Multithreading | ❌ |
| parallelism | ❌ |
| security in scope | ❌ |
| networking | ❌ |
| app-build: Support C | ✔️ |
| app-build: Support C++ | ✔️ |
| app-build: C/C++ Standard Libraries (as needed) | ✔️ |
| app-runtime: Heap memory allocation | ✔️ |
| application: calculator | ✔️ |
| application: cat | ✔️ |
| application: desktop | ✔️ |
| application: echo | ✔️ |
| application: forkbomb | ✔️ |
| application: logo | ✔️ |
| application: ls | ✔️ |
| application: ping-pong | ✔️ |
| application: sh (terminal) | ✔️ |
| application: simplecpp (example) | ✔️ |
| application: more | ✔️ |
| application: multiprocessing (example) | ✔️ |
| application: tictactoe | ✔️ |
application: Your's? Yes, raise a PR |
✔️ |
bash before_install.sh
make clean
make qemu
Use make to build binaries and image files.
make
At this moment tests works by injecting predefined ASM in the source code which halts the execution at the point of interest. After that tests can make use of QEMU monitor to verify the current state with expected state.
make test
Execute QEMU in debug mode and setup GDB server.
make qemu_debug
And then connect to GDB Server.
make qemu_debug_connect








