Archive

PC/GEOS source code released under Apache 2.0 license

Blueway Software Works (who purchased the intellectual property rights to PC/GEOS from the estate of Frank Fischer of Breadbox when he passed away) seems to have published the source code for PC/GEOS on their GitHub repository.

This repository is the official place to hold all the source code around the PC/GEOS graphical user interface and its sophisticated applications. It is the source to build SDK and release version of PC/GEOS. It is the place to collaborate on further developments.

While I can't ascertain the exact version that they have published, it looks like it contains all of the UI options/themes provided in Ensemble 2.0 onwards (i.e. Motif, OS/2 2.0 PM and Windows 95). It also looks like they have published the source code for all of the Breadbox titles (extra games and so on) that were sold separately. By the looks of it, they are also re-factoring the source to allow it to be compiled on Windows and Linux with more modern toolchains.

Linux 4.19 released

Linux 4.19 has been released. This release adds support for the CAKE network queue management to fight bufferbloat, support for guaranteeing minimum I/O latency targets for cgroups, experimental support for the future Wi-Fi 6 (802.11ax-drafts), memory usage for overlayfs users has been improved, a experimental EROFS file system optimized for read-only use, a new asynchronous I/O polling interface, support for avoiding unintentional writes to an attacker-controlled FIFO or regular files in world writable sticky directories, support for a Intel feature that locks part of the CPU cache for an application, and many other improvements and new drivers. For more details, see the complete changelog.

High-res graphics on a text-only TRS-80

From the Byte Cellar:

What inspired me to pull the Model 4 down off the shelf were a number of tweets from telnet BBS pals showing the system being put to great use logged into various systems across the web. Some of the screenshots showed the machine rendering ANSI "graphics" onscreen and I looked into it. As I suspected, the stock Model 4 is not capable of taking on a custom character set such as is needed by ANSI emulation, and I discovered the system had been equipped with a graphics board and the ANSI-supporting terminal program, ANSITerm, was rendering "text" to a graphics display; the character set was basically a software font.

And I just had to go there.

Arcan versus Xorg: approaching feature parity

Arcan is a display server++ project that has been mentioned on OSAlert a few times before. Arcan's developers recently posted an in-depth comparison of Arcan to Xorg - claiming to soon be not only at feature parity but beyond it.

It is worthwhile to stress that this project in no way attempts to 'replace' Xorg in the sense that you can expect to transfer your individual workflow and mental model of how system graphics works without any kind of friction or effort. That said, it has also been an unspoken goal to make sure that everything that can be done in an Xorg environment should be possible here - in general there is nothing wrong with the feature set in X (though a bit limited), it is the nitty gritty details of how these features work, are implemented and interact that has not really kept up with the times or been modelled in a coherent way. Thus, it is a decent requirement specification to start with - just be careful with the implementation and much more can be had to a fraction of the code size.

A fascinating read if you are familiar with some of the technical difficulties here.

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.

ArcaOS 5.0.3 released

The OS/2-derived ArcaOS is now up to version 5.0.3. This latest release appears to be mainly bug fixes and hardware compatibility enhancements.

ArcaOS 5.0.3 is (again) the result of many hours of collaborative work to keep up-to-date and to further refine ArcaOS 5.0. Post-install fixes are included, and these will be made available for separate download as part of the ArcaOS 5.0 Support & Maintenance subscription. In the interim, a full download of the refreshed media image is required to obtain all of these fixes and updates.

ArcaOS 5.0.3 includes over 40 updates and fixes since 5.0.2. The USB stick image package (available as a separate download for ArcaOS licensees with current support and maintenance subscription) has also been updated to incorporate the latest changes in ArcaOS 5.0.3.

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.

Classic Amiga assembler tutorial

If you want to write Assembly programs for the Amiga you can either work directly on a real system or use a cross-compiler. I prefer to work on my Linux system because, as much as I like retro architectures, I also like the power of a good Unix system and a modern editor.

Cross-compiling is a very simple concept: instead of compiling source code and creating binaries for the architecture you are running the compiler on, you create binaries for a different architecture. In this case the host architecture is Linux/amd64 and the target architecture is Amiga.

As this is not the only project I am following at the moment, I created a directory to host everything I need for the Amiga development: compiler, documentation, scripts.

Exploring assembly on the Amiga, part 1, part 2, and part 3.

Porting guide from Qt 1.0 to 5.11

Now that Qt 5.11 is released, it is finally time to upgrade the last Qt 1.0 applications out there... No, not really. I want to take a look at how well we have kept compatibility in Qt over the years since the first official release.

Qt guarantees source and binary compatibility between minor releases, and we take that seriously. Making sure that you don't have to rewrite (or even recompile) your application when you upgrade to a newer version of Qt is important to us. However, there are times when we need to make bigger changes in order to keep Qt up to date. This is done in major releases. Since the release of Qt 1.0 in 1996 (almost twenty-two years ago), we have broken source compatibility four times: in 2.0, 3.0, 4.0 (some of you may remember that as a painful transition), and 5.0.

We do try to keep breakages to a minimum, even in the major releases, but the changes do add up. This raises the question: How hard would it be to port a Qt application from Qt 1.0 to 5.11?

Not only an interesting look at Qt history, but also a look back on mid 90s C++, and what has and hasn't changed.

C is not a low-level language

In the wake of the recent Meltdown and Spectre vulnerabilities, it's worth spending some time looking at root causes. Both of these vulnerabilities involved processors speculatively executing instructions past some kind of access check and allowing the attacker to observe the results via a side channel. The features that led to these vulnerabilities, along with several others, were added to let C programmers continue to believe they were programming in a low-level language, when this hasn't been the case for decades.

Processor vendors are not alone in this. Those of us working on C/C++ compilers have also participated.

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.

Microsoft to bring Unix/macOS line ending support to Notepad

After decades of mangling text files coming from other operating systems. Microsoft's venerable Notepad.exe, which has been included in every version of Windows since the first, is finally getting support for Unix and macOS line endings.

Notepad, being a Windows application, has always demanded the CRLF pair. When faced with Unix files - quite common for source code and similar things - it sees the bare-naked LFs and prints them as black squares. Because it doesn't start a new line when faced with a naked LF, it shows the entire contents of the file as a single lengthy line, which makes it hard to read, much less edit.

But in the next update to Windows (likely to arrive in October or thereabouts), Notepad will handle Unix and classic MacOS line endings in addition to the Windows kind. This will make the editor much more useful than it currently is.

Support is somewhat limited - while it will correctly open files with alternate line endings, and will save the files correctly in their original format, you cannot create new text files and save them with Unix or MacOS line endings - Notepad will always save new files with the CRLF style used in Windows.

And, in true Microsoft function, Notepad provides a registry switch if you want to disable the new functionality for compatibility reasons, which only confirms the idea that there is an XKCD comic for everything.

Microsoft’s bid to secure the IoT: custom Linux, chips, Azure

Microsoft has released details on Azure Sphere, their bid to make IoT devices secure by default:

First is a new class of microcontrollers (MCUs) that supports seven critical hardware features that Microsoft says are a necessary foundation to build secure systems. These include support for unforgeable encryption keys protected by hardware, the ability to update system software, and hardware-enforced compartmentalization between software components. Microsoft has some track record in building such systems, in particular with the Xbox, which is designed to have tamper-proof hardware that's securely updatable.

Second is a new operating system: Azure Sphere OS. The company says this OS combines a custom Linux kernel with Windows-inspired security features, providing a secure platform that scales down to smaller systems than Windows can reach. Application code is run within containers to provide isolation, and Microsoft will have a custom security monitor running beneath the Linux kernel to protect system integrity and arbitrate access to critical resources.

The third part is Azure Sphere Security Service, a cloud service that will detect security issues (by recognizing failures and errors on devices), act as a source of software updates, and mediate secure communications between devices and to the cloud.

The Microsoft-made microcontroller designs will be available to manufacturers under royalty-free licenses.

Additionally, the big news is Microsoft's own Linux distribution, a first for the company. They do have a custom Linux build they us in-house for Azure's networking stack, but that isn't available outside of the company.