Happy Birthday To Gnu

25 years ago, more or less, I was a graduate student and beginning a teaching career, but short of cash. I remember an opportunity arose for me to make some money programming. I thought, "OK, I can make some money in this computer biz, and use that to cover doing what I really want to do, research and teaching."

Just around that time, as I remember, I saw a long haired bearded guy from MIT being interviewed on TV, talking about free software, and how coding software was his art, his love, is vocation, and that he did things like teaching to get money to cover this interest of his.

I thought.... Hmph. Interesting.

Well, that was Richard Stallman, who was on the TV because he was getting some notice in the local news for his efforts to start up the Software Freedom Foundation.

That was back in the day when Unix was the operating system for serious computers, and Linus Torvalds was busily working away at cloning Unix.

Over time, Linux created Linux, a clone of the Unix Kernel, and Stallman and the GNU project coded the GNU utilities. Much like the ancient oft told story of the glomming of peanut butter and chocolate to create the Reeses Peanut Butter Cup, Torvalds' kernel and the GNU utilities were glommed together to form what we now think of as the Linux Operating System. (This is an oversimplification and trolls will be here soon to straighten this out for you.)

I was reminded of all this by Stephanie of Almost Diamonds who sent me the following video. Enjoy:

Tags

More like this

Thanks for posting ... I had sent this to Steph, and thought she might send it on. :-)

GNU has accomplished a lot, and I'm really glad for what they've done with supporting Free software. I do find it interesting, though, that GNU (well, RMS) is now so keen on the linux kernel (see gNewSense) because for so long RMS poo-poo'd the idea of using the linux kernel, in favor of attempting to write their own GNU Hurd.

For those that don't know: Hurd was started in 1990, using the Mach microkernel. The problem with choosing Mach was that the Hurd then sat idle for a few years while everyone waited for it to be released under a suitable license. (Other Hurd developers wanted to use a fork of the BSD kernel, but couldn't get the necessary cooperation between all parties.)

Meanwhile, Torvalds started writing linux in 1991, and later invited GNU to use it for their Hurd kernel instead of Mach. RMS totally dissed linux at the time, saying a microkernel (distributed parts) was way better than a monolithic (all-in-one) kernel. RMS maintained that position for a long time, despite linux's success, before eventually settling into revisionist history by suggesting all Linux distros should really be referred to as GNU/Linux distros (if you choose to do that, I prefer Linux/GNU ... "GNU/Linux" tries to make it sound like it's a "GNU" brand, like "GNU emacs".)

Stallman was really hot on microkernels, not sure if he still is. In 1994, when I started the FreeDOS Project, RMS learned about it and contacted me to ask that we modify the Mach kernel for our DOS kernel. But a microkernel isn't suitable to run DOS ... waaaaaay too much overhead for a system that's supposed to be light.

AFAIK, Hurd eventually "shipped" with a different microkernel, not Mach, in 2007.

gNewSense (mentioned in the video) is GNU's own Linux distro, but it's basically Ubuntu with all the non-free stuff taken out.

Just noticed my use of "linux" and "Linux" in my post - no, I didn't forget the caps key. I've been using Linux since 1993, and back then we came to agreement about caps: "linux" was name of the kernel, "Linux" was a distro that used the linux kernel.

Wow, I guess old habits die hard. Even kernel.org and uses "the Linux kernel". Somewhere in there, capitalization "rules" must have changed. Ah well. :-)

-jh

I figured "linux" was the file and "Linux" was the directory in which I kept "linux" (but since I used double quotes there is room for command substitution in this sentence).

Anyway, thanks for you comments. It does seem that while micro kernels make a lot of sense in a place where you need to software (this system) to take as close to zero time to do anything, whatever method is fastest automaticaly wins no matter what, as long as stability and security are not sacrificed.

Thanks for the post, Greg.

The FSF/GNU/Linux movement continues to spread, even into areas not generally known as such to many. Spreading both upwards into mainstream products (OS X), and downwards into black boxes appearing as appliances (such as your DSL router).

While it is possible that probably most who read this blog already know this, for those who do not, Apple's OS X is based on the FreeBSD Mach kernel. As a result, probably by now all of the gnu program suite and the other Linux programs are available from the OS X Terminal's CLI. Including a runtime of X Windows from Apple themselves.

There is the Fink project at http://www.finkproject.org/, and darwin ports at http://darwinports.opendarwin.org/, and the Mac Ports at http://www.macports.org/ports.php, which latter seems to be the most active currently (I may be w0rng about that). I do not know exactly the overlap, but Mac Ports boasts some 5033 ports as of today.

And of course, for the Windows impaired, there is always Cygwin (cygwin.org) to get your FSF fix from.

Last, re micro kernels, there is increasing activity around putting together hard real-time-capable distros for embedded systems. SOC chips such as the Freescale (PPC) and Xscale (ARM) running at several hundred MHz are fueling the drive. See for example gumstix.com for the latest levels of miniaturization.

But I have my doubts about this all. I am diving into the gumstix boards as I write, but my past experience with having to meet hard RT constraints leads me to wonder if it is, in fact, possible to do so when loaded up with all the threading, context switching, multiple levels of indirection to hardware support descriptors and binding, etc etc. My gumstix is running the Open Embedded version of the 2.6.21 Linux kernel. To the casual CLI user, it really does look like a fully function Linux system. But I have to get a saturated I2C's worth of accelerometer data through and processed, and although the formalism of a high level OS such as Linux makes gluing the parts together almost trivial, I am not so sure of the performance.

Well, the good news is, as Stephen so nicely pointed out, I have all the source and can hack away through the undergrowth to my goal. Freely.

By Gray Gaffer (not verified) on 14 Sep 2008 #permalink

Richard Stallman is very set on us calling it GNU/Linux, not Linux.

Linux is the kernel, but without GNU, nothing would be there, which is why he insists on this distinction.

I can se where he is coming from, like it or not (and I like it), his life work so far is staggering. To insist on getting his share of the recognition is fair.

Some years ago I was a volunteer at a conference for developers here in Denmark. It was for gnu/gnome developers as far as I remember.

RS was a speaker at the conference, and the first thing that greeted him was the conference poster, mentioning Linux.

So we gathered around 20 volunteers, gave each a permanent marker, and send round manually updated all posters with the GNU/ preface. Great fun!

I'm glad you liked the video.

It is true that we refer to Linux combined with the GNU operating system as GNU/Linux. We do this because it refers to the goals of GNU (creating a free software operating system) whilst not forgetting the contribution of Linux.

As time goes on, more proprietary software will be ported to GNU/Linux, and we need to make sure users are well versed in the ideas behind GNU so they can reject this software, as it threatens our community.

I have some issues with the "GNU/Linux" moniker:

As I mentioned in my post, putting "GNU" first makes it sound like "Linux" is a product of GNU - no one really pronounces it "GNU-slash-Linux".

But there's another issue here, as well. There are lots of other packages that make up most distros that we call "Linux". X11 is a pretty large contributor - without it, you wouldn't have the framework on which to build a GUI. And there are lots of BSD packages, too. Shouldn't these get equal consideration, too?

Using Matt's argument, we must call it "GNU/BSD/X11/Linux". Hmm, a fair number of important packages use the Artistic copyleft, and others use the Apache license ... we should also recognize the role their advocacy played in making this "Linux" thing popular. Now we must call it "GNU/BSD/X11/Artistic/Apache/Linux".

But you have to consider that most non-geek users will pretty much stick to OpenOffice and Firefox/Mozilla ... ask my wife what she uses every day. So I guess we're stuck calling it "GNU/BSD/X11/Artistic/Apache/OpenOffice/Firefox/Mozilla/Linux".

Where do you draw the line?

I know that GNU has played an important role in promoting Free Software, but "GNU/Linux" gives the impression GNU is trying to grab credit. That's why when people try to suggest "GNU/Linux", I ask they use "Linux/GNU" - because it's less likely "GNU" will be mistaken for a product of Linux. If it's all about getting equal credit, GNU shoudn't mind what order it's in. Hey, we're all equal, right?

@Matt:

>>> As time goes on, more proprietary software will be ported to GNU/Linux, and we need to make sure users are well versed in the ideas behind GNU so they can reject this software, as it threatens our community.

We all make choices, and can only represent ourselves. Be careful with your use of "our". You and I may disagree, but I don't mind occasionally using or buying proprietary software when I find it sufficiently useful or interesting. I believe in Free Software, but I also believe in being a geek.

For example, I'm sitting here running Firefox on my Linux laptop, using the Flash plugin. I know Flash isn't Free/Open, but I'm willing to make that compromise for myself because it's something I find very useful, and the GNU alternative just isn't "there" yet.

As another example, I run a PlayStation3 at home ... it doesn't get much more proprietary than a closed game console running DRM games from BluRay. But I really, really like playing those games, so I choose to make that compromise.

Hmmm ... I wonder if Matt has an XBox360 or Wii or PS3 at home?

The same goes for Mac, by the way. I'm pretty sure that's a Mac sitting next to Stephen in the video. Doesn't a closed-source system like MacOSX threaten the GNU community - why feature it in a video? Even if you buy it only for the (well-designed) Mac hardware, you cannot get it without the proprietary operating system. So buying the Mac effectively means you've thrown support to Apple's closed model. Way to go, GNU! :-)

But don't take away the wrong impression here. I'm still a huge fan of GNU, a very big supporter. I've contributed to various GNU projects since 1991, released the FreeDOS core under the GNU GPL (other components written by others are distributed under other similarly free licenses.) Heck, we've lost FreeDOS developers because I wasn't willing to make a FreeDOS that wasn't free for everyone to use and share and modify. I have also donated $$ to the FSF, and convinced previous employers to do the same at a corporate level. Despite all this, I recognize when some of what GNU does is a little silly. "GNU/Linux" is one example.

Greg: Thanks for posting this. It makes me feel better about my refusal to read slashdot. (Typo? "Over time, Linux created Linux,": I think you meant "Over time, Torvalds created Linux,")

Matt/jhall: There's clearly some semantic contention here. Since RS refused the Linux kernel so long ago and everything released by GNU (as far as I know) is under the GPL, I don't think recognition is required in Linux distributions.

OS X shows, once or twice, that it's built on a BSD kernel, but we call it Mac OS X, not Mach/OS X or BSD/OS X.

On the other hand. I don't really care what my computer's OS is called as long as it works the way I expect it to.