[Enhancement] Legacy Systems (v86): self-host OS/disk catalogue parity with copy.sh/v86 — remove third‑party CDN dependency #47

Closed
opened 2026-05-01 02:26:07 +00:00 by spikerj · 5 comments
Owner

Summary

Expand Learn → Legacy Systems (v86) so OS / disk images are hosted on SpikerSoft infrastructure, achieving catalog parity with the public copy.sh/v86 emulator image list—without runtime dependency on copy.sh / third‑party CDN for fetching those payloads.

Motivation

  • Predictable uptime and same-origin caching.
  • No reliance on external hosts for curriculum-critical labs.
  • Align discovery UX with the familiar copy.sh catalogue (filters, presets, sizing notes).

Constraints / compliance

Many entries are historic proprietary software (Microsoft Windows lineage, proprietary BSD/OS, QNX demo, Unix V7, etc.). Before mirroring:

  1. Legal review: redistribution rights vs “user supplies own ROM/disk image” carve-outs.
  2. Separate tiers in UX: freely redistributable (e.g. many open‑source/OSI) vs bring-your-own-image placeholders where we cannot legally host.
  3. Preserve upstream license + attribution per image in a machine-readable manifest (license, homepage, source URL, checksum).

Engineering approach (high level)

  • Bulk mirror or reproducible ingest pipeline → object storage + CDN under our domain (same-app path or authenticated bucket behind API—TBD).
  • Manifest (JSON/YAML): id, human name, RAM/VRAM hints, medium (CD/floppy/HDD), BIOS/kernel/initrd refs, sha256, size byte, emulator profile flags (ne2k/virtio, boot order).
  • Angular / v86 wiring: emulator loads from https://…/legacy-systems/v86/... (never hard-code copy.sh); optional staging CDN for DEV.
  • Version pin emulator core / sea‑of‑images with content-addressed blobs to avoid stale browser cache regressions.
  • Operational: total footprint is many GB–100+ GB depending on full mirror—document quotas, LRU eviction vs full pin, on-demand hydrate.

Acceptance criteria

  • Listing UI for Legacy Systems exposes parity set aligned with copy.sh catalogue, grouped/filterable analogous to copy.sh (family, arch, UI, medium, … — scope can phase).
  • Emulator boot succeeds against self-hosted blobs with no outbound fetch to copy.sh for mirrored images.
  • Checksum verification client-side optional or server-signed URLs.
  • Offline / degraded mode messaging when an image omitted for legal/size reasons.
  • Runbook for manifest updates when copy.sh publishes new BIOS/image metadata.

Target catalogue (parity list)

Stakeholder-authored tabular list spanning Linux/BSD/Hurd/Unices/Windows/DOS/custom hobby images is attached in comments #33#35 (Linux/Unix/Windows/ReactOS/BSD lineage; DOS; Custom). Reconcile rows against copy.sh/v86 at implementation time—the site’s live table is authoritative for new BIOS pairs / image updates (e.g. build version footer 4e4bf556 as of stakeholder review). Replace any divergence with synced manifest exports.

## Summary Expand **Learn → Legacy Systems** (v86) so OS / disk images are **hosted on SpikerSoft infrastructure**, achieving **catalog parity** with the public [**copy.sh/v86**](https://copy.sh/v86/) emulator image list—**without runtime dependency on copy.sh / third‑party CDN** for fetching those payloads. ## Motivation - Predictable uptime and **same-origin caching**. - **No reliance** on external hosts for curriculum-critical labs. - Align discovery UX with the familiar copy.sh catalogue (filters, presets, sizing notes). ## Constraints / compliance Many entries are **historic proprietary** software (Microsoft Windows lineage, proprietary BSD/OS, QNX demo, Unix V7, etc.). Before mirroring: 1. **Legal review**: redistribution rights vs “user supplies own ROM/disk image” carve-outs. 2. **Separate tiers** in UX: freely redistributable (e.g. many open‑source/OSI) vs **bring-your-own-image** placeholders where we cannot legally host. 3. Preserve upstream **license + attribution** per image in a machine-readable manifest (`license`, `homepage`, `source URL`, `checksum`). ## Engineering approach (high level) - Bulk **mirror** or reproducible ingest pipeline → object storage **+** CDN under our domain (same-app path or authenticated bucket behind API—TBD). - **Manifest** (JSON/YAML): id, human name, RAM/VRAM hints, medium (CD/floppy/HDD), BIOS/kernel/initrd refs, **`sha256`**, **`size`** byte, emulator profile flags (**ne2k/virtio**, boot order). - **Angular / v86 wiring**: emulator loads from **`https://…/legacy-systems/v86/...`** (never hard-code copy.sh); optional **staging** CDN for DEV. - **Version pin** emulator core / sea‑of‑images with **content-addressed** blobs to avoid stale browser cache regressions. - **Operational**: total footprint is **many GB–100+ GB** depending on full mirror—document quotas, LRU eviction vs full pin, on-demand hydrate. ## Acceptance criteria - [ ] Listing UI for Legacy Systems exposes **parity set** aligned with copy.sh catalogue, grouped/filterable analogous to [**copy.sh**](https://copy.sh/v86/) (family, arch, UI, medium, … — scope can phase). - [ ] Emulator **boot succeeds** against **self-hosted blobs** with **no outbound fetch** to copy.sh for mirrored images. - [ ] **Checksum verification** client-side optional or server-signed URLs. - [ ] Offline / degraded mode messaging when an image omitted for legal/size reasons. - [ ] Runbook for **manifest updates** when copy.sh publishes new BIOS/image metadata. --- ## Target catalogue (parity list) Stakeholder-authored **tabular list** spanning Linux/BSD/Hurd/Unices/Windows/DOS/custom hobby images is attached in comments **#33**–**#35** (Linux/Unix/Windows/ReactOS/BSD lineage; DOS; Custom). Reconcile rows against [**copy.sh/v86**](https://copy.sh/v86/) at implementation time—the site’s live table is authoritative for **new BIOS pairs** / image updates (e.g. build version footer `4e4bf556` as of stakeholder review). Replace any divergence with synced manifest exports.
Author
Owner

Complete stakeholder parity list (tabular paste — legal gate + checksum each line at ingest time). Source catalogue UI: copy.sh/v86.

Android	54+ MB		Linux	32-bit	Modern	Open-source	C++	CD	Android x86 1.6-r2
Arch Linux	15+ MB		Linux	32-bit	Modern	Open-source	C	9pfs	Various packages, including Xorg, Firefox and more
Buildroot Linux	4.9 MB		Linux	32-bit	Modern	Open-source	C	bzImage	Minimal Linux with Lua, ping, curl, telnet
Damn Small Linux	50 MB		Linux	32-bit	Historic	Open-source	C	CD	4.11.rc2 with Firefox 2.0
ELKS	1.2 MB		Linux-like	16-bit	Modern	Open-source	C	HD	Linux for 8086
NodeOS	14 MB		Linux	32-bit	Modern	Open-source	C	bzImage	Linux with nodejs as /bin/init
Tilck	16 MB		Linux-like	32-bit	Modern	Open-source	C	HD	Tiny Linux-Compatible Kernel
FreeBSD	16+ MB		BSD	32-bit	Modern	Open-source	C	HD	FreeBSD 12.0
NetBSD	23+ MB		BSD	32-bit	Modern	Open-source	C	HD	NetBSD 4.0 with Xorg
OpenBSD	11+ MB		BSD	32-bit	Modern	Open-source	C	HD	OpenBSD 6.6
Arch Hurd	16+ MB		Hurd	32-bit	Modern	Open-source	C	HD	A port of Arch Linux to the GNU Hurd system
BSD/OS	10+ MB		BSD	32-bit	Historic	Proprietary	C	HD	A proprietary Unix released in 1993 as BSD/386. Includes gcc and perl5
FiwixOS	4.2+ MB		Unix-like	32-bit	Modern	Open-source	C	HD	With Doom
Minix	30+ MB		Unix-like	32-bit	Modern	Open-source	C	CD	Minix 3.3
Redox	31+ MB		Unix-like	32-bit	Modern	Open-source	Rust	HD	A Unix-like microkernel OS written in Rust
SerenityOS	16+ MB		Unix-like	32-bit	Modern	Open-source	C++	HD	Web browser, various games and demos
Sortix	67 MB		Unix-like	32-bit	Modern	Open-source	C++	CD	A small self-hosting Unix-like operating system
Soso	7.6 MB		Unix-like	32-bit	Modern	Open-source	C	CD	A Simple Unix-like operating system
Syllable	28+ MB		Unix-like	32-bit	Historic	Open-source	C++	HD	A user friendly, POSIX compatible OS
Unix V7	0.5+ MB		Unix	32-bit	Historic	Proprietary	C	HD	Unix V7 port for x86, including Amsterdam Compiler Kit
QuantixOS	3.1 MB		Unix-like	32-bit	Modern	Open-source	C, ASM	CD	A UNIX-like operating system written in x86 Intel Assembly and C
BeOS 5	34+ MB		BeOS	32-bit	Historic	Proprietary	C++	HD	With Opera 3.62, NetPositive
Haiku	36+ MB		BeOS	32-bit	Modern	Open-source	C++	HD	Networking (WebPositive), OCaml, 2048, NetHack
AROS Broadway	25+ MB		AmigaOS	32-bit	Modern	Open-source	C	CD	AmigaOS-like graphical OS
Icaros Desktop	60+ MB		AmigaOS	32-bit	Modern	Open-source	C	CD	AmigaOS-like graphical OS
Tiny Aros	17+ MB		AmigaOS	32-bit	Modern	Open-source	C	CD	AmigaOS-like graphical OS
9front	5.2+ MB		Plan 9	32-bit	Modern	Open-source	C	HD	An actively maintained fork of Plan 9
9legacy	13 MB		Plan 9	32-bit	Historic	Open-source	C	HD	A set of patches based on the latest release of Plan 9
ReactOS	17+ MB		Windows-like	32-bit	Modern	Open-source	C++	HD	QtWeb, LBreakout2, OpenTTD, Bochs, TCC
Windows 1.01	0.7 MB		Windows	16-bit	Historic	Proprietary	ASM, C	Floppy	The first release version of Windows
Windows 2.03	1.8 MB		Windows	16-bit	Historic	Proprietary	ASM, C	HD	Reversi, Paint
Windows 3.0	16 MB		Windows	16-bit	Historic	Proprietary	ASM, C	HD	CorelDRAW! 2.0, Actor 2.0, The Best of Microsoft Entertainment Pack
Windows 3.1	17 MB		Windows	16-bit	Historic	Proprietary	ASM, C	HD	QBasic, Minesweeper, Solitaire
Windows 95	19+ MB		Windows	32-bit	Historic	Proprietary	ASM, C	HD	Age of Empires, FASM, POV-Ray, Hover!
Windows 98	13+ MB		Windows	32-bit	Historic	Proprietary	ASM, C	HD	FreeCell, Hearts, sheep.exe, IE 5
Windows ME	28+ MB		Windows	32-bit	Historic	Proprietary	ASM, C	HD	Visual Basic, Office 97
Windows NT 3.1	18+ MB		Windows	32-bit	Historic	Proprietary	C++	HD	The first retail version of Windows NT
Windows NT 3.51	28+ MB		Windows	32-bit	Historic	Proprietary	C++	HD	Internet Explorer 3 and Visual FoxPro 3.0
Windows NT 4.0	16+ MB		Windows	32-bit	Historic	Proprietary	C++	HD	Windows NT 4.0 Service Pack 1
Windows 2000	28+ MB		Windows	32-bit	Historic	Proprietary	C++	HD	IE 6, K-Meleon, Winamp, Delphi, NetHack and more

(Part 2 follows — DOS + Custom — due to comment length)

Complete **stakeholder parity list** (tabular paste — legal gate + checksum each line at ingest time). Source catalogue UI: [copy.sh/v86](https://copy.sh/v86/). ``` Android 54+ MB Linux 32-bit Modern Open-source C++ CD Android x86 1.6-r2 Arch Linux 15+ MB Linux 32-bit Modern Open-source C 9pfs Various packages, including Xorg, Firefox and more Buildroot Linux 4.9 MB Linux 32-bit Modern Open-source C bzImage Minimal Linux with Lua, ping, curl, telnet Damn Small Linux 50 MB Linux 32-bit Historic Open-source C CD 4.11.rc2 with Firefox 2.0 ELKS 1.2 MB Linux-like 16-bit Modern Open-source C HD Linux for 8086 NodeOS 14 MB Linux 32-bit Modern Open-source C bzImage Linux with nodejs as /bin/init Tilck 16 MB Linux-like 32-bit Modern Open-source C HD Tiny Linux-Compatible Kernel FreeBSD 16+ MB BSD 32-bit Modern Open-source C HD FreeBSD 12.0 NetBSD 23+ MB BSD 32-bit Modern Open-source C HD NetBSD 4.0 with Xorg OpenBSD 11+ MB BSD 32-bit Modern Open-source C HD OpenBSD 6.6 Arch Hurd 16+ MB Hurd 32-bit Modern Open-source C HD A port of Arch Linux to the GNU Hurd system BSD/OS 10+ MB BSD 32-bit Historic Proprietary C HD A proprietary Unix released in 1993 as BSD/386. Includes gcc and perl5 FiwixOS 4.2+ MB Unix-like 32-bit Modern Open-source C HD With Doom Minix 30+ MB Unix-like 32-bit Modern Open-source C CD Minix 3.3 Redox 31+ MB Unix-like 32-bit Modern Open-source Rust HD A Unix-like microkernel OS written in Rust SerenityOS 16+ MB Unix-like 32-bit Modern Open-source C++ HD Web browser, various games and demos Sortix 67 MB Unix-like 32-bit Modern Open-source C++ CD A small self-hosting Unix-like operating system Soso 7.6 MB Unix-like 32-bit Modern Open-source C CD A Simple Unix-like operating system Syllable 28+ MB Unix-like 32-bit Historic Open-source C++ HD A user friendly, POSIX compatible OS Unix V7 0.5+ MB Unix 32-bit Historic Proprietary C HD Unix V7 port for x86, including Amsterdam Compiler Kit QuantixOS 3.1 MB Unix-like 32-bit Modern Open-source C, ASM CD A UNIX-like operating system written in x86 Intel Assembly and C BeOS 5 34+ MB BeOS 32-bit Historic Proprietary C++ HD With Opera 3.62, NetPositive Haiku 36+ MB BeOS 32-bit Modern Open-source C++ HD Networking (WebPositive), OCaml, 2048, NetHack AROS Broadway 25+ MB AmigaOS 32-bit Modern Open-source C CD AmigaOS-like graphical OS Icaros Desktop 60+ MB AmigaOS 32-bit Modern Open-source C CD AmigaOS-like graphical OS Tiny Aros 17+ MB AmigaOS 32-bit Modern Open-source C CD AmigaOS-like graphical OS 9front 5.2+ MB Plan 9 32-bit Modern Open-source C HD An actively maintained fork of Plan 9 9legacy 13 MB Plan 9 32-bit Historic Open-source C HD A set of patches based on the latest release of Plan 9 ReactOS 17+ MB Windows-like 32-bit Modern Open-source C++ HD QtWeb, LBreakout2, OpenTTD, Bochs, TCC Windows 1.01 0.7 MB Windows 16-bit Historic Proprietary ASM, C Floppy The first release version of Windows Windows 2.03 1.8 MB Windows 16-bit Historic Proprietary ASM, C HD Reversi, Paint Windows 3.0 16 MB Windows 16-bit Historic Proprietary ASM, C HD CorelDRAW! 2.0, Actor 2.0, The Best of Microsoft Entertainment Pack Windows 3.1 17 MB Windows 16-bit Historic Proprietary ASM, C HD QBasic, Minesweeper, Solitaire Windows 95 19+ MB Windows 32-bit Historic Proprietary ASM, C HD Age of Empires, FASM, POV-Ray, Hover! Windows 98 13+ MB Windows 32-bit Historic Proprietary ASM, C HD FreeCell, Hearts, sheep.exe, IE 5 Windows ME 28+ MB Windows 32-bit Historic Proprietary ASM, C HD Visual Basic, Office 97 Windows NT 3.1 18+ MB Windows 32-bit Historic Proprietary C++ HD The first retail version of Windows NT Windows NT 3.51 28+ MB Windows 32-bit Historic Proprietary C++ HD Internet Explorer 3 and Visual FoxPro 3.0 Windows NT 4.0 16+ MB Windows 32-bit Historic Proprietary C++ HD Windows NT 4.0 Service Pack 1 Windows 2000 28+ MB Windows 32-bit Historic Proprietary C++ HD IE 6, K-Meleon, Winamp, Delphi, NetHack and more ``` (Part 2 follows — DOS + Custom — due to comment length)
Author
Owner

Part 2 of 3 — DOS family (full rows).

86-DOS	0.1 MB		DOS	16-bit	Historic	Proprietary	ASM	Floppy	86-DOS version 1.0
Exploring IBM	0.1 MB		DOS	16-bit	Historic	Proprietary	ASM	Floppy	Learning program on how to use a computer
FreeDOS	0.6 MB		DOS	16-bit	Modern	Open-source	ASM, C	Floppy	nasm, vim, debug.com, Rogue, various demos
FreeGEM	1.6+ MB		DOS	16-bit	Historic	Open-source	ASM, C	HD	Graphical desktop for FreeDOS
Xcom	1.3 MB		DOS	16-bit	Historic	Open-source	ASM, C	Floppy	Graphical desktop for FreeDOS
MS-DOS 4	0.5 MB		DOS	16-bit	Historic	Proprietary	ASM	Floppy	Contains EDLIN
MS-DOS 6.22	2.4+ MB		DOS	16-bit	Historic	Proprietary	ASM	HD	Doom, Sim City, OCaml 1.0, Turbo C and more
PC-MOS/386	0.7 MB		DOS	32-bit	Historic	Proprietary	ASM, C	Floppy	Multi-user and multi-tasking OS
PsychDOS	4.6+ MB		DOS	16-bit	Historic	Open-source	ASM	HD	ANSI-like graphical desktop for FreeDOS
lEEt/OS	0.5 MB		DOS	32-bit	Modern	Open-source	ASM, C	Floppy	Graphical desktop for ST-DOS
Doom On One Floppy	1.1 MB		DOS	16-bit	Modern	Open-source	C, ASM	Floppy	Doom Shareware that fits on one floppy disk
Chimaera OS	29 KB		DOS	16-bit	Modern	Open-source	ASM	HD	MS-DOS compatible operating system for i8086 and newer
**Part 2 of 3** — DOS family (full rows). ``` 86-DOS 0.1 MB DOS 16-bit Historic Proprietary ASM Floppy 86-DOS version 1.0 Exploring IBM 0.1 MB DOS 16-bit Historic Proprietary ASM Floppy Learning program on how to use a computer FreeDOS 0.6 MB DOS 16-bit Modern Open-source ASM, C Floppy nasm, vim, debug.com, Rogue, various demos FreeGEM 1.6+ MB DOS 16-bit Historic Open-source ASM, C HD Graphical desktop for FreeDOS Xcom 1.3 MB DOS 16-bit Historic Open-source ASM, C Floppy Graphical desktop for FreeDOS MS-DOS 4 0.5 MB DOS 16-bit Historic Proprietary ASM Floppy Contains EDLIN MS-DOS 6.22 2.4+ MB DOS 16-bit Historic Proprietary ASM HD Doom, Sim City, OCaml 1.0, Turbo C and more PC-MOS/386 0.7 MB DOS 32-bit Historic Proprietary ASM, C Floppy Multi-user and multi-tasking OS PsychDOS 4.6+ MB DOS 16-bit Historic Open-source ASM HD ANSI-like graphical desktop for FreeDOS lEEt/OS 0.5 MB DOS 32-bit Modern Open-source ASM, C Floppy Graphical desktop for ST-DOS Doom On One Floppy 1.1 MB DOS 16-bit Modern Open-source C, ASM Floppy Doom Shareware that fits on one floppy disk Chimaera OS 29 KB DOS 16-bit Modern Open-source ASM HD MS-DOS compatible operating system for i8086 and newer ```
Author
Owner

Part 3 of 3 — Custom / hobby OS (full rows).

BleskOS	0.2 MB		Custom	32-bit	Modern	Open-source	C	CD	Alternative OS for older PCs
Blue Jay	83 KB		Custom	16-bit	Modern	Open-source	ASM	Floppy	Based on MikeOS
BoneOS	3.0 MB		Custom	32-bit	Modern	Open-source	C	CD	Simple hobby OS
BootChess	4.0 KB		Custom	16-bit	Modern	Open-source	ASM	Floppy	Chess in a bootsector
CatK	3.2 MB		Custom	32-bit	Modern	Open-source	C	CD	Simple Unix-like kernel
Crazierl	14 MB		Custom	32-bit	Modern	Open-source	C, Erlang	Multiboot	An Erlang Operating System
Dusk OS	0.4 MB		Custom	32-bit	Modern	Open-source	C	HD	A 32-bit Forth
Floppy Bird	6.5 KB		Custom	16-bit	Modern	Open-source	C	Floppy	Flappy Bird game in a bootsector
HelenOS	7.9 MB		Custom	32-bit	Modern	Open-source	C	CD	A microkernel-based multiserver OS
Hello v86	512 B		Custom	16-bit	Modern	Open-source	ASM	Bootsector	Small bootsector demo for v86
House	1.1 MB		Custom	32-bit	Modern	Open-source	Haskell	Floppy	Haskell User's Operating System and Environment
JX	1.3 MB		Custom	32-bit	Modern	Open-source	Java	Floppy	Java-based operating system
KolibriOS	1.3 MB		Custom	32-bit	Modern	Open-source	ASM	Floppy	Various apps, games and demos
Little Kernel	0.4 MB		Custom	32-bit	Modern	Open-source	C	Multiboot	An embedded kernel designed for small systems
M/CP	512 B		Custom	16-bit	Modern	Open-source	ASM	Bootsector	The Minimal Control Program
MikeOS	0.2 MB		Custom	16-bit	Modern	Open-source	ASM	CD	Contains a FORTH and BASIC interpreter and several games
Mobius	1.3 MB		Custom	32-bit	Modern	Open-source	C	Floppy	POSIX and Win32 compatible OS
Mu	0.2 MB		Custom	16-bit	Modern	Open-source	C	HD	Minimal-dependency hobbyist computing stack
NanoShell	3.5 MB		Custom	32-bit	Modern	Open-source	C	CD	Multi-tasked 32-bit OS with Win9x-like GUI
NewOS	0.6 MB		Custom	32-bit	Modern	Open-source	C++	Floppy	Cross-platform portable OS
Nope OS	92 KB		Custom	32-bit	Modern	Open-source	C	CD	Simple OS with BASIC interpreter
Oberon	1.6 MB		Custom	32-bit	Historic	Open-source	Oberon	HD	Native Oberon 2.3.6
QNX 4.05	1.4 MB		Custom	32-bit	Historic	Proprietary	C	Floppy	1999 demo disk
SectorLISP	512 B		Custom	16-bit	Modern	Open-source	ASM	Bootsector	Bootstrapping LISP in a Boot Sector
Skift	44 MB		Custom	32-bit	Modern	Open-source	C++	CD	A hobby OS built from scratch using C/C++
Snowdrop	0.4 MB		Custom	16-bit	Modern	Open-source	ASM	Floppy	16-bit hobby OS with GUI
Sol OS	0.3 MB		Custom	32-bit	Modern	Proprietary	ASM	Floppy	Simple graphical OS
Still Alive	10 KB		Custom	32-bit	Modern	Open-source	C	Floppy	Bootable demo that plays "Still Alive" from Portal
T3XFORTH	59 KB		Custom	16-bit	Historic	Open-source	ASM	Floppy	An old-school, plain vanilla FORTH system
TetrOS	512 B		Custom	16-bit	Modern	Open-source	ASM	Bootsector	Tetris that fits into the boot sector
ToaruOS	6.3 MB		Custom	32-bit	Modern	Open-source	C	CD	A hobby OS written from scratch
bootBASIC	512 B		Custom	16-bit	Modern	Open-source	ASM	Bootsector	A BASIC in 512 bytes of x86 machine code
Pillman	512 B		Custom	16-bit	Modern	Open-source	ASM	Bootsector	A yellow thing eats pills and is chased by monsters
bootLogo	512 B		Custom	16-bit	Modern	Open-source	ASM	Bootsector	Logo language in 508 bytes
bootRogue	512 B		Custom	16-bit	Modern	Open-source	ASM	Bootsector	A roguelike game that fits in a boot sector
dino	512 B		Custom	16-bit	Modern	Open-source	ASM	Bootsector	Chrome's t-rex based bootsector game
Invaders	512 B		Custom	16-bit	Modern	Open-source	ASM	Bootsector	Invaders in a bootsector
Sanos	0.5 MB		Custom	32-bit	Modern	Open-source	C	HD	Minimalistic 32-bit x86 OS
sectorforth	512 B		Custom	16-bit	Modern	Open-source	ASM	Bootsector	16-bit x86 Forth in a bootsector
Dancy	1.3 MB		Custom	32-bit	Modern	Open-source	C	CD	Dancy Operating System
CuriOS	6.6 MB		Custom	32-bit	Modern	Open-source	C	HD	Simple GUI based OS inspired by AmigaOS
OS64	2.2 MB		Custom	32-bit	Modern	Open-source	C	CD	Commodore 64 emulator OS for x86 (slow)
netboot.xyz	1.0 MB		Custom	32-bit	Modern	Open-source	C	CD	Netboot into various operating systems (slow)
SqueakNOS	20 MB		Custom	32-bit	Modern	Open-source	C, Smalltalk	CD	Smalltalk as a Standalone OS
Chokanji 4	13+ MB		Custom	32-bit	Historic	Proprietary	C	HD	A Japanese OS based on the TRON project
Mojo OS	1.4 MB		Custom	32-bit	Modern	Open-source	C++	CD	A simple operating system for the x86 architecture
Vanadium OS	0.7 MB		Custom	32-bit	Modern	Open-source	C	CD	A portable, multi-user Unix-like OS
PrettyOS	0.5 MB		Custom	32-bit	Modern	Open-source	C++	Floppy	Simple OS for beginners
Asuro	2.1 MB		Custom	32-bit	Modern	Open-source	Pascal	CD	Asuro is a hobbyist operating system written in Pascal
XENUS	2.0 MB		Custom	32-bit	Modern	Open-source	C	HD	The Vanadium OS predecessor
bootOS	11 KB		Custom	16-bit	Modern	Open-source	ASM	Floppy	a monolithic operating system in 512 bytes of x86 machine code
Chip4504	18 KB		Custom	16-bit	Modern	Open-source	ASM	Floppy	CHIP-8 emulator operating system
ForthOS	1.3 MB		Custom	32-bit	Historic	Open-source	Forth	HD	Complete standalone Forth-based operating system
NewOS Notion	3.7 MB		Custom	32-bit	Modern	Open-source	C++	HD	Modified NewOS with fast TCP-based window manager and Doom
**Part 3 of 3** — Custom / hobby OS (full rows). ``` BleskOS 0.2 MB Custom 32-bit Modern Open-source C CD Alternative OS for older PCs Blue Jay 83 KB Custom 16-bit Modern Open-source ASM Floppy Based on MikeOS BoneOS 3.0 MB Custom 32-bit Modern Open-source C CD Simple hobby OS BootChess 4.0 KB Custom 16-bit Modern Open-source ASM Floppy Chess in a bootsector CatK 3.2 MB Custom 32-bit Modern Open-source C CD Simple Unix-like kernel Crazierl 14 MB Custom 32-bit Modern Open-source C, Erlang Multiboot An Erlang Operating System Dusk OS 0.4 MB Custom 32-bit Modern Open-source C HD A 32-bit Forth Floppy Bird 6.5 KB Custom 16-bit Modern Open-source C Floppy Flappy Bird game in a bootsector HelenOS 7.9 MB Custom 32-bit Modern Open-source C CD A microkernel-based multiserver OS Hello v86 512 B Custom 16-bit Modern Open-source ASM Bootsector Small bootsector demo for v86 House 1.1 MB Custom 32-bit Modern Open-source Haskell Floppy Haskell User's Operating System and Environment JX 1.3 MB Custom 32-bit Modern Open-source Java Floppy Java-based operating system KolibriOS 1.3 MB Custom 32-bit Modern Open-source ASM Floppy Various apps, games and demos Little Kernel 0.4 MB Custom 32-bit Modern Open-source C Multiboot An embedded kernel designed for small systems M/CP 512 B Custom 16-bit Modern Open-source ASM Bootsector The Minimal Control Program MikeOS 0.2 MB Custom 16-bit Modern Open-source ASM CD Contains a FORTH and BASIC interpreter and several games Mobius 1.3 MB Custom 32-bit Modern Open-source C Floppy POSIX and Win32 compatible OS Mu 0.2 MB Custom 16-bit Modern Open-source C HD Minimal-dependency hobbyist computing stack NanoShell 3.5 MB Custom 32-bit Modern Open-source C CD Multi-tasked 32-bit OS with Win9x-like GUI NewOS 0.6 MB Custom 32-bit Modern Open-source C++ Floppy Cross-platform portable OS Nope OS 92 KB Custom 32-bit Modern Open-source C CD Simple OS with BASIC interpreter Oberon 1.6 MB Custom 32-bit Historic Open-source Oberon HD Native Oberon 2.3.6 QNX 4.05 1.4 MB Custom 32-bit Historic Proprietary C Floppy 1999 demo disk SectorLISP 512 B Custom 16-bit Modern Open-source ASM Bootsector Bootstrapping LISP in a Boot Sector Skift 44 MB Custom 32-bit Modern Open-source C++ CD A hobby OS built from scratch using C/C++ Snowdrop 0.4 MB Custom 16-bit Modern Open-source ASM Floppy 16-bit hobby OS with GUI Sol OS 0.3 MB Custom 32-bit Modern Proprietary ASM Floppy Simple graphical OS Still Alive 10 KB Custom 32-bit Modern Open-source C Floppy Bootable demo that plays "Still Alive" from Portal T3XFORTH 59 KB Custom 16-bit Historic Open-source ASM Floppy An old-school, plain vanilla FORTH system TetrOS 512 B Custom 16-bit Modern Open-source ASM Bootsector Tetris that fits into the boot sector ToaruOS 6.3 MB Custom 32-bit Modern Open-source C CD A hobby OS written from scratch bootBASIC 512 B Custom 16-bit Modern Open-source ASM Bootsector A BASIC in 512 bytes of x86 machine code Pillman 512 B Custom 16-bit Modern Open-source ASM Bootsector A yellow thing eats pills and is chased by monsters bootLogo 512 B Custom 16-bit Modern Open-source ASM Bootsector Logo language in 508 bytes bootRogue 512 B Custom 16-bit Modern Open-source ASM Bootsector A roguelike game that fits in a boot sector dino 512 B Custom 16-bit Modern Open-source ASM Bootsector Chrome's t-rex based bootsector game Invaders 512 B Custom 16-bit Modern Open-source ASM Bootsector Invaders in a bootsector Sanos 0.5 MB Custom 32-bit Modern Open-source C HD Minimalistic 32-bit x86 OS sectorforth 512 B Custom 16-bit Modern Open-source ASM Bootsector 16-bit x86 Forth in a bootsector Dancy 1.3 MB Custom 32-bit Modern Open-source C CD Dancy Operating System CuriOS 6.6 MB Custom 32-bit Modern Open-source C HD Simple GUI based OS inspired by AmigaOS OS64 2.2 MB Custom 32-bit Modern Open-source C CD Commodore 64 emulator OS for x86 (slow) netboot.xyz 1.0 MB Custom 32-bit Modern Open-source C CD Netboot into various operating systems (slow) SqueakNOS 20 MB Custom 32-bit Modern Open-source C, Smalltalk CD Smalltalk as a Standalone OS Chokanji 4 13+ MB Custom 32-bit Historic Proprietary C HD A Japanese OS based on the TRON project Mojo OS 1.4 MB Custom 32-bit Modern Open-source C++ CD A simple operating system for the x86 architecture Vanadium OS 0.7 MB Custom 32-bit Modern Open-source C CD A portable, multi-user Unix-like OS PrettyOS 0.5 MB Custom 32-bit Modern Open-source C++ Floppy Simple OS for beginners Asuro 2.1 MB Custom 32-bit Modern Open-source Pascal CD Asuro is a hobbyist operating system written in Pascal XENUS 2.0 MB Custom 32-bit Modern Open-source C HD The Vanadium OS predecessor bootOS 11 KB Custom 16-bit Modern Open-source ASM Floppy a monolithic operating system in 512 bytes of x86 machine code Chip4504 18 KB Custom 16-bit Modern Open-source ASM Floppy CHIP-8 emulator operating system ForthOS 1.3 MB Custom 32-bit Historic Open-source Forth HD Complete standalone Forth-based operating system NewOS Notion 3.7 MB Custom 32-bit Modern Open-source C++ HD Modified NewOS with fast TCP-based window manager and Doom ```
Author
Owner

Status update from implementation pass (Cursor Agent)

Kicked off Phase 1 work in spikersoft-angular. Hit a tooling issue mid-stream where large file writes were silently dropping their payloads, so I'm parking progress here with a clear plan rather than leave half-baked code in the tree. Picking this up in a fresh session.

Decisions locked in with the stakeholder

  1. Hosting / serving — Bytes live in a .gitignore-d folder under spikersoft-angular/projects/spikersoft/src/assets/v86/... so the runtime keeps using /assets/v86/... (same-origin, no CORS, no backend changes). A separate one-time copy script (built by the operator, out of scope for this PR) will populate the eventual production location. No runtime fetch of copy.sh or any third-party CDN.
  2. Phase 1 scope — Make the existing 17 demos in v86-demos.ts actually work end-to-end plus expand the catalogue to all clearly-open-source entries from the parity list in this issue (~70 entries total). Proprietary entries (Microsoft Windows lineage, BeOS 5, BSD/OS, Unix V7, QNX 4.05, MS-DOS 4 / 6.22, 86-DOS, Sol OS, Chokanji 4, etc.) ship as bring-your-own-image (BYO) placeholders in the UI: a <input type="file"> feeds v86 via URL.createObjectURL, so we expose them in the catalogue UI without hosting any proprietary bytes ourselves. Legal review for hosting any of those is deferred to a follow-up issue.

Background context surfaced during research

The feature was effectively broken in main before this work: the runtime URLs in v86-emulator.component.ts / v86-demos.ts were already migrated to /assets/v86/... paths, but only v86.js is on disk — no v86.wasm, no bios/seabios.bin, no bios/vgabios.bin, no disk images. Every Start click 404s. The leftover v86-emulator.component.ts.backup still hard-codes https://copy.sh/v86/... URLs and needs to go.

What landed in this pass

  • spikersoft-angular/projects/spikersoft/src/assets/v86/.gitignore — excludes images/, bios/, *.wasm; keeps v86.js, README.md, and .gitignore itself.
  • spikersoft-angular/projects/spikersoft/src/assets/v86/README.md — canonical filename layout, hosted vs BYO explanation, instructions for adding a new image. This is the contract the operator's copy script reads against.
  • spikersoft-angular/projects/spikersoft/src/app/_components/_emulators/v86/v86-catalogue.ts (skeleton) — typed manifest with the full set of types (V86Family, V86Arch, V86Era, V86License, V86Medium, V86HostingTier, V86CatalogueEntry), boot-order / RAM helpers, and an empty V86_CATALOGUE array. Entry rows still need to be filled in (see below).

What's still to do (next session)

  1. Populate V86_CATALOGUE in v86-catalogue.ts with rows for all parity entries from comments #1–#3 of this issue. Plan is ~85 entries: ~70 hosted-open-source + ~15 BYO-proprietary. Each row carries id, name, description, family, arch, era, license, language, medium, approxSizeMB, hostingTier, homepage, and the appropriate disk/cdrom/floppy/bzImage URL slot (or none for BYO).
  2. Refactor v86-emulator.component.ts to consume the manifest directly (drop the current V86_DEMOS.map(...)).
  3. Refactor v86-emulator.component.html to:
    • Replace the single <mat-select> with multi-select chip filters (family, arch, era, medium, license).
    • Group the resulting list by family.
    • Render BYO entries with a <input type="file"> instead of an immediate Start button; on file pick, build a Blob-backed disk ref via URL.createObjectURL and feed it through the existing start path.
  4. Update v86-emulator.component.scss for filter chips + grouped list styling (theme tokens only, per angular-theming.mdc).
  5. Update v86-emulator.component.spec.ts to assert (a) every URL in the manifest matches ^/assets/v86/, (b) BYO entries have no disk URLs, (c) filtering produces expected subsets.
  6. Update component README.md — drop the misleading "Images are loaded on-demand from CDN" / "All external resources loaded from official v86 CDN" claims; document the manifest schema and BYO flow.
  7. Delete v86-emulator.component.ts.backup (still contains hard-coded copy.sh URLs, would be a footgun if anyone copy-pasted from it).

Explicitly out of scope for this PR (separate follow-ups)

  • The one-time copy script that populates assets/v86/images, assets/v86/bios, and v86.wasm (operator-built).
  • Backend serving via TryConfigureStaticFiles + a FusionIO mount under /legacy-systems. Not needed yet because dev and prod will both serve from /assets/v86/... packaged with the Angular static host. Easy to add later if total payload outgrows what we want shipped from the Angular host.
  • sha256 verification (manifest schema reserves a slot, Phase 1 leaves it unset).
  • Bulk ingest pipeline / runbook for syncing copy.sh BIOS / image updates.
  • Legal review of proprietary images for actual hosting — those stay BYO.

Acceptance check (will run after step 7)

  • Repo grep for copy.sh returns zero hits in shipping code.
  • Repo grep for https?:// inside v86-emulator.* and v86-catalogue.ts returns zero non-doc hits.
  • Filter UI renders >=70 entries; toggling License=Open-source hides every BYO row.
  • Sanity boot: drop kolibri.img + seabios.bin + vgabios.bin + v86.wasm into assets/v86/..., pick KolibriOS, click Start, OS boots end-to-end with no outbound network requests visible in DevTools.
## Status update from implementation pass (Cursor Agent) Kicked off Phase 1 work in `spikersoft-angular`. Hit a tooling issue mid-stream where large file writes were silently dropping their payloads, so I'm parking progress here with a clear plan rather than leave half-baked code in the tree. Picking this up in a fresh session. ### Decisions locked in with the stakeholder 1. **Hosting / serving** — Bytes live in a `.gitignore`-d folder under `spikersoft-angular/projects/spikersoft/src/assets/v86/...` so the runtime keeps using `/assets/v86/...` (same-origin, no CORS, no backend changes). A separate one-time copy script (built by the operator, out of scope for this PR) will populate the eventual production location. No runtime fetch of `copy.sh` or any third-party CDN. 2. **Phase 1 scope** — Make the existing 17 demos in `v86-demos.ts` actually work end-to-end **plus** expand the catalogue to all clearly-open-source entries from the parity list in this issue (~70 entries total). Proprietary entries (Microsoft Windows lineage, BeOS 5, BSD/OS, Unix V7, QNX 4.05, MS-DOS 4 / 6.22, 86-DOS, Sol OS, Chokanji 4, etc.) ship as **bring-your-own-image (BYO)** placeholders in the UI: a `<input type="file">` feeds v86 via `URL.createObjectURL`, so we expose them in the catalogue UI without hosting any proprietary bytes ourselves. Legal review for hosting any of those is deferred to a follow-up issue. ### Background context surfaced during research The feature was effectively broken in `main` before this work: the runtime URLs in `v86-emulator.component.ts` / `v86-demos.ts` were already migrated to `/assets/v86/...` paths, but only `v86.js` is on disk — no `v86.wasm`, no `bios/seabios.bin`, no `bios/vgabios.bin`, no disk images. Every Start click 404s. The leftover `v86-emulator.component.ts.backup` still hard-codes `https://copy.sh/v86/...` URLs and needs to go. ### What landed in this pass - `spikersoft-angular/projects/spikersoft/src/assets/v86/.gitignore` — excludes `images/`, `bios/`, `*.wasm`; keeps `v86.js`, `README.md`, and `.gitignore` itself. - `spikersoft-angular/projects/spikersoft/src/assets/v86/README.md` — canonical filename layout, hosted vs BYO explanation, instructions for adding a new image. This is the contract the operator's copy script reads against. - `spikersoft-angular/projects/spikersoft/src/app/_components/_emulators/v86/v86-catalogue.ts` (skeleton) — typed manifest with the full set of types (`V86Family`, `V86Arch`, `V86Era`, `V86License`, `V86Medium`, `V86HostingTier`, `V86CatalogueEntry`), boot-order / RAM helpers, and an empty `V86_CATALOGUE` array. Entry rows still need to be filled in (see below). ### What's still to do (next session) 1. Populate `V86_CATALOGUE` in `v86-catalogue.ts` with rows for all parity entries from comments #1–#3 of this issue. Plan is ~85 entries: ~70 hosted-open-source + ~15 BYO-proprietary. Each row carries `id`, `name`, `description`, `family`, `arch`, `era`, `license`, `language`, `medium`, `approxSizeMB`, `hostingTier`, `homepage`, and the appropriate disk/cdrom/floppy/bzImage URL slot (or none for BYO). 2. Refactor `v86-emulator.component.ts` to consume the manifest directly (drop the current `V86_DEMOS.map(...)`). 3. Refactor `v86-emulator.component.html` to: - Replace the single `<mat-select>` with multi-select chip filters (family, arch, era, medium, license). - Group the resulting list by family. - Render BYO entries with a `<input type="file">` instead of an immediate Start button; on file pick, build a `Blob`-backed disk ref via `URL.createObjectURL` and feed it through the existing start path. 4. Update `v86-emulator.component.scss` for filter chips + grouped list styling (theme tokens only, per `angular-theming.mdc`). 5. Update `v86-emulator.component.spec.ts` to assert (a) every URL in the manifest matches `^/assets/v86/`, (b) BYO entries have no disk URLs, (c) filtering produces expected subsets. 6. Update component `README.md` — drop the misleading "Images are loaded on-demand from CDN" / "All external resources loaded from official v86 CDN" claims; document the manifest schema and BYO flow. 7. Delete `v86-emulator.component.ts.backup` (still contains hard-coded `copy.sh` URLs, would be a footgun if anyone copy-pasted from it). ### Explicitly out of scope for this PR (separate follow-ups) - The one-time copy script that populates `assets/v86/images`, `assets/v86/bios`, and `v86.wasm` (operator-built). - Backend serving via `TryConfigureStaticFiles` + a FusionIO mount under `/legacy-systems`. Not needed yet because dev and prod will both serve from `/assets/v86/...` packaged with the Angular static host. Easy to add later if total payload outgrows what we want shipped from the Angular host. - `sha256` verification (manifest schema reserves a slot, Phase 1 leaves it unset). - Bulk ingest pipeline / runbook for syncing copy.sh BIOS / image updates. - Legal review of proprietary images for actual hosting — those stay BYO. ### Acceptance check (will run after step 7) - Repo grep for `copy.sh` returns zero hits in shipping code. - Repo grep for `https?://` inside `v86-emulator.*` and `v86-catalogue.ts` returns zero non-doc hits. - Filter UI renders >=70 entries; toggling License=Open-source hides every BYO row. - Sanity boot: drop `kolibri.img` + `seabios.bin` + `vgabios.bin` + `v86.wasm` into `assets/v86/...`, pick KolibriOS, click Start, OS boots end-to-end with no outbound network requests visible in DevTools.
Author
Owner

Board-sweep verified (medium confidence): angular PR #64 merged the 106-entry same-origin V86 catalogue (84 hosted + 22 BYO), faceted filters, and a spec asserting no copy.sh URLs — v86-catalogue.ts verified in tree; the stale 'parked' comment is superseded. Caveat: the hosted image BYTES are ops-side and unverifiable from the repos — if any catalogue entry 404s in prod, reopen with the entry name. Closing on the code evidence.

Board-sweep verified (medium confidence): angular PR #64 merged the 106-entry same-origin V86 catalogue (84 hosted + 22 BYO), faceted filters, and a spec asserting no copy.sh URLs — v86-catalogue.ts verified in tree; the stale 'parked' comment is superseded. Caveat: the hosted image BYTES are ops-side and unverifiable from the repos — if any catalogue entry 404s in prod, reopen with the entry name. Closing on the code evidence.
Sign in to join this conversation.