Date: Sat, 14 Feb 1998 20:46:41 +0800 From: Peter Wemm <peter@netplex.com.au> To: Mike Smith <mike@smith.net.au> Cc: Ollivier Robert <roberto@keltia.freenix.fr>, core@FreeBSD.ORG, committers@FreeBSD.ORG Subject: Re: wfd block major number reassignment from 24 to 1 Message-ID: <199802141246.UAA03995@spinner.netplex.com.au> In-Reply-To: Your message of "Sat, 14 Feb 1998 04:08:53 PST." <199802141208.EAA21988@dingo.cdrom.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Mike Smith wrote: > > According to Mike Smith: > > > They have certainly addressed just about everything that I recall us > > > ever having discussed as an issue, and a number that hadn't occurred to > > > me. > > > > Can we have a 3-stage bootloader *without* encoding the blocks number in > > the first stage (à la SunOS / Lilo) ? > > I've already made my opinions on this known; I haven't heard much > comment elsewhere, but I doubt that there would be many takers for such > an animal. (ie. yes, I think we can.) GRUB (Grand Unified Boot Loader) already does it, so I don't see why we couldn't. :-) The simplest way of getting this up and running is: - take current boot code - chop out all unnecessary code (eg: kernel setup, memory sizing, etc, etc) - have resulting "lightweight" loader actually load the real loader at some fixed address, and jump to it. "real" loader does all the kernel bootstrap, memory sizing, ELF symbols, run-time linking, userconfig, etc. let 'ld' and tools do all the hard work and produce a /boot binary tailored specifically for the task. You don't need nlist(), symbols, a.out or elf support etc. It'd just be a flat file linked at a specific address. Problem: /boot gets munched, you want to specify an alternate root partition or /boot.old or something. Solution: Leave enough of the keyboard parsing code so that if (say) the ALT key is held down during boot or (like win95) the F8 key was pressed, then stop and put up a simple prompter to specify an alternate path/ parition/bios drive/etc. Kinda like a cut-down version of the kernel selector. If /boot wasn't available, then it could try /boot.old automatically, or just put up the requester. That way, you don't get seperate boot1 and boot2 prompts, and don't delay while the 7K loader does it's thing. It should be no real drama to make a 7K stage-2 loader for a specially prepared /boot image that can still be controlled by the keyboard etc. Dos booting is unaffected. dosboot.exe would still load the "full" boot code and do it's thing. It doesn't have size problems. Net booting is more tricky. The netboot code for the eproms would need to have the same diet applied, except that it'd load /netboot instead, which could be an alternative compilation of the stage3 code. Alternatively, /boot could simply be compiled to start up under a UFS or NFS root environment. All of the options now available from the Boot: prompt would be provided by the 3rd stage kernel loader, except that it would no longer have the dreaded space problem. Sounds easy, eh? Well, the devil is in the details.. That's why nobody has done it for FreeBSD (and because many unix programmers don't like working at real-mode 16-bit bios level :-). Cheers, -Peter -- Peter Wemm <peter@netplex.com.au> Netplex Consulting To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199802141246.UAA03995>
