// 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.

terminal
$ 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!