A Stable Linux Distro: Running Windows Binaries by Default
This blog post was automatically generated (and translated). It is based on the following original, which I selected for publication on this blog:
philipbohun.com/blog.
A Stable Linux Distro: Running Windows Binaries by Default
The inherent instability of the Linux environment, particularly regarding binary compatibility, poses a significant challenge. While a 20-year-old executable can often run on Windows without issue, the same cannot always be said for Linux binaries, even those just a year old. This instability stems from updates and library version conflicts across different distributions.
The Problem of Binary Distribution on Linux
The issues described above make binary distribution a complex issue, and because of these problems, there are a multitude of ways to distribute binaries for Linux including:
- Raw binaries
- AppImage (self-contained packages)
- Flatpak (sandboxed package manager)
- Snaps (another sandboxed package manager)
Each approach has its own set of problems, especially in terms of application preservation. The question remains: Can applications be reliably archived and executed decades later without significant effort? For most of these distribution methods the answer is no.
Win32 as a Stable ABI on Linux
As highlighted by Arek Hiler, Win32's stable Application Binary Interface (ABI) offers a potential solution to Linux's compatibility woes. This stability is made possible by Windows' design, where system calls are made through dynamically linked libraries. This allows for kernel-level modifications without breaking user-space compatibility. This design insight could be leveraged to solve Linux's inherent problem.
Fundamentally, the difference between a Windows and Linux application lies in the executable format and the method of making system calls. By utilizing the PE format and dynamic libraries, a Windows application can be effectively emulated. Wine, a compatibility layer capable of running Windows applications, demonstrates this possibility.
A New Linux Distro: Bridging the Gap
Imagine a Linux distribution designed to closely resemble Windows, offering a seamless transition for Windows users. Users would be able to install and run Windows applications with ease. Such a distro could be built upon the following principles:
- Pre-installed Wine: The distribution would include Wine, pre-configured for optimal compatibility.
- Kernel Patches: Minor modifications to the Linux kernel's "exec" system calls would allow seamless execution of Windows applications.
- User-Specific Wine Prefixes: Each user would have a dedicated Wine prefix, presenting a Windows-like file system.
While Linux would remain accessible, the default GUI experience would cater to Windows users.
Addressing the Trend Towards Locked-Down Operating Systems
Commercial operating systems like macOS and Windows are increasingly becoming more restricted, raising concerns about privacy and user control. Features like mandatory online accounts, application approval processes, and file scanning raise critical questions:
- What happens when users lose control over their computers?
- What happens when operating systems become subscription-based services?
- What happens when users are banned from using their computers due to disagreements with the OS vendor?
Although these features are often justified as enhancing convenience and safety, the potential erosion of user agency is a serious concern.
The Need for an Open Alternative
The development of a "Windows" distro of Linux could not only address the binary compatibility issue but also provide an alternative for Windows users seeking a more open and controllable computing environment. As Windows continues to evolve, offering a painless transition to Linux becomes increasingly important. Which path do we want to take?