Subject: Future Installer idea....
To: Bill Studenmund <wrstuden@loki.stanford.edu>
From: The Great Mr. Kurtz [David A. Gatwood] <davagatw@Mars.utm.edU>
List: port-mac68k
Date: 02/06/1997 20:49:42
On Wed, 5 Feb 1997, Bill Studenmund wrote:

> 2) The installer is SLOW. Try cpin'ing the .tgz files (after doing
> etc12 and base12 from the installer), booting single user, mounting
> / r/w, and use tar for the install. It's ALOT faster!

I believe the possibility was raised, at one time, of using a mini-root
and doing an install from within NetBSD.  I've been pondering this
recently....  Here's my two cents or so.  Basically the idea is to create
an 'installer' which is nothing more than a user interface wrapper around
a whole bunch of utilities that already exist.  Let me know what y'all
think.

12 Step Installer Program

1.	MacOS side installer grabs configuration information, such as
	getting the IP number and config information from
	MacTCP/OpenTransport if that's possible....
2.	MacOS side installer decompresses and builds microroot.
3.	MacOS side loads microkernel and microroot.
4.	Switch to NetBSD
5.	NetBSD installer gets config information w/ disklabel, stores in
	table.
6.	Installer menu provides ability to create partitions using pdisk
	from mklinux (with modifications, no doubt, but I suspect a large
	part of the code would work).  Then, use mkfs/newfs to create the
	NetBSD fs.
7.	Installer menu allows you to extract tarballs, ungzipping then if
	necessary.
8.	Installer menu allows you to install the kernel of your choice,
	directly from the MacOS disk (hcopy or whatever).
9.	Installer menu allows you to spawn a mini-shell, allowing _basic_ 
	manipulation of the filesystem (rm, rmdir, cp, mv, etc.).
10.	Installer menu allows you to set up networking.  Two choices:
	A.	LAN Setup (prompts for confirmation before using MacOS
		settings)
	B.	PPP setup (prompts for send-expect pairs, like linux
		setnet)
12.	When the user quits, the system reboots into MacOS, and the old
	installer automagically executes (then removes the alias to itself
	from startup items folder) and allows the user to perform
	additional file transfers, etc.

Constraints:

1.	The microkernel and microroot, complete with a little operating
memory, must fit in a 5 Meg system without swapping, or must make
provisions for swapping to a MacOS file (VM Storage, anyone?)
2.	The following programs would be required in the microroot:
	A.	mkfs/newfs
	B.	gunzip
	C.	tar
	D.	NetBSD-side installer
	E.	setnet-like program (shells are too big, sorry)
	F.	a drastically reduced kernel.
3.	The following files would need to be included:
	A.	/dev/sdxx

The big kicker is number 2 at the top.  The idea is, if programs like rm,
etc. won't fit, a pared down version is made available w/o the mini-shell. 
If you only have three drives, there's no reason to include sd3x+, etc. 
If memory were really tight, a stripped down microkernel might be used.... 
One without networking, without such things as ncrscsi96 (this assumes
that no quadra would be strapped for memory, which may or may not be an
accurate assumption, UYOJ....), and the support for a bunch of the
graphics stuff could be eliminated.  All you'd need is the basic console
code.  No need for the audio beep support, that can be cut....  No need
for floating point coprocessor support, since the installer really should
use statically linked binaries with the better routines.  You _would_ need
fpe, though.  :-)  Also, the big question would be whether the shared
library support would take more or less space than the statically linked
binaries (rm, cp, mkdir, rmdir, gunzip, tar, mkfs/newfs, installer, setnet
program, that's about it).  I tend to think that in a 'microroot'
situation (extreme of a miniroot), shared libs would be too bulky, but I'm
not certain of that.  Again, UYOBJ.  :)


Thoughts?

 /---------------------------------------------------------------------\
|David A. Gatwood             And Richard Cory, one calm summer night,  |
|davagatw@mars.utm.edu      Went home and put a bullet through his head.|
|dgatwood@globegate.utm.edu          --Edwin Arlington Robinson         |
|-----------------------------------------------------------------------|
|http://globegate.utm.edu                  http://www.utm.edu/~davagatw |
|http://mars.utm.edu/~davagatw             http://www.nyx.net/~dgatwood |
 \---------------------------------------------------------------------/