Bell Laboratories
Murray Hill, NJ (dec!ucb)wav!research!rob
It seems that UNIX has become the victim of cancerous growth at the hands of
organizations such as UCB. 4.2BSD is an order of magnitude larger than Version
5, but, Pike claims, not ten times better.
The talk reviews reasons forUNIX's popularity and shows, using UCB cat as a
primary example, how UNIX has grown fat. cat isn'tforprinting files with line
numbers, it isn'tforcompressing multiple blank lines, it's not forlooking at
non-printing ASCII characters, it'sforconcatenating files.
We are reminded that ls isn't the place forcode to break a single column into
multiple ones, and that mailnews shouldn't have its own more processing or joke
encryption code.
Rob carried the standard well forthe"spirit of UNIX," and you can look
forward to a deeper look at the philosophy of UNIX in his forthcoming book.
Yeah there are some pieces of code that are super bloated in the FOSS community. I think it does not help overall because it mixes the primitive meaning for an application. Such as systemd or even GCC. I’m starting to like much more simple designs like GNU Shepherd. Or the idea of having a Hurd like kernel (which does not need to be Hurd). Or shifting to more simple CPU ISAs. Designs should have the necessary entropy, not more not less. Trying to allocate more stuff in a design does not help.
I think some part of the GNU community is starting to understand that.
Emacs is bloated? Probably more than it should be. Maybe it should be more minimalistic and move most of it to modules. But is LEGO bloated? Emacs can be regarded bloated because how it is shiped, but not for what it is. Not being modular and programmable would make Emacs not Emacs.
This is a topic very interesting to touch but probably not to talk about it in a comment section hahahha.
I’m pretty experienced in some technical ways, but still learning a lot on Linux / kernel level. I appreciate your comment as I learn more about lower level architectures like this.
Reading about the Hurd microkernal was really interesting, here’s the wiki article for others:
I’m learning too. I’m not so expert on technical ways because I come from an electrical engineering degree (we call it here Telecommunications Engineering, so tons of EM, Signal Processing, Numerical Methods, semiconductors, digital design hdl, tons of hardware digital stuff, tons of hardware analog stuff, tons of hardware microwave stuff, telematics, etc.).
I’m self taught on everything involved with computers that is above hardware digital architecture (digital design). Because of that (I think) I have planified a thematic list of topics I have to learn before digging into Hurd deeply (and be able to help).
I want to learn more about OSes by following this book/course https://xinu.cs.purdue.edu/ about a well documented fully minimalistic OS implementation (I bought myself a beagle bone black to test it out).
Because of that I’m currently following this book about programming a C compiler in order to understand the primary core parts of a program and what relations it has with bootstrapping https://norasandler.com/2022/03/29/Write-a-C-Compiler-the-Book.html . I’ve opted for Guile both for learning more about the language and using a “quick” “lab” language that I can program very easily.
Probably you would only need a few of those, but I hope it helps! GNU has very cool projects as you see!
cat -v
considered harmfulBell Laboratories Murray Hill, NJ (dec!ucb)wav!research!rob It seems that UNIX has become the victim of cancerous growth at the hands of organizations such as UCB. 4.2BSD is an order of magnitude larger than Version 5, but, Pike claims, not ten times better. The talk reviews reasons for UNIX's popularity and shows, using UCB cat as a primary example, how UNIX has grown fat. cat isn't for printing files with line numbers, it isn't for compressing multiple blank lines, it's not for looking at non-printing ASCII characters, it's for concatenating files. We are reminded that ls isn't the place for code to break a single column into multiple ones, and that mailnews shouldn't have its own more processing or joke encryption code. Rob carried the standard well for the "spirit of UNIX," and you can look forward to a deeper look at the philosophy of UNIX in his forthcoming book.
Yeah there are some pieces of code that are super bloated in the FOSS community. I think it does not help overall because it mixes the primitive meaning for an application. Such as systemd or even GCC. I’m starting to like much more simple designs like GNU Shepherd. Or the idea of having a Hurd like kernel (which does not need to be Hurd). Or shifting to more simple CPU ISAs. Designs should have the necessary entropy, not more not less. Trying to allocate more stuff in a design does not help.
I think some part of the GNU community is starting to understand that.
Emacs is bloated? Probably more than it should be. Maybe it should be more minimalistic and move most of it to modules. But is LEGO bloated? Emacs can be regarded bloated because how it is shiped, but not for what it is. Not being modular and programmable would make Emacs not Emacs.
This is a topic very interesting to touch but probably not to talk about it in a comment section hahahha.
I’m pretty experienced in some technical ways, but still learning a lot on Linux / kernel level. I appreciate your comment as I learn more about lower level architectures like this.
Reading about the Hurd microkernal was really interesting, here’s the wiki article for others:
https://en.m.wikipedia.org/wiki/GNU_Hurd
Def open to other suggestions on good resources for these topics.
I’m learning too. I’m not so expert on technical ways because I come from an electrical engineering degree (we call it here Telecommunications Engineering, so tons of EM, Signal Processing, Numerical Methods, semiconductors, digital design hdl, tons of hardware digital stuff, tons of hardware analog stuff, tons of hardware microwave stuff, telematics, etc.).
I’m self taught on everything involved with computers that is above hardware digital architecture (digital design). Because of that (I think) I have planified a thematic list of topics I have to learn before digging into Hurd deeply (and be able to help).
I want to learn more about OSes by following this book/course https://xinu.cs.purdue.edu/ about a well documented fully minimalistic OS implementation (I bought myself a beagle bone black to test it out).
I’ve recently (for a year now) started fiddling with Guix (both system and package distro). I want to learn more about Full Source Bootstrap in order to understand how a system boots up (which is like magic) https://guix.gnu.org/en/blog/2023/the-full-source-bootstrap-building-from-source-all-the-way-down/ .
Because of that I’m currently following this book about programming a C compiler in order to understand the primary core parts of a program and what relations it has with bootstrapping https://norasandler.com/2022/03/29/Write-a-C-Compiler-the-Book.html . I’ve opted for Guile both for learning more about the language and using a “quick” “lab” language that I can program very easily.
Probably you would only need a few of those, but I hope it helps! GNU has very cool projects as you see!
if (isatty(1)) {