• Please review our updated Terms and Rules here

14:03 / 16:50 The Rise of Unix. The Seeds of its Fall.

There is a ton of pros and cons in practical scenario most of them business related.
FreeBSD is a far more stable OS than Linux in every aspect for server performance

Actually we were, at the time, almost exclusively a FreeBSD house; we obviously needed Windows for the Exchange servers, but leaving those out the infra was probably 90/10 FreeBSD/Linux, with Linux use mostly restricted to niches where we needed to run something with a paid license, VM hosting, or some really complicated homegrown network test harness stuff that FreeBSD couldn’t do. (Trust me, I had to definitively prove FreeBSD couldn’t before the zealots would let me use it.) FWIW, FreeBSD 4, which was still the “old stable” at the time, sucked almost as hard as OS X did, but the improved threading and SMP support in 5.x fixed a lot of sins.

But yes, in a business it’s all about TCO and efficiency, and buying Xserves to run generic open source server software when the other option was using the OS we already knew inside out and was more performant on cheaper hardware was obviously the stupidest idea ever. Yes, FreeBSD is “harder” to install from scratch off a CD than OS X, but we weren’t doing that; we already had built the infrastructure to PXE boot and install several versions of BSD and Linux with scripted hands-off setup on the Xeon servers we were getting essentially for free. Sure, I suppose if we’d bought enough Xserves we could have set up the infrastructure to auto-install them, but unless we had some need to run Apple specific server products it would have all been a massive waste of time. Bleah.
 
I worked in a data center with a good 20,000 physical servers, a solid portion of which were colocated. In over a decade there, I saw one single rack mounted Xserve in use.
Today, there are probably more Mac Minis racked and colo'd than XServe ever made. There are several mac mini hosters out there.
 
Well, I'm biased. I find Unix to be "perfect". With much of the simplicity of Unix exposed through the its ubiquitous shell programs. Everything else I've worked on, I've just chafed.
 
I would argue that, for non-GUI systems, OpenBSD is actually very simple and elegant compared to modern Linux distros. The installer may be text based, but just asks a few simple questions and generally provides working defaults. The boot process is simple to understand with a few rc scripts. Setting up Pf for a firewall is intuitive, with plenty of examples. The packages system couldn't make it easier to install programs. And the real kicker to me is when you run 'ps'. There is no garbage installed on the system. There are basically just a handful of easily identifiable programs running on a new system - init, syslogd, smtpd, getty ... and then whatever services you start yourself. Try that on a modern Linux system...

For what its worth, I started using Linux at kernel 2.2 building firewalls using ipchains, and the "free software" movement was a huge part of my life in the late 90's and 00's. I have always used Linux on my desktop, historically Suse, then Debian, Gentoo, and somewhat regrettably Ubuntu when I ran out of time as a hobbyist, and I currently run Xubuntu. But, to me, these modern Distro's feel nothing like Linux did back in the old days - they seem bloated, fragmented, and overly complex. Strangely, OpenBSD - which I started using around version 3.4 in the early 2000s - now feels more to me like the old Linux systems than Linux does.
 
Got quite a few Mac Minis now. There's an outfit in Auckland selling a various older computer kit use in various industries for $NZ 10 a pop shipping anywhere in New Zealand. Haven't paid any more the $60 total including shipping for any system I've acquired since October 2023.
 
Perhaps *nix could claim a version of Samuel Clemens' oft-misquoted statement:

"I can understand perfectly how the report of my illness got about, I have even heard on good authority that I was dead. BSD, a cousin of mine, was seriously ill two or three decades ago in Berkeley, but is well now. The report of my illness grew out of his illness. The report of my death was an exaggeration." - *nix

(You could sub in SCO and Linux there if you'd like)

As others have said, Apple has at least at one time earned certification and paid for the right to use the Unix(TM) trademark; macOS can be called Unix(TM). BSD code is everywhere, including the original Windows TCP/IP stack.

Out of the top six operating systems as referenced in https://en.wikipedia.org/wiki/Usage_share_of_operating_systems five are *nix-style systems and the sixth, Windows, has the option to act like a *nix-style system. It needs to, since the *nix-style systems have such an overwhelming majority across all end user operating systems.

The sheer portability of the basic *nix design is how Apple was able to rather quickly transition from PowerPC to Intel, from 32-bit to 64-bit, and then to Apple silicon both with the iPhone/iPad and the Apple silicon Macs. Same with ChromeOS and Android, but with the Linux kernel. Cisco runs a Linux kernel on several router platforms. And of course FreeBSD is the base for several popular firewall systems running mostly on Intel/AMD hardware. NetBSD will even still run on a VAX. The biggest cornerstone of what became known as "The Unix Philosophy" is platform portability; perhaps the Next Big Thing in platforms will be RISC-V, and the *nix ecosystem is ready.

Does anyone else remember how 'fun' running a non-Intel Windows system was? (I still have NT 4 and a Win2000 beta for DEC Alpha here....). Or for that matter, how fun running WindowsXP 64-bit was: had a Dell Precision 690 at $dayjob that ran it; there were all sorts of 'minor' incompatibilities, mostly thanks to the AMD 64-bit system as reimplemented by Intel on the Xeons in the 690, and the need for compatibility layers such as WoW and WoW64 and legacy programs that still used 16-bit code... (mostly installers as I recall, but I reserve the right to be wrong...InstallShield rings a bell, but it wasn't alone.). x86_64, it must be remembered, was originally a non-Intel architecture.....and Debian, at least, honors that, by calling it AMD64.

I haven't tried Windows on ARM or the historical IA-64, PowerPC, or MIPS ports, so can't comment about those.

But ARM chips are eating Intel's lunch in all spaces except the traditional desktop PC, and Apple silicon is making inroads there. Thus Windows on ARM 32 and 64-bit.

Perhaps a similar video on the rise of Windows and the seeds of its fall should be done? (And perhaps that sentence belongs in Humor...but I would vote one of the seeds being Microsoft's seeming narcissism - the Daffy Duck style OS saying "It's mine it's mine it's all mine you can't have any it's all mine!").
 
I would argue that, for non-GUI systems, OpenBSD is actually very simple and elegant compared to modern Linux distros. The installer may be text based, but just asks a few simple questions and generally provides working defaults. The boot process is simple to understand with a few rc scripts. Setting up Pf for a firewall is intuitive, with plenty of examples. The packages system couldn't make it easier to install programs. And the real kicker to me is when you run 'ps'. There is no garbage installed on the system. There are basically just a handful of easily identifiable programs running on a new system - init, syslogd, smtpd, getty ... and then whatever services you start yourself. Try that on a modern Linux system...

Linux and FreeBSD show kernel threads in process list. Both systems use 1:1 model, for each userspace thread there's an appropriate kernel thread. FreeBSD used to implement a N:M model.

Other than that systemd on modern Linux does a lot of stuff, breaking the unix philosophy. On the other hand, no daemons are needed to have a normal user session at any BSD. There's a few children of init running like gettys and that's it.

Fully agree that OpenBSD is quite elegant for what it is.

One of mindset hints you can feel when running both is securelevel settings, OpenBSD boots with read-only kernel as default, while FreeBSD does not. So FreeBSD expects an average user to plug in a device that will need a driver on the fly, which is a desktop usage scenario, while OpenBSD explicitly shuts that capability off, which is a server/embedded/appliance scenario. Very easy to understand reasoning behind things in BSD world.

For what its worth, I started using Linux at kernel 2.2 building firewalls using ipchains, and the "free software" movement was a huge part of my life in the late 90's and 00's. I have always used Linux on my desktop, historically Suse, then Debian, Gentoo, and somewhat regrettably Ubuntu when I ran out of time as a hobbyist, and I currently run Xubuntu. But, to me, these modern Distro's feel nothing like Linux did back in the old days - they seem bloated, fragmented, and overly complex. Strangely, OpenBSD - which I started using around version 3.4 in the early 2000s - now feels more to me like the old Linux systems than Linux does.

I've been using similar stuff inside similar period of time, and this is what I feel too :|

Today a lot of specific knowledge is on distro documentation sites. You want to do something with Linux+software package, google lands you on Arch wiki. While you're on Slackware. So you have to figure out the differences yourself.

The push for systemd did not change how package maintainers compose the software in the archives. The push for systemd did not unify configuration ways for 3rd party packages on distributions.

Also there's containerization/Docker driving Linux world now. Coming from FreeBSD world this is quite needless cruft.
 
As others have said, Apple has at least at one time earned certification and paid for the right to use the Unix(TM) trademark; macOS can be called Unix(TM). BSD code is everywhere, including the original Windows TCP/IP stack.

I don't think it works that way. Or maybe it does, we need an Open Group certification expert to clarify :)

OSX that passed compliance can be said to be UNIX(TM) implementing POSIX version it was certified for.
And more recent OSX that didn't enter compliance cannot be said to be UNIX(TM) because no-one has tested the regressions for prior POSIX certification.

It should be easy, there should be a fresh list somewhere of compliant OSes/versions. But I can't find it.

AFAIR TCP/IP on Windows has been rewritten around Windows 7 era.

Out of the top six operating systems as referenced in https://en.wikipedia.org/wiki/Usage_share_of_operating_systems five are *nix-style systems and the sixth, Windows, has the option to act like a *nix-style system. It needs to, since the *nix-style systems have such an overwhelming majority across all end user operating systems.


The sheer portability of the basic *nix design is how Apple was able to rather quickly transition from PowerPC to Intel, from 32-bit to 64-bit, and then to Apple silicon both with the iPhone/iPad and the Apple silicon Macs. Same with ChromeOS and Android, but with the Linux kernel. Cisco runs a Linux kernel on several router platforms. And of course FreeBSD is the base for several popular firewall systems running mostly on Intel/AMD hardware. NetBSD will even still run on a VAX. The biggest cornerstone of what became known as "The Unix Philosophy" is platform portability; perhaps the Next Big Thing in platforms will be RISC-V, and the *nix ecosystem is ready.

Bingo.
+ BSD licence makes it more attractive for commercial adoption. Playstation uses parts of FreeBSD because it can.

Does anyone else remember how 'fun' running a non-Intel Windows system was? (I still have NT 4 and a Win2000 beta for DEC Alpha here....). Or for that matter, how fun running WindowsXP 64-bit was: had

On Server 2003 everything on my new 64-bit PC worked, bar the most important peripheral, E-mu soundcard I used for home DAW. It just plain old BSOD the boot if it was installed.

Then I got a genuine privilege of trying to run XP64 and XP with PAE as a daily driver, fringe Windows experience in a nutshell. I never liked XP anyways, old PC P4 was running on W2K, but these were just plain bad, like ME in their day.
 
Yeah but SUSv3 is a version lower than POSIX.1-2017 (equivalent of SUSv4) whose near compliance is targeted by FreeBSD at least.
For instance all OSX macs were UNIX 03 compliant but clock_nanotime() syscall has been only added in Monterrey.

So yes, Apple is UNIX but it's of an older standard. It's worth something (since they've been paying recertification all along) - FreeBSD would take a big effort to get to SUSv3 compliance, like being a major feature of a major release, and Linux is years off.
 
The only SUSv4 (UNIX V7) Unix listed is AIX version 7. UNIX V7, although it sounds older, is actually newer... I get a whole different vibe from the term Unix V7 than what they mean! After all, TRS-XENIX 1.x was a Unix V7, or seventh edition.

What's funny is that the SUSv4 certification for AIX v7 is OLDER (2020) than the SUSv3 certification for macOS 14, which is a 2023 certification.

So macOS 14 can legally be called Unix(TM).

Current certification to older or subset standards isn't unusual, really. The Open Group lists certifications to all SUS versions; an OS could get SUSv1 (UNIX 95) certified in 2024, in other words, as far as I can tell.

But I would argue that simply having the three letters BSD in the name carries as much weight as SUS of any version in practice. TRS-XENIX carried a lot of UCB-isms for a Seventh Edition Unix; Xenix System III (Tandy 6000) carried even more.

Linux is its own thing, of course. RHEL, SLES, and Ubuntu LTS are the commercial enterprise standards in that space, with Debian being as close to a community enterprise OS standard (being developed to enterprise class by a community of developers) as there is. There is a "Linux Standard Base" that has been popular, but commercial distributions distinguish themselves with their 'enhancements' much like commercial Unix in the 1990's did, although the result is very likely to be different. The BSDs of the 1990's and today's Debian fill much the same niche, being the 'community' version, although Debian is orders of magnitude easier to get and more popular than any 1990's BSD ever was.

BSD by all technical rights should have been the clear winner, but the lawsuit put the kibosh on that. I'm oversimplifying here, but GNU was supposed to fill this niche, without a kernel., of all things, although Hurd does now exist... Linux the kernel fills this niche within the niche that has become a major market.

I like BSD in all flavors, and run the FreeBSD based OPNsense firewall in multiple places. It reminds me more of the T6K Xenix System III than any Linux does.....

And for vintage systems a BSD is probably the right choice. 2.11BSD for really old stuff; NetBSD for pretty much anything else. The rest have their uses, and I wouldn't hesitate to run either OpenBSD or FreeBSD on the latest hardware. If Debian weren't available, that is. And it's not for technical reasons I prefer Debian; it's the decentralized community development, and after so many years of running a Linux it's just more comfortable. But if it went away, I'd have no second thoughts about switching to a BSD.
 
Last edited:
Fully agree that OpenBSD is quite elegant for what it is.
OpenBSD elegance is UNIX elegance. The whole "init pid 1, and everything descends from that" thing combined with cheap processes, and trivial IPC (i.e. piping manifest through file descriptors).

The magic of systemd is not systemd per se, it's that anyone can replace init with anything else, empowering folks to create something like systemd. I think there were some kernel changes that systemd relies on (for privileges and what not), process groups, stuff like that. I know Solaris SMF relied on kernel changes. As to whether those came from the needs of something like SMF/systemd or it was something that these system brought forward into the init space, I can't say. Dunno who was pushing who there. Apples launchd I think it pretty simple, but I find it lacking.
Today a lot of specific knowledge is on distro documentation sites. You want to do something with Linux+software package, google lands you on Arch wiki. While you're on Slackware. So you have to figure out the differences yourself.
This is why I use Ubuntu. If I have a problem, I stick "ubuntu ...problem..." into the search box. Sticking with a distro just makes troubleshooting that much easier for me.
 
I shouldn't lift this rock, but for the uninformed and hopefully to kill discussions about HeadRat's motivations for doing it
 
IMOHO, the basic problem is that these OSes were designed in the past where resources and applications were quite different. In 1978, could anyone have seen that I'd be running a multi-core multi-GHz system with GB of memory and TB of storage connected to the Internet using a GUI? Of course not--yet we graft and change things so that they work the same--and really new thinking is stifled. I started using UNIX about 1980 and find that on Linux, the basics still apply.

As far as grafting systemd into Linux, I think it makes sense--and maybe didn't go far enough. I still have to occasionally dig out a .conf or .rc file and figure it out.

I find that OpenBSD to be a bit parochial. "We don't include telnet because it's a bad idea. If you want to use it, go find some source and build it yourself." Well, darn it, I use telnet on an internal network not exposed to the vast outside jungle of malware. Virtualbox, WINE--nope, not gonna do it.
 
I don't intend to enter systemd discussion either. It is what it is, it was a change, and people have opinions.
 
OpenBSD parochial? Tell me it ain't so! (That's part and parcel of its cachet and just a part of de Raadt's personality)

systemd controversial? Tell me it ain't so! It scratched somebody's itch, or it wouldn't have been written. YMMV if that's your itch or not. I don't have a strong opinion about it either way; as long as the daemons I need running get started and stay running I couldn't care less how they got into a running condition. I can work with any unit system; there are bigger fish to fry, IMHO.
 
As a hobbiest I haven't seen any REAL performance drop from my AMD K-6 400 testing system setup up to this Multi Xeon box at all at all. Though so called "experts" are always wining about it. ;) The AMDK2-6 400 with 256megs of ram and spinning rust hdd still takes around a minute to boot to the XFCE desktop no matter what int system I use on it.
 
Last edited:
Back
Top