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.
Saturday, June 7, 2014
Using Less Memory
In an effort to make older computers more viable one must consider ways of
using less memory. One of the most effective changes I've made on my
quasi-old P3 system running vector linux was to switch from KDE 3.5.10
to IceWM. For memory KDE 3.5.10 needs roughly 41 megs and the much lighter IceWM
only uses 4.5 megs of memory. That's a significant memory savings but there are
other advantages as well.
Web browsing and even games were found to be more responsive after the switch
Kmail was replaced by using Gmail and the text-based email client mutt.
The scanning program Kooka has been replaced by xscanimage as Kooka doesn't
work with newer Linux systems using libusb.
The idea of using Trinity or XFCE as a way of using less memory is only
effective if switching from KDE 4 or Unity, both of which are memory pigs.
IceWM has a far smaller memory footprint and a better cost/benefits ratio.
I still use some parts of KDE 3.5.10, mainly klipper, kmix and konsole.
Unload kernel modules which are not needed, for example:
sudo /sbin/modprobe -r bluetooth
Repeated information requests can be automated using links or wget, and both
of these use far less memory than firefox.
links can be used in scripts for quick stock checks: (where $1 is the stock identifier)
Generally text based programs use far less memory compared to their graphical
In many ways firefox is one of the biggest memory pigs of them all and dillo is
my first choice among light web browsers that use X. The main problem with dillo is
then dillo is quite suitable as a web browser. Also when the computer is unattended
I always exit from firefox so that it doesn't consume any cpu time which can be
very high if the web page you are on as flash based ads!
Killing defunct processes and their parent processes will also help to free up
memory. It is worth it to periodically check for dead processes.
Saturday, March 8, 2014
Pollution Caused by Chip Fabrication
To summarize, some of the items used in the various processes of chip fabrication include: Acetone, Arsenic, Arsine, Benzene, Cadium, Hydrochloric acid, Lead, Methyl chloroform, Toluene and Trichloroethylene. More details on these items can be found here: Environmental Impact.
The cost of cleaning up contaminated soil was one of the reasons why Commodore Semiconductor Group went out of business. More information on this can be found at the EPA site but suffice to say that groundwater in Norristown Pennsylvania was contaminated with high levels of trichloroethylene. This also led to the eventual demise of Commodore Computers.
This leads me to propose the idea of using older computers as long as possible instead of continually buying new computers. For the last 10 years I have done this, although initially it was more of a cost saving measure. My computer philosophy has shifted towards the idea of 'computer minimalism'. I've already remarked on the longevity of certain computer models, including ones using the Pentium 3 coppermine CPU.
To apply the idea of minimalism to computers we must select an operating system that is efficient and adjustable. My short-list of possible operating systems for minimal computing include: OpenBSD, Vector Linux Classic, and Fedora Core 1. One might be a bit surprised to see FC1 on that list due to its (relative) old age, but I must admit to a certain amount of inclusionism in my philosophy on computers. One could conceive of examples of far greater levels of minimalism but I wanted to be able to at least do mundane things like running a web browser and web server.
Thus we could fix or at least reduce the problem of the pollution caused by chip fabrication by buying or fixing up old computers that have already been manufactured. Naturally we would select old computers that are the most easily repairable and have a ready supply of replacement parts available. One example of a computer that fits this desciption is the IBM Personal Computer 300GL (slot 1, p3 running at 400 mhz).
Saturday, January 11, 2014
DNS Propagation and Disappearing Services
Since I have more than one domain pointing to my server it's still possible to access cubeman.org via the maxhost.org domain. Eventually the new dns records should propagate within 24 to 48 hours and things should be back to normal in a day or two.
It's been a bit of a battle keeping web services running. The now infamous ice storm which began in Dec. 22nd, 2013 disrupted power and telephone lines through much of Ontario. One of my phone lines stopped working, but it wasn't too bad as it was restored in a couple of days. Also I experienced two power failures of about 5 hours and 2 hours respectively. My UPS's kept the computers going for half an hour each time but it's clear that I need a longer lasting UPS than that.
Sunday, September 15, 2013
CBC changes radio links again
Saturday, August 3, 2013
2.11BSD Unix on PDP-11/73
Sunday, July 7, 2013
Computers and Operating System Bundling
In reviewing the history of computer sales in the 'modern era' we can see an interesting pattern. Early on we saw home computers which booted directly into ROM BASIC and booting into another operating system isn't even possible. Later on we see many examples of the CP/M operating system being bundled with z80 based computers. CP/M was usually bundled as one needs a unique BIOS for each type of computer. In a rare exception Radio Shack sold CP/M separately for their Model 4 machine for $150 in 1985.
Upon the release of the IBM PC we find that IBM offered three different operating systems for their machine: PC DOS, CP/M-86 and UCSD Pascal. Of these 3 operating systems PC DOS becomes the operating system of choice for most users. Even in this early era we can see that computer users had some different choices of OS.
By 1985 we see the rise of the IBM compatible computer and the near ubiquity of the x86 cpu architecture. Of course soon after this we see various Motorola 68000 based systems, including the ones offered by Commodore, Atari and Sharp. One constant we continue to see is that most operating systems are closed source although we see in academia that Universities have some access to the Unix v6 and v7 source code. The idea of bundling an open source operating system with a computer doesn't occur until much later. In 1987 we see the release of the open source MINIX OS.
In the 1990's we see the appearance of BeOS which is offered for free to various OEMs. Kuro5hin.org has an excellent blog post to explain how Microsoft suppresses the use of BeOS by OEMs. BeOS lives on in an open source implementation called Haiku.
With the increased use and speed improvements of the internet we see a new phenomenon: open source operating systems are distributed via downloading. This includes operating systems such as GNU/Linux, the BSDs, Haiku, Plan 9, Inferno, AROS and many others. By 2008 the Jiangsu Lemote Tech Co releases the Lemote computer with Linux and PMON, a completely open source system.
Subscribe to Posts [Atom]