OS News Archive

Visopsys 0.75 Released

Visopsys is an alternative OS for PC-compatibles. Version 0.75 is the third update this year, and is particularly focused on hardware, adding USB 3.0 (XHCI) and APIC interrupt controller support, as well as improved USB 2.0 and hub support. Downloads are available from here, and details are available in the change log

MINIX 3.3.0 released

MINIX is a modern, microkernel-based UNIX implementation. The code size of the microkernel is just 129 kB. Servers implement UNIX on top of it. The userland, toolchain, packages etc. are from NetBSD. Release 3.3.0 was just announced:

New features:

  • The first release with ARM support, three Beagle targets are supported
  • Experimental USB support for the Beaglebones (hubs & mass storage)
  • Cross-compiling for both ARM and x86 - the buildsystem is very portable

Improvements

  • Big source code cleanup - cleaner C types in messages, improved NetBSD compatibility, all minix-specific code moved to a top-level minix/ folder
  • Updated packages overall - a big set is built now; and they are dynamically linked now
  • Improved driver modularity

Genode 14.08 introduces new GUI architecture

The new Genode version 14.08 extends the graphical abilities of the framework to the level of flexibility expected from a general-purpose OS. In contrast to contemporary GUI stacks, Genode approaches the problem from the angle of maximizing security. This premise led to a fairly unique design. Further highlights of the new version are a new port of OpenVPN, an upgraded DDE Linux, vast performance improvements of the base-hw kernel, and networking for VirtualBox on top of the NOVA microhypervisor.

It goes without saying that a flexible and dynamic GUI stack is needed for a general-purpose operating system. Since Genode strives to become such a system, this problem had to be covered at some point. The starting point was the existing nitpicker GUI server, which is a secure multiplexer for the physical display and input devices. Regarding widget sets, the framework already featured a few custom graphical applications talking directly to nitpicker, and came with support for Qt and libSDL. However, there was a missing link between the low-level nitpicker GUI server and the applications, namely a window manager and desktop environment. The open question was how to maintain the rigid security provided by nitpicker while also supporting sophisticated window management, visually appealing window decorations, and customizability.

The solution took the Genode team more than a year to fall into place. At its core, it is a clever combination of small components that use existing Genode interfaces and facilitate two features unique to Genode: the virtualization of arbitrary OS services and the sandboxing of each individual process. The solution that comes with the new release adds merely 3000 lines of code to the trusted computing base of graphical applications while enabling advanced dynamic GUIs. The complex parts of the GUI such as the rendering and behavior of window decorations and window-layout management are stuffed away in sandboxes so that those complex (and potentially bug-prone) parts cannot compromise the privacy of the user. In fact, the security of the GUI stack does not even depend on a correctly working C runtime. So its attack surface is orders of magnitude smaller compared with commodity OSes. Of course, the current version is just a step on the road towards an integrated desktop environment but now, in contrast to one year ago, the path to walk on is clear.

Besides addressing the GUI stack, the new release comes with an updated execution environment for device drivers of the Linux 3.14.5 kernel. Thanks to DDE Linux, Linux subsystems such as the TCP/IP stack and the USB stack can be executed directly on the microkernels supported by Genode. The primary motivation behind the update was ongoing work on bringing the Intel wireless stack to Genode.

Functionality-wise, the highlights of the new release are a new port of the OpenVPN client that can now be used as Genode component, added networking support for guest OSes running in VirtualBox on top of NOVA, the use of multiple processors by the Seoul virtual-machine monitor, and the addition of pluggable file systems. Those and many more topics are covered in the detailed release documentation.

MenuetOS 0.99.71 released

A new version of MenuetOS has been released.

Updates and improvements (httpc, ehci, picview, memcheck, menu, wallpaper, ohci, uhci, maps/streetview, icons, dhcp, freeform window, smp threads, smp init, onscreen keyboard, utf8 support, tcp/ip, keyboard layouts: western, cyrillic, hebrew, greek)

MenuetOS is open source (MIT) and written entirely in 32/64 bit assembly. It's important to note that development is focused entirely on the 64bit version.

NuttX becomes tickless

Some of the recent discussions on this forum regarding "Tickless OS" support NuttX inspired me. So I implemented it! It really was not that difficult... About a day and a half of work with only a few spills and chills.

I did all of the testing on the NuttX simulator using the OS test. I built in a simulated interval timer for the simulator and ran the OS test against the tickless OS support. The OS test is probably more exhaustive than what the typical application does so I am fairly confident in the implementation. Of course the simulator can miss certain classes of bugs.

NuttX is a 32bit embedded realtime operating system, licensed as open source under the BSD license.

Visopsys 0.74 released

Visopsys has seen a new release.

This maintenance release features enhanced internationalization support with Spanish and German translations, per-user settings, and extensive stability and performance improvements, most notably to the kernel memory, user input, disk I/O, and GUI subsystems.

More details can be found in the changelog.

LG webOS TV emulator

Ever wanted to try LG's webOS for smart televisions, but without buying an LG TV? Fret not, as LG has the answer for you - there's an emulator in the SDK. You can download the SDK from here, and opt to only install the emulator. This is clearly geared towards developers, so there's not a whole lot you can do once you load up the emulator (a VirtualBox image), but for those of you interested in webOS development this is very interesting.

KnightOS: alternative operating system for TI z80 calculators

KnightOS is a third-party Operating System for Texas Instruments z80 calculators. It offers many features over the stock OS, including multitasking and a tree-based filesystem, delivered in a Unix-like environment. KnightOS is written entirely in z80 assembly, with a purpose-built toolchain. Additionally, the KnightOS kernel is standalone, and you can use it as the basis for your own powerful operating systems.

Alternative for this alternative: GlassOS.

Original Galaxy Gear now being updated to Tizen

Samsung has begun rolling out an update to the Galaxy Gear that will bring over Tizen, the company's in-house OS, to the smartwatch. The update carries software version 2.2.0, and while the entire OS will be replaced, most users won't notice any visual differences. However, quite a few improvements and new features are to be had - improved performance and battery life, features such as an standalone music player (you can store music on the watch itself), customizable shortcuts for tap input, voice commands in the camera, among others.

I'm still waiting on the Tizen phones Samsung has been promising for years. Even though it's essentially 'TouchWiz OS' (in other words, cringe-worthy), it's still an alternative operating system I would love to play with.

Genode 14.05 with new ports management, block-level encryption

The just released Genode version 14.05 comes with new tools that greatly improve the interoperability of the framework with existing software. Together with a new process-local virtual file system embedded in the C runtime, this change should clear the way to scale Genode well beyond the current state. Besides these infrastructural changes, the release comes with a new block-level encryption facility, enables USB 3.0 on x86, introduces SMP support to the base-hw kernel, enables real-time scheduling on the NOVA hypervisor, and adds guest-addition support for VirtualBox on NOVA.

After the feature-rich release 14.02, the Genode developers took the chance to thoroughly revisit the tooling and overall structure of the framework. The goal was to improve its scalability with steadily growing amount of third-party software combined with the framework. Genode-based system scenarios combine the work of up to 70 open-source projects. However, until now, the framework lacked proper tools to manage such third-party code in a uniform way. In particular, upgrades of third-party software were poorly supported. To overcome those problems, the project took the wonderful Nix package manager as inspiration, created a set of new tools, and reworked the build system to make the porting and use of third-party software much more enjoyable and robust.

Most ported 3rd-party software relies on a C runtime. Genode offers a fairly complete libc based on FreeBSD's libc. However, translating the POSIX API to the Genode API is not straight forward. For example, Genode does not even have a central virtual file system service. Hence, different applications call for different ways of how POSIX calls are translated to the Genode world. Until now, the different use cases were accommodated by specially crafted libc plugins that tailored the behavior of the C runtime per application. However, as the number of applications grew, the number of libc plugins has grown too. In the new version, the framework consolidates the existing libc plugins to a generic virtual file system (VFS) implementation. In contrast to a traditional VFS that resides in the OS kernel, Genode's VFS is a plain library embedded in the C runtime. To the C program, it offers the view on a regular file system. But under the hood, it assembles the virtual file system out of Genode resources such as file-system sessions, terminal sessions, or block sessions. Since each process has its own VFS configured by its parent process, the access to resources can be tailored individually per process.

In addition to the infrastructural changes, the new version comes with plenty of platform-related improvements. Genode's custom kernel platform for ARM devices named base-hw has received multi-processor support and a new memory management that alleviates the need to maintain identity mappings in the kernel. The NOVA microhypervisor has been adapted to make static priority scheduling usable for Genode. Thereby the kernel becomes more attractive for general-purpose OS workloads on the x86 architecture. Also related to NOVA, the project has continued its line of work to run VirtualBox on this kernel by enabling support for guest-additions, namely shared folders, mouse-pointer synchronization, and real-time clock synchronization.

In line with the project's road map, the new version features a first solution for using encrypted block devices. The developers decided to use NetBSD's cryptographic device driver (CDG) as a Genode component. One motivation behind the use of CDG was to intensify the work with the rump kernel project, which allows the execution of NetBSD kernel subsystems at user level. After the project successfully used rump kernels as file-system providers with the previous release, extending the use of rump kernels for other purposes was simply intriguing.

These and more topics are covered in the comprehensive release documentation for Genode 14.05.

Clive: new operating system based on Plan 9 design

On May 23 Francisco J. Ballesteros announced a new operating system on the 9fans mailing list. Clive is influenced by the Nix (not to be confused with NixOS) and Plan 9 operating systems, featuring "zx" - a universal resource access protocol conceptually similar to Plan 9. The system is written in a modified version of the Go language.

More details are available in the design paper and in the manual.

The Arrakis research operating system

Arrakis is a research operating system from University of Washinton, built as a fork of Barrelfish.

In Arrakis, we ask the question whether we can remove the OS entirely from normal application execution. The OS only sets up the execution environment and interacts with an application in rare cases where resources need to be reallocated or name conflicts need to be resolved. The application gets the full power of the unmediated hardware, through an application-specific library linked into the application address space. This allows for unprecedented OS customizability, reliability and performance.

The first public version of Arrakis has been released recently, and the code is hosted on GitHub.

OSNews platform and browser statistics

It's been a while since we've done one of these, so here we go: some detailed platform and browser statistics for OSNews. They're collected using Google Analytics, between 12 April and 12 May. As always, these statistics are only relevant for OSNews, and can, in no way, be extrapolated to any other site.

Think OS: a brief introduction to operating systems

Think OS is an introduction to Operating Systems for programmers.

In many computer science programs, Operating Systems is an advanced topic. By the time students take it, they usually know how to program in C, and they have probably taken a class in Computer Architecture. Usually the goal of the class is to expose students to the design and implementation of operating systems, with the implied assumption that some of them will do research in this area, or write part of an OS.

This book is intended for a different audience, and it has different goals. I developed it for a class at Olin College called Software Systems.