Archive

HP 9000 and PA-RISC computers story

The HP 9000 Series of computers spanned almost three decades and very diverse platforms of Unix computers. Both RISC and Unix, with a longer history, were developed into coherent products during the 1980s, moving from academia via industrial R&D to productization at a time when much computing was still done on mainframes, minicomputers and time-sharing machines such as DEC PDP, VAX, IBM AS/400 and System/360.

Paul Weissmann tells the story of the development and history of the HP9000.

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.

Programming AmigaOS 4

Amiga Future has published the first 5 parts of a series of AmigaOS 4 programming tutorials online (Part 1, Part 2, Part 3, Part 4, and Part 5).

We were shocked when we realised that while we've covered several subjects in programming for AmigaOS 4 in Amiga Future there's been no extensive coverage of all of the many aspects. Additionally, since the release of OS4, quite a lot of time has passed by, and during that time new programming treasures have sneaked into the SDK virtually unnoticed. It's been nine years since the authors did a similar series in "Amiga Magazin". So, we're launching a new 15-part series starting with a short peek at the SDK and the available development environments.

Arcan 0.5.4, Durden 0.4 released

Ending the year a new release of the "desktop engine" Arcan and its reference desktop environment, Durden.

Arcan is a different take on how to glue the user-experience side of operating systems together. It has been in development for well over a decade, with the modest goals of providing a more secure, faster, safer and flexible alternative to both Xorg and terminal emulators, as well as encouraging research.

The latest release improves on areas such as crash resilience, wayland client support, VR devices, OpenBSD support and visual goodies. You can read through the full release post, with some of the more technical bits in the related articles about crash-resilient Wayland compositing and "AWK" for multimedia.

Ubuntu 17.10: return of the GNOME

Ars Technica once again provides us with an in-depth Ubuntu review:

If you've been following the Linux world at all, you know this has been an entire year for spring cleaning. Early in 2017, Canonical stopped work on its homegrown Unity desktop, Mir display server, and its larger vision of 'convergence' - a unified interface for Ubuntu for phones, tablets, and desktops.

And now almost exactly six years after Ubuntu first switched from GNOME 2 to the Unity desktop, that has been dropped, too. The distro is back to GNOME, and Canonical recently released Ubuntu 17.10, a major update with some significant changes coming to the popular Ubuntu Linux operating system.

In light of the GNOME switch, this release seems like more of a homecoming than an entirely new voyage. But that said, Ubuntu 17.10 simultaneously feels very much like the start of a new voyage for Ubuntu.

A history of the Amiga, part 11: between an Escom and a Gateway

Ars Technica has released another excellent article in their series on the Amiga. This article covers the beginning of the post-Commodore world, starting with Escom and ending with the beginning of Amiga Inc.

Commodore International declared itself insolvent on April 29, 1994 under Chapter 7 of US bankruptcy law. Ordinarily, this would have been followed immediately by an auction of all the company’s assets. However, Commodore’s Byzantine organizational structure - designed to serve as a tax shelter for financier Irving Gould - made this process far more lengthy and complicated than it should have been.

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.

TwinKick: dual Kickstart boot via floppy for Amiga 1000

A "new" piece of software, quietly created 15 years ago, that allows Amiga 1000 users to load their Kickstart 1.3 or 3.1 (or "morph" between the two on a soft reset after loading 3.1) off a single disk has been discovered. The software is called TwinKick and is downloadable via Aminet. The linked post includes detailed instructions on how to create this disk.

Being able to switch between the two Kickstarts is pretty incredible. Although seeing 3.1 load onto a Amiga 1000 - off a floppy - is pretty mind blowing by itself.

FreeBSD quarterly status report Q2 2017

Much of the development work done this quarter was not particularly visible, especially the effort needed to ensure the upcoming 11.1 release has as few regressions as possible. Planning is also well under way for the 10.4 maintenance release which will quickly follow it.

Further work focused on moving the arm architectures' support closer to tier-1 status and improving documentation. In addition, large changes were made to the src and ports trees.

Arcan 0.5.3, Durden 0.3 released

Once again there's been a release of the "game engine meets display server meets multimedia framework" project, Arcan, and of its reference desktop environment Durden.

Among the many new engine feature this time around, we find: improved crash recovery, much improved support for Wayland clients, and initial support for OpenBSD. Among the DE features, we find window slicing and overlays, input multicasting, and LED controller profiles.

Refer to the full release announcement for more details and videos.

Genode 17.08 supports Intel Gen-8 GPUs

With version 17.08, the Genode OS project conquers the highly complex topic of hardware-accelerated graphics. In true microkernel fashion, Genode's new Intel-GPU multiplexer provides the bare minimum of functionality to enable (potentially untrusted) components to use the GPU without interfering with each other. Further highlights of the new release are the broadened support for the seL4 microkernel on ARM and 64-bit x86, the ability to boot via UEFI, and Genode's use as Xen DomU domain.

Seven years ago, the Genode developers took their first baby steps with the use of hardware-accelerated graphics. However, their original port of the Intel graphics execution manager along with Mesa/Gallium to the Genode user land never outgrew an experimental stage. One particular limitation was that the GPU could only be used by a single application exclusively. At that time, the secure sharing of GPUs among multiple - and potentially malicious - applications was an afterthought in the predominant driver architectures like Linux' DRI. A port of this driver architecture to Genode would not magically solve that.

In the meanwhile, hardware features like per-process graphics translation tables (PPGTT) and hardware contexts have proliferated and are now present in all modern Intel GPUs. What MMU-based virtual memory is to a CPU, these features are to a GPU. They in principle allow the sandboxed execution of GPU commands under the regime of a potentially very small GPU driver, analogously to how a microkernel facilitates an MMU to sandbox user-level components. However, with about 100K lines of code, Intel's official i915 driver stack as used in the Linux kernel is far from being small and simple. To put the number in perspective, modern microkernels like seL4 or NOVA consist of merely 10K lines of code. Inflating Genode's trusted computing base by on order of magnitude would be a tough decision. There had to be another way. Hence, one year ago, an experiment was started to develop a clean-slate GPU multiplexer as a Genode component. In contrast to the i915 driver stack that needs to accommodate a mind boggling number of legacy hardware that is still in broad use, Genode's custom GPU multiplexer could do a clear cut by only supporting very recent GPUs. The result is quite reassuring. At far less than 10K of code, Genode's new user-land GPU multiplexer is able to accommodate trusted and untrusted OpenGL applications side by side. The current release features the first version of this component along with several examples.

Besides the GPU topic, the new release comes with numerous other improvements. Most noteworthy is the ability to use Genode with the seL4 kernel on the ARM and 64-bit x86 architectures. The upgraded seL4 support also enables SMP on x86, priorities, and Genode's CPU-monitoring facilities. Following up on the big infrastructural changes of the previous releases, the current release comes with gradual refinements of the VFS infrastructure, the timing accuracy, and the package-management tools. The complete picture is presented in the official release documentation.

A2osX: multitasking operating system for the Apple IIe

A2osX is a cooperative, event-driven multitasking kernel (meaning it is applications that are responsible to give back control to kernel). Its principal goal is to collect all "genius" 65c02 pieces of code ever written here and there, concentrated in the same environment (including IP Stack & HTTPD/TELNETD..., GUI & graphical tools...). "Complete working place", no needing any more to reboot to switch between tons of diskettes!

A2osX is designed to work on any "stock" 128k Apple //e, with no additional hardware.

The Apple II turned 40 this year and it still has a lot of life left in it.

Malware uses Intel CPU feature to steal data

Microsoft's security team has come across a malware family that uses Intel's Active Management Technology (AMT) Serial-over-LAN (SOL) interface as a file transfer tool.

Because of the way the Intel AMT SOL technology works, SOL traffic bypasses the local computer's networking stack, so local firewalls or security products won't be able to detect or block the malware while it's exfiltrating data from infected hosts.

Genode 17.05 introduces package management

With the new version 17.05, the Genode project moves forward to the goal of becoming more attractive and approachable to a wider audience. On the one hand, the release promises to be a sustainable basis for longer-term projects. With a modern tool chain based on GCC 6.3, Qt 5.8, VirtualBox 5.2.11, and the framework's finished API modernization, the foreseeable future will be free of disruptions for users. On the other hand, Genode introduced a new approach and tooling for package management to relieve users from low-level technicalities.

Modern operating systems are unthinkable without a package-management solution for installing and updating software. Until now, however, Genode's work flows were primarily geared towards appliance-like systems that come in the shape of system images. Even though the Genode developers managed to build a day-to-day usable OS (called "Turmvilla") for their own use on that basis, there is a natural limit of how scalable such systems can be. Even for the developers, installing and updating such a system is a burden. Instead up building and installing a new system image on each update, users universally expect to install software from ready-to-use packages, and to update and configure the system in parts instead of a whole.

The discussion of suitable package-management approaches for Genode reaches several years back. The first step in this direction were custom tools for managing and integrating 3rd-party source code with the framework. But there was no notion of pre-built and easy-to-install packages, nor even a tangible idea of what a package in the context of Genode should represent. During a long period of experimentation, the developers encountered and fell in love with the Nix package manager. This encounter was followed by porting work, mind-bending architectural discussions, and a series of prototype scenarios. However, while those prototypes were technically sophisticated and interesting playgrounds, they were also complicated. A real-world solution remained cloudy.

At one time, it became clear that the universal notions of "software packages" and the role of a package manager made things more complicated than they should be. After all, Nix is designed for Unix-like systems with its existing ecosystem of libraries, build tools, conventions, and methodologies. In contrast, Genode opens up unique opportunities for simplification thanks to its breath of scope that covers the entire software stack including the build system, tool chain, the ABI and API design, the inter-component protocols, the dynamic linker, the system configuration, and the execution runtime. By taking a step back and soul-searching for the actual problem to solve, a strikingly simple new approach emerged. It is undeniably inspired by the virtues of Nix. But it leverages Genode in ways that wouldn't be possible with a ported version of Nix. For example, it facilitates Genode's notion of library ABIs to largely decouple libraries from applications and thereby completely eliminates transitive build-time dependencies. Or as another example, by introducing sensible categories of packaged content, the need for a package description language disappeared.

Genode's release 17.05 contains the new packaging tools. Even though they are still labeled as experimental, the release comes with several examples of modest system scenarios based on them. Other prominent news are a feature-complete version of VirtualBox 5 for the NOVA microkernel, the update of Qt to version 5.8, added support for the Nim programming language, a new tool chain based on GCC 6.3 including Ada support, new tools for monitoring network traffic and CPU load, greatly enhanced flexibility of the init component, and a brand new timeout API. All these topics are covered in detail by the release documentation.

Arcan 0.5.2 released

OSNews covered the One night in Prio article, and now a new version of its umbrella project, Arcan, has been released (which only happens two or three times a year). The actual details are covered in the release post.

So, what is Arcan?

Arcan is a powerful development framework for creating virtually anything between user interfaces for specialised embedded applications all the way to full-blown standalone desktop environments.

At its heart lies a robust and portable multimedia engine, with a well-tested and well-documented interface, programmable in Lua. At every step of the way, the underlying development emphasises security, performance and debugability guided by a principle of least surprise in terms of API design.

ArcaOS 5.0 released

ArcaOS 5.0 has been released and it is available to be bought at the Arca Noae shop page. It is based on OS/2 Warp 4.52 binaries, and contains newer drivers for ACPI, USB, and networking, a new installer and several open source software projects such as Firefox, Qt, Libc, and OpenOffice.

The OS2World Community also posted a statement with important OS/2 community links and some remarks on the important role open source software has in the OS/2 community.

Linux 4.11 released

Linux 4.11 has been released. This release adds support for pluggable IO schedulers framework in the multiqueue block layer, journalling support in the MD RAID5 implementation that closes the write hole, a more scalable swapping implementation for swap placed in SSDs, a new statx() system call that solves the deficiencies of the existing stat(), a new perf ftrace tool that acts as a frontend for the ftrace interface, support for drives that implement the OPAL Storage Specification, support for the Shared Memory Communications-RDMA protocol as defined in RFC7609, persistent scrollback buffers for all VGA consoles, and many other improvements and new drivers. Here is the full list of changes.

Making music on the Amiga today

The Amiga has what is with no doubt in my mind, the absolute finest sound chip inside of any computer or console throughout the 1980's as well as most, if not all of the 1990's. Full disclosure; I have an MT-32... And the Amiga can actually do a piano. Yes, in a time when the vast majority of IBM and compatible PC owners were using a small speaker stuck deep inside of a metal tomb, Amiga users had a quality of sound nobody else could touch for that price.

To combat the story that has long been shaped that the Amiga was not popular to musicians because it did not have built in MIDI connectors I give you this quote given directly to me from the creator of the sequencing program Music-X, Talin:

"The story with MIDI is actually much more complex than most people realize. You see, the early Amiga models had a hardware bug which made the serial port unreliable at high data rates. Basically the problem was that the serial port hardware had only a one-byte buffer, and if you didn't grab that byte before the next byte came in then data would be lost. Unfortunately, the Amiga's four timer chips would generate a software interrupt at regular intervals, during which time the serial port could not be serviced. And while MIDI speed wasn't super-high, it was high enough that you'd get a dropped byte every 10 minutes or so depending on how many notes you were sending over. Note that this did not affect the higher-end MIDI adapters which had their own dedicated serial point, but those were considerably more expensive."

Interesting article about past MIDI challenges with the Amiga and how to hook up a modern synth to an Amiga to make music.