Keep OSNews alive by becoming a Patreon, by donating through Ko-Fi, or by buying merch!

OS News Archive

The Interim Operating System

Interim OS is a radical new operating system with a focus on minimalism. It steals conceptually from Lisp machines (language-based kernel) and Plan 9 (everything is a file system). It boots to a JITting Lisp-like REPL and offers the programmer/user the system's resources as filesystems.

You can run it on a Raspberry Pi 2, or as a hosted operating system on ARM Linux, x86 Linux, OS X, Windows, and even on AmigaOS 3.x.

The benefits and costs of writing a POSIX kernel in Go

This paper presents an evaluation of the use of a high-level language (HLL) with garbage collection to implement a monolithic POSIX-style kernel. The goal is to explore if it is reasonable to use an HLL instead of C for such kernels, by examining performance costs, implementation challenges, and programmability and safety benefits.

The paper contributes Biscuit, a kernel written in Go that implements enough of POSIX (virtual memory, mmap, TCP/IP sockets, a logging file system, poll, etc.) to execute significant applications. Biscuit makes liberal use of Go's HLL features (closures, channels, maps, interfaces, garbage collected heap allocation), which sub- jectively made programming easier. The most challenging puzzle was handling the possibility of running out of kernel heap memory; Biscuit benefited from the analyzability of Go source to address this challenge.

On a set of kernel-intensive benchmarks (including NGINX and Redis) the fraction of kernel CPU time Biscuit spends on HLL features (primarily garbage collection and thread stack expansion checks) ranges up to 13%. The longest single GC-related pause suffered by NGINX was 115 microseconds; the longest observed sum of GC delays to a complete NGINX client request was 600 microsec- onds. In experiments comparing nearly identical system call, page fault, and context switch code paths written in Go and C, the Go version was 5% to 15% slower.

Scientific papers about operating system experiments - who doesn't love them?

Visopsys 0.8.3 released

It's been a long time since we last covered Visopys - one of the few remaining hobby operating systems still in development - so how about an update? The last version we covered was 0.8 way back in September 2016, but the most recent release is 0.8.3 from August of this year.

This maintenance version features user experience enhancements and reliability improvements, and a more capable Archive Manager program. Bug fixes cover a number of GUI flaws and memory leaks, and some of the low-level network infrastructure code has been refined.

And just in case you forgot all about this operating system:

Visopsys is an alternative operating system for PC compatible computers. In development since 1997, this system is small, fast, and open source. It features a simple but functional graphical interface, pre-emptive multitasking, and virtual memory. Though it attempts to be compatible in a number of ways, Visopsys is not a clone of any other operating system.

It's available from the project's download page.

Arcan 0.5.5, Durden 0.5 released

More than three quarters of a year has gone by since last time, but the Arcan project has squeezed out a new release of the 'multimedia server' or 'desktop engine' Arcan and its related subproject, the Durden desktop environment.

For those unaware of the project as such, it might be worthwhile to skim through a recent summary that can be found in the article "Revisiting the Arcan Project" - but suffice to say that it is an ambitious attempt at replacing large swaths (terminal emulators, display server, audio server, and so on) of the normal user-facing parts of the BSD and Linux userspace, with a single compact and coherently scriptable component.

CirnOS: new Lua-based OS

CirnOS is an operating system for the Raspberry Pi built for the purpose of usability and simplicity. It provides a simple environment for running Lua scripts on Raspberry Pi. It has no kernel or time management - it is single threaded. You run your code on the device, and that is it.

CirnOS has only been tested on the Raspberry Pi Zero, but should work on the original Raspberry Pi and the Zero W.

Sculpt OS with Visual Composition

Sculpt is an open-source general-purpose OS based on the Genode framework. It combines a microkernel architecture, capability-based security, sandboxed device drivers, and hardware-virtualized guests in a novel operating system for commodity x86-64 hardware.

The third version of Sculpt OS is now available under codename Sculpt VC. It is based on Genode OS framework release 18.08. "Sculpt with Visual Composition" takes a step forward to turn Sculpt into a useable system for a wider audience. It features a graphical user interface for performing fundamental tasks like connecting to a wireless network, or installing and running software from packages. However, the full power of the system is still accessible only via a textual interface. A detailed description of the usage and structure of Sculpt VC can be found in its documentation.

Sculpt VC is available in form of an USB stick image thats boots on bare metal x86 hardware. The image has a size of 24 MiB only. Alternatively, a virtual appliance for VirtualBox is provided.

Porting Hyperkernel to the ARM architecture

This work describes the porting of Hyperkernel, an x86 kernel, to the ARMv8-A architecture. Hyperkernel was created to demonstrate various OS design decisions that are amenable to push-button verification. Hyperkernel simplifies reasoning about virtual memory by separating the kernel and user address spaces. In addition, Hyperkernel adopts an exokernel design to minimize code complexity, and thus its required proof burden. Both of Hyperkernel's design choices are accomplished through the use of x86 virtualization support. After developing an x86 prototype, advantageous design differences between x86 and ARM motivated us to port Hyperkernel to the ARMv8-A architecture. We explored these differences and benchmarked aspects of the new interface Hyperkernel provides on ARM to demonstrate that the ARM version of Hyperkernel should be explored further in the future. We also outline the ARMv8-A architecture and the various design challenges overcome to fit Hyperkernel within the ARM programming model.

Creator of TempleOS, Terry Davis, has passed away

Terrence Andrew Davis, sole creator and developer of TempleOS (née LoseThos), has passed away at age 48. Davis suffered from mental illness - schizophrenia - which had a severe impact on his life. He claimed he created his operating system after having spoken with and receiving instructions from god, and he was a controversial figure, also here on OSNews, for his incomprehensible rants and abrasive style towards OSNews readers and staff. We eventually had to ban him, but our then-editor Kroc Kamen worked with him in 2010 to publish an article about his operating system despite his ban.

Davis was clearly a gifted programmer - writing an entire operating system is no small feat - and it was sad to see him affected by his mental illness. I mourn his passing, and I wish his family and friends all the strength they need in these trying times. His family and friends are asking people to donate to "organizations working to ease the pain and suffering caused by mental illness", such as The Brain & Behaviour Research Foundation or the National Alliance on Mental Illness.

I hope he found peace - wherever he may be.

Tenox.net’s archive of computer books

Yesterday, we linked to a 1997 book about the Windows 95 file system, which is a great read. Don't let the fun end there, though - the site hosting said book, Tenox.net by Antoni Sawicki, is a true treasure trove of in-depth books that while outdated today, are still amazingly detailed reads. I honestly have no idea which to pick to quote here as an example, so out of my own personal interest, I couldn't really pass up "Configuring CDE: The Common Desktop Environment" by Charles Fernandez.

If you spend the major portion of your work day in front of a workstation chasing bits through the electronic networks of cyberspace, aka the information highway, so that your users can be more productive, this book is for you.

If you spend your days (or, thanks to some corporate edict, are about to spend your days) living in the Common Desktop Environment, so that your users can focus on their work and not the mechanics of getting to their work, this book shows you what you can do to make that environment their home.

There's countless other great reads in the list, so peruse them and find your own favourites.

Sailfish for Gemini Community Edition released

The first version of Sailfish OS for the Gemini has been released.

As the first step in bringing Sailfish to Gemini, our friends at Planet Computers have today made the community edition of Sailfish OS 2.1 available for the Gemini PDA. This version has been tested and verified by both Jolla and Planet.

As it's a community initiative, the version is still somewhat limited, but essential features are supported. With this version you won't yet get software updates or support for Android apps. Also the overall support is limited to our community's efforts.

The Gemini is a fascinating device, reminiscent of the Psion devices of the early '90s, and the ability to run Sailfish only makes the device more interesting. I find the Gemini's price a little too steep for something I'd buy as a fun project, but I can totally see using it as the only device you carry, since it has both phone and laptop-like features. If you don't need to do a whole lot of mobile laptop computing, the Gemini could certainly satisfy your needs.

Sculpt OS available as live system

Sculpt for The Curious (TC) is the second incarnation of the general-purpose operating system pursued by the developers of the Genode OS Framework. It comes in the form of a ready-to-use system image that can be booted directly from a USB thumb drive. In contrast to earlier versions, Sculpt TC features a graphical user interface for the interactive management of storage devices and networking. The main administrative interface remains text-based. It allows the user to "sculpt" the system live into shape, and introspect the system's state at any time.

The technological foundation of Sculpt is a combination of Genode's microkernel architecture with capability-based security and virtualization. It does not resemble a POSIX system, rather it supports hosting POSIX and Unix software as an option. This way, security-critical components are not exposed to the complexities of POSIX while the system retains compatibility to existing applications. Sculpt TC features several examples of such applications, ranging from Qt-based software over a custom Unix runtime to VirtualBox.

The downloadable system image with the accompanied documentation is available at the Sculpt download page of the Genode project.

The 640K memory limit of MS-DOS

At the beginning of the '90s, the PC platform was often mocked by its rivals. Of course, PCs were much more powerful than, say, an Amiga 500. But the Amiga offered a flat memory address, while a DOS program could only access memory using cumbersome 64 KiB segments. And to add insult to injury, there was this strange 640 KiB memory limitation. No matter how much physical memory you had in your box, the utter most important Conventional Memory was limited to 640 KiB!

The Legend teaches us that Bill Gates once declared that "640 KB ought to be enough for anybody", then designed MS-DOS to enforce this limitation.

The truth is of course a little more complicated than that.

This article brings back so many confusing childhood memories of MS-DOS and memory management - memories I wouldn't wish on my biggest enemies. All kidding aside, this is a great insight into how memory is organised in MS-DOS.

Nebulet: microkernel that implements WebAssembly in Ring 0

Nebulet is a microkernel that executes WebAssembly modules instead of ELF binaries. Furthermore, it does so in ring 0 and in the same address space as the kernel, instead of in ring 3. Normally, this would be super dangerous, but WebAssembly is designed to run safely on remote computers, so it can be securely sandboxed without losing performance.

Eventually, once the Cretonne compiler matures, applications running on Nebulet could be faster than their counterparts running on Linux due to syscalls just being function calls, low context-switch overhead, and exotic optimizations that aren't possible on conventional operating systems.

AsteroidOS 1.0 released

Four years ago, I envisioned an open-source operating system for smartwatches that would eventually become known as AsteroidOS. This project has steadily grown and gathered contributions from about 100 contributors from all around the world, all united behind the idea of an open wearable platform. When I first started, I never imagined how big this project would become and the quantity of work required to reach a stable version for daily usage.

Today, it is my great pleasure to finally announce the availability of AsteroidOS 1.0, the first stable release of this project!

This is a remarkable achievement. AsteroidOS is a Linux-based operating system using Wayland, Qt5, and various other open source technologies. It is quite full-featured, and currently works on seven Android Wear smartwatches. Sadly, I don't own one of the supported devices, because I'm incredibly curious to try this out.

AquilaOS: yet another hobbyist operating system

AquilaOS is a UNIX-like Operating System that started in 2016. Based on another OS I developed and many trials and failures since 2012, it finally came to light.

The goal behind AquilaOS is to make a UNIX-like OS adhering to a quote by K. Thompson in UNIX Implementation.

The kernel is the only UNIX code that cannot be substituted by a user to his own liking. For this reason, the kernel should make as few real decisions as possible. This does not mean to allow the user a million options to do the same thing. Rather, it means to allow only one way to do one thing, but have that way be the least-common divisor of all the options that might have been provided.

From the start, AquilaOS focused on being as transparent and architecture-agnostic as possible. To even raise the challenge, strict compliance with C standard (C99) is a must which allows compiling with "-O3" (strict optimization in GCC) and "-Wall -Wextra -Werror". Currently AquilaOS v0.0.1a is released and awaiting testers and contributors.


Features

AquilaOS is mostly written in C with a few assembly parts when absolutely needed. It consists of a monolithic kernel and a set of user utilities.

Kernel Features:

  • Monolithic kernel
  • Supports x86 archticture (all arch dependent code is seperate from the kernel)
  • Multitasking and Multithreading using POSIX threads
  • Supports ELF format
  • Signals
  • Blocking and Non-blocking I/O
  • Sessions, process groups and job control
  • Virtual file system (VFS) with support for initramfs, tmpfs, devfs, devpts, procfs and ext2
  • Devices subsystem using devices files with major/minor numbers
  • Supported devices include: PS/2 Keyboard, IDE/ATA Harddisk, Framebuffer device (fbdev, Linux API) with VESA 3.0, 8250 UART
  • Memory management subsystem (with demand paging and copy-on-write)

System Utilities:

  • aqbox: several UNIX/POSIX utilities in one binary (similar to BusyBox)
  • fbterm: Framebuffer based terminal (with wallpaper) with VT100 emulation using libvterm
  • lua: Lightweight, multi-paradigm programming language
  • kilo: Simple text editor for ANSI/VT100 terminal
  • tcc: Tiny C Compiler by Fabrice Bellard (Who made Qemu and FFmpeg)
  • nuklear: Immediate mode graphics library - experimental

The source code is released under GPLv3 licence and hosted on Github, https://github.com/mohamed-anwar/Aquila. Make sure to check it out and follow up with suggestions, or better yet, contributions.

LG releases webOS as open source again

Pretty big news out of LG - they're releasing their variant of webOS - the TV and smartwatch one - as open source.

webOS is a web-centric and usability-focused software platform for smart devices. The operating system has constantly evolved, passing through its journey from Palm to HP, and most recently to LG Electronics. Now, we are releasing webOS as an open source project, named webOS Open Source Edition (OSE).

This marks the second time webOS has been released as open source. It's released under the Apache License, version 2, and there's instructions for getting it to run on a Raspberry Pi 3.

We are a truly open project. You will see us working in the open like any community member, so you can see what we're doing in real time. We operate using typical open practices: the Project uses the Apache 2.0 license, is hosted on GitHub, and accepts contributions via a Contributor License Agreement (CLA) approach. As the community grows and individuals and organizations emerge who make significant contributions, it is our intention to invite them into the governance of the Project.

It seems like a truly open project, but at the same time, one has to wonder what this means for webOS' commercial future at LG. The cold and harsh truth is that moves like this generally mean the end of commercial viability, not the beginning. This isn't necessarily a problem though - at least this move ensures the code and operating system will continue to exist.

Genode 18.02 introduces Sculpt OS

The just released version 18.02 of the Genode OS Framework features the first version of Sculpt, which is a Genode-based general-purpose operating system. To our knowledge, it is the first usable open-source general-purpose OS that facilitates capability-based security from the ground up.

Being currently targeted at users that are close to the project, this initial version is named Sculpt for Early Adopters (EA). It is accompanied with detailed documentation that covers everything needed to install Sculpt on a real machine. The topics include the creation of the boot image, disk preparation, wireless networking, storage, software installation and deployment, and virtualization. Along the way, many concepts that are unique to Genode are explained.

Without any doubt, most topics of Genode 18.02 were motivated by the work on Sculpt. Most importantly, the release introduces new infrastructure for installing, updating, and deploying software from within a running Genode system. The underlying concepts are very much inspired by Git and the Nix package manager, enabling the installation of multiple software versions side by side, or the ability to roll back the installation to an earlier state. Also the on-target tooling breaks with the traditional notion of package management. Instead of executing package-management steps with vast privileges, each single step, for example extracting downloaded content, is executed in a dedicated sandbox.

Besides Sculpt, the Genode release 18.02 also includes many other noteworthy improvements. E.g., the user-level networking stack received a lot of attention, the Nim programming language can now be used for implementing Genode services, there are new tracing facilities, and improved drivers support for NXP i.MX hardware. Furthermore, many 3rd-party software packages received updates. All the improvements are covered by the detailed release documentation.

Tock: a secure embedded operating system

Tock is an embedded operating system designed for running multiple concurrent, mutually distrustful applications on Cortex-M based embedded platforms. Tock's design centers around protection, both from potentially malicious applications and from device drivers. Tock uses two mechanisms to protect different components of the operating system. First, the kernel and device drivers are written in Rust, a systems programming language that provides compile-time memory safety, type safety and strict aliasing. Tock uses Rust to protect the kernel (e.g. the scheduler and hardware abstraction layer) from platform specific device drivers as well as isolate device drivers from each other. Second, Tock uses memory protection units to isolate applications from each other and the kernel.

Visit the official site and the github repository for more information.

An open letter to Intel

Andrew S. Tanenbaum, creator of MINIX, has published an open letter to Intel regarding Intel's use of MINIX in the IME:

The only thing that would have been nice is that after the project had been finished and the chip deployed, that someone from Intel would have told me, just as a courtesy, that MINIX 3 was now probably the most widely used operating system in the world on x86 computers. That certainly wasn't required in any way, but I think it would have been polite to give me a heads up, that's all.

If nothing else, this bit of news reaffirms my view that the Berkeley license provides the maximum amount of freedom to potential users. If they want to publicize what they have done, fine. By all means, do so. If there are good reasons not to release the modified code, that's fine with me, too.

I can still barely believe this whole story.

PC-MOS released under GPL

The old PC-MOS was released under the GNU GPL this Summer. From Wikipedia:

PC-MOS/386 was a multi-user, computer multitasking operating system produced by The Software Link (TSL), announced at COMDEX in November 1986 for February 1987 release. PC-MOS/386, a successor to PC-MOS, can run many MS-DOS software titles on the host machine or a terminal connected to it. Unlike MS-DOS, PC-MOS/386 is optimized for the Intel 80386 processor; however early versions will run on any x86 computer.

The GitHub project includes a 1.44MB disk image for the latest version that will work under VirtualBox, but does not include older versions of the operating system from before it required an 80386+. The system won't work properly if you set a modern date at the boot up prompt.