Google has announced that it is cutting off access to the Sync and “other Google Exclusive” APIs from all builds except Google Chrome. This will make the Fedora Chromium build significantly less functional (along with every other distro packaged Chromium). It is noteworthy that Google gave the builders of distribution Chromium packages these access rights back in 2013 via API keys, specifically so that we could have open source builds of Chromium with (near) feature parity to Chrome. And now they’re taking it away. The reasoning given for this change? Google does not want users to be able to “access their personal Chrome Sync data (such as bookmarks) … with a non-Google, Chromium-based browser.” They’re not closing a security hole, they’re just requiring that everyone use Chrome. Or to put it bluntly, they do not want you to access their Google API functionality without using proprietary software (Google Chrome). There is no good reason for Google to do this, other than to force people to use Chrome. This is what we in the business call a “dick move”.
Win32 APIs provide powerful functionality that let you get the most out of Windows in your applications. While these APIs are readily accessible to C and C++ developers, other languages like C# and Rust require wrappers or bindings in order to access these APIs. In C#, this is commonly known as platform invoking or P/Invoke. Historically this has required developers to handcraft the wrappers or bindings, which is error prone and doesn’t scale to broad API coverage. In recent years, given the strong demand for calling Win32 APIs from various languages, several community projects have spawned to provide more strongly typed and idiomatic representations of these wrappers and bindings to provide an improved developer experience and spare developers the overhead of creating them themselves. Some notable projects include PInvoke for .NET and winapi-rs for Rust. The main challenge with these projects is they are manually maintained, which makes broad and sustained API coverage difficult and costly, and their work doesn’t really benefit other languages. As owners of the Windows SDK, we wanted to see where we could provide unique value here, take some of the burden off of the community, and make achieving broad and sustainable API coverage across languages a reality. The result of this is our win32metadata project and corresponding Win32 language projections now in preview on GitHub! I’m not a developer, but I think this means that Microsoft is trying to make it easier to tap into the Win32 API with languages other than C and C++. This seems like a smart move considering how popular some of these more modern and/or recent languages have become. It also highlights that despite repeated attempts to kill Win32, Microsoft seems to have accepted that it simply isn’t going anywhere anytime soon.
It also made Apple silicon rather distinct from all other 64-bit ARM hardware in terms of both CPU core and peripherals. Our Corellium virtualization platform has been providing security researchers with unparalleled insight into how operating systems and programs work on Apple ARM processors. But in the process of developing our virtualization system, we also gain knowledge about the hardware we are modeling, and this knowledge can be best refined by testing it against real hardware – which we have only been able to do with the emergence of checkm8, an exploit that let us load programs onto Apple smartphones. This led directly to the Sandcastle project, where we built a kernel port to the A10 processor in early 2020. So when Apple decided to allow installing custom kernels on the Macs with M1 processor, we were very happy to try building another Linux port to further our understanding of the hardware platform. As we were creating a model of the processor for our security research product, we were working on the Linux port in parallel. Excellent work by Corellium, and this materialised a lot faster than I anticipated. This makes M1-equipped Macs potentially more useful than if they could only run macOS, but of course, as with all these closed platforms and Linux support, the devil is in the details – bringing up a Linux kernel is only the first step – a big and crucial one, but only the first.
The release of Apple Silicon-based Macs at the end of last year generated a flurry of news coverage and some surprises at the machine’s performance. This post details some background information on the experience of porting Firefox to run natively on these CPUs. We’ll start with some background on the Mac transition and give an overview of Firefox internals that needed to know about the new architecture, before moving on to the concept of Universal Binaries. We’ll then explain how DRM/EME works on the new platform, talk about our experience with macOS Big Sur, and discuss various updater problems we had to deal with. We’ll conclude with the release and an overview of various other improvements that are in the pipeline. These kinds of articles are very valuable, since Apple isn’t always forthcoming with documentation of specifications, and the new M1-based Macs are no exception. Big, massive projects like Firefox sharing their experiences can be quite useful to other developers.
It was weird to own a Zune in 2005. It is even weirder to own a Zune in 2021 — let alone 16 of them. And yet, 27-year-old Conner Woods proudly shows off his lineup on a kitchen table. They come in all different colors, shapes, and sizes, and each can be identified by that telltale black plastic D-pad just below the screen. He owns the entire scope of the brief Zune lineup — from the svelte Zune 4 to the chunky Zune HD — and among the microscopic community of people who still adore Microsoft’s much-derided MP3 player, no collection of dead tech could possibly be more enviable. But today, almost a decade after Microsoft terminated the brand, there is a small bastion of diehards who are still loving and listening to their Zunes. If you talk to them, they’ll tell you that these MP3 players are the best pieces of hardware to ever run a Windows operating system. Preserving the Zune legacy has just become another part of the hobby. I’ve never once seen a Zune in real life.
Apple is back under the spotlight over labor conditions in its supply chain following an explosive report from The Information on Thursday that revealed new details about the company’s reluctance to cut ties with suppliers who violate its ethics policies. According to the report, Apple learned in 2013 that Suyin Electronics, a China-based company that (at the time) made parts for its MacBooks, was employing underage workers, and despite telling Suyin to address the issue or risk losing business, Apple discovered additional workers as young as 14 years old during an audit just three months later. But rather than immediately cutting ties with Suyin for violating its supply chain ethics policies — which prohibit child labor and which Apple claims are the “highest standards” — Apple continued to rely on the company for more than three years, according to The Information. Any company – and their executives – knowingly and willingly using child labour, slave labour, or forced labour anywhere in the world should be tried as if they are committing these heinous acts in their home countries. The body of evidence that Apple is fully aware of its extensive use of child labour and forced labour in e.g. China’s Uighur concentration camps is extensive, and the fact Tim Cook can get away with this without ever having to face the consequences is disgusting. Tim Cook’s fellow Americans get life sentences for less. Of course, Apple is far from the only company guilty of this – just look at Nestle or Nike, for instance – but being the largest company in the world with the biggest, most arrogant mouth about how “ethical” they are should be the first to end up in court.
This quarter had quite a lot of work done, including but certainly not limited to, in areas relating to everything from multiple architectures such as x86, aarch64, riscv, and ppc64 for both base and ports, over kernel changes such as vectored aio, routing lookups and multipathing, an alternative random(4) implementation, zstd integration for kernel dumps, log compression, zfs and preparations for pkg(8), along with wifi changes, changes to the toolchain like the new elfctl utility, and all the way to big changes like the git migration and moving the documentation from DocBook to Hugo/AsciiDoctor, as well as many other things too numerous to mention in an introduction. The best way to keep up with FreeBSD development from an outsider’s perspective. FreeBSD is on my radar for the UltraSPARC server-as-a-workstation project – a reader has donated a SunFire V245 that’s currently in shipping to me – so I’m trying to be a bit more in tune than I usually am with the world of FreeBSD.
On modern Unix-like systems such as FreeBSD, “swapping” refers to the activity of paging out the contents of memory to a disk and then paging it back in on demand. The page-out activity occurs in response to a lack of free memory in the system: the kernel tries to identify pages of memory that probably will not be accessed in the near future, and copies their contents to a disk for safekeeping until they are needed again. When an application attempts to access memory that has been swapped out, it blocks while the kernel fetches that saved memory from the swap disk, and then resumes execution as if nothing had happened. In 2021, cheap SSDs have become commonplace and have performance characteristics much better suited to swapping, so it seems worthwhile to revisit how swapping works in FreeBSD, and try to provide some insight into frequently raised issues. Some light reading for the weekend.
Herein, we lay out our plans for evolving Genode. Progress in addition to this planning will very much depend on the degree of community support the project will receive. The Challenges page collects some of our ideas to advance Genode in various further directions. The road map is not fixed. If there is commercial interest of pushing the Genode technology to a certain direction, we are willing to revisit our plans. This is a very detailed roadmap, but as clearly mentioned in the opening paragraphs, this is not set in stone, and things may change. Most of the planned focus seems to be on vastly improving support for ARM, for instance by working on bringing Genode to the PinePhone. They also want to streamline and improve the process for porting Linux device drivers to Genode, which should help in increasing hardware support.
The WhatsApp messaging service announced on Friday that it would delay changes to new business features after people around the world criticized the new policy. The Facebook-owned company said it is “going to do a lot more to clear up misinformation around how privacy and security works on WhatsApp.” Privacy rights activists heavily criticized the WhatsApp changes, saying it was the latest step showing Facebook’s poor handling of user data. The real issue was a far larger than expected exodus of users to services like Signal and Telegram. I doubt Facebook will actually make any meaningful changes – instead, we’ll see a different tone or wording.
After years of waiting, it looks like Microsoft now has a true answer to Chrome OS. A new and near-final version of Windows 10X has leaked, and it offers a first look at the changes Microsoft has made to the upcoming operating system to get it ready for laptops. Windows 10X first started off life as a variant of Windows 10 designed for dual-screen devices. It was supposed to launch alongside Microsoft’s Surface Neo, a tablet-like device with two separate nine-inch displays that fold out to a full 13-inch workspace. Microsoft revealed last year that Windows 10X is now being reworked for “single-screen” devices like laptops, and Surface Neo has been delayed. While the company has spent years differentiating Windows 10X for foldable and dual-screen hardware, it now looks and feels more like Chrome OS than ever before. This is literally Chrome OS. It looks, feels, and tastes like Chrome OS – and of course, that’s the point. It also points to what we can expect from regular Windows over the coming years.
I spent the first week of 2021 learning an OS called Plan 9 from Bell Labs. This is a fringe operating system, long abandoned by its original authors. It’s also responsible for a great deal of inspiration elsewhere. If you’ve used the Go language, /proc, UTF-8 or Docker, you’ve used Plan 9-designed features. This issue dives into operating system internals and some moderately hard computer science topics. Sounds like an excellent article for us!
Among the many highlights for Wine 6.0 are core modules now being implemented in Portable Executable (PE) format, the initial (experimental) Vulkan back-end for WineD3D as an alternative to OpenGL, DirectShow and Media Foundation support, and a redesign of their text console implementation. Wine is such an integral part of my computing life now, due to Proton and Valve.
Theseus is a new OS written from scratch in Rust to experiment with novel OS structure, better state management, and how to shift OS responsibilities like resource management into the compiler. We are continually working to improve the OS, including its fault recovery abilities for higher system availability without redundancy, as well as easier and more arbitrary live evolution and runtime flexbility. Though still an incomplete prototype, we envision that Theseus will be useful for high-end embedded systems or edge datacenter environments. See our published papers for more information about Theseus’s design principles and implementation philosophy, as well as our goal to avoid the phenomenon of state spill or mitigate its effects as much as possible. Also, see Theseus’s documentation for more. Definitely an experimental operating system, and it joins the many other Rust-based operating systems projects out there.
Intel CEO Bob Swan is stepping down from the position on February 15th, the company has announced. He will be replaced by VMware CEO Pat Gelsinger. Swan was named Intel’s permanent CEO two years ago in January 2019. He initially took on the role on an interim basis in June 2018 following the resignation of Intel’s previous CEO Brian Krzanich. They need a Lisa Su.
In a world where our routers look more and more like upside-down spiders than things you would like to have in your living room, there are only a handful of routers that may be considered “famous.” Steve Jobs’ efforts to sell AirPort—most famously by using a hula hoop during a product demo—definitely deserve notice in this category, and the mesh routers made by the Amazon-owned Eero probably fit in this category as well. But a certain Linksys router, despite being nearly 20 years old at this point, takes the cake—and it’s all because of a feature that initially went undocumented that proved extremely popular with a specific user base. Today’s Tedium talks about the blue-and-black icon of wireless access, the Linksys WRT54G. This is the wireless router that showed the world what a wireless router could do. I’ve often pondered tinkering with this, but I’m terrible with anything related to networking – it seems like it’s a weird world of technology that exists on its own separate plane, disconnected from everything else. Networking is obtuse, and as long as our home network is functioning, I’m not touching it.
The new BeagleV is a little different. It’s a small single-board PC with a RISC-V processor and support for several different GNU/Linux distributions as well as freeRTOS. With prices ranging from $120 to $150, the BeagleV is pricier than a Raspberry Pi computer, but it’s one of the most affordable and versatile options to feature a RISC-V processor. The makers of the BeagleV plan to begin shipping the first boards in April and you can sign up to apply for a chance to buy one of the first at the BeagleV website. It’s a good sign that RISC-V hardware is getting more accessible – a truly open source ISA is something we need to compete with the proprietary mess that is ARM.
A number of patches worked on for Haiku OS back for Mesa 20.x were freshened up and with some extra tweaking and code cleaning those patches have now been merged for Mesa 21.0. This includes factoring out a lot of the OpenGL legacy dispatch code and a lot of cleanups around the Softpipe driver handling. With Mesa 21.0-devel as of today, it’s at least enough where Mesa Git can now be built on Haiku OS and yield working OpenGL rendering with the LLVMpipe software. Neat, and a testament to Haiku being in a far better state than many people seem to think.
For decades, my perception of USB was that of a technology both simple and reliable. You plug it and it works. The two first iterations freed PCs from a badly fragmented connector world made of RJ-45 (Ethernet), DA-15 (Joystick), DE-9 (Serial), DIN (PS/2), and DB-25 (Parallel). When USB-3.0 came out, USB-IF had the good idea to color code its ports. All you had to do was to “check for blue” in the chain to get your 5 Gbit/s. Even better, around the same time were introduced type-C connectors. Not only the world was a faster place, now we could plug things with one try instead of three. Up to that point in time, it was a good tech stack. Yet in 2013 things started to become confusing. USB and ThunderBolt have become incredibly complex, and it feels like a lot of this could’ve been avoided with a more sensible naming scheme and clearer, stricter specifications and labeling for cables.
How do you send a password over the internet? You acquire a SSL certificate and let TLS do the job of securely transporting the password from client to server. Of course it’s not as cut-and-dry as I’m making it out to be, but the gist of it holds true and stood the test of time. This hasn’t always been this way though, and one incredibly popular storefront on the world wide web prefers to add a little extra to this day. I’ll be discussing Steam’s unique method of logging in their users, and go down a deep rabbit hole of fascinating implementation details. Not exactly my cup of tea, but if there’s one thing I’ve learned over the years here at OSNews, it’s that the most obscure stuff can generate a lot of interest. So, here you go.