Friday, July 25, 2014
We Have Strayed from the Original Ideas of Unix
When Ken Thompson and Dennis Ritchie created Unix and C Language they also created
a philosophy of Unix.
Some of the original ideas were:
Small is beautiful.
Make each program do one thing well.
Build a prototype as soon as possible.
Choose portability over efficiency.
Store data in flat text files.
Use software leverage to your advantage.
Use shell scripts to increase leverage and portability.
Avoid captive user interfaces.
Make every program a filter
In some ways we have actually made improvements to the Unix Philosophy with Richard Stallman's GPL. We also have a mostly standardized graphical system with the X Window System. I can't find any overt references to sharing of source code from the early days of Bell Labs but it clearly did happen even if it was de facto
rather than de jure.
But the idea that "small is beautiful" has faltered rather a lot. Unix and Unix-like Distros have become rather bloated. And no one would think of programs like The Gimp or Photoshop as "doing one thing well". I'd be willing to grant we have chosen portability over efficiency. Levering software to our advantage, yes we have done that.
As for "Avoiding captive user interfaces", well there's lots of room for improvement on that score. Storing data in flat text files isn't always possible. No one would think of storing a video file as a text file. Ditto for making every program a filter. A lot of programs are graphical and interactive and I can't really see any way to make a filter out of those types of programs.
Looking at Unix version 5 we can truly see that "Small is Beautiful". The kernel of the original Unix v5 is 25,802 bytes in size. The entire operating system could be stored on a DEC RK05 magnetic disk drive which was 2.5 megs in size. That includes the C and Fortran compilers, the kernel, the assembler, the device drivers, the userland programs and the source code for all of the above. It was truly an amazing accomplishment. To be fair, You would have needed a second RK05 disk pack for man pages and a little extra breathing room.
Another big advantage of Unix version 5 was that it was quite possible for a determined programmer to actually read the source code of the entire system. That really isn't possible with a modern Linux distro. It would have been great if every programmer's introduction to programming included Unix version 5. It's possible now, thanks to simh and The Unix Historical Society you can do it.
In my previous blog entry I talked about using less memory. Unix version 5 could run quite well with 256 kilobytes of ram.
Subscribe to Posts [Atom]