
"What UNIX Cost Us" - Benno Rice (LCA 2020)
About this video
Benno Rice's linux.conf.au 2020 talk asks whether UNIX was the best design we could have had. He looks at what alternatives existed, what was gained and lost, and what could be re-learned, including the limits of treating everything as a file.
Why it appears in the archive
Recommended as an insightful and entertaining critique of UNIX design choices such as file descriptors and 'everything is a file'.
AI-generated summary and labels from the source dataset; verify important details against the video. Source & credits.
From the Hacker News discussion
I'll second this recommendation! Benno Rice is an insightful, energetic, witty, and just plain enjoyable tech speaker. 'What UNIX Cost Us'[1] is another favorite of mine that the audience on this post might enjoy: [VIDEO]
Read original comment ↗> for instance, Linux handles network socket, special files (like /proc/cpuinfo) or even USB devices as files. This is a powerful idea that can make easy to write or use programs for linux since we can rely in a set of well known operations from this abstraction called file. Benno Rice gave a fantastic talk a few years ago called "What UNIX Cost Us," which he starts off by showing how to write some USB device code in macOS, Windows, and Linux. It only takes a few minutes to demonstrate how pretending that everything is a file can be a pretty poor abstraction, and result in far more confusing code, which is why everyone ends up using libusb instead of sysfs. [VIDEO]
Read original comment ↗Not the author but I recommend: "What UNIX cost us" by Benno Rice: [VIDEO] In fact, this video argues that file descriptors are not as good as the author claims in their opening paragraph. They are another runaway idiosyncrasy borne out of the "everything is a file (but not really)" philosophy that underpins Linux.
Read original comment ↗Eh, having worked with both systems, I'd say they're roughly equally impenetrable. For sure, the registry sucks. But at least it's uniform and scriptable. Once you know what needs to be changed, you can write a .reg file and be reasonably confident it will at least change the registry in a valid way. On the other hand, if the solution to a problem on Linux is to change some dotfile controlling some daemon, reliably scripting it can be difficult to impossible. Did the distro put the config file somewhere weird? Is awk good enough here? What if the key I'm looking to update is found in a comment, and what is the commenting structure for this file anyway? What if the daemon rewrites its config file on exit [0]? Or has a config file with an extremely complex format [1]? Or I need to poke several /sys files in a particular order [2]? Both systems are hard to reason about, especially if you don't know them. But Linux isn't easy to approach for the first time, and there are advantages to the way Windows does things. [0]: [LINK] [1]: [LINK] [2]: [VIDEO]
Read original comment ↗Even PowerShell's flawed and limited execution definitively proves how terribly misguided and morally bankrupt the pin-headed one-dimensional "everything is a file" Unix philosophy is, especially with its the ridiculously hard-to-parse ad-hoc non-standard mixed-bag syntax of /proc and /etc files, which would have been much better simply using xml or json, yet which don't even come close to achieving that low bar of machine readability and ease of scripting. If everything is a file, then why the fuck is the insufferable abomination of ioctl so crucial to haphazardly papier-mâché and duct tape over all the uncanny gaps and gaping cracks? Yet another strike against the mindless cargo cult nonsense and unquestioning sycophantic hero worship of TAOUP. [LINK] 13 The File System Sure It Corrupts Your Files, But Look How Fast It Is! Pretty daring of you to be storing important files on a Unix system. —Robert E. Seastrom The traditional Unix file system is a grotesque hack that, over the years, has been enshrined as a “standard” by virtue of its widespread use. Indeed, after years of indoctrination and brainwashing, people now accept Unix’s flaws as desired features. It’s like a cancer victim’s immune system enshrining the carcinoma cell as ideal because the body is so good at making them. Way back in the chapter “Welcome, New User” we started a list of what’s wrong with the Unix file systems. For users, we wrote, the the most obvious failing is that the file systems don’t have versio
Read original comment ↗> I get that in abstract improvements "could" trickle down from that but once again without any performance benchmarks that is the definition of speculation. Fair enough, I am not sure whether CPU schedulers are shared across architectures, I am also not aware of any recent benchmarks other than: [LINK] Where I was going with my original statement/post is that I wouldn't be surprised to see Linux doing better in some benchmarks due to improvements in the kernel, there has been many recent developments such as io_uring[0], MGLRU, etc. that could make a difference compared to other systems. [0] [VIDEO]
Read original comment ↗