November 2001 Column

[ Site Index] [ Linux Index] [ Feedback ]

Rambling around

This Linux column has been running for three years.

When I first took it on, I thought it would be easy; there's so much going on, right? How could I ever run short on ideas? Well, now I know the answer -- and my respect for the long-term columnists in this magazine (I think the record is fourteen years, isn't it?) is increasing.

You see, it's not that I've run out of things to write about Linux; it's just that, like the Radio 4 quiz game "Just a Minute", it's devilishly hard work to keep on topic without repeating myself endlessly. It's even more difficult to find topics substantial enough that I can write coherently about them for three thousand words without repeating myself. So instead I'm going to go on a long, incoherent ramble.

Two weeks ago I discovered, to my surprise, that the price of RAM had fallen to an insane degree. I've been messing around with PC's for the past seventeen years; I remember shelling out two hundred quid for two -- count em! -- megabyte SIMMs for a 386 in 1990, and thinking it was fairly cheap. Alas and alack, it is easy to fall out of touch with the new reality. Moore's law tells us that the speed of processors and capacity of microcircuits doubles every fifteen to eighteen months; this leads to a thousandfold increase in power every decade or so. Reading in The Register that memory prices were gluttonously low on account of the recession, I sallied forth, blinking and pale-skinned in the unaccustomed daylight, and started pricing sticks.

Nearly eleven years to the day after paying 200 (plus VAT) for 2Mb of RAM, I found myself staggering home, stunned from the experience of paying 130 (including VAT) for 1.25 Gb of RAM. The prices are almost exactly a thousand times cheaper today than eleven years ago. The mind, she boggles.

(Oh yes: three 256Mb SIMMs went into my girlfriend's G3 Mac, filling it to the gunwales. The other two went into my AMD K6-700 box, maxing it out. For the first time ever, every machine we've got is maxed out with memory. The experience is weirdly exhilerating: I remember the RAM famine of 1992-95, when small children burrowed into municipal rubbish heaps in search of discarded ZX81's to strip for their 1Kb chips, and grown hackers had to do battle with X11 on workstations with only 4Mb ...)

Living with the enemy

Just what the hell does anyone need 768Mb of RAM for in a desktop PC?

Well, if you're running Windows you need it. A few months ago I made the mistake of buying the wrong laptop. If you're thinking of buying a laptop to run Linux on, do not, repeat not, buy an FX-series Sony Vaio. These machines will run Linux ... but there's a huge fly in the ointment in the form of their power management circuitry. They're designed for APCI, the advanced power control system that Intel are pushing. Trouble is, APCI support in Linux is still under development -- and Sony are about as uncooperative as it's possible to be with the Linux community. They just don't want to know. An unsupported APCI system wouldn't be that bad, but the FX-series Vaio's APM support (APM is the older advanced power management system) is buggy. Telling my FX-103 to suspend using APM crashes it hard -- so hard that I have to physically remove the battery and power supply before it'll contemplate rebooting.

Alas, this problem surfaced too late for me to take the machine back and exchange it for a more sensible one. So it's back to the old Toshiba if I want Linux on the move; the Vaio is meanwhile serving as a test bed for Windows applications (and, in due course, for 2.5 development kernels with APCI support). Meanwhile, this prompted an interesting experiment. I haven't used a Windows machine in anger since 1992-93; what's it like?

I spent the best part of a week seeing if I could switch to -- and work with -- Windows ME. Oddly, my problems seem to be a funhouse mirror of the problems Windows users complain of when switching to Linux. For starters, Windows ME feels slow. I'd become used to running KDE 2.1 on top of SuSE 7.1 on that laptop before reinstalling the (shipped) copy of Windows ME. I was startled to discover just how sluggish the desktop Windows OS feels; I'd somehow become used to thinking of KDE as being a bit of a beast (compared to lightweight environments such as Xfce or Vtwm). But opening directories containing more than a handful of files took a veritable age; I'm no longer used to waiting while my computer does something. (All that RAM means that a modern Linux system has a huge buffer cache; memory that isn't allocated to an actual process is used to buffer disk reads, and when you've got 768Mb slopping around your PC -- or 200Mb slopping around your laptop -- that cache really speeds things up.)

A second problem I had was user interface consistency. Windows 3.1 actually did some things right: it exhibited a near-fascist adherence to the IBM Common User Interface guidelines. Everything was consistent. But Windows ME looks to have replaced consistency with marketing-mandated glitz -- trying to work out where files are supposed to live, or how to navigate around the menus of Microsoft's own accessories, is a pain in the neck. There are at least three different ways of poking around your filesystem in there; the file selection dialog window, the Windows explorer (a palid descendant of the Win3.1 version), and the desktop environment itself, which seems to think it's a web browser unless you drag it down a dark alleyway and club it into submission.

Windows ME has certainly improved in stability since Windows 3.1; it didn't crash on me once. However I made the mistake of installing the time-limited try-before-you-buy version of Norton Utilities 2002 on top of it. Norton periodically popped up a dialog box, the contents of which varied but generally boiled down to saying "a mouse appears to have farted on the other side of the room -- fix problems?"; and it wouldn't take no for an answer. (If you hit the "cancel" button the dialog would just show up again.) Adding it all up, I lost more time to Norton Utilities safeguarding my system than I'd have lost if I merrily let the software crash and burn every half hour.

Getting it online wasn't hard, but I then encountered the horror that is Microsoft Internet Explorer 5.5. The experience of all those pop-under windows and crassly blaring advertising jingles was deeply traumatic, but not as traumatic as suddenly realising that there were viruses out there with my name on them: the sensation can only be likened to having a condom burst on you. It was so unspeakably unpleasant that my resolve cracked and I instantly downloaded and installed Mozilla 0.93 -- only to discover that it crashes regularly on Windows ME.

If all this wasn't bad enough, I had a load of Linux data squirreled away on another partition. How to read it? Well, if you have a Windows 95 or 98 system you're in luck; there's a driver called FSDEXT2 that lets you mount ext2 filesystems under Windows (read-only, of course). Unfortunately, although WinME is derived from Windows 95, FSDEXT2 crashes when you try to install it. Get FSDEXT2 if you want to dual-boot Windows 95/98 and Linux; otherwise you'll be stuck with the excellent but nevertheless limited Explore2FS program. Explore2Fs is an Explorer-like program (written in Delphi) that understands the ext2 filesystem structure; it lets you explore an ext2 filesystem and drag-and-drop files from it to your Windows filesystems, and it's generic enough to run on Windows 2000, XP, and ME.

Here's another hint: Windows ME does other things badly. For example, there's a venerable DOS program that ships with most Linux distributions, called FIPS. FIPS is designed to shrink a Windows filesystem so that you can re-partition your drive to allocate space to Linux. The idea is that you defrag your Windows system then reboot off a floppy with FIPS on it; FIPS reclaims all that empty space for you. Unfortunately, Windows ME doesn't like the idea of letting mere users create boot floppies, and if you try to run FIPS under a DOS window (living dangerously!) it complains that you've executed an illegal instruction and terminates the session as soon as FIPS tries to modify the partition table. Someone is trying to make it hard to shrink Windows filesystems and squeeze another operating system in.

If you've got a laptop with two filesystems -- many of them do, these days -- the solution is to do a minimal install of Linux into the second filesystem (referred to as drive D: by Windows). If you've defragged drive C:, you can try a number of strategies; for example, run FIPS from Linux using DOSEMU and FreeDOS, or try the GNU parted and Partition Surprise tools. parted is the GNU disk partitioning and partition resizing tool that allows you to create, destroy, resize, move and copy ext2, FAT and FAT32 partitions; it provides most of the functionality you'd expect of a commercial tool like Norton Ghost, only with the additional abilities to resize, move, and copy filesystems including Windows' FAT-based systems, Linux ext2 systems, Macintosh HFS filesystems, and a few others. It's not intuitive or easy to use -- you'll need to read the manual properly -- but it's scriptable and highly professional in the functionality it provides; why it isn't used by most distributions during their installation scripts (which run under Linux) is a mystery to me.

Partition Surprise is a clone of Partition Magic for linux. You can resize, move, and copy partitions -- including growing and shrinking mounted ext2 filesystems. There's a graphical interface on the way, but this program is still alpha-state and you shouldn't trust it on a machine with live data that isn't already backed up.

There are a number of toolkits available that give you a UNIX-like toolset on Windows, including Gcc compiler and full command-line environment. Unfortunately, they're big. Even more unfortunately, while learning about the buggy ACPI support I'd downsized my Windows partition to only 2Gb -- the combination of the basic installation, StarOffice, Adabas, Norton Utilities 2002, Norton Antivirus 2002, and Mozilla nearly filled this.

In the end, in the interests of preserving my sanity I stopped trying to force myself to use Windows ME. As I said earlier, my experiences with it are a kind of eerie mirror to the usual plaints of Windows-using journalists who try Linux. It's big, it's incomprehensible, it's sluggish, configuring it is a black art, and there are three different ways of doing everything. And by the time you've waded through them all you discover that underneath it all, things you take for granted are missing; the command line environment on Windows ME is dreadful, the filesystem is useless (lacking in security features and saddled with idiocy such as the idea of embedding file type information in the file's name), and worst of all, if you want software to do anything in particular you usually have to pay for it. Nothing seems to be free! How on earth are you supposed to get anything done?

On the other hand you can at least play games with it, and if you already have a computer a retail copy of Windows is a little bit cheaper than a Playstation II.

Desktop Lite

After I gave up trying to warp my brain into the unnnatural contortions required for running Windows, I went back to my old Toshiba subnotebook, a two-and-a-bit year old Portege 7000CT. It's only a PII/266 -- I hardly dare imagine how slowly it would crawl with Windows ME -- but it's okay with Linux, as long as you don't try to recompile the whole of KDE or OpenOffice on it. But I'm currently running KDE 2.2 as my desktop environment, and this seems a bit unneccessarily bloated for a lightweight writing machine. What are the options for a Linux desktop that's smaller, lighter and faster than GNOME or KDE, while not as basic as the ancient window manager/file manager combinations?

One contender I'd been meaning to try out for a long time is Xfce. Xfce is a lightweight desktop system based on the Gtk+ library used by GNOME and the GIMP -- but without the extra excrescences GNOME has sprouted, such as a CORBA-compliant ORB and potloads of services. Xfce is currently at release 3.8.7, but is shortly to acquire a new file manager in the form of ROX-filer. While Xfce supplies the window manager, themability, utilities, panel, and drag-and-drop, ROX-filer is a really cute file manager that provides an unterface to the filesystem; the combination is a cracking desktop environment. In particular, Xfce is small and tight; the ROX-filer file manager eats about 3.5 Mb of RAM (and doesn't bloat much when you open additional windows), and the core Xfce system chews up all of 4 Mb when testing out under KDE's window manager. It also feels blindingly fast -- ROX windows open instantaneously on a K6-700, and Xfce has no noticeable delays when redrawing its components.

The main problem I've got with it is nothing to do with Xfce itself, it's to do with the underlying Linux distribution, SuSE 7.2. This problem isn't unique to SuSE either: I know for a fact that Redhat suffers from it. In a nutshell, as the main Linux distributions have moved towards providing a graphical login and desktop experience, it has become increasingly hard to work out how to customize your X11 session -- for example, by installing a new window manager. Xfce isn't standard with SuSE, so there's no obvious place to plug it in; to get it working, you need to dive into the guts of the /etc/init.d/xdm script which starts up the display manager -- whichever display manager you're using, it could be kdm, xdm, gdm, or wdm -- and then try to work out how to splice a graphical login and a new set of startup scripts for your desktop into it. Alternatively, you can give up the graphical login, set your default init level to 3, and configure things so that when you type "xinit" X11 starts up and runs your desktop environment. Either way, it's not very attractive or easy for newbies to get to grips with. We badly need a graphical X11 metaconfiguration tool that lets a user add or modify their desktop options, otherwise we run the risk of being left with just a couple of big, bloated desktop systems (such as KDE or GNOME) and no alternatives for those of us with underpowered or elderly machines, or just plain different requirements.

I'm going to take a detailed look at Xfce some time in the near future -- just as soon as I've figured out how to whack SuSE into accepting it. More on this later.

And now for something completely different

My friend K. is generally agreed to be Mad. He isn't mad in the hearing voices sense; he's mad insofar as, like Doctor Strangelove, he makes a habit of thinking the unthinkable and then calmly doing it. Luckily for us he tends to be obsessed with computers rather than imminent thermonuclear annihilation: he gave up weapons of mass destruction after the Italian Army demobilized him (having discovered the hard way that conscripting deranged anarchist computer scientists is a Very Bad Idea).

Anyway, K. dropped round my office earlier today, eyes shining and hair a-frizzing. "I did it!" he exclaimed. "I got Linux to boot on the MicroVAX!"

"What's the big deal?" I asked, suddenly realising, with a sinking feeling, that this could not be good -- K. has been known to write sick and twisted kernel modules for his own amusement, and anything that turns booting Linux on his VAX into a triumph has got to be a bit perverse.

"Well, I went for the easy route," he explained: "I booter Linux/s390."

"Hang on a sec, you booted the Series 390 Mainframe kernel on a MicroVAX?" (MicroVAX workstations use MIPS processors, not IBM Power architecture.)

"Of course; it works just fine for me!"

Yes, folks. Hercules is an IBM mainframe emulator that is available under more-or-less GPL; IBM also supply a single user license to VM with it, and the CMS operating system too. Hercules compiles using gcc and autoconf and will run on most any flavour of UNIX. (K. went on to ask me some pointed questions about development tools for C on the Psion Series 5, but let's not go there, please, my head hurts.) It gives you an emulation environment that can pretend to be anything up to a state-of-the-art zSeries mainframe, although you won't get anything remotely like 28 GB/sec of i/o bandwidth and 5 GFlops of processing power if you try emulating it on a P166 laptop. Once you've got the mainframe emulator running and configured to think some of your spare raw disk space are DASD storage devices, you can boot VM, IBM's virtual machine OS. VM is designed to run multiple applications, each of which sees the equivalent of a bare mainframe; you can boot VM as one such application, or run something like CMS, a crawling horror from the 1960's that nevertheless gives unparalleled capabilities for moving record-oriented data between storage devices and a mainframe's multiple CPUs.

K's reason for installing Hercules was, of course, to test out the port of Linux for the S/390 mainframe. About which I'll talk some more, maybe next month, when I can bear to think about it. You see, K's main reason for visiting was to ask if he could borrow some of my old computers. I have a fossilized MicroVAX gathering dust on top of my office filing cabinet; K also has a MicroVAX, and wants to borrow mine so he can couple the two together and configure them to emulate a cluster of IBM mainframes -- very, very slowly.

I am not sure whether to lend him the box, or back away slowly while dialing for an ambulance and uttering soothing words. But the one conclusion I can definitively reach is this: IBM mainframes are more user-friendly than Windows ME. Just.

[ Site Index] [ Linux Index] [ Feedback ]