From: phcoder <phcoder@gmail.com>
To: The development of GRUB 2 <grub-devel@gnu.org>
Subject: Re: [RFC] general-usage real-mode loader
Date: Sun, 07 Sep 2008 14:22:57 +0200 [thread overview]
Message-ID: <48C3C7A1.3080200@gmail.com> (raw)
In-Reply-To: <48C3BD32.5050109@nic.fi>
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
next prev parent reply other threads:[~2008-09-07 12:23 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-05 17:27 [RFC] general-usage real-mode loader phcoder
2008-09-05 17:41 ` phcoder
2008-09-06 11:20 ` Robert Millan
2008-09-07 0:25 ` phcoder
2008-09-07 7:25 ` Vesa Jääskeläinen
2008-09-07 11:09 ` phcoder
2008-09-07 11:38 ` Vesa Jääskeläinen
2008-09-07 12:22 ` phcoder [this message]
2008-09-07 15:55 ` Robert Millan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48C3C7A1.3080200@gmail.com \
--to=phcoder@gmail.com \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.