March 1999 Column

March 1999 Column


[ Site Index] [ Linux Index] [ Feedback ]


Big Guys Moving In?

The Linux bandwagon rolls on, garnering more press attention -- and with it, a slowly-growing wave of responses from the big corporations. Corel's CEO, Dr Michael Cowpland, likened Linux to the Java craze of 1995, only with some real substance behind the hype; Java foundered on a lack of applications and immature libraries, but Linux seems to be living up to the initial promise.

One symptom of this is the speed with which the big guys are moving in. Linux is broadly Posix-compatible -- Posix is one of the more fundamental standards that systems in the UNIX world tend to be measured against -- so it's not surprising that lots of big UNIX applications are showing up. What is surprising is the identity of some of the vendors. IBM, anybody?

IBM, reputation to the contrary, isn't a monolith. There are internal divisions within IBM, each of which operates as a semi-autonomous company; the AS/400 people, the mainframe makers and the RS-6000/AIX group aren't all part of a single broad front aiming at taking over a global market (as the applications and operating systems divisions of Microsoft appear to be). Rather, they're an amorphous attempt to seep into every aspect of business. Don't want a mainframe? That's alright, can we interest you in this nice UNIX server running AIX instead? IBM is about giving their customers whatever the customers think they want. And now, apparently, the customers are asking for DB2 on Linux.

DB2 isn't a household name in the PC world, but it should be. Back when PC's ran things like dBase II (and men were men and women were women and mice were small furry things that were afraid of cats) DB2 was king of the big database dinosaur pens, the first SQL-based production relational database server. (Remember where SQL was invented? Yup, IBM's research labs.) Today, DB2 runs on just about everything except the desktop -- from 3090 dinosaurs down through the likes of AS/400's to the small but fast OS/2 velociraptors. OS/2 being pretty close to extinct, the appearance of DB2 on Linux shouldn't be much of a surprise; it's an act of corporate ass-covering, maintaining a presence on a desktop increasingly threatened by Oracle and Microsoft SQL Server.

What is a surprise is that DB2 for Linux seems to be free, at least for non-commercial use. As is usual with IBM, if you want consultancy or support you get to pay. (Source code? Don't make me laugh.) But someone there seems to have begun to get the right idea about Linux -- even if it's only free as in money rather than free as in speech. The Linux commercial software market is becoming very predatory, as companies give away their proprietary crown jewels in an attempt to win some kind of beauty contest aiming at gaining access to the corporate desktop. Corel are porting everything, Star Division are doing likewise; even the normally staid database vendors are joining in. It's hard to see what else IBM could have done. Give the source away? Er ...

In unrelated news, Jikes quietly went open source. Jikes, in case you haven't heard of it, is a Java compiler. An unusually fast Java compiler, at that, written by IBM and certified as Java standards compliant. IBM had just released the source to it, under GPL. Maybe someone there is even more clueful than I gave them credit for being a couple of paragraphs ago.

The slow avalanche of corporate respectability continues in other sectors. Sun Microsystems are not the kind of people you'd expect to support Linux; they have their own UNIX, Solaris, and they ship it on Intel hardware as well as their own SPARC kit. Some pundits have predicted that Sun will eventually do a U-turn as they realise Linux is a threat to their little pool; but I reckon these pundits don't comprehend the sheer fear and loathing for Microsoft that stalks the corridors of Menlo Park. To their eyes, a PC running Linux is way better than one running Windows NT, even if it might be better running Solaris; Linux can be seen as a stepping stone to the One True Enterprise Operating System. Sun are a member of the Linux International umbrella organisation, and now they've announced support for Linux on UltraSparc hardware. I suppose the idea is that by putting Linux on UltraSparcs they make it easier for high-end Linux power users on PC's to switch hardware platform -- and after all, Sun is as much a hardware company as a software one.

Perhaps the most interesting thing so far is the muttering about making Solaris Linux-compatible. Solaris and Linux share a common architecture; to make Solaris any more compatible you'd have to make it fully binary- compatible, able to run Linux applications. As most developers seem to be turning their attention to Linux, this would be a cheap way for Sun to acquire a formidable application base. And it may not be all that difficult; on Sparc hardware, Linux has been able to run SunOS binaries for years (with the aid of some shared libraries), and on Intel, SCO and FreeBSD don't seem to have found Linux binary compatability hard to achieve. If this is what they're after, it will have one significant consequence: a common binary executable format, running on 95% of all UNIX platforms -- something which the UNIX industry has been trying (and failing) to achieve for decades.

There are exceptions to the Linux application porting trend. Lotus is so far refusing to be drawn on a Linux port of Notes or SmartSuite. Adobe haven't ported anything to Linux apart from the Acrobat reader, and show no signs of doing so. Probably these companies won't take Linux seriously until it has already eaten the UNIX market. We shall see.

Linux is acquiring a formidable range of applications, so maybe it's worth asking what Linux needs and hasn't got. Certainly, at the small office level there are enough offerings to keep a business going; if you lump in the SCO UNIX vertical-market applications field -- binary compatible with Linux if you install the iBCS2 kit -- most everything you need to run a small company is there already, or will be there within months.

At the development level, there are more development tools out there than a programmer fresh from the Windows world would believe. There's more to programming on Linux than vi and make, and while the environment is generally a lot less pushy-clicky than Visual Basic it is still possible to get good work done fast. Some of the for-money development tools (such as Cygnus Source Navigator or Visual Slickedit), and even some of the free ones (such as Xemacs or the DDD graphical debugger) are easily as picturesque as their Windows equivalents, and in many cases more powerful; the UNIX tradition of regular expressions and scripting capabilities with everything pays off in spades when you want to do something the designers of the IDE never anticipated. Even the most basic components of the Linux toolchest are enhanced over the original UNIX equivalents; the common version of the vi text editor -- Vim -- has online help, multiple windows, syntax colourising and a choice of built-in scripting languages.

For running internet and network servers, Linux has few equals. (I banged on about that side of things last month, so I'll give it a rest.)

But there are deficiencies.

For starters, the GUI systems are still comparatively unstandardized and crude. X11 isn't a GUI; it's a client-server windowing system. The window manager application, which you run on top of X11, gives it many of a GUI's features; some, like Enlightenment are amazingly whizzy, while others like the KDE window manager are designed to fit in with a standard set of applications to impose a given look and feel. If you want to install Linux in a big enterprise environment, something as, well, professional as KDE is going to be essential, if only to minimize confusion among the barely technically literate people who'll have to use the machines. And X11 does impose some problems on the GUIs. Font handling is something out of the stone age; even TrueType support is a fairly exotic rarity (although it has been pre-announced as a standard feature of XFree86 4.0 -- not before time). Sound support is a pain in the neck; while Linux provides sound support, it isn't built into X -- there's no association between an X session and the sound output it generates, which can lead to weird effects sometimes. (Log into another machine. Fire up a remote X application. Lo, window appears on your own workstation. Voila, crazy sounds come out of the other machine, startling whoever's working on it at the time. Hours of endless fun and distraction.)

More seriously, there are enterprise management problems. Linux is stable and robust, pretty secure, fast, efficient, and well-supported. What it isn't is easily managed in bulk. IBM's AFS apart, there aren't many enterprise-scale management utilities. The NFS automounter is not a substitute for some way of managing user sessions, as anyone who's ever been lost in a maze of automounted filesystems on a LAN with a terabyte of on-line capacity will testify. Tools like CA:UniCenter are notably absent. LDAP support is available, but a bit rough. You can get NetWare services for Linux, but NDIS ..? Try convincing a CIO that you want to plop a workgroup of Linux workstations on one of his LANs and you will catch an earful about management and administration, and the need therefore. Of course, on the other hand you don't need the abominable hacks Windows users have to jump through to store multiple user contexts on a single machine, but that's only a small consolation.

Some of this stuff will go away with XFree86 4.0. More of it will go away when remote administration tools based on COAS (Caldera Open Administration System -- see COAS) turn up, or when CA wakes up to the need for UniCenter, or the other enterprise middleware companies smell the coffee. But for now, it's an obstacle to Linux when it tries to penetrate the corporate desktop.

Learning Linux

I've been using Linux for five years, and it's over a decade since I first logged onto a UNIX system. Sometimes it's hard for me to remember what it was like when I first got started. In some respects, not a lot has changed; a UNIX shell is much the same, I still use the same editor (vi), and so on. On another level, though, loads has changed: the laptop I'm writing this column on has more horsepower than the entire university where I did a comp sci degree those many years ago, and the Linux distribution I'm running is about ten times the size of the SunOS system I got started on. Back then, you could run a PC UNIX distribution on a 40Mb hard disk: these days I get all sweaty and claustrophobic just thinking about filesystems a hundred times that size.

There's a lot to learn about Linux if you're just getting started. If you've read the wrong magazines, you might have pickd up the two common ideas that Linux is cryptic (true, to the same extent that raw MS-DOS is cryptic), and that Linux is badly supported. The latter is fundamentally wrong -- the problem is that Linux is so copiously supported that sometimes it's hard to figure out where to start.

If you have a standard Linux distribution (that conforms to the Linux filesystem standard, or FSSTND as it used to be known), the first port of call is the directory /usr/doc. This is a general dumping-ground for documentation that came with every package installed on your system; each package has a subdirectory containing whatever tutorials, administration guides, rants, or shopping lists came with it. More importantly, there's a critically important subdirectory called /usr/doc/HOWTO and another called /usr/doc/LDP.

A bunch of wonderful people, working under the collective monicker of the Linux Documentation Project (or LDP) put these documents together, and they're worth their weight in gold. For example, suppose I want to learn about administering Linux. There's a whole book in /usr/doc/LDP, called the System Administrator's Guide or SAG. Go look in /usr/doc/LDP/sag, and take your web browser with you. Other books in the LDP kit include the installation guide, the LPG (or Linux programmer's guide), network administrator's guide, and installation guide. You can buy copies of most of these on paper; some of them (such as Running Linux -- Welsh & Kaufmann, pub. O'Reilly and Associates) are indispensible if you're just getting started. (Incidentally, I mentioned a publisher there, O'Reilly and Associates. O'Reilly publish the Nutshell guides, a series of books -- which, despite the name, are sometimes rather large -- covering aspects of Linux and UNIX in general. I can't recommend them highly enough. It's no coincidence that there are about six shelf-feet of Nutshell guides sitting behind my right shoulder: they're an indispensible aid to anyone who messes with Linux or UNIX boxes on a professional basis. Linux is a big system, and nobody knows it all; it's often more important to know where to go to get the answer than to know the answer off-hand, and I happen to find those six shelf-feet an indispensible personal library that has probably saved my job on more than one occasion.)

The LDP books are fairly good as general manuals go, but they can't cover every situation. That's where the HOWTO's come in. The HOWTOs are a huge knowledge base covering specific fields of Linux lore. For example, if you want to sort out sound configuration on your system, you can get most of the information you need from the Sound-HOWTO. Each HOWTO is a self-contained monograph on one particular field, aimed at all levels from beginner to technical specialist. They're generally systems-oriented; each HOWTO covers a subsystem, such as serial ports, printing, the care and feeding of the Kernel, Java on Linux, and so on. For specific problems, there are smaller mini-HOWTOs; these solve specific problems, such as how to get StarOffice working, or how to connect to an ISP via PPP.

Most Linux programs are still fired up by typing a command at a shell prompt. Sometimes you know what you're trying to do, but you need to know the syntax of those commands; it's at these times that you need two sources of information -- the GNU info system and the man pages. Man (short for manual) pages are brief, terse monographs describing a single program, system call, or configuration file. Suppose you can't remember all the options to the ls command (list files); you type "man ls" and up comes the monograph. Man pages are pretty dense going -- they're supposed to be detailed enough that a competent programmer can write a functional clone of the program from them -- but they contain the important information you need.

The GNU folks didn't like man. Instead they came up with the texinfo system. This is a local hypertext system (unlike the web, which is a distributed hypertext system); it's built into the GNU Emacs editor, and there's a stand-alone browser called 'info' which understands the emacs keystrokes. (This is not a recommendation. I don't like emacs. It's bad enough having a perl interpreter build into vi these days; having a text editor that can psychoanalyse itself is just overkill. One of these days emacs will achieve consciousness and take over the world, if we don't stop it now.) If you're a coward, or just want to get work done without wasting time, you can access both man pages and the info database via the KDE help system or a similar multi-source help browser such as TkMan.

If you're a real completist, you may want to invest in a copy of the Red Hat Linux Library. This CDROM contains not only all the LDP books, howtos, man pages and so on, but the internet standards documents (a hefty compilation in its ownright), a bunch of relevent newsgroup archives, the full XFree86 documentation, and a load more.

Sometimes your computer falls down and can't get up. At times like this you could kill for a copy of all the documentation on paper. Don't worry; that's where Dr Linux comes in. This is basically a big fat tome (weighing in at a hefty 2100 pages at last count) containing all the HOWTOs, LDP documents, man pages, and so on printed back-to-back. (Don't drop it on your foot or you'll be walking on crutches for weeks.) Something like this -- the whole lot, on onion-skin paper -- is indispensible. Odds are you won't ever cuddle up to in it bed, but if your system needs first aid it may be the only help you can get in a hurry.

If your system isn't dead, and you've got an internet connection, the net is your friend (sometimes). There are a plethora of Linux websites; you can start with Linux.org.uk, for example, for links everywhere under the sun. Each linux company runs its own website; for example, Caldera, Red Hat, SuSE (yup, they're German), and so on. More to the point, if you are familiar with usenet, there are a myriad of newsgroups where the denizens will happily answer your questions (and occasionally flame you to crispy charcoal for asking them without reading the FAQs -- the first law of usenet is "lurk and read the group for a bit before you post"). A particularly good place to look is anywhere under the comp.os.linux hierarchy -- especially comp.os.linux.setup if you're having installation problems or comp.os.linux.x if you need help getting X working.

Next in the list of net-related help sources, there's IRC (internet relay chat). A whole bundle of IRC channels exist out there solely for linux-related chat. Ask a question and there's a good chance you'll get an immediate answer. An interesting point to take note of is that most Linux users are more knowledgable about their system than users of other types of operating system, and with one or two exceptions they're usually eager to help. This goes for both usenet and IRC, and any other sources of information you may find.

Finally, there's often no substitute for face-to-face (or face-to-phone) support. Besides the full support services offered by the main Linux distributions (who will happily talk to you on the phone and help with your problems if you wave a credit card in their general direction), there are quite a few Linux User Groups springing up. (These tend to hark hack to the days when personal computing was a hobbyist thing: I could get quite nostalgic about it all.) It's worth your while to check comp.os.linux.announce for announcements of a LUG near you, or even to do a web search in case a LUG has set up their own web site. There are LUGs in London (of course), Leeds, Manchester, Glasgow, Edinburgh, and probably most of the other large cities in the UK by now.


[ Site Index] [ Linux Index] [ Feedback ]