// features
Built layer by layer,
understood end to end.
A tour of what PureC OS implements today, from the first instruction after the bootloader to the pixels on your screen.
// architecture
The stack, top to bottom.
Everything in the stack is code in this repository, written in C and x86_64 assembly with a little C++20.
APPLICATIONSFiles · Terminal · HTOP · HexEdit · Tetris · Doom
DESKTOP / libguicompositor, window manager, widgets
RING 3 · libchosted libc, libm, dynamic loader
SYSCALL ABI~100 purec syscalls
KERNELscheduler · SMP · VMM · VFS · IO scheduler
DRIVERSAHCI · xHCI · e1000 · GOP/SVGA · PS/2 · HDA
LIMINE → x86_64long mode, higher-half
// the details
What you get out of the box.
⚙
Kernel
- SMP with per-core scheduling
- Copy-on-write fork and execve
- Pipes and POSIX-style signals
- ACPI: shutdown and reboot
▤
Storage
- AHCI and ATA PIO drivers
- Mount-table VFS
- Full ext2, no stubs
- IO scheduler with background QoS
◧
Graphics
- GOP, VBE and VMware SVGA II
- Live resolution change
- Interface scale 100–400%
- Flicker-free compositor
⌨
Input
- PS/2 keyboard and mouse
- USB mouse via xHCI and EHCI
- VirtualBox absolute pointer
- I2C-HID touchpad groundwork
⇄
Networking
- Intel PRO/1000 82540EM, 82543GC
- AMD PCnet-PCI II
- Atheros AR9285 port in progress
- 802.11 association
#
Security
- Users, groups and permissions
- SHA-512 password hashing
- Own RNG driver
- Login screen and login gate
// write apps for it
Compile C on the OS itself.
TinyCC is ported, so you can write, compile and run Ring 3 programs without leaving PureC OS. Lua and MicroPython are there for quick scripts.
$ cat hello.c
#include <stdio.h>
int main(void)
{
printf("Hello from PureC OS!\n");
return 0;
}
$ tcc hello.c -o hello && ./hello
Hello from PureC OS!