Re: Booting a modular kernel through a multiple streams file

H. Peter Anvin
2001-12-20T03:31:33Z

Followup to: <Pine.GSO.4.21.0112191153280.11104-100000@weyl.math.psu.edu>
By author: Alexander Viro <viro@math.psu.edu>
In newsgroup: linux.dev.kernel
>
> On 19 Dec 2001, Eric W. Biederman wrote:
>
> > I have alarm bells ringing in my gut saying there are pieces of your
> > proposal that are on the edge of being overly complex... But without
> > source I can't really say. Arbitrary NULL padding between images is
> > cool but why?
>
> Alignment that might be wanted by loaders. Take that with hpa - for
> all I care it's a non-issue. while(!*p) p++; added before p = handle_part(p);
> in the main loop...
>

Examples on allowing NULL padding makes life easier for the
bootloader, because it can pick its own alignment:

a) A bootloader uses INT 15h AH=87h to move things to high memory.
This function can only move 16-bit words.

b) SYSLINUX' builting high bcopy routine can only move 32-bit words.

c) If a boot loader runs in protected mode, it may want to operate on
4K pages only.

d) A block-oriented boot loader like LILO can simply concatentate the
blocks of multiple files together (as long as it can make sure
the slop is zeroed out.)

It's an insignificant addition to the kernel that allows the
bootloader to be potentially significantly simpler, by removing the
corner cases. This is a Good Thing[TM].

-hpa

--
<hpa@transmeta.com> at work, <hpa@zytor.com> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt <amsp@zytor.com>