public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Andrew Morton <akpm@zip.com.au>,
	linux-kernel@vger.kernel.org,
	Werner Almesberger <wa@almesberger.net>,
	"Erik A. Hendriks" <hendriks@lanl.gov>
Subject: Re: [RFC] x86 ELF bootable kernels/Linux booting Linux/LinuxBIOS
Date: 01 Feb 2002 00:52:25 -0700	[thread overview]
Message-ID: <m1vgdhabba.fsf@frodo.biederman.org> (raw)
In-Reply-To: <m1elk7d37d.fsf@frodo.biederman.org> <3C586355.A396525B@zip.com.au> <m1zo2vb5rt.fsf@frodo.biederman.org> <3C58B078.3070803@zytor.com> <m1vgdjb0x0.fsf@frodo.biederman.org> <3C58CAE0.4040102@zytor.com> <m1r8o7ayo3.fsf@frodo.biederman.org> <3C58DD2E.10106@zytor.com> <m1n0yvaucy.fsf@frodo.biederman.org> <3C598585.4090004@zytor.com> <m1it9itaiy.fsf@frodo.biederman.org> <3C59CAB0.1020400@zytor.com>
In-Reply-To: <3C59CAB0.1020400@zytor.com>

In my ideal world here is how it works.

The firmware bootloader reads an ELF header from the first sector of
the disk.  Looking at the ELF header it knows where everything else is
and loads the rest of the operating system and jumps to it.

There is a problem with that I cannot select among multiple images to
boot.  So I install a different ELF image with the ELF header on the
first sector of my hard drive.  This second image instead of being a
stripped down small and limited piece of code is a distribution of my OS
dedicated to the task of helping my decide which image to boot.  Total
freedom.

And I have this working now without sweating the space in 64K of
firmware.  

"H. Peter Anvin" <hpa@zytor.com> writes:

> Eric W. Biederman wrote:
> 
> > 
> > First it isn't an immediate problem because with an ELF image you
> > don't need a multistage bootloader.  I can represent everything in one
> > file.  Essentially a sparse coredump.
> 
> 
> For what definition of "everything"?  I'm not being facetious, I think
> it's a fundamentally impossible statement to make, especially if the
> bootloader is interactive.

I know of no case for which a free-standing program or operating
system cannot be represented as an ELF image.  Essentially the
non-interactive case.

For the interactive case you can I agree you can't please everyone.
But if it is trivial to write the interactive bootloader, with size
being the only problem with naive implementations I don't see a
problem.  Though I suspect a bootloader running X will be overkill :)


> > If you are writing an intermediate loader it is a problem.  An
> > intermediate loader needs OS services, and if you don't have those
> > services you are in trouble.  For this purpose it is fair to call the
> > x86 BIOS,  EFI, the SRM, and open firmware OS's. 
> > 
> > Personally when I want an OS I would like to use Linux.  So I have
> > written a patch that allows me too load another OS from Linux, so in
> > those cases when I am writing an intermediate boot loader I can use
> > Linux.  I admit I haven't gracefully solved all of the bootstrapping
> > cases but that is just a matter of time.
> 
> 
> Your intermediate Linux still needs to have all its devices.  

Yep sure does.  

> I was
> working for a while on a project to create an "intermediate Linux" which
> wouldn't claim to own the world but instead callback to the firmware; this
> would be a port of Linux to a sort of pseudo-architecture.  I got a bit
> too busy, but I think it's a valid program.

I agree.  But I also think it is valid to directly drive the devices
if you never plan on having the firmware driving the again.  Or you at
least issue a firmware device reinitialization command before having
the firmware drive the device.

[snip PXE It doesn't matter if we agree]
 
> It's fundamentally about creating pervasive interfaces.  My problem with
> several of your proposals is that they make well-established interfaces
> *less* pervasisve, which is a huge step in the wrong direction.

I agree.  Except many of the pervasive interfaces today, do not
address my needs.  

In particular an x86 BIOS is terrible for clusters.  Where you have
hundreds of thousands of machines that you wish to manage remotely.  I
have tried.  I have worked with board vendors and BIOS manufacturers,
and at their best they can barely manage serial console support.  And
they really don't help with anything beyond that.  I have done a
better job with less code, in less time by rewriting the BIOS from
scratch.

So I am going to push for architecture neutral standards, that have
the potential to be even more pervasive than todays interfaces, because I
already need something different.  And a core part of that for me is
the ELF file format.  As I see it a bootloader saying everything is
ELF is as simplifying  as the unix everything is a file concept.

Eric

  reply	other threads:[~2002-02-01  7:56 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-30 19:54 [RFC] x86 ELF bootable kernels/Linux booting Linux/LinuxBIOS Eric W. Biederman
2002-01-30 21:19 ` Andrew Morton
2002-01-30 23:52   ` Keith Owens
2002-01-31  2:42   ` Eric W. Biederman
2002-01-31  2:48     ` H. Peter Anvin
2002-01-31  4:27       ` Eric W. Biederman
2002-01-31  4:41         ` H. Peter Anvin
2002-01-31  5:15           ` Eric W. Biederman
2002-01-31  5:59             ` H. Peter Anvin
     [not found]               ` <m1n0yvaucy.fsf@frodo.biederman.org>
2002-01-31 17:57                 ` H. Peter Anvin
2002-01-31 22:34                   ` Eric W. Biederman
2002-01-31 22:52                     ` H. Peter Anvin
2002-02-01  7:52                       ` Eric W. Biederman [this message]
2002-01-31 17:35           ` Erik A. Hendriks
2002-01-31 23:36             ` Eric W. Biederman
2002-02-01  0:03               ` H. Peter Anvin
2002-02-01  9:03                 ` Eric W. Biederman
2002-02-01  9:25                   ` H. Peter Anvin
2002-02-01 15:42                     ` Eric W. Biederman
2002-02-01 18:26                       ` H. Peter Anvin
2002-02-02 16:17                         ` Eric W. Biederman
2002-02-02 21:06                           ` H. Peter Anvin
2002-02-02 23:02                             ` Eric W. Biederman
2002-02-03  1:56                               ` H. Peter Anvin
2002-02-03 18:43                                 ` Eric W. Biederman
2002-02-03 19:39                                   ` H. Peter Anvin
2002-02-03 22:18                                     ` Rob Landley
2002-02-03 22:24                                       ` H. Peter Anvin
2002-02-03 22:59                                         ` Rob Landley
2002-02-03 23:01                                           ` H. Peter Anvin
2002-02-03 23:47                                             ` Rob Landley
2002-02-04  1:34                                               ` H. Peter Anvin
2002-02-04  9:53                                             ` Marco Colombo
2002-02-04 16:19                                               ` H. Peter Anvin
2002-02-04 19:55                                     ` Eric W. Biederman
2002-02-04 20:51                                       ` Alan Cox
2002-02-04 20:40                                         ` H. Peter Anvin
2002-02-03 19:48                                   ` H. Peter Anvin
2002-02-04 20:16                                     ` Eric W. Biederman
2002-02-04  4:29                                   ` Keith Owens
2002-02-04 20:01                                     ` Eric W. Biederman
2002-02-04 12:49                         ` Werner Almesberger
2002-02-04 16:26                           ` H. Peter Anvin
2002-02-04 19:45                           ` Eric W. Biederman
2002-02-04 21:02                             ` Werner Almesberger
2002-02-04 21:08                               ` H. Peter Anvin
2002-02-05  7:45                                 ` Eric W. Biederman
2002-02-01  0:46               ` Keith Owens
2002-01-31  3:03     ` Keith Owens
2002-02-01  7:22       ` Greg KH
2002-01-30 21:32 ` H. Peter Anvin
2002-01-31  2:31   ` Eric W. Biederman

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=m1vgdhabba.fsf@frodo.biederman.org \
    --to=ebiederm@xmission.com \
    --cc=akpm@zip.com.au \
    --cc=hendriks@lanl.gov \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=wa@almesberger.net \
    /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