A Beginners Guide to Linux
By
Shawn M. Gordon
CEO
theKompany.com
Background:
Well HP dropped the bomb here in mid-November, after years and years of trying they are finally going to actually kill our beloved 3000 (I still refuse to call it an e3000). Many people are talking different options of what they might do with MPE and translation and transition and emulation, but I think we’ve got to smell the diapers and realize that for many of us it’s time for a rewrite or buy a new package. Honestly you can go another 7 years quite easily with your existing system, which is a long time for a system these days, but if you were looking for a change anyway, now is the time. So what does this all have to do with Linux?
In August of ’99 I founded a software company in the Linux market called theKompany.com. For me this was like joining a new band or getting remarried and having to learn all new friends and relatives. In our HP space we mostly know the players and we are comfortable where we are. Jumping over to Linux required that I learn a lot about things I never cared about before like the GPL, GNU, Linux, RMS, ESR, and other things that I will explain in a bit. One of the bits that has been floating around a lot on the various 3000 lists is Linux. Linux seems to be the great equalizer, it runs on watches, set top boxes, PDA’s, Intel chips, PowerPC chips, Itanium chips, IBM mainframes and the list goes on. IBM and HP both are moving towards in, and IBM has done some fantastic work with helping Linux on scalability (HP has done pretty much squat other than ride the wave, the decisions coming out of there regarding Linux really leave me scratching my head). You can bet that HP-UX is going to get the same notice sometime in the next 5 years.
In any case, Ron Seybold asked me if I could come back to the fold and write up some bits that would maybe help the transition for people wanting to get that level of comfort in the Linux and Open Source arena (note the capitalization). I’m going to give you some resources to read, background on the arena, why you care about the GPL and RMS, what a ‘distro’ is and how they differ, and hopefully a grounding in how to get started with Linux. What I am not going to do is give you a ‘Linux for Dummies’ course on commands and things. I wrote a paper about 10 years ago comparing Unix to MPE that you can find at here, if you want to get a little primer. Granted this is Unix and Linux is actually a lot more friendly, but it will give you a taste.
Introduction:
This is going to be tough to start, so I’ll do my best to keep it clear. Let’s start with the major players. First you have the origin of Linux which is a fun story, but has been told a million times. A college student by the name of Linus Torvalds decided to work on a project based on a small portable Unix system called Minix, this eventually became Linux. A relatively recent and decent interview with Linus can be found at http://resources.cisco.com/app/tree.taf?asset_id=75234. Now it’s important to understand that Linux is the OS kernel, not the stuff around it. This is like MPE itself, but things like FCOPY, Query, Image, these are all really add ons to the MPE kernel, and Linux is the same way. This brings us to the GPL, GNU and RMS.
First RMS is Richard M. Stallman (he is almost always referred to as RMS), he founded the FSF (Free Software Foundation), GNU (GNU is Not Unix, this environment is is replete with silly recursive acronyms) which is pronounced ‘guh-new’. Now the FSF and GNU groups are both the same for the most part, both of their urls go to the same web site, www.fsf.org and www.gnu.org. In the early days the GNU group was working on a kernel called Herd, to this day it isn’t done, but a lot of their software got ported to the Linux kernel, so this is all those utilities like editors, and file systems, and shells and things. Now the GNU software makes up only a small percentage of what comes with Linux these days. Now RMS has a massive ego and is also essentially a communist (I’m not making this up, just read anything he’s written). He likes to insist on calling Linux, GNU/Linux because of the GNU code, he also likes to talk about software freedom, this is where you will hear people saying things like “free as in speech, not free as in beer”, which means that the source code should be freely distributable for people to modify and distribute, but not necessarily for no cost although RMS would prefer it to be a workers paradise where everyone toils to the common good. This is where the GPL comes in.
Licenses:
GNU is also responsible for the GPL and LGPL which are licenses you can use for your code, these are by far the most confusing aspect of the whole Linux and Open Source phenomenon (now keep in mind there is the Open Source Software group and the FSF group and most people looking in think they are the same, but the OSS group lead by Eric S. Raymond (ESR) is far more sane than the FSF group check out http://www.tuxedo.org/~esr/ and try to read ESR’s interesting book “The Cathedral & The Bazaar”). You can read all about the GPL and the LGPL at http://www.gnu.org/licenses/licenses.html. The GPL stands for “GNU General Public License” and the LGPL stands for “GNU Lesser General Public License”.
Now you have probably heard some of the FUD going around from Microsoft about the GPL, and you’ve probably read stories about it. Let me just say up front that I’m not a fan of the GPL and we don’t use it at my company anymore. The Linux community spends far too much time (in my opinion) talking about licenses and what is valid. The GPL does in fact have a viral nature about it, if you use GPL code in your application, then your application in turn must be made GPL. The GPL states that you must make the source available for others to modify and distribute at their whim. This is where a lot of confusion comes in. The GPL doesn’t state that you must give it away. You can charge for the application and you can charge to distribute the source, but it must be a reasonable cost on the source distribution. My company sells one piece of GPL software we created, it has about 100 lines of other GPL code in it, which is why it has to stay GPL. I get emails about once a week from people demanding their free (as in cost) version of our application because it is GPL. A lot of this crowd are freeloaders and it can be very frustrating.
There are licenses other than the GPL, and you can write your own if you want. We wrote a license that says the customer gets a copy of the source code, they are free to work with it, but not redistribute it. In my mind, this is the biggest problem for companies and the GPL, my license protects the customer and the company. However, being a responsible member of the community, we like to do work that we give away that helps the infrastructure of the Linux environment, you just have to decide how best to do that. I think it is proper to give back to the community, but don’t shoot yourself in the foot either.
There is also a trick you can do to use GPL code with a closed source application, and we wrote a dynamic plug in system to do it (this is so we could mix our proprietary code with our GPL code), basically by dynamically loading the code and not linking to it, and if your application will still run without that GPL code, then you can do it. The LGPL allows you to link the code to a closed source application. If someone has made a library that you find useful, then you can use it if you like. I really suggest that you read up on the licenses if you plan on making use of them, and even going so far as getting your attorneys opinion to make sure you are making the right decision. The bottom line is that you don’t have to use the GPL, if you do you can charge for the work, but you can’t stop other people from giving it away if they want, so use it with caution. RMS is just as frothy at the mouth about enforcing the GPL as Microsoft is about their licenses.
Distributions:
Now keep in mind, you can build a Linux distribution from scratch by downloading and compiling all the bits you want, and if you are a masochist, this is a fun way to go, you can tweak and optimize everything just the way you want it, but if you want an easy install, then go for a major Linux distribution (or distro as we call them).
RedHat (www.redhat.com) is the 800 pound gorilla in this case, and overall they have a very good distribution which is now at version 7.2, almost all other distributions are derivatives of it such as Mandrake (www.mandrakesoft.com), Caldera (www.caldera.com) and SuSE (www.suse.com). Mandrake is based out of France and has quickly surpassed RedHat for new sales, this reminds me of when DBGeneral came out and supported TurboImage before Adager did and grabbed a big install base. Basically RedHat wouldn’t pre-compile for 586 based chips or include the popular KDE desktop, so Mandrake took their distribution and added those pieces. This is part of that whole GPL thing, you can just download a copy of RedHat, burn copies and sell it or give it away, check out www.cheapbytes.com.
In Europe the SuSE distribution is king, and they also sell in the States, this one was my favorite for some time after Caldera which was founded by Ray Noorda (remember Novell?). I like the Caldera distribution quite a lot, but they are very spastic about what they want to be when they grow up and I’m afraid they probably won’t be around a lot longer without some serious focus. There are at least a dozen different distro’s around to choose from, but you are really better off going for a mainstream one and for a newbie, I would suggest SuSE or Mandrake, you can install on an existing machine and dual boot if you like, I’ve done this on a few machines.
I would be remise if I didn’t mention the Debian distribution (www.debian.org). This kind of reminds me of Robelle because the name comes from the couple that founded it “Debbie and Ian”, but basically this is an entirely GPL based distro that is not done by a company, but by the community, it is very stable and very easy to install software updates on, but it is extremely hard to install in the first place, it took me a week to get it on my Apple Titanium laptop so that I could triple boot the OS between Debian/Linux, OS 9 and OS X. There have been a number of attempts to make commercial distributions based on Debian, there was Storm and notably the one from Corel that was recently sold to Xandros. This was really an excellent end user distribution, Corel did a great job and I hope Xandros can make a success of it, we’ll find out early next year, at the moment they are talking good.
Package management on Linux is a real pain. There is something called an RPM (RedHat Package Manager) that everyone but Debian uses, they use DEB files. This is how a software package is put together to install on your system. There is a central database that keeps track of dependencies and such and overall it is better than how Windows does it, but the problem is there are multiple ways to install software, including compiling it, which doesn’t make entries in the RPM database, not to mention that you have to have an RPM for your exact distro and version otherwise it probably won’t work. That means a package made for RedHat 7.2, may or may not work for RedHat 7.1, this is one of the biggest pains in being a software supplier for the Linux community. A DEB package is much more comprehensive, but you have the same situation if you install outside the package management.
Desktops:
In Linux there are a variety of desktop applications you can use that have greater or lesser functionality, basically ranging from an old Xtree type application to Windows XP. The two big contenders here are KDE and Gnome (pronounced Guh-nome). In reality KDE is years ahead of Gnome but for some reason Gnome is getting the corporate interest from HP and Sun (there is no technical merit to this decision, I’ve talked to HP about it and they really have absolutely no idea why they made the choice they did). Basically this provides all the various functions you expect from a GUI desktop environment. You can read up on their sites to find out the technical details of how they are built, but if you go and get a linux distro, I suggest that you install KDE (which it will do by default) and not install Gnome, they can both be on and active and you can choose what desktop to load when you login, which is pretty cool, so you can see what you like.
There is a lot of really great software that gets included with these things, so if you’ve got the disk space, go ahead and install it all. I would also recommend checking out Python and Ruby as modern Object Oriented scripting languages as a nice alternative to developing with C or C++, I personally like Python a lot, but they both have great strengths.
Resources:
Here are some websites that are good for news, background, software and other information. I like to read the following news sites at least a couple times a day:
slashdot.org
linuxtoday.com
www.newsforge.com
dot.kde.org
If you are looking for software, then look no further than www.sourceforge.com or www.freshmeat.com, these are great resources.
For background information on some of what I’ve discussed, check out:
www.gnu.org
www.kde.org
www.gnome.org
You would think that there would be a good www.linux.org or www.linux.com and they exist, but they are so so in terms of contect, the linux.com site is owned by the newsforge site, so you will see overlap starting there now.
Now if you want to download the latest linux distros and burn your own CD’s, you can get pretty much everything under the sun at www.linuxiso.org.
I really suggest just starting to read and absorb stuff, after a while you know who the players are and what is going on. Play with the software, get a feel for it, read some books on it and you’ll get their eventually. Unlike the 3000 and MPE, there is a ton of material available to help you learn. While we all love our 3000 keep this in mind, the new A class runs at just 110mhz or 140mhz but it really is about the same as a 55mhz 917 if you look at the HP performance ratings. I’m sure people will say I’m wrong, but if you look closely at the published performance ratings the A class is getting about half the performance of the N class, which isn’t that great. It is amazing at how efficient MPE is on such a low powered box, but think of what it would cost to make a quad 2ghz Intel system? This absolutely smokes the 3000 in raw power and Linux is quite efficient, it’s running on all sorts of low powered devices.
I think I’ve given you enough to get started and thinking about what you might want to do. Good luck with your new future.