From: ebiederm@xmission.com (Eric W. Biederman)
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: linux-kernel@vger.kernel.org, Etienne Lorrain <etienne@masroudeau.com>
Subject: Re: [ANNOUNCE] Gujin graphical bootloader 0.4
Date: 11 Aug 2001 01:17:11 -0600 [thread overview]
Message-ID: <m1n157rrpk.fsf@frodo.biederman.org> (raw)
In-Reply-To: <Pine.LNX.4.33.0108060228220.10664-100000@hp.masroudeau.com> <9kuid8$q57$1@cesium.transmeta.com>
In-Reply-To: <9kuid8$q57$1@cesium.transmeta.com>
"H. Peter Anvin" <hpa@zytor.com> writes:
> Followup to: <Pine.LNX.4.33.0108060228220.10664-100000@hp.masroudeau.com>
> By author: Etienne Lorrain <etienne@masroudeau.com>
> In newsgroup: linux.dev.kernel
> >
> > - Loads Linux kernel images (zImage and bZimage) without the help
> > of LILO, and short-circuit all real-mode code in the kernel to
> > start at the first protected mode instruction of the kernel.
> >
>
> This is a very bad idea. The kernel entry point is in real mode for a
> reason: it means that the kernel doesn't have to rely on the boot
> loader to provide the services it needs from real mode before
> entering protected mode once and for all. The interface to the real
> mode entry point is narrow and stable, the protected mode entrypoint
> is a kernel internal and doesn't have an interface that is guaranteed
> to be stable -- again, for good reason.
There are good reasons to use the kernel 32 bit entry point. In
particular I routinely run linux on systems with exactly 10 16bit
instructions. On one of them I don't even have normal memory between
640KB and 1MB. The only real parameter the kernel needs from the BIOS
is memory size, and I could probably steel code from memtest86 so it
wouldn't even need that.
However I do understand the instabilities, and the deficiets of the
current 32bit entry point, and why having a standard 16bit entry point
is a good thing. Which is why in 2.5 (if it ever starts) I intend to
do the work required so we can have a standard cross platform native
mode entry point to the kernel.
To keep linux portable we should never assume that on a given platform
there is a specific kind of BIOS. Alpha-linux at least is nasty
because of this. x86 linux is very nice because all you need to do on
platforms that don't do support the classic BIOS interface is to drop
the 16bit header. That is definentily a structure worth keeping.
Currently I have a stable easy to use structure that isn't even linux
specific with just a few more details on how to encode parameters to
work out. The structure is the ELF format for static executables,
with a specific implementation of how parameters will be passed to it
from the bootloader, before the bootloader goes away. In particular
how to specify things like onboard ISA devices so we don't even have
to assume what is or is not present on a motherboard for those devices
that don't support probing and there is a firmware interface for
finding them. The interesting case there is not so much how to encode
the device but instead on how to represent the location of devices,
and the connections between devices.
Being able to describe how an interrupt goes from a pci slot to an irq
router to a legacy interrupt controller to a local apic and to the
cpu, and simultanesly goes from the pci slot to an ioapic to a local
apic to the cpu. And saying that pci slot is behind a PCIX<->pci
bridge. Is an interesting question. Especially in data structures
that have very few special cases. We are close in the kernel with
struct resource, and struct pci_device but we haven't gone all of the
way yet.
So no I don't think it is right to blast someone for using the 32bit
entry point, while at the same time I do agree that right now it is a
very questionable things to do.
Eric
next prev parent reply other threads:[~2001-08-11 7:24 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-08-06 10:15 [ANNOUNCE] Gujin graphical bootloader 0.4 Etienne Lorrain
2001-08-09 11:26 ` Matthias Andree
2001-08-09 13:38 ` Etienne Lorrain
2001-08-09 17:48 ` H. Peter Anvin
2001-08-11 7:17 ` Eric W. Biederman [this message]
2001-08-11 8:10 ` H. Peter Anvin
2001-08-14 7:27 ` Eric W. Biederman
2001-08-14 16:42 ` H. Peter Anvin
2001-08-15 16:40 ` Eric W. Biederman
-- strict thread matches above, loose matches on Subject: below --
2001-08-10 12:24 Etienne Lorrain
[not found] <fa.mdu6dgv.m10d9i@ifi.uio.no>
2001-08-10 13:02 ` Giacomo Catenazzi
2001-08-10 14:06 ` Etienne Lorrain
2001-08-13 12:05 Etienne Lorrain
2001-08-13 14:29 ` Keith Owens
2001-08-14 7:36 ` Eric W. Biederman
2001-08-14 7:53 ` Eric W. Biederman
2001-08-14 11:06 ` Etienne Lorrain
2001-08-14 15:46 ` 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=m1n157rrpk.fsf@frodo.biederman.org \
--to=ebiederm@xmission.com \
--cc=etienne@masroudeau.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.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