Redesigning Debian's boot floppies

Our install and our boot floppies have long been a problem for Debian.
I'm going to try to identify the roots of the problems with the boot
floppies and suggest some solutions, but first let's look at how the boot
floppies work now and what they have to do.

Boot floppies now
-----------------

A few stages can be identified in a debian install now:

1. initial boot off of install media (floppy, cd)
  - Syslinux (or other loader for other arch) is run, and it boots the kernel
2. kernel boot
  - The kernel sets up a ram disk and loads the main install system
3. main install system
  - Many subsections here. Key are:
    - identify local settings (is there color? What language and time zone?)
    - load device drivers from install media
    - identify hardware, configure device drivers
    - set up install disk (partitioning, formatting)
    - install base system (kernel, base tarball, lilo (other loaders for
      other arch's))
  - This also includes a full shell system for rescue and other activities.
4. reboot
  - Several questions asked before the user is dumped into a normal login:
    - root password
    - add another user
    - shadow passwords, pcmcia, etc
    - package selection
    - package install

The root of the problem
-----------------------

I think the core of our problems is in step 3. Everything that happens in
step 3 is done with special-purpose code, that has to deal with all the
possibilities (multiple arches, different install methods and hardware, etc)
and must be crammed into as small a space as possible. Note that these two
needs tend to conflict a lot!

The code isn't reused in other parts of debian, and developers tend to
forget about the installation once they've done it, so only a small team of
people works on it. Contrast with step 4, where little of the code is
special purpose, and space constraints are no longer a real problem. 

I think that much of what is done in step 3 can be postponed to step 4.
(Things like time zone setup, configuration of hardware not necessary to
boot, etc). Anything that is pushed back to step 4 becomes part of a "real"
debian system, and so I think it will get a lot more attention.

Goals
-----

I would like to reorganize the boot floppies to accomplish the following
goals:

- Bring them back into the core of debian as much as possible, so more
  people work on them as part of normal debian work. This means getting
  a normal debian system up as soon as possible, and continuing the rest of
  the install inside it.
- Make them modular, for increased flexibility, and smaller size.
- Make the set of floppies you need to burn to install debian smaller.
  Ideally: 1.
- Simplify the install as much as possible.
