3 ms·
In order to engage the subject matter of the article, I'm going to pin down the definition of Unix as some POSIX-compatible server OS with some Unix shell runni
by torginus 5y ago
In order to engage the subject matter of the article, I'm going to pin down the definition of Unix as some POSIX-compatible server OS with some Unix shell running on top of it. I think this encompasses most of the worlds' server infrastructure that runs some variant of Linux. The article implies that Unix is superior to Windows because people use it for real work as opposed to just diddling about in some graphical application.
This is a massive misrepresentation. While bare-bones Unix is well designed for simple scenarios, like running a server with ethernet and disk access and static hardware and yields itself to implementing Unix-style shells with fork() and pipes, it is not enough OS for a proper desktop environment. In other cases, it is too much OS. I remember designing and writing software for an embedded voice recording system for railway dispatchers, which had things like remote ethernet configuration, writing the recordings to a FAT32-based SD card on a 60MHzish uC with 128k flash and 64k RAM. It had no OS, everything was running on the bare metal. Going back to my previous example, if one images running a single web server process in a VM container, one could just design some hypothetical architecture, that allows you to do this with all the low-level stuff is put into a small statically linked library, and the app is the OS itself.
Imagine plugging in a USB bluetooth dongle to play some music on your headphones. In response the OS needs to load some drivers, start the bluetooth service, tell the audio service to output audio to your headphones etc.
Windows can do this out of the box. Linux can be made to do this, either with a massive proprietary Android task or systemd/pulseaudio/bluez/whatever if you're in the open-source world. At this point Linux can be hardly called a Hole-Hawg.
The perceived superiority of Unix also leads to the false conclusion about Android/macOS/Desktop Linux being superior to Windows (or any other hypotethical fully fledged OS). In order to handle the massive complexity imposed by the complex scenarios, the systems themselves have to be complex as well, with varying success. I'm willing to bet, most of the code that allows me to write this comment on macOS on a HW accelerated GUI using a bluetooth keyboard is part of the Apple-monolith and has nothing to do with Unix/POSIX. The same applies to the other "Unixes" I mentioned earlier.
- bombcar 5y agoThis has to be taken in the context of the time. This is the era of Apache on a low end Pentium being able to survive slashdotting whilst IIS on NT 4 would fall over on much grander hardware. Arguably much of the difference can be attributed to being able to get Windows running easily - forgoing the painful process of having to learn what you’re doing (and at the same time learning how to tune it and where the slowdowns might be). We’re now in a much different world. (Arguably the main difference remaining is that a Linux comes with “everything” whereas the others need out-of-band installations: in the 90s those things cost money whereas they were free on Linux - compilers used to be a pay product!)
- torginus 5y agoI'm not arguing for the superiority of Windows, I'm pretty sure Linux+Apache was superior back then to Windows+IIS and is superior now. However, you could probably play audio, open a Word document and play 3D accelerated games on said NT box - not necessarily things you'd want to do, but the complexity to support these use cases was there anyway. My point is, full-fat desktop OS-es are much more complex beasts that a bare-bones Linux server install, that probably is a bunch of init-scripts and a server process on top of the kernel. Once you try to turn a UNIX into a desktop OS, it'll have the same problems as Windows, for the same reasons.