Monthly Archive:: October 2020
But let’s not bury the lede here: after several days of screaming, ranting and scaring the cat with various failures, this blog post is finally being typed in a fully profile-guided and link-time optimized Firefox 82 tuned for POWER9 little-endian. Although it multiplies compile time by nearly a factor of 3 and the build process intermittently can consume a terrifying amount of memory, the PGO-LTO build is roughly 25% faster than the LTO-only build, which was already 4% faster than the “baseline” -O3 -mcpu=power9 build. That’s worth an 84-minute coffee break! (-j24 on a dual-8 Talos II , 64GB RAM.) This whole post is a ringing endorsement of Firefox and why the technology landscape – especially the alternative operating systems and hardware platforms landscape – needs Firefox. There really isn’t any other viable option. Chromium? Chromium is open source, but a lot of its important functionality is hidden behind a needlessly complex process of setting up and registering API keys that’s about as intuitive as designing an atomic bomb from scratch on a deserted island. On top of that, Chromium is still a Google project, and as Google’s reluctance to support important features on Linux shows, Chromium is designed for Google’s interests – nobody else’s. WebKit? WebKit requires developers to build an entire web browser around it from scratch. While that can lead to awesome applications, it also means replicating every single bit of functionality users have come to expect from their browsers. Things like bookmark and tab sync, extensions, and so on – all have to be built and maintained form scratch. Firefox is the only complete package someone can port to another platform and end up with a complete browser package. Sure, it’s definitely not an easy undertaking to port a program as complex as Firefox, but in a lot of cases, it’s probably easier than porting WebKit/Blink and building a browser around it from scratch.
We talked about the state of X.org earlier this week, and the wider discussion was picked up by Adam Jackson, who works at Red Hat as the X.Org Server release manager, and has been heavily involved with X development for many years. There’s been some recent discussion about whether the X server is abandonware. As the person arguably most responsible for its care and feeding over the last 15 years or so, I feel like I have something to say about that. So, is Xorg abandoned? To the extent that that means using it to actually control the display, and not just keep X apps running, I’d say yes. But xserver is more than xfree86. Xwayland, Xwin, Xephyr, Xvnc, Xvfb: these are projects with real value that we should not give up. A better way to say it is that we can finally abandon xfree86. Seems like a fair and honest assessment.
FreeBSD 12.2 has been released. Changes include updates for the wireless stack for better 802.11n and 802.11ac support, the latest versions of OpenSSL and OpenSSH, and much more. On top of the changes comes an announcement in the release notes of a change for the i386 versions of FreeBSD, starting with FreeBSD 13.0. Starting with FreeBSD-13.0, the default CPUTYPE for the i386 architecture will change from 486 to 686. This means that, by default, binaries produced will require a 686-class CPU, including but not limited to binaries provided by the FreeBSD Release Engineering team. FreeBSD 13.0 will continue to support older CPUs, however users needing this functionality will need to build their own releases for official support. This won’t affect most users, but people with very specific needs should take note.
Preparing to close out a major month of announcements for AMD – and to open the door to the next era of architectures across the company – AMD wrapped up its final keynote presentation of the month by announcing their Radeon RX 6000 series of video cards. Hosted once more by AMD CEO Dr. Lisa Su, AMD’s hour-long keynote revealed the first three parts in AMD’s new RDNA2 architecture video card family: the Radeon RX 6800, 6800 XT, and 6900 XT. The core of AMD’s new high-end video card lineup, AMD means to do battle with the best of the best out of arch-rival NVIDIA. And we’ll get to see first-hand if AMD can retake the high-end market on November 18th, when the first two cards hit retail shelves. AMD’s forthcoming video card launch has been a long time coming for the company, and one they’ve been teasing particularly heavily. For AMD, the Radeon RX 6000 series represents the culmination of efforts from across the company as everyone from the GPU architecture team and the semi-custom SoC team to the Zen CPU team has played a role in developing AMD’s latest GPU technology. All the while, these new cards are AMD’s best chance in at least half a decade to finally catch up to NVIDIA at the high-end of the video card market. So understandably, the company is jazzed – and in more than just a marketing manner – about what the RX 6000 means. If AMD’s promises and performance comparisons shown today hold up, these new Radeon cards put AMD right back in the game with NVIDIA, going toe-to-toe with NVIDIA’s latest RTZ 30×0 cards – all the way up to the 3090, at lower prices and lower power consumption. Of course, those are just promises and charts, but AMD has proven itself lately to be fairly accurate and fair when announcing new products. If the promises hold up, Dr. Lisa Su and her team will have not only stomped all over Intel, but will also be ready to stomp all over NVIDIA, especially if they manage to follow a similar trajectory as they did with the Zen line of processors. If you are in the market for a new mid to high-end PC, you haven’t had this many viable options in a long, long time.
Speaking of the Amiga: Thirty five years ago I became an Amiga user. One of the first, actually. This is a meandering and reminiscent post of sorts, written to mark the Amiga’s 35th anniversary and the 35 years I have known and loved the system. The Amiga is such an odd platform. Against every single odd ever created, it is still around, it still has an incredibly dedicated community maintaining, upgrading, and expanding both the hardware and software of not only the classic Amiga, but also the ‘modern’ Amiga OS 4 platform. And on top of all that, there’s MorphOS steadily improving every single release, and AROS as the open source alternative. The dedication the loyal Amiga fanbase displays every single day for 35 years now is inspiring. I’ve extensively tested, explored, and used both Amigs OS 4 and MorphOS, and while neither of those click with me in any way, I can’t help but admire the Amiga community as a whole – the usual warts that go with vibrant communities and all. Here’s to another 35 years, you crazy bastards.
Retrohax.net got their hands on an extremely rare motherboard replacement for the Amiga 1000 – the Amiga 1000 Phoenix Enhanced motherboard. It’s difficult to say exactly how many of these were made, but some people claim around 200, while others peg the number at around 2000. Either way, they are rare. They set around to get it to work, which required a lot of work. There’s tons of photos in the article, and you can go to this forum post for another user who came to own one of these rare motherboards for more information.
With the release of Qt 6.0 upcoming, let’s see what has happened since Qt 5.15. It will not be possible to cover every detail of the graphics stack improvements for Qt Quick here, let alone dive into the vast amount of Qt Quick 3D features, many of which are new or improved in Qt 6.0. Rather, the aim is just to give an overview of what can be expected from the graphics stack perspective when Qt 6.0 ships later this year. Exactly what is says on the tin. Especially Qt developers will obviously want to read this.
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.