OS News Archive
This Monday, ZFS on Linux lead developer Brian Behlendorf published the OpenZFS 2.0.0 release to GitHub. Along with quite a lot of new features, the announcement brings an end to the former distinction between “ZFS on Linux” and ZFS elsewhere (for example, on FreeBSD). This move has been a long time coming—the FreeBSD community laid out its side of the roadmap two years ago—but this is the release that makes it official. A massive release.
Since OSNews’ inception in 1997 – yes, this site is that old – a lot has changed on the internet when it comes to earning income. While for a very long time a site like OSNews could sustain itself through revenue from basic ads alone, we’re now far beyond the point where that is feasible – unless we were to introduce ever more intrusive ads, which we’re obviously not going to do. Our readers are, of course, keenly aware of how expensive it can be to run a website like OSNews, and as such, many of you have asked us over the years for methods of supporting the website financially. We’ve always had a subscriber program for an ad-free version of the site, but we never really advertised it very heavily. Today, that’s going to change. You can now support OSNews by becoming an OSNews Patreon. With your support, we can keep posting stories every single day, pay the hosting bills, write more interesting articles, access interesting hardware to review for your amusement, and possibly expand into new territories like video reviews to accompany the regular written reviews. Your support will enable us to write reviews of older, vintage devices and software like Palm PDAs, Psion devices, old operating system versions, and much more. We’ve created three tiers – Silver, Gold, and Platinum – and at each of these tiers you’ll get the ad-free version of OSNews, as well as a silver, gold, or custom comment flair to show off your status as an OSNews Patreon. All of our readers are equal, of course, but OSNews Patreons are just a little more equal. If you want to support the continued work we do, head on over to the OSNews Patreon page and become an OSNews Patreon. Thank you – all of you, not just OSNews Patreons – for supporting the site! Important note: since Patreon has ended support for their API, we are not investing engineering hours into full integration of Patreon into OSNews. This means we have to add the rewards to your OSNews account manually. As such, it may take a few hours before your rewards are added to your account, depending on time zones, availability of OSNews staff, and so on. We will obviously do our best to make this process as quick as possible, but please bear with us. Frequently (?) Asked Questions Does this mean OSNews will start putting content behind Patreon-only paywalls? No. All of the stories and articles we post will remain freely available as they always have been, and even future articles made possible through Patreon supporters will always be available to everyone. The goal of the OSNews Patreon is to support OSNews as a whole, not just a small part of it. Can you give some examples of the kinds of articles you want to write that are impossible to do without more financial support? Sure! A great example of an article – or, more likely, series of articles – that I’ve been dying to write is one about one of the last Sun UltraSPARC multiprocessor workstations, fitted with one of the later SunPCI cards. I’m a huge fan of Sun’s workstation hardware, but getting access to relatively old and outdated hardware like this is surprisingly expensive. A successful Patreon could make this a reality. I also have a massive collection of PDAs, from the late 80s all the way up to the 2000s, that I would love to write more about. That takes a lot of time, and with the support of the OSNews Patreon I might be able to set aside time from my regular job to focus more on writing articles for OSNews. There are tons of other interesting topics that require expenses too, such as SGI’s IRIX, or Psion devices, or even modern computers like the new M1-based Macs. Will you introduce more tiers and benefits in the future? Possibly. We have a few other ideas that we need to flesh out further and reconsider before making any commitments. Why is the pricing in euros, and not in dollars or Canadian rubles? The pricing is set in euros, but Patreon shows the amounts converted to your local currency. Some users may still see the euro pricing, however, for instance when using a VPN. Can I cancel my Patreon or upgrade/downgrade to a different tier? Yes. Patreon as a platform offers all of these options at any time, so you’ll never have to feel tied down or locked into or out of a certain tier.
Why has it taken until the last few years for speech recognition to be adopted in day-to-day use? The technology has many hidden industrial applications, but as a real-time user interface for day-to-day use, i.e. talking to your computer, adoption has been unbelievably slow. When I was studying in the 90s, I read about a sort of reverse Turing test, which demonstrated one reason why. Volunteers believed they were talking to a computer, but responses were actually provided by a human being typing “behind the curtain”. The observations and subsequent interviews showed that, back then, people simply didn’t like it. So, what’s the problem? We have a Google Home in the house, and we basically only use it to set kitchen timers and find out the outside temperature (so we know how many layers to put on – we live on the arctic circle, and -25-30°C is normal). That’s it. I don’t see much of a use for anything else, as our computers and smartphones are both easier to use and faster than any voice assistant or voice input. The key to modern voice assistants is that they are basically glorified command line interfaces – they need a command and parameters. What makes them so hard to use is that these commands and parameters are pretty much entirely undiscoverable and ever-changing, unlike actual command line interfaces where they are easily discoverable and static. If voice input and voice assistants really want to take off, we’ll need to make some serious advances in not just recording our voices and mapping them to commands and parameters, but in actually understanding what we as humans are saying. We’re a long way off from that.
The ESA’s recently launched Solar Orbiter will spend years in one of the most unwelcoming places in the Solar System: the Sun. During its mission, Solar Orbiter will get 10 million kilometers closer to the Sun than Mercury. And, mind you, Mercury is close enough to have sustained temperatures reaching 450°C on its Sun-facing surface. To withstand such temperatures, Solar Orbiter is going to rely on an intricately designed heat shield. This heat shield, however, will protect the spacecraft only when it is pointed directly at the Sun—there is no sufficient protection on the sides or in the back of the probe. So, accordingly, ESA developed a real-time operating system (RTOS) for Solar Orbiter that can act under very strict requirements. The maximum allowed off-pointing from the Sun is only 6.5 degrees. Any off-pointing exceeding 2.3 degrees is acceptable only for a very brief period of time. When something goes wrong and dangerous off-pointing is detected, Solar Orbiter is going to have only 50 seconds to react. Fascinating look at a piece of software few of us will ever get to work with.
Operating systems and file systems have traditionally been developed hand in hand. They impose mutual constraints on each other. Today we have two major leaders in file system semantics: Windows and POSIX. They are very close to each other when compared to the full set of possibilities. Interesting things happened before POSIX monopolized file system semantics. When you use a file system through a library instead of going through the operating system there are some extra possibilities. You are no longer required to obey the host operating system’s semantics for filenames. You get to decide if you use / or \ to separate directory components (or something else altogether). Maybe you don’t even use strings for filenames. The fs-fatfs library uses a list of strings, so it’s up to the caller to define a directory separator for themselves. While working on that library, I was driven to write down some ideas that I’ve previously run across and found inspirational. A deep dive into file system hierarchies before the major platforms we used today – POSIX and Windows – became the two de-facto standards. Excellent article, and a joy to read.
M2OS is a small Real-Time Operating System that allows running multitasking applications in small microcontrollers with scarce memory resources. M2OS implements a simple scheduling policy based on non-preemptive one-shot tasks which requires a very small memory footprint. Moreover, with this scheduling policy the same stack area can be used by all the tasks and, consequently, the system only needs to allocate a stack area large enough to fit the largest task stack. It’s quite rare we find an operating system that’s actually never been mentioned on ONSews before. To be fair, it’s only been around since March of this year and it’s highly niche, but still.
We have a dark mode now. That’s the news. You can click the link in the sidebar to switch between dark mode and the regular version of the site. You can thank our webmaster Adam for OSNews no longer burning your retinas at night.
Genode 20.05 takes our road map’s focus on the consolidation and optimization of the framework and its API to heart. It contains countless of under-the-hood improvements, mostly on the account of vastly intensified automated testing, the confrontation of Genode with increasingly complex software stacks, and stressful real-world work loads. You will find this theme throughout the release notes below. The result of this overhaul is captured in the updated version of the Genode Foundations book (Section New revision of the Genode Foundations book). I wish every project had release notes as detailed as Genode’s always are. Excellent work.
Visopsys is a hobby OS for x86-compatible PCs, started in 1997. Version 0.9 was released this morning, and there’s a change log. The summary: This major release offers a subtly updated look, enhanced networking capabilities and associated programs, Unicode support, a software packaging/download/install/uninstall infrastructure with an online ‘store’, a user space window shell, VMware mouse integration, HTTP, XML, and HTML libraries, some C++ and POSIX threads (pthreads) support, ‘pipes’ for interprocess communication, and additional hashing algorithms. Visopsys has a long history on OSNews – the oldest mention being from 2005. It’s been in relatively steady development ever since.
Hobbyist licenses for OpenVMS have been a notable option for users of the VAX, Alpha, and Integrity business servers. HP 3000 users tried for a similar license for MPE/iX, especially in the months following HP’s news it wouldn’t continue its 3000 business. HP declined to create the kind of license the users wanted to power the basement and in-garage 3000 servers they’d brought home. With the change in ownership of OpenVMS — HP Enterprise turned over the business to VMS Software Inc. — the hobbyist program is ending at HPE. VSI is considering one option to continue hobbyist-class licenses. That’s one hell of a bummer. I hope they can come to sort of solution or agreement.
This post will give you a quick intro to the basics of GUI programming for SerenityOS. A one-line introduction that covers the article perfectly. A rarity, indeed. We covered SerenityOS late last year.
Speaking about LSDJ, the premiere music software for the Game Boy, George Buckenham writes: But it also got me thinking about chorded input schemes. LSDJ is a workhorse of a program, able to do a lot of stuff. And it’s designed to let you do that stuff quickly – to let you iterate fast, put down a tune fast, adjust things while you’re standing on stage. But also… a Gameboy has 8 buttons – 4 directions, A, B, SELECT and START. So it has to make those buttons work hard. And that’s where chording comes in. Chording is a means of inputting commands to software by holding down multiple buttons at once. Ctrl-C is an example of a chorded command. Hold down Ctrl, then press C while you’re doing it. Text copied. But you can also make chording work harder than that. It requires a lot of planning and thinking to make a complex application controllable by only a few buttons, such as the mere 8 buttons on the original Game Boy. I wouldn’t want to be in the shoes of developers who have to make things work with limitations such as these.
Alan Kay said: “Simple things should be simple, complex things should be possible”. This sentence was the inspiration for the founder of RT-Thread to stick to his beliefs. RT-Thread is an open source embedded real-time operating system, and this project started in 2006. I know you have no idea what RT-Thread is, but you are using an IoT OS system now, that’s where this article may be of interest. Let’s take a quick tour of RT-Thread. RT-Thread: background RT-Thread, short for Real Time-Thread, is, as its name implies, an embedded real-time multi-threaded operating system. One of its basic properties is to support multitasking. Allowing multiple tasks to run at the same time does not mean that the processor actually performs multiple tasks at the same time. In fact, a processor core can only run one task at a time. Every task is executed quickly, and through the task scheduler (the scheduler determines the sequence according to priority), the tasks are switched rapidly, which gives the illusion that multiple tasks are running at the same time. In the RT-Thread system, the task is implemented by threads. The thread scheduler in RT-Thread is the task scheduler mentioned above. RT-Thread is mainly written in C, making it easy to understand and easy to port. It applies object-oriented programming methods to real-time system design, making the code elegant, structured, modular, and tailorable. For resource-constrained Microcontroller Unit (MCU) systems, the NANO version of RT-Thread (tailored from the standard version of RT-Thread), which requires only 3KB of flash and 1.2KB of RAM, can be tailored with easy-to-use tools. For resource-rich IoT devices, RT-Thread can use the online software package management tool, together with system configuration tools, to achieve intuitive and rapid modular cutting, seamlessly import rich software feature packs, thus achieving complex functions like Android’s graphical interface and touch sliding effects, smart voice interaction effects, and so on. RT-Thread’s architecture RT-Thread is not only a real-time kernel, but also has a rich middle-tier component, as shown in the following figure. It includes: The kernel layer: RT-Thread kernel, the core part of RT-Thread, includes the implementation of objects in the kernel system, such as multi-threading and its scheduling, semaphore, mailbox, message queue, memory management, timer, etc.; libcpu/BSP (Chip Migration Related Files/Board Support Package) is closely related to hardware and consists of peripheral drivers and CPU transport. The components and service layer: Components are based on upper-level software on top of the RT-Thread kernel, such as virtual file systems, FinSH command-line interfaces, network frameworks, device frameworks, and more. Its modular design allows for high internal cohesion within the assembly and low coupling between components. The RT-Thread software package: A general-purpose software component running on the RT-Thread IoT operating system platform for different application areas, consisting of description information, source code or library files. RT-Thread provides an open package platform with officially available or developer-supplied packages that provide developers with a choice of reusable packages that are an important part of the RT-Thread ecosystem. The package ecosystem is critical to the choice of an operating system because these packages are highly reusable and modular, making it easy for application developers to build the system they want in the shortest amount of time. RT-Thread supports more than 174 software packages. RT-Thread has launched more than a decade ago, and this is the first time we make an official self-introduction to the world, especially at the beginning of 2020, it feels great! We welcome suggestions for RT-Thread, and you can feel free to contact us on Twitter or send us an e-mail. And if you have any great ideas, you are very welcome to contribute to our Github.
System calls are a way for unprivileged, user applications to request services from the kernel. In the RISC-V architecture, we invoke the call using the ecall instruction. This will cause the CPU to halt what it’s doing, elevate privilege modes, and then jump to whatever function handler is stored in the mtvec (machine trap vector) register. Remember, this is the “funnel” where all traps are handled, including our system calls. We have to set up our convention for handling system calls. We can use a convention that already exists, so we can interface with a library, such as newlib. But, let’s make this ours! We get to say what the system call numbers are, and where they will be when we execute a system call. This is part 7 in a long series about writing a RISC-V operating system in Rust.
KnightOS is an operating system I started writing about 10 years ago, for Texas Instruments line of z80 calculators — the TI-73, TI-83+, TI-84+, and similar calculators are supported. It still gets the rare improvements, but these days myself and most of the major contributors are just left with starry eyed empty promises to themselves that one day they’ll do one of those big refactorings we’ve been planning… for 4 or 5 years now. Still, it was a really interesting operating system which was working under some challenging constraints, and overcame them to offer a rather nice Unix-like environment, with a filesystem, preemptive multiprocessing and multithreading, assembly and C programming environments, and more. The entire system was written in handwritten z80 assembly, almost 50,000 lines of it, on a compiler toolchain we built from scratch. The things people can squeeze out of these limited devices astounds me every single time.
Why is Wednesday, November 17, 1858 the base time for OpenVMS (VAX VMS)? Interesting answer for sure.
Lilith is “a POSIX-like x86-64 kernel and userspace written in Crystal”, which only raises the question what Crystal, exactly, is. It’s a programming language whose syntax is “heavily inspired by Ruby’s, so it feels natural to read and easy to write, and has the added benefit of a lower learning curve for experienced Ruby devs”.
Linking to The Verge, because the original report is stuck behind a paywall: Facebook is developing its own operating system that could one day reduce the company’s reliance on Google’s Android, according to a new report by The Information. Development is currently being led by Mark Lucovsky, a Microsoft veteran who co-authored the Windows NT operating system. The report provides a limited amount of information about how the new operating system could be used, but it notes that both Facebook’s Oculus and Portal devices currently run on a modified version of Android. According to one of Facebook’s AR and VR heads, Ficus Kirkpatrick, “it’s possible” that Facebook’s future hardware won’t need to rely on Google’s software, which would reduce or remove entirely the control Google has over Facebook’s hardware. Nope. Nope. Nope. Nope. Nope.
CP/NC is a CP/M-compatible operating system for the Amstrad NC100 Notepad Computer. It is based on Russell Marks’ ZCN operating system, but focuses more on CP/M compatibility and makes the computer “feel” more like an old-fashioned CP/M box. While ZCN is a rather playful system that adopts lots of features and external programs from DOS and Unix, CP/NC goes back to the roots: you will find a rather minimal CCP and the usual external commands, such as DUMP, PIP, STAT, and SYSGEN. CP/NC also changes the layout of the LCD console from 120×10 characters to a more readable 80×8. Here is a summary of what CP/NC is and is not as well as a list of differences between CP/NC and ZCN. This is such an oddly specific operating system.
Seriously, what do you do with your computer? Over time 9front sanded off its rough edges. I can do just about everything I need to do from a bare metal install. Today, we even have vmx(1) for hosting OpenBSD or Linux virtual machines (just in case you need to interface with the U.S. government via the now-required modern web browser). A previous release of the 9front DASH1 manual was created entirely on a ThinkPad running 9front (and Gimp running inside OpenBSD running inside vmx(1)). 9front now even ships with a primitive Microsoft Paint clone, several native Sega and Nintendo emulators, and a full port of DOOM. I never would have dreamed anything like this was possible back in 2009. As time goes by, there is less and less reason to boot anything else. For what I do, I’m perfectly happy with it. Clearly not the most typical user, but that doesn’t make their experiences any less interesting.