https://github.com/voidpx/qux
A toy operating system.
https://github.com/voidpx/qux
hobby-os zig
Last synced: 11 months ago
JSON representation
A toy operating system.
- Host: GitHub
- URL: https://github.com/voidpx/qux
- Owner: voidpx
- Created: 2025-06-25T16:22:54.000Z (12 months ago)
- Default Branch: master
- Last Pushed: 2025-07-10T16:20:24.000Z (12 months ago)
- Last Synced: 2025-07-10T22:52:47.730Z (12 months ago)
- Topics: hobby-os, zig
- Language: Zig
- Homepage:
- Size: 7.94 MB
- Stars: 5
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# A toy OS
Qux is a toy operating system for x64 written in zig.

### Build and run
- can only be built in Linux on x64 with grub installed.
- the `kernel` directory contains the kernel source code
- the `boot` directory contains some utility for bootstrap. steps to build:
- run `zig build` under `kernel` to build the kernel
- `mkimg test.img` make a disk image named `test.img` with grub installed to boot the OS with multiboot2.
- `build` build everything under `boot` directory and copy the kernel to the disk image built above and start QEMU to run it
### What's implemented
- [x] basic memory management
- [x] basic process management/scheduling
- [x] basic ATA driver
- [x] ext2 file system, read only so far
- [x] syscalls, trying to implement Linux syscalls, so that userspace programs for Linux could hopefully run on Qux
- [x] basic ELF loader
- [x] use dash (recompiled with musl-gcc as static executable) as the shell
- [x] can run doom(doomgeneric), kind of :), key handling is still to be done
### TODO
- [ ] network stack
- [ ] SMP support
- [ ] more syscalls
- [ ] implement dynamic loading so that linux programs can run without recompiling??
- [ ] port some usefull userspace programs