Interview with Andreas Kling of Serenity OS (2022)
Enthusiasm for hobbyist operating systems is fueling debate over what a “from scratch” OS could do differently from Unix-style designs, from transactional filesystems and unified event subscription APIs to database-backed or object-centric storage. Commenters trade resources and war stories on how to get started with kernels, bootloaders, and low‑level programming, while contrasting this hands-on learning with simply customizing Linux or other existing systems. Underneath the technical ideas runs a tension between nostalgia-driven projects and efforts that aim to genuinely rethink OS architecture, performance, and user experience.
Motivations for New / Toy OSes
- Several commenters are tempted to build “toy” or experimental OSes to explore ideas that don’t fit well into existing kernels (especially Linux).
- Motivations include educational value, the visceral fun of low-level work, and dissatisfaction with current abstractions (POSIX, “everything is a file,” byte-stream pipes).
- Some would instead base work on existing kernels/distros and innovate primarily in userland APIs and UX.
Filesystem, Databases, and Transactions
- Strong interest in filesystem semantics better suited to databases and crash-safety:
- Write barriers or transactional I/O to avoid
fsyncoverhead and data corruption. - Kernel-level structured persistence instead of raw file I/O for most apps.
- Write barriers or transactional I/O to avoid
- Debate over DB vs filesystem:
- Some argue large databases should use raw devices or dedicated partitions; others note this doesn’t help ubiquitous “small DBs” inside apps.
- Proposals to implement filesystems on top of real databases (rich metadata, tags, triggers, fast search); past attempts like WinFS and various mainframe / AS/400 models are mentioned.
- Others warn that earlier transactional filesystems had terrible performance and deadlocks, suggesting DB semantics may be ill-suited to general filesystems.
Unified Event and Subscription APIs
- Desire for a single, coherent kernel API to “get state and subscribe to changes” for any resource (files, devices, processes, etc.), instead of today’s heterogeneous mix (procfs polling, inotify, bespoke syscalls).
- Concerns about TOCTOU races; ideas include reserving access to resources or snapshot-style event streams.
- Pushback notes that synchronous authorization and reservation mechanisms (as in some security products) can stall the system; any design must avoid user-visible slowdowns.
- Related suggestions: Fuchsia-style signals, io_uring-like command queues (with awareness of their security pitfalls), speculative execution with transactional commit/rollback.
Execution Model and Isolation
- One idea: run all userspace as WebAssembly in ring 0, using software bounds checks instead of hardware isolation; avoids TLB flushes/context switches but likely slower for compute-heavy code.
- Discussion on when this might outperform native processes, and on sharing a single address space.
Difficulty and On-Ramps to OS Development
- Consensus: writing some OS is feasible; the hard part is avoiding an unmaintainable mess and reaching the sophistication of modern systems.
- Suggested resources and paths: OSDev wiki, bare-metal “hello world” tutorials, xv6, Rust-on-Raspberry-Pi tutorials, Linux From Scratch (for system assembly, not kernel design), QEMU/Bochs for safe experimentation.
- Some advocate starting from simple hardware or existing kernels; others push for greenfield designs.
Alternative OS Models and Inspirations
- References to Plan 9, BeOS, seL4, capability systems, Inferno, Haiku, Redox, Fuchsia, Nix/Guix, and language-as-OS ideas (Smalltalk, Forth, Lisp-like systems).
- Proposals to rethink files as smart objects, spatial/3D-first desktops, and stateless, Git-like system images with transactional upgrades and rollbacks.
Debate on Value, Nostalgia, and UX
- Enthusiasts see hobby OSes as valuable learning and a way to explore fresh models.
- Skeptics view retro Win95-like projects as nostalgia-driven and low societal value, arguing effort should go to more forward-looking or impactful work.
- Ongoing side debate about whether desktop UX has meaningfully improved since the 90s; some see regressions, others highlight search-driven launchers, tiling/snapping, and general stability as real gains.