Repository navigation
Home
Fresh Windows flat calls pass for native and Cupid-built callers on drive and UNC paths. Both distinct-parent drive calls pass; both distinct-parent UNC calls reach the original sixty-second deadline. The complete owner remains outside accepted native image discovery and publication.
Native diagnosis attributes all 39,243 measured metadata queries in a
512-parent caller. Whole-observer revalidation contributes 20,748 queries.
FileStatInformation rejects UNC queries. FileAllInformation returns the
tested fields but takes longer. Source, custody checks and capacity bounds
retain their contracts. Normal ownership remains 449 CupidBuild actions and
three Python coordinators.
The follow-up record preserves the complete measurement scope.
The OS manual records the Windows full-path output allocation and its bounded conversion, errors and cleanup. Dirty-storage tests and the allocation's source acceptance retain their measured scope. Complete native input ownership and publication remain open.
Both complete host builds and normal-root verification pass. All 429 objects, four linked products, six user products and every byte of the 209,715,200-byte image agree. All six strict four-CPU boots, sixteen exact artifact gates per build and seventeen root artifact-policy methods pass.
The manual grows by 1,168 bytes to 84,889 bytes. The raw kernel grows by 1,168 bytes to 9,314,136 bytes. Raw-kernel and manual growth agree exactly. The raw-kernel and pass-one ELF exact policy rows change. Only the embedded manual object changes; the other 428 objects retain their preceding bytes. Normal ownership remains 449 CupidBuild actions and three Python coordinators. The 99 producer inputs and installed seeds retain their allocation acceptance bytes.
The manual record contains the complete measured acceptance.
The Windows UTF-8 adapter built by CupidC allocates its full-path output without an initial 65,536-byte clear. The API fills the same bounded buffer before conversion. Length checks, errors, cleanup and source custody keep their contracts. Dirty-storage and failure tests pass on both hosts.
Normal-root verification passes all sixteen artifact gates and both strict four-CPU boots. All 429 objects, four linked products, six user products and the complete 209,715,200-byte image match the preceding acceptance. Installed execution seeds are unchanged. Normal ownership remains at 449 CupidBuild actions and three Python coordinators. Complete native input ownership and publication remain open.
The acceptance record contains the measured scope.
cupid-os is a 32-bit operating system written in C and x86 assembly. Its ring-0 execution model and desktop draw on TempleOS and OsakaOS. The system does not isolate programs from the kernel.
| Page | Description |
|---|---|
| Getting Started | Build requirements, compiling, booting in QEMU |
| Real Hardware | Flashing to USB/disk, BIOS/CSM setup, booting on physical PCs |
| Architecture | System overview, memory layout, boot sequence, component diagram |
| Shell Commands | Full reference for built-ins and auto-discovered /bin / /home/bin commands |
| CupidScript | Scripting language guide - variables, loops, functions, examples |
| CupidC Compiler | HolyC-inspired C compiler - JIT/AOT, inline assembly, kernel bindings |
| Toolchain Bootstrap | Checked Cupid tools, staged rebuild, provenance, and fixed-point verification |
| CupidDoc CTXT | TempleOS-inspired executable .ctxt documents in Notepad, including clickable code, links, trees, and sprite widgets |
| CupidASM Assembler | x86-32 assembler - Intel syntax, JIT/AOT, include files, kernel bindings |
| CupidC 2D Graphics Library | API reference for the software-rendered 2D graphics library |
| User Programs | Writing and deploying CupidC programs in /bin/ and /home/bin/ |
| Ed Editor | How to use the built-in ed(1) line editor |
| Desktop Environment | VBE 640x480 32bpp graphics, window manager, mouse, terminal app |
| Process Management | Scheduler, context switching, process API |
| Filesystem | VFS, RamFS, DevFS, FAT16, disk I/O, program loader |
| Disk Setup | Creating and formatting FAT16 disk images for QEMU |
| ELF Programs | Compiling, loading, and running ELF32 executables, syscall table API |
| Debugging | Serial console, memory safety, crash testing, assertions |
| USB | UHCI + EHCI host controllers, HID keyboard/mouse, hub class, mass storage (BBB + SCSI) |
| SMP | SMP Tier 2: ACPI/MP discovery, per-CPU LAPIC timer, big kernel lock, IPI reschedule and cross-CPU call |
| Networking | RTL8139 + E1000 drivers, TCP/UDP/ICMP/ARP/DHCP/DNS, BSD sockets, HTTP/HTTPS, SSH/Telnet |
Initial source leaf capture reuses kind and metadata from the same opened handle while preserving later validation and payload custody. Both repository replays pass 3,630 existing outcomes, 99 strict checks, 23 whole object pairs and 152 altered-evidence controls. Complete native input ownership and publication remain open.
The component record contains the complete receipts and preserved failures.
Temporary source selection groups capture path kinds while retaining the optional selection profile and permanent publication-borrowing rejection. Both repository replays pass 192 new cases and all 3,438 preceding outcomes, with 99 strict checks, 23 whole object pairs and 152 rejection controls. Complete input-owner and publication qualification remain open.
The component record carries the held patch, portable receipts and preserved failures.
Retained original file-request binding groups share parent resolution while keeping fresh file metadata checks and complete caller root and payload custody. Both repository replays pass 210 new cases and all 3,228 preceding outcomes, with 95 strict checks, 22 whole object pairs and one hundred rejection controls. Complete input ownership remains unqualified on the Cupid-built UNC caller.
The component record carries the held patch, portable receipts and preserved failures.
The held path observation group captures ordinary file, directory and first-absence observations with complete validation before and after the group. Both complete repository replays pass 168 new cases and all 3,060 preceding outcomes, with 91 strict checks and 21 whole object pairs. All sixty altered-evidence controls reject. Complete native input ownership remains unqualified on Windows UNC paths; normal image publication still uses Python.
The component record contains the held patch, complete receipts and constructor query diagnosis.
The held retained-file group API passes both complete repository replays,
3,060 API outcomes and 87 strict checks. Group capture preserves per-file
parent, metadata and payload checks, with complete observer validation at both
boundaries. Callback bytes remain provisional until success. The fresh complete
input owner still exceeds sixty seconds on both Windows UNC callers and remains
outside acceptance. The group record includes complete evidence and
replay instructions at c2eabb95.
Cupid OS builds its active source with checked Cupid tools. The normal graph
contains 449 CupidBuild actions and three Python coordinators across 452
transforms. The installed 1d852023 seed pair carries the shared hosted heap
after paired cold builds, complete product comparisons and strict boots.
Normal-root build, seed-reader/release-operation and strict boot checks also
pass. The held optional source-file owner passes both complete repository
replays, preserving 382 new contracts and that packet's 1,742 API outcomes.
The held shared-selection packet passes both complete repository replays,
preserving all 2,916 current API outcomes and 83 strict checks. Temporary
selectors reject publication borrowing; complete retained observers own
custody. Full input-owner acceptance remains open after the final Windows
UNC phase timeouts.
The current 84,889-byte manual covers held input custody, source selection,
initial leaf metadata reuse and Windows full-path output storage after paired
and normal-root verification. All 429 object pairs and every image byte agree.
Six strict four-CPU boots, sixteen exact artifact gates per build and seventeen
root policy methods pass. The raw kernel has 9,314,136 bytes.
The raw-kernel and pass-one ELF exact policy rows change. Complete native input ownership and publication remain open.
The bootstrap record contains the receipts and remaining
work. TempleOS remains read-only and excluded from progress counts.
┌─────────────────────────────────────────────────────┐
│ cupid-os │
├──────────┬──────────┬───────────┬───────────────────┤
│ Desktop │ Terminal │ Notepad │ User Scripts │
│ (GUI) │ (Shell) │ (Editor) │ (.cup files) │
├──────────┴──────────┴───────────┴───────────────────┤
│ Shell + Terminal + CupidScript + Tools │
│ 100+ cmds │ pipes │ redirects │ jobs │ SSH/Telnet │
│ completion │ ANSI/xterm │ browser │ source cmds │
├─────────────────────────────────────────────────────┤
│ CupidC + CupidASM │
│ C-like JIT/AOT │ x86 asm JIT/AOT │ kernel binds │
├─────────────────────────────────────────────────────┤
│ Virtual File System (VFS) │
│ RamFS (/) │ DevFS (/dev) │ FAT16 (/disk) │ homefs │
├─────────────────────────────────────────────────────┤
│ Networking + TLS │
│ RTL8139/E1000 │ TCP/UDP/DNS │ HTTPS │ sshd │ browser │
├─────────────────────────────────────────────────────┤
│ Process Scheduler │
│ Round-robin │ 5ms ticks │ 32 kernel threads │
├─────────────────────────────────────────────────────┤
│ Window Manager (GUI) │
│ 16 windows │ z-order │ drag │ focus │ taskbar │
├──────────┬──────────┬───────────┬───────────────────┤
│ Keyboard │ Mouse │ VBE │ Serial │
│ (IRQ1) │ (IRQ12) │640x480 │ (COM1) │
├──────────┴──────────┴───────────┴───────────────────┤
│ Storage + Media │
│ FAT16 │ ISO9660 │ block cache │ USB MSC │ ATA PIO │
├─────────────────────────────────────────────────────┤
│ Memory Management │
│ PMM bitmap │ Paging │ Heap + canaries │ Tracking │
├─────────────────────────────────────────────────────┤
│ IDT / IRQ / PIC / PIT │
│ Interrupts │ Exceptions │ Timer (200Hz) │
├─────────────────────────────────────────────────────┤
│ Bootloader (boot.asm) │
│ Real mode -> Protected mode │ GDT │ Load kernel │
└─────────────────────────────────────────────────────┘
cupid-os deliberately exposes the machine to programs:
- All code runs in ring 0 without a security boundary between applications and the kernel.
- Programs can access hardware directly.
- Programs share the flat address space and can inspect kernel memory.
- The source includes the operating system, desktop, languages, and build tools.
This model is useful for operating-system experiments and low-level study, but it is not safe for untrusted code.
The repository includes a checked static i386 Linux seed and a checked native PE32 Windows execution seed. Linux runs the static seed directly. Native Windows builds run output-bearing CupidC, CupidASM, CupidObj, CupidLD, and CupidDis recipes from the PE32 seed. WSL still runs the Linux seed for fixed-point reconstruction and the complete published Toolchain contract cohort. The user ABI, artifact-size, and Toolchain manifest contracts run as checked native PE files. The last two still inspect Linux publication provenance.
# Install dependencies (Ubuntu/Debian)
sudo apt-get install python3 make qemu-system-x86
# Build
make
# Run (with serial output)
make runOn Windows, install GNU Make, Python 3, WSL with a Linux distribution, and QEMU. GCC, Clang, binutils, and NASM are needed only for explicit native development builds and comparison oracles.
cupid-os/
├── boot/
│ └── boot.asm # Bootloader (real -> protected mode)
├── kernel/
│ ├── core/ # kmain, panic, process, scheduler, syscall
│ ├── cpu/ # IDT/IRQ/PIC, FPU/SSE, libm, ksyms
│ ├── fs/ # VFS, FAT16, ISO9660, ramfs, devfs, homefs
│ ├── gfx/ # gfx2d, BMP/PNG/JPEG, fontsys, TTF
│ ├── gui/ # window manager, desktop, terminal, ANSI
│ ├── lang/ # shell, CupidC, CupidASM, CupidScript, ssh_io
│ ├── network/ # ARP/IP/ICMP/UDP/TCP/DHCP/DNS/sockets/sshd
│ ├── tls/ # TLS records, handshake, CA bundle
│ ├── crypto/ # AES/ChaCha/RSA/P-256/X25519/X.509 helpers
│ ├── audio/ # AC97, mixer, OPL3, MIDI/MUS
│ ├── doom/ # doomgeneric port and platform shim
│ ├── mm/ # heap, paging, swap
│ ├── smp/ # AP bringup, LAPIC/IOAPIC, BKL
│ └── usb/ # UHCI/EHCI, HID, hubs, mass storage
├── drivers/
│ ├── keyboard.cc/h # PS/2 keyboard (IRQ1)
│ ├── mouse.cc/h # PS/2 mouse (IRQ12)
│ ├── vga.cc/h # VBE 640x480 32bpp
│ ├── ata.cc/h # ATA/IDE disk
│ ├── serial.cc/h # COM1 serial port
│ ├── timer.cc/h + pit.cc/h # PIT timer
│ ├── rtl8139.cc/h # Realtek NIC
│ ├── e1000.cc/h # Intel NIC
│ └── speaker.cc/h # PC speaker
├── bin/
│ ├── browser.cc + browser/ # render-pipeline browser
│ ├── ssh.cc, telnet.cc # remote terminal clients
│ └── *.cc # source-backed shell commands
├── docs/plans/ # Design documents
├── link.ld # Linker script
├── Makefile # Build system
└── LICENSE # GPLv3
cupid-os is released under the GNU General Public License v3.
Getting Started
Shell & Scripting
Compilers
- CupidC Compiler
- CupidC Language Reference
- CupidC 2D Graphics Library
- CupidASM Assembler
- Toolchain Bootstrap
- Floating Point
Programs & Docs
GUI
Kernel
Filesystems
Hardware