OS News Archive
MicroPythonOS is a lightweight, fast, and versatile operating system designed to run on microcontrollers like the ESP32 and desktop systems. With a modern Android-like touch screen UI, App Store, and Over-The-Air updates, it’s the perfect OS for innovators and developers. ↫ MicroPytonOS’ website It’s quite neat to see this running in such a constrained environment, especially considering it comes with a graphical user interface, some basic applications, and niceties like OTA updates and an application repository. As the name implies, MicroPythonOS uses native MicroPython for application and driver development, making cross-platform portability from microcontrollers to regular PCs a possibility. It’s built on the MicroPython runtime, with LVGL for graphics, packaged by the lvgl_micropython project. It’s still relatively early in development, but it’s completely open source so anyone can help out and improve the project. I’m personally not too well-versed in the world of microcontrollers like the popular ESP32, so I’m not entirely sure just how capable other operating systems and platforms built on top if it are. This particular operating system seems to make it rather easy and straightforward for anyone to build and distribute an application for such microcontrollers, to a point where even an idiot like myself could relatively easily buy, say, an ESP32 kit with a display and assemble my own collection of small applications. To repeat myself, it simply looks neat.
Unite is an operating system in which everything is a process, including the things that you normally would expect to be part of the kernel. The hard disk driver is a user process, so is the file system running on top of it. The namespace manager is a user process. The whole thing (in theory, see below) supports network transparency from the ground up, you can use resources of other nodes in the network just as easily as you can use local resources, just prefix them with the node ID. In the late 80’s, early 90’s I had a lot of time on my hands. While living in the Netherlands I’d run into the QNX operating system that was sold locally through a distributor. The distributors brother had need of a 386 version of that OS but Quantum Software, the producers of QNX didn’t want to release a 386 version. So I decided to write my own. ↫ Jacques Mattheij What a great story. Mattheij hasn’t done anthing or even looked at the code for this operating system he created in decades, but recently got the urge to fix it up and publish it online for all of us to see. Of course, resurrecting something this old and long untouched required some magic, and there’s still a few things which he simply just can’t get to work properly. I like how the included copy of vi is broken and adds random bits of garbage to files, and things like the mouse driver don’t work because it requires a COM port and the COM ports don’t seem to work in an emulated environment. Unite is modeled after QNX, so it uses a microkernel. It uses a stripped-down variant of the MINIX file system, only has one user but that user can run multiple sessions, and there’s a basic graphics mode with some goodies. Sadly, the graphics mode is problematic an requires some work to get going, and because you’ll need the COM ports to work to use it properly it’s a bit useless anyway at the moment. Regardless, it’s cool to see people going back to their old work and fixing it up to publish the code online.
It’s been a little over a month since OSNews went completely ad-free for everyone. I can say the support has been overwhelming, with the accompanying fundraiser currently sitting at 67% of the €5000 goal! Of course things slowed down a bit after the initial week of one donation after the next, so I’m throwing out this reminder that without your support, OSNews can’t exist – doubly so now that I’ve removed any and all advertising. Help us reach that 100%! So, what can you do to support OSNews? By being entirely free from the corrupting influence of advertising, I have even less desire to chase views, entrap users with slop content, game search engines with shitty SEO spam, or turn on the taps of “AI”-generated trash to spew forth as much “articles” and thus views as possible. This also means that OSNews is one of the few technology news websites remaining that is not part of a massive corporate media conglomerate, so there’s no pressure from “corporate” to go easy on advertisers or write favourable stuff about corporate’s friends. You’d be surprised to learn how many technology sites out there are not independent. The response to OSNews no longer having any advertising has been overwhelmingly positive – unsurprisingly – and that has taken away any reservations I might have had about taking this step. In a world where so many websites are disappearing, turning into corporate mouthpieces, or becoming glorified content farms, OSNews can keep on doing what it does, independent of any outside influence, thanks to the countless contributions from all of you. Thank you.
I recently implemented a minimal proof of concept time-sharing operating system kernel on RISC-V. In this post, I’ll share the details of how this prototype works. The target audience is anyone looking to understand low-level system software, drivers, system calls, etc., and I hope this will be especially useful to students of system software and computer architecture. Finally, to do things differently here, I implemented this exercise in Zig, rather than traditional C. In addition to being an interesting experiment, I believe Zig makes this experiment much more easily reproducible on your machine, as it’s very easy to set up and does not require any installation (which could otherwise be slightly messy when cross-compiling to RISC-V). ↫ Uros Popovic This is not the first, and certainly not the last, operating system implemented from scratch as a teaching exercise, both for the creator itself, as well as for others wanting to follow along. This time it’s developed for RISC-V, and in an interesting twist, programmed in Zig (no Rust for once!).
The first time I learned about UTF-8 encoding, I was fascinated by how well-thought and brilliantly it was designed to represent millions of characters from different languages and scripts, and still be backward compatible with ASCII. Designing a system that scales to millions of characters and still be compatible with the old systems that use just 128 characters is a brilliant design. ↫ Vishnu Haridas On a slightly related note, if you are ever bothered or annoyed by text online rendering as unknown squares, you most likely are just missing the proper fonts to render them. At least on most Linux and BSD systems, all you need to do is install the entire set of Noto fonts, including those for every single non-Latin script. Assuming your package manager has sane naming conventions, it’ll most likely come down to something like sudo dnf install google-noto* or whatever your system’s install package command is, and after installing a whole slew of font files, your system will now be able to render virtually every script under the sun. After installing this massive font set, you can do things like write and render in hieroglyphics, write Ea-nāṣir‘s name the way it’s supposed to, and render all kinds of other scripts and symbols without ever having to look at one of those blank squares ever again.
Who doesn’t love a desktop-oriented hobby operating system to start off the weekend? SkiftOS is a hobbyist operating system built from the ground up with a focus on modularity, simplicity, and modern design principles. Driven by a dissatisfaction with the fragmented user experiences prevalent in contemporary operating systems, SkiftOS strives for deep integration and a cohesive aesthetic. This project is a labor of love—an artistic pursuit rather than a commercial product. ↫ SkiftOS gitHub page Reading through the GitHub page and SkiftOS’ actual website, it reminds me so, so much of the desktop-oriented hobby operating systems of the early 2000s, like AtheOS, SkyOS, and others. It has its own microkernel, C++ core library, package manager, reactive UI framework, an entire desktop environment, and even a browser engine. This operating system is remarkably complete in the features that it already offers, especially considering its hobby status. The desktop environment is called Hideo, and it’s remarkably beautiful when you consider we’re talking about a hobby operating system. It comes with a variety of applications, too, mostly covering the basics we’ve come to expect from a desktop operating system, like a text editor, archive manager, task manager, image viewer, media player, a file manager, and so on. Meanwhile, the browser engine is called Vaev and is highly experimental, but its existence illustrates just how broad this project really is. I haven’t been able to find some time to run it yet, but if you’re interested, they advise you to run it using qemu. While running it on real hardware is technically possible, it’s not advisable due to the alpha state of the operating system.
In 9front, we host almost all parts of our development process on 9front — the git repositories, the mailing list, the ci/cd, the web site, and everything else. (The exception is #cat-v IRC) We use the system regularly, both when hacking on the system and in our personal use. Personally, I write most of my code on Plan 9, read my emails there, and often drive Linux from there. I run my home network off of a 9front CPU server, and host my websites off it. I know other people around 9front do similar. ↫ Ori Bernstein It clearly shows, too. If you dive into the 9front community, you’ll quickly realise everything runs on 9front, and that does create a sense that the operating system is capable, and that its developers have confidence and pride in their work. Exploring 9front myself, it feels awesome to see that all the documentation I’m reading is being hosted on 9front machines. I’m going to relaunch the OSNews Gemini capsule, this time hosted on 9front, and since countless 9front users host their own Gemini capsules on 9front, I feel confident that I’ve got people to talk to when I need help. I just need the time to actually sit down and figure out the minutiae of 9front, because it truly is unique.
If you’re of a certain age (and not American), there’s a specific corporate font you’re most likely aware of. You may not know its exact name, and you may not actively remember it, but once you see it, you know exactly what you’re looking at. The font’s called Nokia Sans (and Nokia Serif), and it was used by pretty much every single Nokia device between roughly 2002 and 2013 or so, when it was replaced by a very bland font made by Bruno Maag (with help from the person who designed Comic Sans) that they used after that. I can’t remember why, exactly, but I got majorly nostalgic for Nokia’s characteristic, recognisable font, and decided to see if it would work as a user interface font. Now, the font is still owned by Nokia and I couldn’t find a proper place to download it, but I eventually stumbled upon a site that had each individual variant listed for download. I downloaded each of them, installed them using KDE’s font installation method, and tried it out as my user interface font. You’ll quickly discover you shouldn’t use the regular variant, but should instead opt for the Nokia Sans Wide variant. Back in 2011, when Nokia originally announced it was replacing Nokia Sans, the creator of the font, Erik Spiekermann, responded to the announcement on his blog. Apparently, one of the major reasons for Nokia to change fonts was that they claimed Nokia Sans wouldn’t work as a user interface font, but Spiekermann obviously disagrees, pointing specifically to the Wide variant. In fact, Spiekermann does not pull any punches. After 10 years it was high time to look at Nokia’s typefaces as the dominant visual voice of the brand but whoever decided on a completely new direction was either not aware of what was available or was persuaded by Bruno Maag to start over. Bruno may not create the most memorable typefaces, but he certainly knows how to sell them. And technically, their fonts are excellent. Too bad they didn’t have the confidence to work with me on an update. Instead they’re throwing out ten years of brand recognition in favour of blandness. ↫ Erik Spiekermann I was pleasently surprised by just how nice the font looks when used as a general user interface font. It’s extremely legible at a variety of sizes, and has a ton of character without becoming gimmicky or overbearing. What originally started as mere curiosity has now become my UI font of choice on all my machines, finally displacing Inter after many years of uncontested service. Of course, all of this is deeply personal and 95% an issue of taste, but I wanted to write about it to see if I’m just entirely crazy, or if there’s some method to my madness. Do note that I’m using high DPI displays, and KDE on Wayland, and that all of this may look different on Windows or macOS, or on displays with lower DPI. One of Inter’s strengths is that it renders great on both high and lower DPI displays, but since I don’t have any lower DPI displays anymore, I can’t test it in such an environment. I’m also not entirely sure about the legal status of downloading fonts like this, but I am fairly sure you’re at least allowed to use non-free fonts for personal, non-commercial use, but please don’t quote me on that. Since downloading each variant of these Nokia fonts is annoying, I’d love to create and upload a zip file containing all of them, but I’m sure that’s illegal. I’m not a font connoisseur, so I may be committing a huge faux pas here? Not that I care, but reading about font nerds losing their minds over things I never even noticed is always highly entertaining.
There’s a ton of “cloud operating systems” out there, which basically are really fancy websites that try to look and feel like an operating system. There’s obviously a ton of skill and artistry involved in making these, but I always ignore them because they’re not really operating systems. And let’s be honest here – how many people are interested in booting their PC, loading their operating system, logging in, starting their browser, and logging into a website to see a JavaScript desktop that’s slower and more cumbersome than what they are already using to power their browser anyway? Still, that doesn’t mean they can’t have any interesting ideas or other aspects worth talking about. Take OS Yamato for instance; yes, it’s one of those cloud operating systems, this time aimed at your mobile device, but it has something interesting that stood out to me. The system is partly ephemeral, and objects that haven’t been altered or opened in a year will simply be deleted from the system. Each data object (note, photo, contact…) includes a lastOpenedAt timestamp. After 330 days, it shows a icon — a sign of digital wilting. After 365 days, it’s automatically deleted. ↫ OS Yamato GitHub page The project definitely sounds more like an art installation than something anybody is supposed to seriously use in their day-to-day lives, and seems to ask the question: just how important are all those digital scraps you collect over the years, really? If you haven’t bothered to open something in a year, is it really worth saving? For instance, from the moment I started my translation career in 2011 up until I quit in 2024, I saved every single translation I ever made, neatly organized in folders, properly backed up to multiple locations. I still have this archive, still make sure it’s safe, but I never actually use it for anything, never open a single one of the files, I honestly don’t even really care that much about it. So why am I still wasting so much energy in keeping it around? That seems to be the question OS Yamato poses, and there’s something to be said for being less anal about which digital scraps we keep around, and why. It hasn’t convinced me – yet – to delete my translation archive or perform any other pruning, but it did plant a seed.
Markdown – or, more accurately, incompatible variants of Markdown – is everywhere, but that doesn’t mean everybody likes it. It’s the lowest common denominator of light markup languages, with a lot of well-documented issues, and Karl Voit decided to write a long and detailed article about the Markdown’s shortcomings. Just to make sure we’re on the same page here: I do not want to take away awesome workflows that are made possible by using an LML like Markdown. I just want to mention that the very same kind of workflows are possible by using a better designed LML. Unfortunately, some issues mentioned here do seem very subtle and minor. However, their consequences are not. With LMLs getting more and more popular and gaining wider use in tools, we really should make sure that our LML choice is a really good one. Personal feelings aside. ↫ Karl Voit Voit clearly has a preference for a specific alternative LML, but that doesn’t mean the points they make in the article are any less valid. The world of Markdown is chaotic, with a seemingly endless number of varieties and dialects, perfectly illustrated by the Markdown Monster. To make matters worse, the Markdown syntax is quite ambiguous, further complicating how you’re supposed to write it, and how tools are supposed to process it. The end result is that documents you write in Markdown today might be difficult to process decades from now, which isn’t exactly conducive to its intended function. Voit mentions more issues, but this is the main gist. There’s one major issue – at least for me – that Voit doesn’t go into, and that’s a problem I have with any of these simple markup languages I’ve tried: their syntaxes rely on some of the most annoying and cumbersome characters to type. There’s a lot of weird keyboard clawing you need to do to enter the characters required by the syntax, and it just makes for an uncomfortable typing experience for me. I wish someone would design one of these syntaxes with typability in mind, making sure to only use characters that are easy to type. While this probably imposes some pretty hefty restrictions during the design of such a syntax, I think it can make for a much more elegant typing experience. As a result, I do not use Markdown or any of its alternatives.
Earlier today, I made the decision to remove all advertising from OSNews. From here on out, you will no longer see any ads, cookie banners, and other ad-related privacy-invasive technologies on this website. While this means a hit to my income, making OSNews even more reliant on our Patreon supporters and Ko-Fi donors, it genuinely feels liberating. I should’ve made this decision years ago. Read on for how you can support us, and our big fundraiser. I have always been open and honest about my dislike for the modern online advertising industry. It’s incredibly privacy-invasive, a massive security risk, generally lacking in taste, and genuinely intrusive. As such, despite running ads on OSNews, I have always advocated for the concept of “your computer, your rules”, meaning only you, the user, gets to decide what gets run on your computer and displayed on your screen. This includes the use of ad-blockers. I have a Pi-Hole, and you can pry it from my cold, dead hands. Because of this, maintaining ads on OSNews became untenable. Everything about the ads on our site, from the actual ads themselves to the annoying cookie banners talking about “our 1500 partners”, gave me the ick, as the young, hip people say, and I’ve been considering turning them off for a long time. Today, after yet another reader rightfully pointing out how absurd our cookie banner was, I finally made the call. One email to our owner, David Adams, later, and we’re now entirely ad-free, for everyone. This is a hit to my income, and as such, I kindly ask anyone capable of doing so to support the continued existence of OSNews. How can you support OSNews? We’ve been online since 1997, meaning soon we’ll be hitting our 30-year anniversary. Very few websites can boast about such a long, uninterrupted existence, and despite all the changes both the industry and the world at large have gone through, OSNews is still here, doing what it has always done. The removal of ads means we’re even more dependent on you, dear readers, but I’m confident in saying that we’ll make it another 30 years. Thank you for all your continued support over the decades, and let’s keep going. Without icky ads.
Choosing human-readable file formats is an act of technological sovereignty. It’s about maintaining control over your data, ensuring long-term accessibility, and building systems that remain comprehensible and maintainable over time. The slight overhead of human readability pays dividends in flexibility, durability, and peace of mind. These formats also represent a philosophy: that technology should serve human understanding rather than obscure it. In choosing transparency over convenience, we build more resilient, more maintainable, and ultimately more trustworthy systems. ↫ Adële It’s hard not to agree with this sentiment. I definitely prefer being able to just open and read things like configuration files as if they’re text files, for all the same reasons Adële lists in their article. It just makes managing your system a lot easier, since I means you won’t have to rely on the applications the files belong to to make any changes. I think this also extends to other areas. When I’m dealing with photo or music library tools, I want them to use the file system and directories in a human-readable way. Having to load up an entire photo management application just to sort some photos seems backwards to me; why can’t I use my much leaner file manager to do this instead? I also want emails to be stored as individual files in directories matching mailboxes inside my email client, just like BeOS used to do back in the day (note that this is far from exclusive to BeOS). If I load up my file manager, and create a new directory inside the root mail directory I designated and copy a few email files into it, my email client should reflect that. As operating systems get ever more locked down, we’re losing the human-readability of our systems, and that’s not a good development.
Main highlight of this update is a modernized core built upon Debian 13 “Trixie”, ensuring a robust foundation for the platform. Proxmox VE 9.0 further introduces significant advancements in both storage and networking capabilities, addressing critical enterprise demands. A highlight is the long-awaited support for snapshots on thick-provisioned LVM shared storage, improving storage management capabilities especially for enterprise users with Fibre Channel (FC) or iSCSI SAN environments. With newly added “fabric” support for Software-Defined Networking (SDN), administrators can construct highly complex and scalable network architectures. ↫ Proxmox press release I’ve only very recently accepted the gospel of Proxmox, and I now have a little mini PC running Proxmox, hosting a Debian Pi-Hole container, a 9front virtual machine, and a Windows 7 retro virtual machine. I’m intending to use it as an easy shortcut for running retro stuff, as well as any fun tools I might run into that work best in a container. I haven’t updated yet to this new release, but I’m interested to see how easy the upgrade process will be. Considering it’s just Debian, it can’t be too involved. I’m curious of anyone else here is using Proxmox or similar tools at home, or at work for more complex use cases.
Patchwork is a 64-bit monolithic NON-POSIX operating system for the x86_64 architecture that rigorously follows a “everything is a file” philosophy. Built from scratch in C it takes many ideas from Unix, Plan9, DOS and others while simplifying them and sprinkling in some new ideas of its own. ↫ PatchworkOS GitHub page Patchwork is a surprisingly advanced operating system considering it’s a hobby project. It has multithreading with a constant-time scheduler, fully preemptive mutitasking, SMP, file-based IPC (including pipes, shared memory, sockets and Plan9 inspired “signals” called notes), and much more. It also uses a Linux-style VFS and has a custom C standard library. On top of that, there’s a modular window manager that supports themes, in which everything is a window, and so much more. It supports x86_64, but only supports running in RAM. It’s licensed under the MIT license.
BlueOS kernel is written in Rust, featuring security, lightweight, and generality. It is compatible with POSIX interfaces and supports Rust’s standard library. ↫ BlueOS kernel GitHub page This is the kernel for the BlueOS operating system, developed by Vivo, a Chinese consumer electronics company. Sadly, all of the websites and documentation for BlueOS are written in Mandarin, making it virtually impossible to really get a grip on what they’re developing, and I certainly don’t trust Google Translate or whatever enough to give me a proper, trustworthy, and accurate translation. I hope the company either hires some translators, or perhaps enthusiasts with the right skillset can provide some more insight over the coming years. It seems similar to Huawei’s HarmonyOS Next, and it’s apparently shipping on one of Vivo’s smartwatches.
Tilck is an educational monolithic kernel designed to be Linux-compatible at binary level. It runs on i686 and RISCV64 at the moment. Project’s small-scale and simple design makes it the perfect playground for playing in kernel mode while retaining the ability to compare how the very same usermode bits run on the Linux kernel as well. That’s a rare feature in the realm of educational kernels. Because of that, building a program for Tilck requires just a gcc-musl toolchain from bootlin.com. Tilck has no need to have its own set of custom written applications, like most educational kernels do. It just runs mainstream Linux programs like the BusyBox suite. While the Linux-compatibility and the monolithic design might seem a limitation from the OS research point of view, on the other side, such design bring the whole project much closer to real-world applications in the future, compared to the case where some serious (or huge) effort is required to port pre-existing software on it. Also, nothing stops Tilck from implementing custom non-Linux syscalls that aware apps might take advantage of. ↫ Tilck GitHub page Tilck implements about 100 Linux syscalls, and is not focused on replacing the Linux kernel or even becoming a generic desktop or server operating system. It supports both i686 and RISC-V, has support for FAT, and a whole slew of other features. It can run a number of console and even a few framebuffer applications, but don’t expect things like X11 to work, or to ever work.
We need a new framework for how to defend against “trolls”. The feeding metaphor ran its course many years ago. It is done and will not be coming back. New online risks demand that we adapt and become proactive in protecting our spaces. We have to loudly and proudly set the terms of what is permissible. Those holding social or institutional power in communities should be willing to drop a few loud fuck offs to anyone trying to work their way in by weaponizing optics, concern trolling, or the well known “tolerance paradox”. Conceding through silence, or self-censorship, only emboldens those who benefit from attacking a community. ↫ diegoebe Een volk dat voor tirannen zwicht, zal meer dan lijf en goed verliezen, dan dooft het licht.
Asterinas is a new Linux-ABI-compatible kernel project written in Rust, based on what the authors call a “framekernel architecture”. The project overlaps somewhat with the goals of the Rust for Linux project, but approaches the problem space from a different direction by trying to get the best from both monolithic and microkernel designs. ↫ Ronja Koistinen at LWN.net Ronja Koistinen has done an outstanding job diving into this new operating system kernel and approach to kernel architecture, including its intended focus and goals. Head on over to the source and read it over there.
rou2exOS is a 64-bit DOS-like operating system (OS). The system is mainly written in Rust, but some portion of x86 assembly is used as well (inline + freestanding code for the stage2 kernel loading). ↫ Blog post about rou2exOS at blog.vxn.dev It can do basic VGA operations, comes with a very barebones networking stack, realtime clock support, a FAT12 driver, and a few more tidbits. It’s a rewrite of the previous iteration of the hobby operating system.
And I’ve got another custom hobby operating system for you today: Munal OS. An experimental operating system fully written in Rust, with a unikernel design, cooperative scheduling and a security model based on WASM sandboxing. ↫ Munal OS GitHub page Munal OS has no bootloader, but is instead compiled into a single EFI binary that contains all it needs to function, including a few applications. Since Munal OS relies on a PCI driver that communicates with QEMU via the VirtIO 1.1 specification for things like input and graphics, it can’t yet run on real hardware. It has its own UI toolkit, and comes with applications like a basic web browser, a text editor, and a Python terminal.