Re: [PATCH 1/3] Gujin linux.kgz boot format

From: Etienne Lorrain
Date: Tue Oct 11 2005 - 08:17:07 EST

Kalin KOZHUHAROV wrote:
> So you are saying: "Dump GRUB and lilo, use Gujin!" ??
> I don't think anybody will agree with that even if it is a better
> way in some way.
> Until some level of compatibility is guaranteed with the currently
> de facto loaders, at least I cannot support this idea in any way.
> Discussing that with GRUB and lilo devs, might be an idea, but
> who knows.

It is even worse than that, I not only said to change the
bootloader but also to remove one of the two links produced
during a standard "make bzImage", the one which handle the
real mode ia32 code, in Linux/arch/i386/boot/*.

Sometimes, to simplify, you need to remove things. As I said,
a Linux kernel "linux.kgz" is just a compressed binary image of
an ELF file - it no more deals with real mode, its first
instruction is in protected mode (no virtual memory, just flat
one, and interrupts disabled). It still contains the processor
it is compiled for in the GZIP comment part, in text mode.

That has advantages like that you use a clean real mode
environment to get all the BIOS information you want, the
first kernel assembler instruction can be located anywhere in
memory (even at an address currently used by BIOS/DOS because
the relocation is very late), and there is no more any limit
to the kernel size.
So, at the bootloader time, you can start a FreeDOS environment
with DOS USB drivers and load your kernel at any address you want,
or decide that you do not want to touch the BIOS environment
and boot from a simulated floppy on a ATAPI IDE CDROM.
If your kernel no more boots (got a HD with SMART failure lately),
you can get an error while loading the kernel and just can boot
a CDROM with a IDE disk RMA generator.
When network support will be included in Gujin, because the
processor is still in real mode, it will be able to use the
network BIOS with its IRQ in a transparent way.

Note that there is no more any development for LILO or the real
mode part of the kernel, probably people no more want to deal with
assembler software. I can't blame them, I stopped too to use
assembler in Gujin. I can't talk to the development teams of LILO
or the real mode part of the kernel...

Anyway, it is technically not possible to rely on the old real
mode interface because things are not done at the right time,
complete backward compatibility is kept because you just describe
what you want at the "make" time, by typing "make bzImage" or
"make /boot/linux-2.13.kgz".

I can't force anybody to switch to Gujin; I am just proposing a
way to start Linux which is a lot simpler, involves a lot less
assembler code so is a lot easier to maintain, which is working
right now, which is quite easy to debug (with the DBG*.exe files).
You can boot your PC with your USB FLASH disk, your CD/DVD-ROM
or a simple disk / partition / floppy right now, there isn't
any configuration file because everything is autodetected - at
least anything which cannot be selected by the graphic/mouse


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at