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

OS News Archive

Genode 14.11 features the Intel wireless stack

The just released version 14.11 of the Genode OS framework complements the framework's arsenal of device drivers with the Intel wireless stack. This way, Genode enables the realization of microkernel-based systems on modern laptops without relying on any kind of "device-driver OS" or "Dom0". Other highlights of the release are a new dynamic linker, VirtualBox 4.3.16 on the NOVA hypervisor, a new scheduler for the HW kernel, and networking for the Raspberry Pi.

WiFi stacks are known to be extremely complex. In the Linux kernel, it is certainly one of the most sophisticated driver subsystems besides GPU drivers. From the perspective of an alternative OS, it is quite frightening. On the other hand, WiFi is an universally required feature for a general-purpose OS by today's standards. Therefore, the Genode project had to face the issue to enable a full WiFi stack on top of the framework sooner or later. In spring this year, the Genode team finally took on the engineering feat to transplant the Intel wireless stack from Linux to a user-level component on Genode. This line of work was more demanding than originally anticipated. The biggest hurdle was to get a grasp on the interactions between the various involved protocols and mechanisms such as mac80211, cfg80211, nl80211, the netlink API, AF_NETLINK, and the WPA supplicant. The actual porting work followed the approach of prior porting efforts like the Linux USB and TCP/IP subsystems. All Linux kernel threads are executed by a single user-level thread that cooperatively schedules each kernel thread as a light-weight execution context. Compared to the prior porting efforts, the driver environment for the WiFi stack is far more complex. About 8,500 lines of environment code had to be provided to bring the 215,000 lines of WiFi stack to life. However, almost no original code had to be changed, which will make future updates relatively easy.

From its very beginning, Genode was designed to manage resources via a trading mechanism. For example, when a client component connects to a server component, it can provide a part of its own memory budget to the server. This way, the server does not need to perform allocations from its own resources on behalf of its client, which mitigates the risk for denial-of-service attacks driven by malicious clients. This scheme works well for memory but it had not been employed for CPU time, yet. The reason was the lack of the scheduling facilities offered by the kernels supported by Genode. However, with their custom kernel called "base-hw", the Genode developers were finally able to pursue this idea. The outcome of this line of work is featured in the new release.

Besides the WiFi stack and the new scheduler, Genode 14.11 comes with an upgrade of VirtualBox to version 4.3.16 that can be executed directly on the NOVA microhypervisor, a new dynamic linker, added GUI components, and networking support for the Raspberry Pi. The full story behind all those topics is covered by the release documentation.

God’s lonely programmer

TempleOS is more than an exercise in retro computing, or a hobbyist's space for programming close to the bare metal. It's the brainchild - perhaps the life's work - of 44-year-old Terry Davis, the founder and sole employee of Trivial Solutions. For more than a decade Davis has worked on it; today, TempleOS is 121,176 lines of code, which puts it on par with Photoshop 1.0. (By comparison, Windows 7, a full-fledged modern operating system designed to be everything to everyone, filled with decades of cruft, is ​about 40 million lines.)

If you read just one article today, make sure it's this one.

Arrakis: the operating system is the control plane

Recent device hardware trends enable a new approach to the design of network server operating systems. In a traditional operating system, the kernel mediates access to device hardware by server applications, to enforce process isolation as well as network and disk security.We have designed and implemented a new operating system, Arrakis, that splits the traditional role of the kernel in two. Applications have direct access to virtualized I/O devices, allowing most I/O operations to skip the kernel entirely, while the kernel is re-engineered to provide network and disk protection without kernel mediation of every operation.We describe the hardware and software changes needed to take advantage of this new abstraction, and we illustrate its power by showing improvements of 2-5 in latency and 9 in throughput for a popular persistent NoSQL store relative to a well-tuned Linux implementation.

This is a very detailed description of this project in the form of a proper scientific publication, and is part of the Proceedings of the 11th USENIX Symposium on Operating Systems Design and Implementation, accompanied by a presentation. You may want to grab something to drink.

A Love Letter to Obsolete OSes and Emulation

The death of an old friend sent Paul Ford on a bender; emulating old hardware to run familiar obsolete operating systems and software, and remembering 1980s and 1990s computing culture in about the most OSNews-bait article I've ever read. It's a wonderful read, with all your old favorites: Commodore Amiga, dial-up BBSes, Xerox Alto, MacOS 6, Smalltalk-80, Plan 9, LISP, Windows 3.1, NeXT OpenStep. Nostalgic and heartwarming.

Amiga fun with IcAROS Desktop 2.0

The highly anticipated version 2.0 of AROS distribution Icaros Desktop is now available for download. AROS is now an almost-20-years old open source attempt to rewrite the original AmigaOS 3.x operating system from Commodore, starting with its API documentation. Icaros Desktop extends AROS features with many 3rd party programs and libraries, providing a full preconfigured environment to allow modern tasks. In this new version, which has been released 2 years after the latest one, AROS' Workbench clone "Wanderer" can be replaced by x86-native port of DirectoryOpus 5 Magellan, which has been configured to act like a modern GUI, old Amiga programs can run in a more polished emulation layer (AmiBridge) which does not require original Amiga ROMs and Operating System, and whole AROS system files have been replaced with a newer branch, which also includes a new, faster and more reliable TLSF memory manager. For full size screenshots and downloads, you can follow this link.

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.