Our slowly growing Unix monoculture
utcc.utoronto.ca
utcc.utoronto.ca
I have never been a fan of CentOS, and SunOS was so long ago I barely remember it, and I've never tried FreeBSD, but I do want the FOSS-OS ecosystem to thrive and not collapse into Canonical alone (especially given that I don't entirely love some of their recent moves).
....go on?
All the current options, even those geared towards Linux specifically, make significant tradeoffs in one or more of these areas, and I think this significantly curbs Linux adoption.
The native macOS apps I run are Firefox, Zoom, Outlook, a VPN client, and, of course, a VM runner, and WezTerm to interact with the VMs.
I slightly miss the GUI niceties of Emacs and Vim, but both are very much usable via a terminal session: true color, mouse support, shared clipboard, blazing display speed. I could run VSCode if I wanted. (I of course also somehow miss sane window management which I could get under X or Wayland, but frankly 3-4 native windows are not such a pain to manage manually, and Firefox has Tree Style Tabs.)
With new Macs being ARM-based, and most production servers being x64-based Linux, there's pretty little choice, mostly about the type of emulator you pick. Yes, you can mount the source tree via NFS. Or you can develop 100% without native code locally under macOS, it works with Java and somehow with Node. If you got Python though, you suddenly depend on significant amounts of native code extensions (from greenlets to numpy to Pillow to ML libraries), and developing on exactly the same OS which you run in prod saves you a lot of trouble.
[1] "My Place Of Work"
Debian has testing, which can sort of get close, but it's not debian's specialty
that's in addition to the normal gripes about application start up time, or how hard they make it to not auto-update out from under you at.
And then there's the closed nature of the snap ecosystem (single storefront controlled by Canonical), making many feel that canonical is trying to turn Ubuntu into a a more iPhone style closed system as opposed to being able to add whatever source you want to apt.
A non-technical aspect of this is the widespread epidemic of windows brain damage: that is the usually life-long shaping of a user's perspective of what is "normal" for an OS, resulting from being weaned on a windows OS. This has many many embodiments. One particularly egregious aspect is the idea that one should choose the one "most popular" option, instead of evaluating the technical merits of the many available options.
Thus, just use ubuntu.
For servers especially, ubuntu is often inappropriate. For instance a GUI is not often desirable in a server only computer.
snap is another example. This non-native package manager breaks the basic security model of a linux distribution. While distro packagers don't routinely audit every package, they do pass through a distro-local creation process. Whereas snap imports a binary package from a remote 3rd party repo. This again is a result of windows brain damage, as the standard mechanism for installing non-M$ s/w on a windows machine is to install a binary from a 3rd party repo.
A diverse ecosystem is most healthy. In this light the recent years of corporate consolidation of the free software ecosystem are concerning in many ways...
Ubuntu works fine headless. No one I know who uses Ubuntu on servers is using a GUI.
Going back to the biology reference of monoculture... in evolution you do have times where the population is mostly homogeneous, until you encounter events that promote/favor diversity. Eventually events settle on one main "winner" configuration and the cycle repeats. Similar here in my opinion.
I don't really get why this is an assumption, in fact I'd heavily bet against it the not so distant future.
The problem is that most of the consumer hardware manufacturers, from motherboards, to CPU coolers, etc are all geared towards AMD and Intel.
Ubuntu is not going to be the only thing people run but consolidation in itself is not bad as there's also been a lot of half cooked, abandoned and redundant projects around.
You used to go to an airport and see maybe 10 different airplane types and about twice that in trials and airline colors. Now you see three for each roughly.
I'm a systemd fan actually, but I recognize the threat. I don't like there being a total success, a monoculture. But alas, it feels like most people either live with and learn to love what systemd offers (many dimensional excellence & capabilities exposed consistently) while living with the couple hiccups, or they have a retro backwards looking anti-big reaction.
So there's like a centrist force & an anti-force. There's no one trying for bigger better. No one's trying to out-do systemd, do a better job: they're working tirelessly to try to recreate a past where we did much less, had much smaller ambitions. There's no progressive force.
This directly mirrors Molly White's recent XOXO talk (video not yet available) where she talks about how the better new web we want isn't just so replay of the past. That we need to build on, no be afraid of what's newly possible, chase new targets, evolve. https://bsky.app/profile/knowtheory.net/post/3l2ib4kfrjm2r
Beside that instead of becoming fool with Ubuntu I'd rather choose NixOS or, if I can depending on the infra needs, Guix System to have a more manageable system language. They are MUCH more manageable and robust than Ubuntu or other GNU/Linux distros by nature, not stable as old SUN Solaris, but still stable enough and they teach how to manage modern systems and infra, witch is damn needed these days.
An Ubuntu monoculture at least gives you an easy migration path to Debian.
That gives you the sort of platform on which you could introduce a new ecosystem by parts.
No idea how much skill that takes, but it’s been done once.
Sadly, Linux doesn't give a shit about other systems, so any effort to standardize containers will happen outside Linux, and Linux probably won't pick up its changes because they already have Linux containers. So a WINE like thing would be the most workable option.
The current state of affairs is actually a much better solution. Just make all containers OS-specific, and ship the OS kernel and dependencies along with a shim, and run them with QEMU. Apps run way more reliably this way with no porting required. The devs do less work, the users do less work, there's less bugs, and you can run any app in any OS.
FreeBSD has been running Linux for about two decades†, "Fun with FreeBSD: Run Linux Containers on FreeBSD":
* https://productionwithscissors.run/2022/09/04/containerd-lin...
I ran the Linux binary of Return to Castle Wolfenstein back in the day on FreeBSD with NVidia drivers:
* https://en.wikipedia.org/wiki/Return_to_Castle_Wolfenstein
I'd imagine this would allow you to run whatever kernel you wanted to start whatever "container image" you had planned. Quotes because I'm not sure if that's still really a container.
There is an explosion of viable alternatives that are all running in containers (nix, alpine, debian, hell - lots of folks are just using distroless/scratch containers these days with static binaries). For folks on managed clusters, they don't even care what the underlying hosts are at all (and again - they aren't ubuntu).
Kernel consolidation is real, but I definitely don't see an Ubuntu monoculture. I see a linux monoculture. My guess is that won't change until Linus steps back from running that show, and then I expect it to fracture again (It's always the people that end up mattering).
I also don't agree that ARM isn't coming. It is (I'm already running several services on rpis, and I get issued ARM macs for work). From a power perspective... hard to beat - The performance/watt is just too good to ignore. Graviton/TauT2A are already here, and they're economical on the hosted side.
Basically - this feels like the "I'm getting on up there and just want a stable thing I know" type nostalgia post. Ubuntu fits that bill for a lot of folks, but it's not where I see the next generation going.
If you're only seeing ubuntu... I suspect you've been doing the same thing for too long. Time to jump out of the rut. Go somewhere new, see the cool new-fangled things the kids are playing with (it's not ubuntu).
Ubuntu is a perfectly fine solution (and frankly - debian more-so) but the view the author has from the context of a university setting is... as outdated as my professor that insisted on smalltalk still in 2007. It's not wrong, it's just aged.
Dealing with this Ubuntu crap is only marginally better than Windows. Debian is not much better.
You could try Windows! The water is warm and quite pleasant. There’s many things that are worse in Windows, but there’s also many things that are better!
You can’t call it 30 years if they stopped, and stopping puts into question when they will stop again.
I don't know if SFU was actually POSIX compliant, but Linux isn't 100% compliant and doesn't aim to be.
Maybe having some modern WSL is better than having SFU's POSIX-1990?