OS News Archive
As a complete and utter juxtaposition to the usual tech stuff we quibble about here on OSNews, I stumbled upon this interesting video about Samuil, a man who, for the past 20 years, has been living in the middle of the Yakutia wilderness, the coldest place on earth with temperatures that go down to -71°. This is a story of Samuil. For the past 20 years, Samuil has chosen to live far away from civilization, together with bears and wolves, in one of the harshest environments on Earth. I’m not going to make some sort of philosophical statement about how this guy’s got it all figured out, and how we, with all our tech, are truly the ones living in the wilderness, because not only would that be incredibly pretentious, it would also be deeply untrue. I’m also not going to make some sort of smug remark about how the guy’s an idiot for living this way, because not only would that be an incredibly douchy thing to say, it would also also be deeply untrue. A few years ago I moved from the stable, predictable, mild, and gentle climate of the Dutch coast to the harsh, unpredictable, cold, and frozen climate of the north of Sweden, a short distance below the arctic circle. Summers here are short, Spring and Autumn last a few weeks, at best, and for the rest of the year, it’s Winter. Every Winter, temperatures drop to -30°, and most days it’ll hover between -5° and -25°. Adapting to this climate wasn’t easy, and the amount of planning even something as simple as walking to the grocery store can take when it’s -27° can be tiring and frustrating. That one time I brought my kid to preschool when it was -28° wasn’t exactly easy-going either. At those temperatures, breathing will slowly start to hurt, your nostrils take a massive beating, your eyes are painful, and your facial hair will freeze. Putting on the countless layers of clothing takes forever, and the temperature difference between outside and inside can feel like walking into a wall of ice or fire, respectively. Taking the car requires planning, as you need to plug it in the external heating system for at least two hours before you can use it, and of course, removing the ice and snow off a car in this kind of climate is basically hard labour. And yet, I love it here. Living in this kind of cold is exhilarating, and it makes you appreciate the comforts of a warm home and modern life much more than I did back in The Netherlands. The transformation from the lush green forests and scattered fields to white, frozen wonderland – and back again – never fails to give me that feeling that somehow we won, again. We survived another Winter. In the comforts of modern civilisation and really not all that dramatic, but still. I’m definitely not going to say that because of this, I understand Samuil at some deeper level, because I really don’t. The difference between my life and his is a million times bigger than the difference between my life in The Netherlands and my life in Sweden, and I wouldn’t survive more than one or two days in his Winter, and probably end up frozen in a ditch somewhere because I got lost, or mauled by a bear because I’m an idiot and didn’t see it. For people used to mild climates, it may seem like the difference between -30° or -35° is academic, but it really isn’t – once you hit temperatures like these, every single degree starts to matter, and one degree can mean the difference between “extremely cold, but manageable” and “good thing we only wanted two kids”. The temperatures Samuil experiences blow my mind. In the microcosm that is a site like OSNews, it’s easy to forget just how varied our world really is, but thanks to the same technology we report on, we can experience a slice of life of someone living on his own in the coldest wilderness on earth, and learn that he is not that different from us.
Confession time: I don’t fully understand how terminals, shells and SSH really work (and my guess is you don’t either). And I don’t mean the cryptography behind SSH. I mean how SSH and the terminal — and the shell for that matter — interact with one another. I recently realized that even though I’ve been daily remotely logging into Linux systems for all of my adult life (and type in the shell and Vim) I didn’t really grasp how these things actually work. I mean, it’s one of those things I kind of understand, but not completely. The author of the short linked post found four articles that detail all this stuff quite well, so go on over there and see just how well you really understood it.
We’ll start our conversation by saying that DOS/4GW is a DOS extender. That means DOS/4GW is a program responsible for adding some useful stuff on top of the vanilla DOS kernel you have installed on your system. And look, I know this does not really answer anything yet, but we’ll get there. Let’s begin our journey trying to understand why DOS needs extending in the first place. I definitely remember seeing DOS/4GW a lot when playing MS-DOS games back in the ’90s, but I had entirely forgotten about it. This article is from 2021, and explains what it is, and why it was needed.
The Zeal Operating System is a modernized, professional fork of the 64-bit Temple Operating System. Guiding principles of development include transparency, full user control, and adherence to public-domain/open-source implementations. ZealOS strives to be simple, documented, and require as little of a knowledge gap as possible. One person should be able to comprehend the entire system in at least a semi-detailed way within a few days of study. Simplify, don’t complicate; make accessible, don’t obfuscate. Yes, somebody picked up Terry Davis‘ baton and ran with it. This makes me happy – it seemed wrong for TempleOS to remain but an inanimate memorial.
RustyHermit is a unikernel targeting a scalable and predictable runtime for high-performance and cloud computing. Unikernel means, you bundle your application directly with the kernel library, so that it can run without any installed operating system. This reduces overhead, therefore, interesting applications include virtual machines and high-performance computing. The kernel is able to run Rust applications, as well as C/C++/Go/Fortran applications. Exactly as it says on the tin.
Arcan, the unique development framework for user interfaces that’s exploring a ton of new and different ideas, has released a new project – Lash#Cat9, a new command line shell. A guiding principle is the role of the textual shell as a frontend instead of a clunky programming environment. The shell presents a user-facing, interactive interface to make other complex tools more approachable or to glue them together into a more advanced weapon. Cat9 is entirely written in Lua, so scripting in it is a given, but also relatively uninteresting as a feature — there are better languages around for systems programming, and better UI paradigms for automating work flows. Another is that of delegation – textual shells naturally evolved without assuming a graphical one being present. That is rarely the case today, yet the language for sharing between the two is unrefined, crude and fragile. The graphical shell is infinitely more capable of decorating and managing windows, animating transitions, routing inputs and tuning pixels for specific displays. It should naturally be in charge of such actions. Another is to make experience self documenting – that the emergent patterns on how your use of command line processing gets extracted and remembered in a form where re-use becomes natural. Primitive forms of this are completions from command history and aliases, but there is much more to be done here. I’m not a heavy shell user, so I’m not going to make any subjective statements here. It at least seems remarkably interesting, and I’m sure there’s quite a few among us who would love to play with this.
Sculpt OS 22.10 is a maintenance release of our Genode-based general-purpose OS. It imposes a new rigid regime to the management of low-level devices, improves USB hotplug support, and comes with numerous performance optimizations. I should really find the time to sit down with Sculpt.
Well hello friends! Today we celebrate the 4th birthday of SerenityOS, counting from the first commit to the repository, on October 10th, 2018. What follows is a selection of random highlights from the past year, mixed with personal reflections from some of the SerenityOS developers. Just sit down, relax, take a deep breath, forget your day’s troubles, and enjoy a rundown of some of the awesome work being done in the SerenityOS community. There’s few communities that seem so welcoming, friendly, and active like the SerenityOS one, and even reading through this year’s milestones just feels good.
Samsung Electronics today announced a partnership with leading international ODM (Original Development Manufacturing) companies such as Atmaca, HKC and Tempo — a collaboration that will enable non-Samsung smart TV models to use Tizen OS for the first time. New TVs from Bauhn, Linsar, Sunny, Vispera and other brands will be available in Australia, Italy, New Zealand, Spain, Türkiye and the United Kingdom this year, allowing more consumers to enjoy a premium smart TV experience enabled by Tizen, an open source OS for Samsung Smart TV. Tizen was, at one point, going to kill Android.
The overarching theme of Genode 22.08 is the emerging phone variant of Sculpt OS, touching topics as diverse as USB ECM, Mali-400 GPU, SD-card access, telephony, mobile-data connectivity, the Morph web browser, and a custom user interface. Among the further highlights are new tracing tools, improved network performance USB smart-card support, and VirtIO drivers for RISC-V. Genode never fails to impress.
We have ended up in a world where UNIX and Windows have taken over, and most people have never experienced anything else. Over the years, though, many other system designs have come and gone, and some of those systems have had neat ideas that were nevertheless not enough to achieve commercial success. We will take you on a tour of a variety of those systems, talking about what makes them special. In particular, we’ll discuss IBM i, with emphasis on the Single Level Store, TIMI, and block terminals Interlisp, the Lisp Machine with the interface of Smalltalk OpenGenera, with a unique approach to UI design TRON, Japan’s ambitious OS standard. This is an hour-long watch, but I’m getting some coffee and snacks ready this weekend. This seems like total OSNews bait.
Functionality-wise, the added support for WireGuard-based virtual private networks is certainly the flagship feature of the release. Section WireGuard briefly introduces the new component while leaving in-depth information to a dedicated article. Among the other topics of the release, our continued work on device drivers stands out. We managed to bring Genode’s lineup of PC drivers ported from the Linux kernel up to the kernel version 5.14.21 using Genode’s unique DDE-Linux porting approach. As described by Section New generation of DDE-Linux-based PC drivers, this work comprises complex drivers like the wireless LAN stack including Intel’s Wifi driver and the latest Intel display driver. At the framework’s side, the modernization of Genode’s platform driver for PC hardware is in full swing. Even though not yet used by default, the new driver has reached feature parity with the original PC-specific platform driver while sharing much of its code base with the growing number of ARM platform drivers such as the FPGA-aware platform-driver for Xilinx Zynq (Section Xilinx Zynq). Excellent progress, and as always, exquisite release notes.
We are excited to announce the availability of VSI OpenVMS E9.2 for x86-64, field test version of the upcoming V9.2 release. This is the next step in the journey to migrate OpenVMS to the x86-64 platform. The E9.2 release allows you to use the operating system with some of the most commonly-used hypervisors and includes a host of newly migrated applications. VSI has been porting OpenVMS to x86-64 for a while now, and it seems they’re getting quite close to general availability. E9.2 is focused on x86 hypervisors, and the porting effort as a whole should provide a future upgrade path for VMS users for a long time to come.
Sculpt OS version 22.04 introduces the concept of service-level sandboxing and features completely new drivers for wireless, graphics, and USB. On the user-visible surface, the new version of Sculpt OS looks and feels familiar to users of the previous version. Under the hood, however, at the nitty-gritty hardware-support level, it features completely revamped device drivers for Intel wireless, Intel graphics, and USB. Get Sculpt OS’ latest release from the download page, and be sure to read the documentation for more detailed information.
Known as right angle with downwards zigzag arrow, angle with down zig-zag arrow, \rangledownzigzagarrow, and ⍼, no one knows what ⍼ is meant to represent or where it originated from. Section 22.7 Technical Symbols from the Unicode Standard on the Miscellaneous Technical block doesn’t say anything about it. Who doesn’t love a good what-the-hell-is-this-glyph story?
Believe it or not, not everything is based on C. There are current, shipping, commercial OSes written before C was invented, and now others in both newer and older languages that don’t involve C at any level or layer. There’s tons of examples.
The 22.02 release is dominated by three topics, the tightening and restructuring of the code base, device-driver infrastructure, and the transition of Sculpt OS towards a versatile toolkit for building specialized operating-system appliances. Genode’s release notes are always a sight to behold. Detailed, interesting, and always worth a read.
Neptune OS is a Windows NT personality of the seL4 microkernel. It implements what Microsoft calls the “NT Executive”, the upper layer of the Windows kernel NTOSKRNL.EXE, as a user process under the seL4 microkernel. The NT Executive implements the so-called NT Native API, the native system call interface of Windows upon which the more familiar Win32 API is built. These are exposed to the user mode via stub functions in NTDLL.DLL (a somewhat redundant name if you ask me) with names such as NtCreateProcess. The NT Executive is also responsible for the Windows kernel driver interface (known as the Windows driver model), which includes functions like IoConnectInterrupt and IoCallDriver. On Windows these are loaded into kernel mode and linked with the NTOSKRNL.EXE image. On Neptune OS, we run all the Windows kernel driver in user mode and they communicate with the NT Executive process via standard seL4 IPC primitives. The eventual goal of the Neptune OS project is to implement enough NT semantics such that a ReactOS user land can be ported under Neptune OS, as well as most ReactOS kernel drivers. In theory we should be able to achieve binary compatibility with native Windows executables provided that our implementation of the NT Native API is sufficiently faithful. We should also be able to achieve a high degree of source code compatibility with Windows kernel drivers. The main obstacle of achieving binary compatibility of kernel drivers is that many Windows kernel drivers do not follow the standard Windows driver communication protocol (ie. passing IRPs when you need to call another driver) and instead just pass pointers around and call into other drivers directly. In Neptune OS unless it’s a driver-minidriver pair we always run “kernel” drivers in their separate processes so it is not possible to do that. Very cool idea for a project, and awesome to see that they plan on integrating the work done by the ReactOS team.
A few years ago, I got the crazy idea to try porting the Commodore 64 KERNAL and BASIC ROMs to the NES, since their CPUs are mostly the same. But I gave up when things got complicated with the PPU. Then a couple weeks ago, I saw that someone ported it to the Atari 1200XL, so I decided I’d give it another shot. This time, I was able to make a (mostly) working system. Quite impressive.
GNU/Hurd is the original Free Software operating system started in the 1980s. Its microkernel design has been evolving over the years and the project has not quite hit mainstream use. I believe this is due to one main reason: the lack of drivers for peripherals and hardware. In this talk, I explain how NetBSD kernel drivers have been reused in a microkernel setting and demonstrate their use to boot up a GNU/Hurd system via a userspace rump disk driver, with a driverless Hurd kernel, gnumach. The ACPI management, PCI management, and actual driver are in separate processes with RPC interfaces between them, which separates out their debugging, licencing concerns and execution. Hurd is a neverending story, derailed by the massive popularity and uptake of the Linux kernel as the de facto standard kernel for the GNU project. I’d love for it to become more competitive, but the situation isn’t exactly looking great.