Netboot Mailing List (by thread)

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

Re: new netbooting project: NILO



Hello,

Ken Yap <ken@nhj.nlc.net.au> wrote:
> NILO is the project that will be the successor to Etherboot.

After reading your NILO web page it looks to me that you are going to re-
invent the wheel. Actually, I'm constantly developing netboot towards the
same goals you defined for NILO, except GCC support for the bootrom (which
I think to be unnecessary because as86/ld86/bcc are freely available tools
like GCC etc., so there is no real limitation):

	- You are proposing a common network driver interface:
		This has been implemented into netboot for a long time
		already: it's the packet driver interface, which is IMHO
		the best solution for this job. In order to allow other
		types of drivers I'm presently working on a wrapper
		which makes an NDIS driver look like a packet driver to
		the bootrom. Similarily, a wrapper could be written which
		uses the Linux network driver source.
		You are proposing a jump table, but the final goal is the
		same.

	- You are proposing a division into a first and second stage boot
	  loader:
		For this I have suggested MGL, which should serve as such
		a second stage boot loader in the future. It will sit upon
		the basic network interface provided by the bootrom (packet
		driver interface in the case of netboot) and provide a
		full TCP/IP stack - with much more functionality than just
		a second stage boot loader. It doesn't make sense to im-
		plement such a full TCP/IP stack into the bootrom and export
		those functions, as those are not necessary for the rom
		itself (which can be seen as the first stage loader) and
		would therefore just increase the bootrom size unnecessarily.
		Therefore, as it is planned with netboot, we will have the
		following setup:

			network driver       -  any suitable driver with a
			                        wrapper which allows the driver
			                        to adapt to the packet driver
			                        interface
			first stage loader   -  bootrom
			second stage loader  -  MGL

		This is the same three part division you proposed with NILO.

As you can see, netboot is going to develop exactly into the same direction
as you are proposing with your NILO concept. I'm rather disappointed that
you haven't contacted me before starting this proposal. However, instead
of developing in parallel, we should start to think about merging our
efforts: The network interface of the netboot bootrom can easily be changed
to something else (jump table or whatever, even though I think, a jump
table is not very clever). The MGL IP stack code has still to be written,
even though the basic framework, the compiler itself, is already available.
Since MGL is a programming language, it offers the most versatility for a
second stage loader. It is planned for MGL to not only offer basic second
stage functionality, but to also allow simple network applications like
writing a printer spooler etc. Therefore, most of the "second stage loader"
for netboot has been written already.
The only part which has not been addressed yet is the wrapper for the Linux
network driver source. Probably the easiest way would be to just use the
precompiled kernel object modules. makerom can be extended to deal with the
object format (the GNU bfd library is freely available) and link the network
driver module with the wrapper to form a binary with a packet driver (or
whatever else) interface... Actually, even if you don't join in, this seems
to be a thought worthwhile of being followed on. If I only could find the
time...

gero.

-- 
Boy, men are pretty stupid sometimes, no? :-)
  - John Kuthe
--
Gero Kuhlmann, Hannover     0511/6497525 (Voice)        gero@gkminix.han.de



For requests or suggestions regarding this mailing list archive please write to netboot@gkminix.han.de.