Posts Tagged ‘BSD’

It was the best of times, it was the worst of times . . .  I never actually read the book “A Tale of Two Cities” by Charles Dickens, but a book covering these three kernels and how they interrelate would be fascinating.  A few years ago I heard of the Hurd, and I wanted to see what was up today. (Yes, I couldn’t resist that play on words.)  I then decided to see how BSD and its derivatives related to GNU/Linux.  Here’s the tale . . .

It all started with Bell Lab’s product called UNIX, which stands for Uniplexed Information and Computing Service.  The unique trait with UNIX is that you got the source code for the OS as well as other things.  That way you could modify it and recompile it if you wanted.  The compiler for C was the new thing because for the first time, source code was portable because you just needed the pcode to assembler part of the compiler in order to take source code written in C to compile for your machine.  A group from the University of California, at Berkeley got really aggressive and heavily modified and ‘fixed’ some issues they saw with UNIX.  In fact, their fixes and adjustments to UNIX were so popular, they made it available.  Computer Scientists really studied the code and the methodology behind this new and powerful system.  UNIX was made available to Universities at a lower cost so that people would be hitting the market trained to operate and maintain the UNIX system.

About the same time, a new computer innovation hit, the 16 bit home computer.  Computer Scientists wondered if they could bring the UNIX system to the PC.  There were many in Berkeley, who tried this kind of project.  They called themselves Berkeley Software Distribution (BSD).  Many used the letters BSD (Berkeley Software Distribution) in their project’s name.  The Berkeley modifications to UNIX had the letters BSD associated with it.  Soon AT&T sued the Berkeley group because they were worried about their intellectual property rights and wanted to make sure Berkeley wasn’t taking code that was constructed by AT&T and using for their own purposes.  This lawsuit put a hold on everything that had BSD in its name.

A man by the name of Richard Stallman announced on Usenet the founding of a project he called GNU.  It stood for Gnu is Not Unix.  Its goal was to make a version of Unix, following Open Source standards.  It was, as I understand it, to be in the spirit of Unix, but not a dedicated port of Unix.

What is a kernel? As I currently understand it, it is the program that interfaces with the physical hardware and the applications that a user wants to run.  BASH, Firefox, apt-get, and almost all commands from the terminal, as well as your desktop apps are just that apps that the kernel runs in coordination with other things.  All operating systems need a kernel.  Kernels are designed with a certain philosophy in mind.  One type is a monolithic structure where everything is together.  Another type is a distributed kernel where the different tasks are run concurrently and they communicate with each other.  This, from my understanding, is called a micro kernel structure.  Unix, from Bell Labs, has a micro kernel structure.   Back to our story . . .

Stallman wanted a micro kernel structure due to some perceived advantages.  Just before the GNU project was announced.  One of the BSD projects, which became known as FreeBSD was coming along nicely.  The FreeBSD OS is a ‘port’ of Unix without ripping off AT&T’s intellectual’s rights.  FreeBSD is developed and maintained as an entity.  Stallman’s GNU project was to be a community effort.  This means there would be many maintainers and developers.  This is one of the BIG differences between GNU and FreeBSD projects.  Stallman was tempted to choose the BSD kernel, but due to the lawsuit, he stayed clear and started the Hurd kernel project which would be the center of the GNU operating system he proposed.   HURD stands for HIRD of Unix-Replacing Daemons and HIRD stands for HURD of Interfaces Representing Depth.

Somewhere in Finland, a young man who had been captivated by assembly programming on his VIC-20 computer, began a quest for this new computer, a PC running an Intel 386 processor.  He also had discovered a work called Minix.  This is another work where the UNIX foundation and design was ported to a PC.  Using an open standard, he began work on a kernel, not because of Stallman’s announcement  as I understand, but because it was in his nature to write a kernel because he was enamored with assembly programming.  His announcement totally stunned the world and drew the focus off of the HURD project.

Having a working kernel, even though it is monolithic in nature, was better than no kernel, and the dream of getting the GNU system running was very intoxicating.  So intoxicating that the GNU project became known as Linux.  Now this name change has been disturbing to Mr. Stallman.  That is why I refer to it as GNU/Linux rather than Linux.  If HURD gets to a workable state, which I understand it is to an extent, then the releases are called GNU/HURD.  Debian Project is one of the entities working on the HURD kernel.  In a very short time, Linus’ kernel was turned into a working kernel and the GNU/Linux operating system rose to life.  The HURD project has suffered from a lack of support due to most people not really caring about the architecture of the kernel in their computer’s operating system.  I believe very few people even care about such heady and intense considerations.  I also don’t think most people care about the Open Source movement or the Free Software Foundation and the philosophy behind them.  They just like the free OS and apps.

I wonder what would have happened if Mr. Stallman had chosen the BSD kernel?  What would be different today?  Would we even know about Linus Torvalds?  What do you think?  Give me some feedback.

Advertisements