[Top][All Lists]

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

Re: multiboot2: make multiboot header optional

From: Yoshinori K. Okuji
Subject: Re: multiboot2: make multiboot header optional
Date: Tue, 5 Dec 2006 21:23:10 +0100
User-agent: KMail/1.8.2

On Monday 04 December 2006 17:43, Hollis Blanchard wrote:
> It should be pretty clear that 32 bits are a finite number, and tags are
> unlimited. In fact it's worse than that, since the bit partitioning
> means we have far fewer available bits for any particular flag.

Tags are also finite, too, theoretically speaking. :p

If the number of bits is really a problem, it is even possible to make 
additional flags only when a bit in the original flags is set... Well, this 
is ugly, but this is the so-called tag structure as well, no?

Seriously, I really don't think the number of bits could be fatal. You were 
advocating removing the header itself, then why would you expect so much 
extension in the future?

> The bit numbering is also confusing, especially the partitioning of
> meanings (this is required, this is requested, this is arch-specific,
> this isn't).

I agree with this part. We can make it better.

> Finally, using flags for some things and tags for others is
> inconsistent.

I don't care. For OS developers, this inconsistency does not hurt them.

As I mentioned earlier, it is annoying to write tags by hand, while generating 
tags is as easy as parsing a fixed structure for programs. If you don't 
believe this, ask somebody else which looks easier:

.long   multiboot_header
.long   _start
.long   _edata
.long   _end
.long   multiboot_entry


.long   HEADER_ADDRESS_TAG, 12, multiboot_header
.long   LOAD_START_ADDRESS_TAG, 12, _start
.long   LOAD_END_ADDRESS_TAG, 12, _edata
.long   BSS_END_ADDRESS_TAG, 12, _end
.long   ENTRY_ADDRESS_TAG, 12, multiboot_entry

> The extensibility argument alone is enough to seal it for me, especially
> since the code can be written in such an error-free manner, as I've
> demonstrated.

Is it a good spec which forces one to use sample code to be error-free? 


reply via email to

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