This webpage describes the MIOS Project. MIOS is a chip-for-chip replacement of the BIOS (Basic Input Output System) on the IBM 5150 Personal Computer. On the IBM PC the BIOS is contained in a ROM IC Chip located on the motherboard at socket location U33. The IC is socketed and can be replaced with a custom ROM containing custom code. The purpose of this project is to explore controlling the IBM PC hardware in non-standard ways. The purpose is not to replace the BIOS with another BIOS that does exactly the same thing! We are going to describe how MIOS works by describing the path we took for development. Amazingly cool project. I’m not entirely sure for how long it’s been around, but that doesn’t make it any less awesome.
Arca Noae’s approach to supporting GPT will be multi-phased, with the first phase of development currently underway and anticipated for release with ArcaOS 5.1. The design specification of our initial GPT support is to allow for partitions up to the current 2TB maximum size, with multiple partitions of this size possible on disks larger than 2TB. Our specification further provides that ArcaOS be able to create, delete, and modify GPT partitions which are identified by their GUIDs as being “OS/2-type” partitions, and lastly, that GPT support be available for both traditional BIOS (for data volumes) and UEFI-based systems (for boot and data volumes). This is one of the biggest hurdles for ArcaOS to overcome, and I’m glad they’ve committed to tackling it. Having to partition an entire disk in legacy MBR just to be able to run ArcaOS on real hardware is a major barrier to entry.
During the upcoming months, Jérôme is going to overhaul the Mm (Memory Manager) and Cc (Cache Controller) components of the kernel. Both of them are core parts of the operating system, which are involved in every memory request and file operation. Improving them is expected to have a substantial effect on the overall stability and performance of ReactOS. Always nice to see small projects gather the funds to hire a developer to do work.
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.
System76 recently unveiled their latest entirely in-house Linux workstation, the Thelio Mega – a quad-GPU Threadripper monster with a custom case and cooling solution. System76’s CEO and founder Carl Richell penned a blog post about the design process of the Thelio Mega, including some performance, temperature, and noise comparisons. Early this year, we set off to engineer our workstation version of a Le Mans Hypercar. It started with a challenge: Engineer a quad-GPU workstation that doesn’t thermal throttle any of the GPUs. Three GPUs is pretty easy. Stack the forth one in there and it’s a completely different animal. Months of work and thousands of engineering hours later we accomplished our goal. Every detail was scrutinized. Every part is of the highest quality. And new factory capabilities, like milling, enabled us to introduce unique solutions to design challenges. The result is Thelio Mega. A compact, high-performance quad-GPU system that’s quiet enough to sit on your desk. I’m currently wrapping up a review of the Bonobo WS, and if at all possible, I’ll see if I can get a Thelio Mega for review, too (desktops like this, which are usually custom-built for each customer, are a bit harder to get for reviews).
After two tweets that I made last week, playing around with UEFI and Rust, some people asked to publish a blog post explaining how to create a UEFI application fully written in Rust and demonstrate all the testing environment. So todays objective it’s to create a UEFI application in Rust that prints out the memory map filtered by usable memory (described as conventional memory by the UEFI specification). But before putting the hands at work let’s review some concepts first. uefi-rs is a Rust wrapper for UEFI.
Besides the likes of Red Hat, Intel has been the only other major organization in recent time willing to devote resources to areas like X.Org release management, but even while they let go some of their Wayland folks years ago, they seem uninterested in devoting much in the way of the X.Org Server advancements as we approach 2021. With Ubuntu 21.04 also possibly defaulting to Wayland for its GNOME session, the KDE Wayland support getting squared away, and other advancements continuing, X.Org Server 1.21 may very well prove to be an elusive release. The transition to Wayland is taking far longer than it should, and a lot of important software simply isn’t ready yet. KDE is still hard at work, and my desktop environment of choice – Cinnamon – has zero support in the works for Wayland. Don’t get me wrong – I’m excited for Wayland – but it feels like we’re counting down by continually multiplying by 0.5 – no matter how many times you multiply, you never quite reach zero.
So what’s the topic? Something that I started talking about almost 10 years ago, the Unified Extensible Firmware Interface (UEFI). Back then, it was more of a warning: the way you deploy Windows is going to change. Now, it’s a way of life (and fortunately, it no longer sucks like it did back in 2010 when we first started working with it). I don’t want to rehash the “why’s” behind UEFI because frankly, you no longer have much of a choice: all new Windows 10 devices ship with UEFI enabled by default (and if you are turning it off, shame on you). Instead, I want to focus much more on how it works and what’s going on behind the scenes. A really in-depth article about UEFI – you have to be a certain kind of person to enjoy stuff like this. The article’s about a year old, but still entirely relevant.
Now, the partnership is in jeopardy. Last Tuesday, the Justice Department filed a landmark lawsuit against Google — the U.S. government’s biggest antitrust case in two decades — and homed in on the alliance as a prime example of what prosecutors say are the company’s illegal tactics to protect its monopoly and choke off competition in web search. The scrutiny of the pact, which was first inked 15 years ago and has rarely been discussed by either company, has highlighted the special relationship between Silicon Valley’s two most valuable companies — an unlikely union of rivals that regulators say is unfairly preventing smaller companies from flourishing. The search market is entirely locked down. I’m a DuckDuckGo user, but DDG is just a frontend to Bing, warts and all. I’ve been having very negative experiences with DDG lately, but the only other real option is Google – I’ve got nowhere else to go. So either I accept Google’s filter bubble, or I accept DDG having terrible results filled with crazy conspiracy pseudoscience. What choice do we really have?
Ubuntu 20.10 rides atop the Linux 5.8 kernel, includes the GNOME 3.38 release, has new wallpapers, Active Directory integration (for enterprise users) in the installer, and carries a clutch of updated software, tools, and libraries. Plus this is the first version of Ubuntu to offer desktop support for the Raspberry Pi 4 (4GB + 8GB models). Not a massive release, but welcome new versions of the core parts of the distribution nonetheless.
The FreeBSD project has published its latest quarterly report, and there’s some good changes and improvements in there. First, there’s the project to allow FreeBSD to be built on non-FreeBSD hosts – Linux and macOS specifically. This project has made major headway. As of September 2020 it should be possible to use the buildworld and buildkernel make targets to build a fully-functional FreeBSD installation on macOS and Linux hosts. We use this in our continuous integration system to build and test CheriBSD disk images for multiple architectures. I have also committed a GitHub Actions configuration upstream that takes approximately 10 minutes to build an amd64 kernel. This will ensure that changes that break crossbuilding from Linux/macOS can be detected easily. Another major improvement is experimental support for little-endian PowerPC. Note, however, that this does not mean big-endian support is going away or being deprecated. As of r366063, experimental support for little-endian PowerPC64, (PowerPC64LE) is available in -CURRENT for POWER8 and POWER9 machines. There’s a lot more stuff to cover, so head on over and read the whole report for all the details.
We are pleased to announce the availability of the Microsoft Edge Dev Channel for Linux! Today’s release supports Ubuntu, Debian, Fedora, and openSUSE distributions. Going forward, we plan to release weekly builds following our typical Dev Channel cadence alongside our other supported platforms. In this post, we’ll walk you through how to install Microsoft Edge on your distribution, what to expect from the Dev Channel, and how to share your feedback. I’m not entirely sure who, exactly, Edge for Linux is for – but there’s no denying the fact Microsoft feels that it’s necessary to have their browser on Linux means the company is definitely taking desktop Linux seriously.
Microsoft is releasing its Windows 10 October 2020 Update to over a billion users today. Much like last year, this second Windows 10 update of 2020 is more of a Service Pack than a major release. Microsoft has, however, made some interesting tweaks, including a refreshed Start menu, some Alt Tab changes, and the bundling of the new Chromium-powered Microsoft Edge. It’s a very minor release when it comes to user-facing features, and you really have to squint to even notice the new Start menu – it’s more of a colour change than an actually new design.
Back in June, Google announced that Windows apps are coming to Chrome OS through a third-party partnership — instead of an in-house solution. Parallels Desktop for Chromebook Enterprise is launching today to provide access to Windows apps that some businesses still need. This virtual machine sees a full version of Windows installed on your Chrome OS device that works offline. Google created a secure sandbox for Windows that can easily be wiped if needed. For now, it launches an entire virtual machine instance, desktop and all, but in the future, you’ll be able to launch specific applications without seeing the Windows desktop at all.
The Justice Department accused Google of illegally protecting its monopoly over search and search advertising in a lawsuit filed on Tuesday, the government’s most significant challenge to a tech company’s market power in a generation and one that could reshape the way consumers interact with the internet. In a much-anticipated complaint, filed in the U.S. District Court in the District of Columbia, the agency accused Google of locking up deals with giant partners like Apple and throttling competition through exclusive business contracts and agreements. While the case seems rushed for political reasons, it at least breathes some form of life into the United States’ dying antitrust laws when it comes to the major technology companies. It’s far too early to tell if anything serious will come of this, as the related court cases and legal maneuvering will take many, many years – and the upcoming US presidential elections could play a role, too. Google, for its part, beats the usual drum all anticompetitive companies accused of antitrust violations beat: we are the best, people choose to use us, there are enough alternatives, our deals are not illegal, others do it too, and so on. These are only the premeditated opening salvos to a very long war, and I’m sure we’ll have tons of fun covering this fight for years to come.
On Saturday, I pointed out how Microsoft force-restarting Windows 10 computers to install unwanted web apps was the latest proof you don’t own your own Windows PC. Today, the company says it was at least partly a mistake — and will be pausing the “migration” that brought web apps to your Start Menu this way. Originally, Microsoft tells The Verge, the idea was that any website you pinned to the Start Menu would launch in Microsoft Edge. If your website of choice had a PWA web app version, the Edge browser could automatically launch that as well. But — in what Microsoft seems to be calling a bug, though we’re trying to get clarity as to which part was the bug — the change also made it look like existing web shortcuts to its own Microsoft Office products had installed a web app on your PC as well. Ah, the “it’s a bug” defense. Not very imaginative. This is the kind of nonsense you have to put up with when you choose to use a closed source operating system or device that you merely license or borrow, not own. The slippery slope people have been talking and warning about for decades when it comes to closed source software has made it so that not only do we seem to accept this behaviour, people even defend it. Windows as an operating system is in this weird place right now where its guts are, by all accounts, in very good shape, while the user interface is messy and Metro applications are a failure, leading to an often startling user experience that switches from old Win32-looking applications to modern flat applications every other application, and many settings are hidden in old Win32 dialogs instead of being available in fancy modern ones. On top of all that, Microsoft has added tremendous amounts of telemetry, ads, and even forced installation and reinstallation of applications through updates. They built up massive positive mindshare with Windows 7, lost some of it with Windows 8, and then regained some of it with Windows 10 – only to just lose it all over again with nonsense like this. At this point, I have no idea where Microsoft wants to take Windows. It feels like the pace of development is minimal from a user’s point of view, while at the same time still being somehow fast enough that things regularly break. Why would anyone willingly use a platform like this? What redeeming qualities does it have over the competition?
The Common Unix Printing System (CUPS) is something all the GNU/Linux distributions use to manage printers. It’s been maintained by Apple since 2007. The Apple-lead CUPS development efforts appear to have completely died out after lead CUPS developer Michael Sweet left the company. CUPS isn’t dead, though, Sweet and others are still working on it in a fork maintained by the OpenPrinting organization. Usually, these stories end in tears, with a desperate plea for interested parties and potential contributors to join and save the project. Luckily, this is not one of those stories – the Common Unix Printing System is safe, thanks to the wonders of open source.
In Google Chrome’s “Cookies and site data” settings, accessible via the Preferences menu item or directly with chrome://settings/cookies in the address bar, you can enable the setting “Clear cookies and site data when you quit Chrome”. However, I’ve discovered that Chrome exempts Google’s own sites, such as Search and YouTube, from this setting. I don’t want to sound like a broken record, but this really shouldn’t come as a surprise to anyone. Technology companies are particularly adept at being hostile towards users, and Google is no exception.
OpenBSD has marked its 25th birthday with a brand new release – OpenBSD 6.8. One of the major new features is support for 64bit PowerPC processors – POWER8 and POWER9 specifically, and the Raptor Computing Systems Talos II and Blackbird platforms in particular.
This article is targeted at embedded engineers who are familiar with microcontrollers but not with microprocessors or Linux, so I wanted to put together something with a quick primer on why you’d want to run embedded Linux, a broad overview of what’s involved in designing around application processors, and then a dive into some specific parts you should check out — and others you should avoid — for entry-level embedded Linux systems. This is some seriously detailed writing, and an amazing starting point for people interested in developing for embedded Linux.