"What UNIX Cost Us" - Benno Rice (LCA 2020)

linux.conf.au · 217K views · 2020 · 34:14

Open on YouTube

Operating systems & kernelsLinux & open-source ecosystemstalk

Why Hacker News recommends it

Recommended as an insightful and entertaining critique of UNIX design choices such as file descriptors and 'everything is a file'.

What it is

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.

Recommended by 3 HN commenters across 3 different months, 2022 to 2025.

What Hacker News said

Strong rec pxc · 2024-08 · on “Systemd, 10 years later: a historical and technical retrospective (2020)”

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: [this video]

Strong rec favorited · 2025-03 · on “Exploring Polymorphism in C: Lessons from Linux and FFmpeg's Code Design (2019)”

> 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. [this video]

Recommends sph · 2023-12 · on “Reforming Unix”

Not the author but I recommend: "What UNIX cost us" by Benno Rice: [this 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.

Cites ddulaney · 2022-12 · on “A Linux Evening”

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

Cites DonHopkins · 2024-01 · on “Everything Is a File”

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 nonse

Cites throwaway1194 · 2024-07 · on “Ask HN: Performance of Apple Sillicon vs. ThinkPads (Or Other Linux Laptops)”

> 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] [this video]