"What UNIX Cost Us" - Benno Rice (LCA 2020)
linux.conf.au3 HN recommenders · recommended in 3 months, 2022-2025
218K views · 6 years ago · talk · evergreen
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 as an insightful and entertaining critique of UNIX design choices such as file descriptors and 'everything is a file'.
47:18The Tragedy of systemd
linux.conf.au
1.3M views • 7 years ago
7:16Unix and Google
FOAM
9K views • 10 years ago
32:30Benno Rice: The Tragedy of systemd -- BSDCan 2018
BSDCan
25K views • 8 years ago
27:27AT&T Archives: The UNIX Operating System
AT&T Tech Channel
2.2M views • 14 years ago
0:38Alan Kay on Linux
Jack
20K views • 12 years ago
53:55A Narrative History of BSD, Dr. Kirk McKusick
bsdconferences
30K views • 17 years ago
1:03:51VCF East: Ken Thompson interviewed by Brian Kernighan
Vintage Computer Federation
417K views • 7 years ago
3:10:28The Mind Behind Windows: Dave Cutler
Dave's Garage
1M views • 3 years ago
42:39Bloat: How and Why UNIX Grew Up (and Out) - Rusty Russell,Matt Evans
Linux.conf.au 2012 -- Ballarat, Australia
21K views • 14 years ago
45:33"A Political History of X" - Keith Packard (LCA 2020)
linux.conf.au
52K views • 6 years ago
1:00:38The History of Unix, Rob Pike
Stephanie Borgman
120K views • 8 years ago
1:25:13The Origins of Linux—Linus Torvalds
Computer History Museum
659K views • 18 years ago
46:54"Write a single library to handle all input devices, it'll be easy" they said...
linux.conf.au
21K views • 6 years ago
53:11EFI and Linux: the future is here, and it's awful - Matthew Garrett
Linux.conf.au 2012 -- Ballarat, Australia
77K views • 14 years ago
56:53A Brief History of the BSD Fast Filesystem by Marshall Kirk McKusick
EuroBSDCon
878 views • 6 years ago
48:52Jordan Hubbard - FreeBSD: The Next 10 Years
iX
24K views • 11 years ago
1:17:07Plan 9: Not dead, Just Resting, by Ori Bernstein
BSDTV
42K views • 7 years ago
47:51Kirk McKusick - A Narrative History of BSD
iX
17K views • 11 years ago
1:06:20USENIX ATC '21/OSDI '21 Joint Keynote Address-It's Time for Operating Systems to Rediscover Hardware
USENIX
46K views • 5 years ago
45:47The State of Kernel Self Protection Project by Kees Cook, Google
The Linux Foundation
7K views • 9 years ago
6 comments from Hacker News
> 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
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
> 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
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
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.
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]: ▶ this video