[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.
Ok.
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
processors.
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.
Okuji