Academic OSes Archive
This project’s vision is to help every college student read all the code of an operating system. With only 2000 lines of code, egos-2000 implements every component of an operating system for education. It can run on a RISC-V board and also the QEMU software emulator. Exactly what it says on the tin.
Plan 9 is an operating system designed by Bell Labs. It’s the OS they wrote after Unix, with the benefit of hindsight. It is the most interesting operating system that you’ve never heard of, and, in my opinion, the best operating system design to date. Even if you haven’t heard of Plan 9, the designers of whatever OS you do use have heard of it, and have incorporated some of its ideas into your OS. Plan 9 is a research operating system, and exists to answer questions about ideas in OS design. As such, the Plan 9 experience is in essence an exploration of the interesting ideas it puts forth. Most of the ideas are small. Many of them found a foothold in the broader ecosystem — UTF-8, goroutines, /proc, containers, union filesystems, these all have their roots in Plan 9 — but many of its ideas, even the good ones, remain unexplored outside of Plan 9. As a consequence, Plan 9 exists at the center of a fervor of research achievements which forms a unique and profoundly interesting operating system. I’ve never used Plan 9, but whenever I read about I feel like it makes sense, like that’s how things are supposed to be. I’m sure its approaches present their own unique challenges, problems, and idiosyncrasies, but the idealised reality in articles like these make me want to jump in.
Starting in 1991, every copy of MS-DOS (and many versions of Windows) included a hidden artillery game called Gorillas. It inspired a generation of programmers and drew the ire of computer lab instructors everywhere. Here’s how it came to be—and how to play it today. I played the hell out of this as a kid. Such a simple but fun game, and the fact so many people had no idea it existed made it all the more exciting, like we had some secret knowledge especially grownups weren’t privy to.
This paper lays out the rationale for building a completely new operating system (OS) stack. Rather than build on a single node OS together with separate cluster schedulers, distributed filesystems, and network managers, we argue that a distributed transactional DBMS should be the basis for a scalable cluster OS. We show herein that such a database OS (DBOS) can do scheduling, file management, and inter-process communication with competitive performance to existing systems. In addition, significantly better analytics can be provided as well as a dramatic reduction in code complexity through implementing OS services as standard database queries, while implementing low-latency transactions and high availability only once. I’m not even going to pretend to understand any of this.
Theseus is a new OS written from scratch in Rust to experiment with novel OS structure, better state management, and how to shift OS responsibilities like resource management into the compiler. We are continually working to improve the OS, including its fault recovery abilities for higher system availability without redundancy, as well as easier and more arbitrary live evolution and runtime flexbility. Though still an incomplete prototype, we envision that Theseus will be useful for high-end embedded systems or edge datacenter environments. See our published papers for more information about Theseus’s design principles and implementation philosophy, as well as our goal to avoid the phenomenon of state spill or mitigate its effects as much as possible. Also, see Theseus’s documentation for more. Definitely an experimental operating system, and it joins the many other Rust-based operating systems projects out there.
With Genode 20.11, we focused on the scalability of real-world application workloads, and nurtured Genode’s support for 64-bit ARM hardware. We thereby follow the overarching goal to run highly sophisticated Genode-based systems on devices of various form factors. The release notes are detailed and informative as always – a huge benefit of being a project born at and run in a university environment.
The new version of Sculpt OS is based on the latest Genode release 20.08. In particular, it incorporates the redesigned GUI stack to the benefit of quicker boot times, improved interactive responsiveness, and better pixel output quality. It also removes the last traces of the noux runtime. Fortunately, these massive under-the-hood changes do not disrupt the user-visible surface of Sculpt. Most users will feel right at home. It’s really time I set up a specific category for Genode-related items. It’s been appearing here on OSNews for years and years now.
With the release of Sculpt version 20.02, we follow our roadmap’s mission to make Sculpt OS easier to approach. In particular, we identified the reliance on a command-line interface as a potential barrier of entry. As Sculpt OS is not a Unix-like system, it should not require any Unix know-how from the user. To relieve users from this burden, Sculpt 20.02 introduces a custom graphical file browser and editor that can be used for interactively inspecting and tweaking the state of the system. The traditional command-line interface is still present as a fallback for advanced tasks though. The updated manual goes into detail about the use of the new system. Sculpt OS is related to the Genode project – a popular mainstay at OSNews – and basically ties a number of their technologies together into a general purpose desktop operating sytsem. Sculpt is an open-source general-purpose OS. It combines Genode’s microkernel architecture, capability-based security, sandboxed device drivers, and virtual machines in a novel operating system for commodity PC hardware. Sculpt is used as day-to-day OS by the Genode developers. The download page provides a ready-to-go VirtualBox image, so if you want to play with Sculpt OS – they couldn’t have made it any easier.
seL4 has been our team’s greatest achievement, but it didn’t fall out of the sky: it was the result of 15 years of research, and has evolved further for the past 10 years. From the beginning, the design of seL4 has been driven by a number of principles. But a recent internal discussion about some fine points of the spec (as well as some discussions with externals) reminded me that some of these principles are in the minds of the designers but not really documented. This can lead to people (internal as well as external to Trustworthy Systems) arguing for APIs that are not in the spirit of seL4. Hence I’ll try to write up these principles. Articles like these are rare.
Phantom is, basically, a virtual machine (VM) working in a huge persistent virtual memory. Part of the VM classes (some classes, called ‘internal’) are implemented in kernel, giving VM code access to low level kernel services. Persistent virtual memory is completely orthogonal to object space and VM (no relation between, for example, object boundary and virtual memory page, etc.) and is implemented so that abrupt computer failure or loss of power leaves system in coherent state. On the application code (VM bytecode) level OS shutdown (either manual or caused by failure) is not even ‘seen’ – applications and their data are ‘never die’, they continue their work after the next OS boot up as if no shutdown ever happened. The code of this slickly presented operating system is available on github.
HermiTux is a unikernel: a minimal operating system with low memory/disk footprint and sub-second boot time, executing an application within a single address space on top of an hypervisor. Moreover, HermiTux is binary-compatible with Linux: it can run native Linux executables. Although being a proof-of-concept, HermiTux supports multiple compiled (C, C++, Fortran) and interpreted (Python, LUA) languages. It provides binary analysis and rewriting techniques to optimize system call latency and modularize a kernel in the presence of unmodified binaries. It supports statically and dynamically linked programs, different compilers and optimization levels. HermiTux also provides basic support for multithreading, debugging and profiling. HermiTux is a research project at Virginia Tech.
I always wondered what it would be like to write my own operating system, but I never took it seriously. Until now. I’ve grown tired of cutesy and condescending software that doesn’t take itself or the user seriously. This is my effort to bring back the feeling of computing I once knew. Roughly speaking, the goal here is a marriage between the aesthetic of late-1990s productivity software and the power-user accessibility of late-2000s *nix. This is a system by me, for me, based on the things I like. Seriously impressive work, as you can see in the demo video of the current state of the operating system.
The Genode project released the fourth version of their Sculpt operating system, subtitled as “Community Experience”. The background of this slogan is the project’s ambition to remove the need for any middleman between developers and users. In contrast to today’s mainstream OSes, which rely on trusted distributions or app stores, Sculpt works completely federated. The integrity of the installed software is protected by digital signatures of the respective software providers while each piece of software is sandboxed both at installation time and at runtime. This way, users don’t need to be faithful but enter a position of ultimate control. This is capability-based security at work! As explained in the accompanying blog posting, Sculpt CE features an new user interface to integrate software into the running system and to reveal the trusted computing base of each component. Without a middleman between software providers and users in Sculpt OS, there is the obvious question: How can a user find software? The Genode project tries to answer this question with their community blog called Genodians.org started earlier this year. It gives Genode developers a way to announce new software while users can share their perspectives and ideas. Just like Sculpt OS, the content of Genodians.org is managed in a federated fashion. Sculpt CE is available as a ready-to-use disk image bootable from a USB stick. The release is accompanied with comprehensive documentation that covers both the use the system and the philosophy behind it.
Redox OS 0.5.0 has been released. It has been one year and four days since the last release of Redox OS! In this time, we have been hard at work improving the Redox ecosystem. Much of this work was related to relibc, a new C library written in Rust and maintained by the Redox OS project, and adding new packages to the cookbook. We are proud to report that we have now far exceeded the capabilities of newlib, which we were using as our system C library before. We have added many important libraries and programs, which you can see listed below. Redox OS is a UNIX-like operating system written in Rust, built around a microkernel.
Plan 9 from Bell Labs comes from the same stable as the UNIX operating system, which of course Linux was designed after, and Apple’s OS X runs on top of a certified UNIX operating system. Just like UNIX, Plan 9 was developed as a research OS — a vehicle for trying out new concepts — with it building on key UNIX principles and taking the idea of devices are just files even further. In this post, we take a quick look at the Plan 9 OS and some of the notable features, before moving on to the construction of a self-contained 4-node Raspberry Pi cluster that will provide a compact platform for experimentation. The post is almost a year old, but it hasn’t ever appeared here, and for that I will not stand. Plan 9 gets little attention and press, and that’s decidedly a shame.
K2 is an academic project OS developed out of the Rice University Efficient Computing Group. Its stated purpose is: “Modern mobile System-on-chip(SoC) often embraces heterogeneous cores that are hosted in separate coherence domains, i.e. no hardware coherence among them. This architecture promises high energy efficiency, however complicates software development, thus preventing the energy efficiency from being harvested by software.” Learn more here.