In recent years the Itanium support in the Linux kernel has went downhill with not many users left testing new kernels on aging Itanium servers. There also hasn’t been any major active contributors to the Itanium code for keeping it maintained and making any serious improvements to the architecture code. On and off for months there’s been talk of retiring Itanium from the Linux kernel and now it’s finally happened. With Linux 6.6 expected to be this year’s Long-Term Support (LTS) kernel version, there was the proposal recently to drop Itanium in Linux 6.7 and indeed it’s successfully happened. This is a complete outrage, and a sign Torvalds has completely lost the plot. Itanium is the future, and dropping it from the Linux kernel will be its death knell. I’m going back to DOS.
The European data regulator has agreed to extend a ban imposed by non-EU member Norway on “behavioural advertising” on Facebook and Instagram to cover all 30 countries in the European Union and the European Economic Area, it said on Wednesday. Meta runs the risk of getting fined up to 4% of its global turnover, the Norwegian data regulator said. Sure, the European Union isn’t perfect – no government is – but the Union’s fight against the utter dominance of tech giants, as well as standing up for citizen privacy, is commendable.
There’s an alternative universe where we decided to teach the kernel about every piece of hardware it should run on. Fortunately (or, well, unfortunately) we’ve seen that in the ARM world. Most device-specific simply never reaches mainline, and most users are stuck running ancient kernels as a result. Imagine every x86 device vendor shipping their own kernel optimised for their hardware, and now imagine how well that works out given the quality of their firmware. Does that really seem better to you? It’s understandable why ACPI has a poor reputation. But it’s also hard to figure out what would work better in the real world. We could have built something similar on top of Open Firmware instead but the distinction wouldn’t be terribly meaningful – we’d just have Forth instead of the ACPI bytecode language. Longing for a non-ACPI world without presenting something that’s better and actually stands a reasonable chance of adoption doesn’t make the world a better place. Matthew Garrett with the usual paragraphs of wisdom.
This project allows old x86 computers using a classic BIOS to boot from modern NVMe storage attached via PCI(e). It’s a heavily modified version of iPXE (which usually allows for booting from the network), but instead of the network, this code uses a port of the SeaBIOS NVMe implementation to talk to a local NVMe drive. What a useful idea.
In short, after a Linux kernel update (6.5.8-200.fc.x86_64 on Fedora KDE), I can’t use the top button of my pen on my tablet. This is really affecting my digital painting workflow! Right-clicking on the pen is an essential part of my workflow. Right-click on a layer in Krita to get the menu, right-click while using the Transform tool to get the transformation options, right-click on the canvas to get the pop-up palette! …And I’m not even talking about how difficult it is to handle files and the D.E. without right-clicking. And if that makes you smile, imagine someone hardcoding the behaviour of your main device like the right-click on your mouse or touchpad (or anything else you have been using for more than 20 years) to something completely useless, and pushing it through kernel updates. And the icing on the cake, they left you with no user tool to change it back. I now have that same feeling or rage mixed with hopelessness that you feel when dealing with pointless government bureaucracy.
During his testimony, Pichai revealed a tidbit on how Google operates that gives a better look behind the curtain and could help explain users’ frustration with Android phones not seeing security updates. According to Pichai, Google financially incentivizes OEMs to update their phones. Companies that keep phones current with the latest security patches see a higher revenue share from Google services than those that don’t. In other words, the amount of money an OEM makes from you using Google products on its device is correlated to how often it keeps that device up to date with security patches. This means Google intentionally strongarms OEMs to be better about updating phones, which is something we didn’t know before. We knew that Google mandates two years of updates for any Android phone and strongly encourages more extended support than that, but we didn’t realize there were financial incentives involved. I’m honestly not entirely sure if this wasn’t known before, but this is an interesting approach for Google to take. If it’s not financially interesting for OEMs to update their Android devices, why not give them a bigger slice of the Google revenue pie to incentivise them? I’d prefer proper update windows be legally mandated – I wouldn’t be surprised if the EU is working on that somewhere – but in the meantime, I’ll take this rare case of Google’s interests lining up with consumers’ interests.
Tom’s Hardware reports: MyDrivers has published a review of Loongson’s 3A6000 quad-core CPU, confirming that the chip’s IPC improvements are real. Benchmarks reveal that the 3A6000 enjoys an impressive 60% performance uplift in single-core performance and an even more impressive 2x performance multiplier in multi-core performance over its 3A5000 predecessor. With these improvements, the 3A6000 features performance comparable to a Core i3-10100F, with the IPC performance of a Zen 3 chip. Of course, both Intel’s Comet Lake 10th Gen architecture and AMD’s Zen 3 architecture are now coming up on three years old. They’re nowhere near the top of our list of the best CPUs for gaming or other purposes. But it still represents a step in the right direction. Chinese chipmakers are improving quite fast, but unless they can somehow get access to the latest machinery from the Dutch company ASML, which makes virtually all of the machines capable of producing the chips with the smallest nanometers and is the linchpin in the entire semiconductor industry, they won’t be able to overtake or even match what TSMC and Intel are doing. That being said, I love weird processors, and I’d love to get my hands on one of these to play around with.
I’ve recently been working on putting together a CI system for postmarketOS that will allow us to do proper automated integration testing. That is to say – when someone opens a merge request that modifies our initramfs (for example), we should be able to click a button and some minutes later know that this change doesn’t break any of our important usecases. QEMU absolutely can (and will) get us most of the way there, but at some point we need to just run the same software that we’re running on end user devices. Furthermore, QEMU can’t tell us anything about changes in the kernel that might affect our devices, and manually testing during kernel upgrades, frankly, sucks. So we need a fancy board farm, this is one of those things where folks with the right technical background could build something over the course of a week. But for someone like me it’s full of trial and error and hidden complexity… It’s easy enough to do this with one device – just hack something together, but to be successful we need something reliable and adaptable, that we can adjust to fit our needs in the future, and the wide range of devices we support. Now this is an article you won’t come across very often, as the number of people setting up something like this who can actually talk openly about it – someone doing this for a closed company probably can’t – is probably quite small. A great read.
Lennart Poettering has been working on a new systemd feature called systemd-storagetm that is inspired by the Apple macOS “Target Disk Mode” feature. This is similar to Apple’s Target Disk Mode as a boot option on Macs that allows other systems to then easily access it as an external device. The systemd intent with this Storage Target Mode is to make it easier to debug a broken system with very few dependencies while being able to access the raw block device of the broken system via the network. This may also make it easier to migrate from one system to the next. By having access to the raw block device via NVMe-TCP, it can be easy to use the “dd” command or similar for copying the drive. Target Disk Mode has long been one of those amazing Mac features that should’ve come to PCs decades ago, so I’m incredibly glad Poettering is working on it. This will make it so much easier to troubleshoot, get files off a broken system, and so on, without having to move hard drives around or boot into live CDs.
In a world where constant change is the norm, finished software provides a breath of fresh air. It’s a reminder that reliability, consistency, and user satisfaction can coexist in the realm of software development. So the next time you find yourself yearning for the latest update, remember that sometimes, the best software is the one that doesn’t change at all. While this is a nice sentiment, the reality is that software has become so complex, competition to cutthroat, and operating systems so changeful, that “finishing” software just doesn’t seem like a realistic and attainable goal anymore. The example used in the article, WordStar 4.0 for DOS, can only be “finished” because DOS doesn’t change anymore.
Support for RISC-V in Android is taking another step forward. The latest update that we have is that now not only are we accepting patches, but we have begun to mature support for RISC-V in Android. RISC-V is a modular ISA, meaning that there are a large number of optional extensions. We have also determined an initial set that we feel is critical to ensure that any CPU running RISC-V will have all of the features we expect to achieve high performance. This set includes the rva22 profile as well as the vector and vector crypto extensions. Excellent news.
The initial support was posted on October 25th 2023 on the Linux kernel mailing lists for review by the Linux developers community. With the set of patches released by Linaro engineers, it is also possible to boot an AOSP image with Graphics Software Rendering using Google’s SwiftShader. Since 2014, Linaro Engineers have been working closely with Qualcomm Engineers to enable Snapdragon platforms to work with Mainline Linux. Running a recent upstream Linux kernel immediately after the announcement of a new SoC is a significant achievement, and is a testimony to the close working partnership between Qualcomm and Linaro. Interestingly enough, during the recent announcement of the PC-focused X Elite SoC, Qualcomm also highlighted that Linux will be fully supported by the platform, and to underline that point, the company showed off X Elite laptops running both Windows and Linux. While it’ll take more to convince me that Qualcomm now actually cares about properly supporting its SoCs and the open source community, they’re at least positive signs.
MicroTCP is a TCP/IP network stack I started building as a learning exercise while attending the Computer Networking course at the Università degli Studi di Napoli Federico II. It’s just a hobby project and is intended to just be a minimal, yet complete, implementation. At this moment MicroTCP implements ARP (RFC 826, complete), IPv4 (no fragmentation), ICMP (minimum necessary to reply to pings) and TCP (complete but not stress-tested). Note that “complete” should not be intended as “fully compliant” but just as a measure of progress on all of the major features. For instance, it’s complete enough to handle HTTP traffic on a local network. People like this usually end up writing a simple operating system, so it’s interesting to see a TCP/IP stack instead. While clearly a hobby project, small, portable TCP/IP stacks can potentially be useful for very specific use cases, like bringing connectivity to ancient operating systems or other small hobby projects.
We’ve already covered the end of life of Windows CE, but Ars has a short but interesting look back at the history of this undeservedly unloved operating system. It was a proto-netbook, it was a palmtop, it was a PDA, it was Windows Phone 7 but not Windows Phone 8, and then it was an embedded ghost. It parents never seemed to know what to do with it after it grew up, beyond offer it up for anybody to shape in their own image. And then, earlier this month, with little notice, Windows CE was no more, at least as a supported operating system. I will never forget Windows CE.
In this release, the FreeBSD base system and kernel have been updated to 1302508, and it contains software updates, some improvements to Update Station, and new features to NetworkMgr. Also, os-generic-userland-devtools has been removed from the default installation to downsize the live system image. GhostBSD is an excellent option if you want a more turnkey FreeBSD-based desktop.
The goal of this post is to share how we, at the Browser Company, have made it possible to use Swift to build a modern Windows application. There is no UI framework for Windows written in Swift, and Windows itself is written in C++ – so that may leave you wondering, “how can I build my app on Windows”? Modern Windows applications use WinRT, a technology built on top of COM, which can interop really well with Swift, as we presented in our previous post. To be able to build idiomatic UI for Windows in Swift, we have built a language projection tool which creates idiomatic Swift language bindings for WinRT, and today we are open sourcing it at https://github.com/thebrowsercompany/swift-winrt. Swift/Winrt is based on Microsoft’s code generators for C++ (github.com/microsoft/cppwinrt) and C# (github.com/microsoft/cswinrt), and thus is written in C++. Cool stuff.
Since May, uBO has been in a cat-and-mouse game with YouTube. And they’ve shown incredible resilience, especially when you consider that there are only two people on the uBO team dealing with YouTube. The uBO team members are all volunteers. They’ve gone above and beyond to meet every little request from their users. But there’s a limit to how much they can take. At some point, the constant demands become too much, and they will leave uBO for good. It’s one thing to play cat and mouse with YouTube. It’s quite another to deal with a wave of angry users. Maybe that’s how YouTube will win this war of attrition. If you use YouTube enough, YouTube Premium is a great deal – albeit it a deal that’s steadily getting worse as Google increases its price.
Apple released their first Quicktake camera, the Quicktake 100, in 1994, ten years after the Apple //c. On the box, they very boldly wrote: “Requirements: 386, 486 or superior; 2MB of RAM, 10MB of free hard disk space; an 1.44MB floppy drive; a VGA, SVGA or superior card”. But was this true? No. They were just being lazy, or trying to get you to upgrade a perfectly functional 8-bit, 1MHz computer with 128kB of RAM and 140kB floppies. In fact, it was absolutely possible to do digital photography on an Apple //c. Useless projects are the best projects.
Modern PCs provide plenty of metering and power-management options. Version 23.10 of the Genode-based Sculpt operating system makes these features available via an interactive user interface. One can watch the temperature of each CPU core, monitor the individual CPU frequencies, switch between power profiles, and reveal details about power draw. Go to the download page to get started with Sculpt OS. It’s used as the day-to-day operating system by Genode developers, so it’s quite capable.
The Trinity Desktop Environment, the KDE 3 fork, has released a new version. R14.1.1 comes with the ability to drag and tile windows to the display’s borders and corners, adds several improvements to keyboard shortcuts settings, a few new wallpapers, better support in SunOS/Illumos/DilOS and support for libxine2’s logarithmic volume settings. It also has some important fixes for tdepowersave’s display brightness control, arts sound server start up crash, TQt3’s recursive mutexes and for the high CPU usage detected on some RPM distros with R14.1.0. Behind the scenes, an effort to clean up and enhance TQt3 and tqtinterface code has started and will be going on across multiple releases. You can update to the latest version through your package manager, or install TDE for the first time using the project’s instructions.