[Prev][Next][Index][Thread]

Comments about the patch I sent / net booting experiences [was: Re: some bugs in netboot]



Just a short note on the patch I submitted yesterday: it is not an official
patch (reason: missing code for the bootp/dhcp configuration case and the
introduction of a totally new IP configuration mechanism).  It should work,
but it doesn't comply with the philosophy of the rest of the code.  Anyway,
comments are very much appreciated.

The reasons why I wrote this code are:
 - bug fixing
 - better integration of the booting process of my experimental OS (which is
   not based on the oskit - for reasons too complicated to discuss in this
   message). I'm using a rather strange net boot (note the space!) setup.
   First stage boot: etherboot 4.2.1
   Second stage boot: linux boot image loader for etherboot 4.2.1
   Third stage: linux boot image to multiboot image converter from the oskit
   Fourth stage: oskit netboot 2.7
   Fifth stage: my own kernel.

   I know, this seems excessive, but it works perfectly. Network boot isn't
   just a convenience issue in kernel development, it is a precondition of
   efficient work and mental sanity.

   The fourth stage will be obsolete (and in case of a disk boot the first
   stage is replaced by a loader for linux kernel images) once it works
   properly, but having such a layered boot makes it easy to boot over just
   about everything.

   Because I'm using the linux boot image loader from etherboot the command
   line passed by it is Linux-oriented.  I thought it would be cool to use
   it for the later stages.  Maybe someone could write a multiboot kernel
   loader for etherboot, then all these kernel environment variables could
   be removed in favor of passing the bootp record around (which etherboot
   supports), but this is a blind spot in the multiboot spec.

Again, the patch is only for oskit-990402. If you don't want to use 990402
as a whole, just replace the boot directory in the oskit-0.97 tree by the
990402 version and then apply the patch.  I did it this way.

Sorry for the long message, but I thought the notes about network boot are
of general interest. If someone has trouble setting up a similar development
environment - just ask.

Klaus


References: