From: Jeremy Fitzhardinge <jeremy@goop.org>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Virtualization Mailing List <virtualization@lists.osdl.org>,
Vivek Goyal <vgoyal@in.ibm.com>,
"Eric W. Biederman" <ebiederm@xmission.com>
Subject: Re: [patch rfc wip] first cut of ELF bzImage
Date: Thu, 31 May 2007 00:52:32 -0700 [thread overview]
Message-ID: <465E7EC0.6080108@goop.org> (raw)
In-Reply-To: <465E7CA2.6090201@zytor.com>
H. Peter Anvin wrote:
> The more I'm thinking about this whole issue, the more I'm thinking this
> is really misdirected.
>
> I'm starting to think that the right thing to do might very well be as
> follows:
>
> - Change the payload of the bzImage file from a flat binary to an ELF
> file -- a stripped vmlinux.gz.
> - Change the decompressor to incorporate a (simple) ELF parser.
> - Incorporate a couple of pointer fields in the bzImage header that
> points directly to the payload, the format of which can be identified
> via its magic number (currently gzip).
>
I don't see a lot of benefit in doing this. Having some form of
executable I can just run is probably simpler for me to implement than
trying to unwrap a vmlinux.gz from an envelope, even if that's what
we're currently booting. The Xen domain builder simply wants an ELF
file it can load; if its a self-decompressing kernel image, then that's
OK. The only real problem is setting up the initial mappings so that
the booting code can run as if paging is enabled. The simplest answer
to that is to simply 1:1 map all lowmem and set it running, but having
specific Phdrs laying out the mappings would be a bit more refined.
Now if the bzImage were simply some 16-bit startup code prepended onto a
self-decompressing 32-bit ELF kernel file, then that would be fairly
easy to deal with too, since that would just be a matter of looking at
the boot_params to find the start of the ELF file and continue from there.
> The more I hear about copying notes and various things from vmlinux to
> bzImage the more I'm convinced that this is a huge kluge.
Copying notes? I don't think we'll need to do that. I'll put the Xen
notes on the outermost envelope, but aside from that, there's no need to
copy. It would definitely be useful to have ELF notes at the same level
as the boot_params block, so that I can use one to find the other.
> Furthermore,
> there are *definitely* virtual environments which would be much happier
> to be able to decompress in host space. The decompressor doesn't run
> well in many simulators.
I'm not sure why you say that. Rusty managed to get unmodified
bzImage's booting in lguest within a few hours of hacking. I don't
expect Xen would be much different.
J
next prev parent reply other threads:[~2007-05-31 7:52 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-31 7:27 [patch rfc wip] first cut of ELF bzImage Jeremy Fitzhardinge
2007-05-31 7:43 ` H. Peter Anvin
2007-05-31 7:52 ` Jeremy Fitzhardinge [this message]
2007-05-31 8:12 ` Rusty Russell
2007-05-31 17:52 ` H. Peter Anvin
2007-05-31 19:07 ` Eric W. Biederman
2007-05-31 19:27 ` H. Peter Anvin
2007-05-31 20:22 ` Jeremy Fitzhardinge
2007-05-31 20:17 ` Jeremy Fitzhardinge
2007-05-31 20:07 ` Jeremy Fitzhardinge
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=465E7EC0.6080108@goop.org \
--to=jeremy@goop.org \
--cc=ebiederm@xmission.com \
--cc=hpa@zytor.com \
--cc=vgoyal@in.ibm.com \
--cc=virtualization@lists.osdl.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).