In response to several readers' requests, this month we'll take a look at some of the pros and cons of engineering operations on a PC under alternative systems. One is the ubiquitous Windows operating system (OS), and the other is a UNIX-like alternative, Linux.
Linux, for those unfamiliar with the term, is basical ly a UNIX-compatible OS running on PC hardware. Thus, it has a fundamental advantage of being very low in total cost, as opposed to operating UNIX on a more traditional workstation. Linux supports AT and PCI bus structures, as well as standard CD-ROMs, floppy drives, hard disks, and many other peripherals, including a wide variety of video systems and monitors.
Written originally by Linus Torvalds, Linux is essentially an open- standard operating system, with development work being done by a wide range of disassociated individuals. Source code, drivers, and utilities etc. are freely available under the GNU's not UNIX (GNU) licensing concept. See http://www.gnu.org and http://www.linux.org/info/gnu.html. For the broadest collection of both general and detailed Linux documentation, see sunsite.unc.edu/LDP/.
In essence, Linux is an OS developed by its users, which is available at little or no cost. Several companies offer Linux packages (called distributions), such as Red Hat, Caldera, etc. A general listing of CD-based and downloadable sources can be found at the web site: http://pardis.sas.upenn.edu/uncompressed.html/howto/Distribution-HOWTO.html.
Note that this scenario is in sharp contrast to an OS such as Microsoft's Windows 95, 98, or NT, which are proprietary, and thus closed-standard, for-profit systems. Both Windows and Linux utilize the same underlying PC hardware platform, but the ways in which they make use of it differ enormously. A related comparative discussion of Windows NT 4.0 and UNIX systems (including Linux) can be found at http://www.kirch.net/unix-nt.html. In addition, for some grassroots engineering opinions of Linux vs. Windows NT for EDA, see http://www.isdmag.com/Editorial/1998/CoverStory9807.html.
I asked a couple of Linux-advocate correspondents for their personal views on an engineering development system using Windows 95 vis-a-vis Linux, as well as the general utility of Linux. First, Gary Huntress of the Newport Naval Undersea Warfare Center, Newport, R.I., (who had written previously within the May 1 column) offered Linux's merits.
Here are my thoughts about Windows 95 vs. Linux on a PC platform for engineering applications:
There certainly is a general dissatisfaction with Windows 95. I personally do not consider it to be a stable platform. Protection faults occur often while running resource-intensive software (and nowadays, what software isn't resource intensive?). The fact that I must tip-toe around OS limitations isn't acceptable for useful product development.
Linux was rated the best operating system of the year by Info World: http://www.infoworld.com/cgi-bin/displayTC.pl?/97poy.win3.htm#linux, and the Linux user community in general received the award for best technical support: http://www.infoworld.com/cgi-bin/displayTC.pl?97poy.supp.htm.
That's all well and good, but are there really applications available for Linux? Yes! See http://www.linux.org/apps/applications.html. Great, but are there any electrical engineering applications available? Yes! http://SAL.KachinaTech.COM/Z/1/.
Ok, I'll get off my Linux soapbox. I think an article about Linux and how it relates to the engineering community would be great. A complete walkthrough of how to install it might not be necessary, as it's actually quite easy. The hardest part is probably setting up partitions properly, the rest is usually handled by scripts.
I think an article about why one should install Linux would be super. Some users do it just to save money. I would rather not spend the money (~$1000.00) for Matlab when I can do almost everything I need to using the GNU equivalent, Octave. And when I need to, I run Matlab on a remote server, and export the display to my system using Xwindows.
To judge Linux's popularity, do an Alta Vista search for +Spice +Linux, +EDA +Linux , or +DSP +Linux.
Just to sum up, and possibly repeat myself, I haven't found anything that can't be done better, faster, and cheaper than under Linux. The biggest obstacle is the learning curve.
I also asked Arnim Littek of Digitech in New Zealand for similar comments, specifically addressing some Linux issues as follows:
"Arnim, I have reserved some space on the new machine for another OS, which could be Linux or something else. But, I simply don't want to get into a 'fiddly' something, where my CD-ROM (or anything else) stops working for lack of a proper driver. And, even after all of it is working, there aren't useful applications to run on the 'superior' system. The best OS in the world is useless without software which provides utility toward doing the desired work."
I have to agree, Linux takes time up front. Maybe on those grounds, its not for you. I can't judge that.
In my experience, drivers appear for Linux faster than they do for NT—even weird ones. Sometimes it takes a bit of looking, but they're almost always there. CD-ROMs are pretty passé, to use your example.
Agreed, one needs apps. That is (or should be) the primary reason to use a computer, not the OS. The OS should be transparent. What are your needs?
- Word processing, "office suites"
- Signal analysis/simulation, analog or digital
- Schematic/pc board is still weakest, but..
- Math packages
All of these exist in multifarious offerings. None are Microsoft software. Some are commercial packages with similar support and features to Microsoft-style packages, others are more experimental and do more interesting things, with more attendant problems. In general, math and science packages abound.
The underlying strength of Linux, and the related open software movement, is that because so much is developed with source code widely available, one programmer's weaknesses are addressed by another's strengths. And, there is an active team of literally tens of thousands of people participating, around the clock in every time zone, because they are well motivated—they like what they're doing.
As for getting Linux going, there are also lots of other avenues of support. If you've got the time to sift, try the Usenet newsgroups: comp.os.linux.announce (most highly recommended), comp.os.linux.networking, comp.os.linux.x, and a few others. I often get what I need from Usenet by a simple search on http://www.dejanews.com, definitely one of my favorite Web sites.
An old friend and consultant, Hampton Childress, and I had been discussing Linux, and he commented on Windows and Linux systems:
Sounds like another adventure in the Windows/Linux OS wars is about to flare. I use 'em both, and need 'em both. They each have different strengths and weaknesses. The obvious strength of Windows is that it is supported by so many vendors, and has a common application (un)installer, aka InstallShield.
The forte of Linux is networking— an altogether different ball of wax. Linux allows, (ahem), persuades one to get close to the hardware and the low-level drivers. Anyone who has started up a network has to configure the ethx devices, ip masquerading/NAT, and, very importantly, security. Nothing substitutes for a strong firewall, and, I'm sorry to say, this takes a good deal of study. Ipfwadm has lots of power, and is used most effectively with subtle and imaginative scripting.
You've chosen wisely by going with a Red Hat 5.0 distribution, as that's probably easiest for a UNIX novice to get up and running. Sun Solaris is also pretty user friendly for network administration, but I'm not sure if it comes with a GNU license.
As you get into this more deeply, you'll appreciate Red Hat's RPM (Red Hat Package Manager) install/uninstall scheme. Many applications distributed as tarballs don't have a "make uninstall." So, if you really want to be thorough in cleaning out an oldie, you have to look at the original Makefile to see where things went.
This isn't all bad news. One great strength of Linux (from the perspective of a Windows user) is that apps generally don't affect one another when they are installed (unlike Windows 95.) The only problems I've encountered are the occasional necessity to upgrade a library to compile a new app, and some issue involving dependencies to the old libraries. These aren't always so obvious to resolve.
Of course, being free is a great attraction too! Still, there are some fine commercial apps available—WordPerfect, Corel Draw, Maple V. Some of the finest, such as Spice, are still free, and one doesn't need WordPerfect if you're comfortable with, say XEmacs. Another long learning curve... <sigh>
So, given all of this background, I first got myself a Linux book with a CD. Initially, I chose a Ball and Smoogen work, Teach Yourself LINUX in 24 Hours, ISBN 0-672-31162-3, $24.99 from SAMS: http://www.mcp.com/mcp_publishers/sams.
Later on I also acquired Linux: The Complete Reference, 2nd Ed., by Richard Peterson, ISBN 0-07-882461-3, $49.99 from Osborne/McGraw-Hill, http://www.osborne.com. This one comes with a CD including Caldera's OpenLinux distribution, http://www.caldera.com.
Hampton had recommended to me Running Linux, 2nd Ed., by Matt Welsh and Lar Kaufman, ISBN 1-56592-151-8, $29.95, published by O'Reilly and Associates, http://www.oreilly.com, which I also obtained. All three books are helpful, but differ in their scope and style. The Teach Yourself LINUX... book comes with Red Hat Software's version 5.0 Linux CD, http://www.redhat.com, the primary reason I selected it.
With just this single purchase, you have the potential of getting a Linux system going, but I hasten to add that you won't learn everything you'll need in just 24 hours. This one's better used as a "getting-started" book, and you should have at least one more for general reference. A (minor) caveat on this $24.99 book/CD combo is that one shouldn't expect support from Red Hat on this particular item. They do offer 90-day support on the current, full 5.1 release, priced at $49.95. Red Hat also has a free e-mail listserver as support; if you sign up for it, expect about 100 messages a day. But, potential Linux users should be aware that among the best support sources are the aforementioned newsgroups.
TIP: This is an appropriate point to note that a good source for these books and CDs is http://www.cheapbytes.com. You can also download Linux from the Net, but note that this route likely won't be highly practical, unless you've got a very fast connection.
Getting Linux Going: Armed with the Red Hat CD, I set out to try Linux for myself, on the new Micron Pentium II machine, using the Teach Yourself LINUX... as my installation guide. I first set up an ample (1.5-Gigabyte), dedicated hard-disk partition for Linux, with the use of Partition Magic, http://www.powerquest.com, which allows dynamic partition resizing. While this step of using Partition Magic in the partitioning setup isn't absolutely necessary, I'd still recommend it for ease-of-use, plus the fact that it comes with a useful boot manager, good for multibooting between Linux and Windows 95/DOS (or other OSs).
The Red Hat 5.0 installation went smoothly, although I did need to re-run it a couple of times, to get some settings correct. I was then able to selectively boot either Windows 95 or Linux in a just few hours.
The Linux setup wasn't 100% operational at first however, as I was forced to install a plain-vanilla VGA video driver for use with the Xwindows manager. This happened because the Micron's AGP video card (a Diamond Viper 330) used a new chip, an NVidia Riva 128. Both Arnim and Hampton pointed to a relatively new video server from S.u.S.e., http://www.suse.com/, which supported this device. After some digging and scratching around with the new driver, I was able to get full-capability, higher-resolution video working for my card.
Another fairly sticky hurdle was getting dialup PPP communication going via CompuServe as an ISP. But, this was also conquered with some timely info from the CompuServe UNIX forum, and some appropriate edits to the Red Hat default installation PPP script files. All in all, some fairly involved hacking, but not anything that any computer-literate engineer couldn't do, armed with a "can-do" attitude. But, don't expect a point-and-click process—that it isn't!
Generally, I'm highly impressed with number of ready-to-go programs that accompany the Red Hat installation. Another plus is that almost every hardware item on my PC, i.e., floppy disk, ZIP disk, two hard drives, a tape unit, and the aforementioned video system is supported. Alas, Linux did not recognize the plug-n-play modem, and I had to use another.
As of this writing, my Linux setup operates consistently, and the entire working time from unwrapping the CD to chasing down drivers and PPP debugging only took a few days. Very helpful here was reading the Usenet newsgroup, comp.os.linux.setup. And, I also appreciated the specific comments of Linux veterans Gary Huntress, Arnim Littek, and Hampton Childress, as well as those from Steve Reine and Scott Wurcer of ADI.
As for doing real, day-to-day engineering work under Linux, that report will need to come later, when things fully settle down. Overall, my PC needs are dominated by standard office tasks such as word processing, etc., so I will likely continue to use Windows 9x (or NT) indefinitely. But, as Gary so enthusiastically notes above, there are many engineering tasks that Linux can host extremely well, and therefore, could be a springboard for some readers out there. It should be interesting to see how Linux penetrates into uses within the engineering community over the months ahead.
That's it for another column. Enjoy Linux's tools, and stay in touch, especially with comments on alternative OS pros and cons.