[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: FYI: some thoughts about stage1 development

From: Yoshinori K. Okuji
Subject: Re: FYI: some thoughts about stage1 development
Date: Sun, 14 Mar 2004 19:23:12 +0100
User-agent: KMail/1.5.3

On Sunday 14 March 2004 10:52, Wolf Lammen wrote:
> I certainly was in a 'critical' mood, when I jotted down that paper.
> If the only outcome is that people get upset, it's obviously
> counter-productive. Please take my apologize.


FYI, I'd like to describe some information about my policy. My current 
goal is not to make a perfect and beatiful boot loader, but to make an 
usable boot loader for OS developers as well as end users. You should 
have noticed that stage1 is quite dirty, but I'm not interested in 
cleaning it up, because beauty is not quite important for real 
software. Rather, whether it's working or not is very imporant.

So, if you want to improve the implementation, you need to supply a good 
reason why your change is required. "It makes the code look better" is 
not enough for me. "It makes the code easier to maintain" is not 
enough, either, because the code won't change anyway. This kind of 
improvement is unacceptable for GRUB, because GRUB is not in the 
developmental state any longer. The code must not change in principle.

I can understand why you want to improve stage1, since I share the same 
feeling actually. It's not a good boot sector. This is partly because I 
was not experienced when taking part in GRUB, and there was no open 
knowledge base about IBM/MS INT13 Extensions. GRUB pioneered LBA 
support in boot loaders. So it was as if we groped our way in the dark. 
The result was, therefore, a working but far-from-elegant one.

That's why we started GRUB 2 from scratch. The current GRUB (I call this 
"GRUB legacy") is not appropriate for testing new code, because the 
user base is too large, so code changes could be significant impacts. 
GRUB is not vaporware, unlike GRUB 2.

If you are interested in developing a boot loader, work on GRUB 2 
instead of GRUB legacy. I'm very happy with any kind of new improvement 
on GRUB 2.

BTW, I'd say my idea only about CLI/STI in stage1.S. I'm not sure if 
this is correct, because the code was written by Erich, but I guess he 
was aware of ancient processors, such as 8086. These processors didn't 
disable interrupts automatically when SS was modified, so it was 
necessary to issue a CLI explicitly, if you wanted to support such 

Since GRUB does not support older ones than 386, this might not be a 
good explanation, but I guess he wanted to make stage1 generic enough.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]