grub-devel
[Top][All Lists]
Advanced

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

Re: [RFC] general-usage real-mode loader


From: phcoder
Subject: Re: [RFC] general-usage real-mode loader
Date: Sun, 07 Sep 2008 14:22:57 +0200
User-agent: Thunderbird 2.0.0.16 (X11/20080724)

Vesa Jääskeläinen wrote:
 > It is true that code is withing grub's i386 kernel. But other than that
> same mechanism can be used to load kernel. After all kernel will take
> over the computer after it has started and it is not returning back
> anymore (eg. stack is not anymore there to be restored).
> 
In this case my rmkern helper can use this mechanism but the problem is
then that the rmkern should be able to choose where to put RM helper
since some OS need specific places in memory to be filled with specific
values
> I would prefer that if we are going to give custom register
> configurations for kernel then they all should use same structures for
> storing registers.
> 
> But anyway... Did you have some good examples where this functionaly
> would be needed :) ? For now we have specialized loaders that prepare
> system for any special OSes that needs to be supported. Especially how
> do you know what registers to fill or better yet, how user will provide
> this information so OS can be loaded.
I thought that this function can be used as general helper for any
kernel that needs to be launched in RM. In that cases RMkern
functionality is used by OS-specific wrapper which knows what to put in
the registers
Usage cases:
1) chainloader
2) zbeos: BeOS and haiku. BeOS has a good functionality for booting from
loopback but for this you need floppy, windows 9x/me or dos. On my
laptop I have neither. But zbeos (BeOS and Haiku middle-loader) is
really easy to load.
3) ecomstation: eCS is able to load from JFS but needs a specialized
loader to be installed on its own primary active partition. I think GRUB
should be able to load it directly. But perhaps also exporting of GRUB
functions to ecomstation is needed (this is discussed in another thread,
I'll write there later)
4) DOS/Win9x and freedos. Especially the second one. They use extended
chainloader functionality found in grub4dos. With rmkern loading freedos
kernel should be really easy.
5) Loading winnt (ntldr) and winvista (bootmgr)
6) Many other different proprietary and free OS. I don't know enough
about them to say that this or that one can benefit from it but suppose
many OS can be booted easier and more reliable with this functionality.
7) rmkern command. Experienced users, hobbysts and OS-developpers can
enter manually the state in which they want their kernel to be loaded.
May be handy also for reverse engineering
> 
> If there is a need for specialized loader please provide some details
> where those are needed and what is required from GRUB in order to
> support that. If there is possibility to use multiboot then that would
> supersede need for specialized loader.
Some OS have their reasons not to support multiboot. E.g. haiku and
freedos stick very near to their goal of reimplementation beos/dos and
as such they don't want anything that would be better

Vladimir 'phcoder' Serbinenko




reply via email to

[Prev in Thread] Current Thread [Next in Thread]