-
-
Notifications
You must be signed in to change notification settings - Fork 5
Home
NyxOS is a from-scratch x86_64 operating system written in C and assembly — no libc, no third-party kernel code. It boots under QEMU (and on real hardware) into a windowed desktop, runs ring-3 ELF programs preemptively across multiple cores, speaks TCP/IP and TLS 1.2 to the live internet, ships its own web browser, carries an in-OS C compiler that compiles its own source, and has its own native language, N-Language.
Current release:
v6.4.363(KERNEL_VERSIONinkernel/core/kernel.h) · Latest LTS:v5.9.0-LTS
| Architecture | x86_64 long mode, 4-level paging, higher-half monolithic kernel |
| Multitasking | Preemptive weighted round-robin — 512 processes, 1024 threads |
| Multi-core | SMP up to 8 CPUs; user processes run in ring 3 on application processors |
| Memory | Demand paging, copy-on-write, lazy sbrk, mmap, demand-grown user stacks |
| Syscalls | 61, via syscall/sysret — threads, sockets, poll, mmap, signals, ring-3 windows |
| Filesystem | VFS over ramdisk, read/write EXT2, /proc, /dev, symlinks, permissions |
| Storage / install | ATA + NVMe; installs itself to a real disk (nyxinstall) and boots standalone (BIOS + UEFI) |
| Networking | RTL8139 → Ethernet/ARP/IP/ICMP/UDP/TCP → DHCP/DNS/HTTP → TLS 1.2 |
| Cryptography | X25519, P-256, P-384, RSA, Ed25519, AES-GCM, ChaCha20-Poly1305, SHA-2/3, X.509 |
| GUI | 32-window compositor, 4 workspaces, taskbar, Start menu, 10 desktop apps |
| Browser | Selene — HTTP/HTTPS, links, forms, styled tables, tabs, inline PNG/BMP/GIF/JPEG |
| Toolchain | In-OS C compiler (ported TinyCC) + compiler-complete libc — cc compiles, links and runs C; tcc compiles itself in-OS; xbm package manager |
| Native language |
N / N++ — a systems language whose ncc compiler runs in-OS; v0.22, a 22-program suite runs inside NyxOS (incl. a window drawn from N) |
| Games | DOOM (ring-3 port), Minesweeper, Pong, Snake, Tetris + Nyx Voxels & render-perf demos |
| License | GPL v2 |
| I want to… | Page |
|---|---|
| Build it and boot it | Building |
| Ask a common question | FAQ |
| Look up a term | Glossary |
| Fix something that broke | Troubleshooting |
| Understand the kernel layout | Architecture |
| Follow what happens at power-on | Boot-Process |
| Read the syscall ABI | Syscalls |
| Drive the shell | Shell |
Task-oriented procedures, each with a worked example, a checklist and a troubleshooting table.
| Task | Page |
|---|---|
| Write a ring-3 program | HOWTO-Write-a-userspace-program |
| Add a system call | HOWTO-Add-a-system-call |
| Add a shell command | HOWTO-Add-a-shell-command |
| Add a GUI application | HOWTO-Add-a-GUI-application |
| Area | Page |
|---|---|
| Physical/virtual memory, heap, slab | Memory-Management |
| Scheduler, processes, threads, signals | Process-Management |
VFS, EXT2, /proc, /dev
|
Filesystem |
| Ethernet through HTTP, BSD sockets | Networking-Stack |
| TLS 1.2 and the crypto primitives | Cryptography-and-TLS |
| Compositor, framebuffer, windowing | GUI-Subsystem |
| Built-in desktop apps and games | Desktop-Applications |
| The NyxOS web browser | Selene-Browser |
| DEFLATE, PNG, BMP, GIF, JPEG | Image-Decoders |
| Device drivers | Drivers |
| Multi-core support | SMP |
| Privilege boundaries and hardening | Security |
| Ring-3 programs and the shared libc | Userspace |
Exhaustive, field-by-field references. Every value is quoted from the source tree.
| Topic | Page |
|---|---|
| All 61 syscalls, man-page style | Syscall-Reference |
| ~209 builtins and ~101 ring-3 programs | Command-Reference |
| GDT, IDT, MSRs, PTE bits, I/O ports | Hardware-Reference |
| Network headers, ELF, CPIO, EXT2, TLS, image formats | Format-Reference |
| Every source file, with purpose and size | Source-Tree-Reference |
process_t, vfs_node_t, window_t field by field |
Kernel-Data-Structures |
| Diagnosing faults, boot logs, self-tests | Debugging |
| Symptom → cause → fix | Troubleshooting |
| Every release, v1.0.0 → v6.4.363 | Version-History |
| Source | https://github.com/kazah-png/nyx-os |
| Issues | https://github.com/kazah-png/nyx-os/issues |
| License | GPL v2 |
| Contact |
uselessalter on Discord · nyxos@inbox.lv
|
| How to contribute | Contributing |
| Documentation style | Wiki-Conventions |
Caution
NyxOS is a hobby operating system built for learning. It is not hardened against hostile input and makes no security guarantees — Security documents exactly what is and is not defended. The TLS stack verifies certificate chains and can refuse a connection in strict mode, but every cryptographic primitive was written from scratch for this project and reviewed by nobody else. Do not trust it with anything that matters.
- Architecture — how the pieces fit together
- FAQ — common questions
- Glossary — terminology
- NyxOS repository — GitHub
- OSDev Wiki — general OS-development reference
- Intel SDM — the x86_64 architecture manuals
NyxOS v6.4.363 · GPL v2 · GitHub · uselessalter on Discord · nyxos@inbox.lv
NyxOS Wiki
Getting started
Kernel
Storage & network
Graphics & apps
Userspace
HOWTO
- HOWTO-Add-a-system-call
- HOWTO-Write-a-userspace-program
- HOWTO-Add-a-shell-command
- HOWTO-Add-a-GUI-application
Reference
- Syscall-Reference
- Command-Reference
- Hardware-Reference
- Format-Reference
- Kernel-Data-Structures
- Source-Tree-Reference
Project