Arnt Gulbrandsen
About meAbout this blog

The Openlinux Lizard

One evening in November 1998, drinking with some of the trolls at Suetelane Paludo's place, I ranted grievously about how installing linux still sucked. I'd spent the day installing a new server. In typical Trolltech fashion, the discussion quickly turned to what we could do about it. We decided that noone at Red Hat or Debian would talk to us because Trolltech was so very evil, Suse suffered from NIH syndrome, but we could talk to Caldera (ie. the German team Caldera formed by buying LST) and maybe get something done.

I put together a proposal (a single-page email, just text). Ralf Flaxa and Stefan Probst at Caldera immediately accepted it.

What followed was great.

The Lizard (quickly thus named by the Caldera people in Erlangen) was a remarkably well-rounded piece of software. It solved all the major problems equally well, and did not distract itself with solving unimportant problems. And it shipped barely four months after the initial proposal.

The Lizard was implemented a series of dialogs. First, a nine-second animation to set the tone, then a couple of dialogs, then installation started in the background while the user worked through in the remaining dialogs. Installation usually took much longer than the dialogs, so we added a game of Tetris at the end. I hate waiting, and Tetris has style.

The various parts were a remarkably harmonious team, if one can say that about software subsystems. Each subsystem solved its problem decently, none imposed on the others or demanded strange interfaces.

For example, most installers at the time would ask the user whether the mouse was a PS/2 mouse, Microsoft mouse, Mouse Systems Mouse, etc. The Lizard did not. Instead, we showed another dialog, while we ran some code which listened to all of the common mouse ports. As soon as the user moved the mouse, we figured out which protocol the mouse used and quickly reconfigured the X server to use the right port and protocol. Before the user noticed anything amiss, X was moving the cursor as the user desired.

Very low-key, very effective.

The GUI (conceived by me, implemented by Matthias Ettrich and me) was the first sane GUI installer for any operating system. Far better than Windows at the time, incomparably better than any other linux distribution.

Hardware detection worked fairly well; others did better later but in my opinion, ours was the great leap. The installer detected most of what was easy, and configured it correctly. The user could pick the timezone on a map (it doesn't sound like a technological breakthrough, does it?), we had sensible disk partitioning and warned the user if the partitions would be too small.

There was some very clever code, written by Olaf Kirch, which snooped on the network and suggested a network configuration. By the time the user reached the network configuration dialog, the Lizard usually had snooped enough packets to fill in all the fields correctly.

There was a fine animation at the start, quick, good, to emphasize that this worked (and give us a few more seconds to detect configuration). Brodd Nesset made the animation after looking at the cardboard box it would ship in. When it overstrained some graphics cards, Torben Weis wrote magic to solve that.

Monitors and graphics cards usually did not yet support DDC autoconfiguration. Someone at Caldera, I forget his name, thought of a brilliant hack to get around that: He typed in data from all the monitor tests in c't magazine, hundreds of them, so anyone who had bought a monitor which got good reviews in a magazine would see that monitor in the Lizard. c't tested lots of monitors, so anything that had been reviewed in a major magazine anywhere would probably be on the list. Pick brand and model number, done. No need to look up and type in scan frequencies, no worry about possibly frying the monitor. has some very, very bad screenshots. I'd like to have some better ones, but I can't find either that or an ISO image. Please send me mail if you have that.

And here's the proposal I sent to Stefan and Ralf:

OpenLinux Installation Wizard Proposal.

1. The problem.

Linux is too hard to install. It should be, and can be, easier to install than Microsoft Windows is.

2. The target.

Provide simple, pleasant and 100% idiot-proof installation of Caldera OpenLinux from CD on a restricted and very common subset of the market, namely PCs with

  • a hard disk with enough empty space, or with a single big Win98/98 partition.
  • a CD-ROM drive.
  • an SVGA compatible graphics card.

We do not aim to support installation via FTP, NFS or HTTP.

3. Implementation strategy.

Do a two-stage installation.

  • boot from floppy or CD with a very simple boot image that supports as many CDs as at all possible, but no ethernet drivers or serial/mouse drivers. The aim of stage one is JUST to find the CD-ROM drive and mount a file system on the CD.
  • on the CD there is a VGA16 X server, a clever GUI wizard to do the rest of the installation, the remaining kernel modules and all the packages. The GUI wizard starts X in 640x480x16, finds a mouse, looks for various other hardware (probing using modules stored on the CD), partitions the hard disk, installs the required packages, does some other small jobs, and keeps the user from being bored by displaying nice stuff.

We propose that Troll Tech writes an installation wizard that takes care of step two, and does nothing else. In particular, it does not try to do COAS' job: The installation wizard is just to provide a reasonable basic installation on as many PCs as possible, in as little time and with as few prompts as possible.

3. Requirements for the Installation Wizard

The Wizard assumes that

  • / is the mounted CD-ROM and no other file system is available.
  • There is at least n Megabytes of RAM available. 16, I guess.

The Wizard must be able to

  • preserve the pleasant and comforting out-of-box experience provided by the OpenLinux packaging and manual.
  • run, and look good, in the best mode the XFree86 VGA16 driver provides. 640 by 480, I guess. It need not run in any other mode.
  • find the vast majority of mice.
  • find a reasonable default resolution for X11 on most common cards and monitors.
  • install a bootable, usable linux without requiring the user to ever select anything except the default choice, or ever switching into text mode.
  • provide GUI disk partitioning, with a usable default partitioning.
  • if a hard disk consists of a single big defragmented win95/98 partition, shrink that partition to 0.99GB so linux can be installed.
  • install a variety of RPM sets (not just single RPMs).
  • find and configure network and sound cards.
  • let the user choose locale, keyboard map etc.
  • work in more than one language (according to the user's preferred locale).

4. What's left out.

Everything except the common case. In writing the wizard, we focus single-mindedly on providing quick, painless, safe installation of linux from CD-ROM on a restricted hardware platform.