User:Johnburger/Tutorials

From OSDev Wiki
Jump to navigation Jump to search

This page is under construction! This page or section is a work in progress and may thus be incomplete. Its content may be changed in the near future.

John's Tutorials

Ummm...

OK, I admit it. I'm a narcissist who wants to wax lyrical about my experiences. But if I can teach a couple of whippersnappers while I'm about it, who's to complain?

So, what's going here?

I've been working on the x86 platform since before there was the 80286. I've done embedded '186 work, as well as 8086-specific work on PCs practically since they came out. I've even worked on the 80376 (no Real Mode! Yay!) But most of the following will be about PC-specific things. It may be covered under other topics on this Wiki, but another perspective can always be useful... right?

Demo

Of course, having words to read is useful, but seeing CODE is sublime. To that end I've also put up a Demonstration System that implements many of these discussion topics.

Booting

PC Hardware

16-bit Protected Mode

This is the mode invented for the 80286, which is still supported by its successors in 32-bit mode. Frankly, it's too limited to be of much interest to me: maximum of 64K segments; maximum of 16MB address space; why bother?

32-bit Protected Mode

Addressing

Segmentation

Paging

64-bit Protected Mode

This is the "way of the future!" - according to everyone. Well, sort of. Why are Intel® still producing chips that don't have 64-bit support then? My biggest sorrow is that Intel didn't continue Segmentation in the 64-bit version: it's still there in a truncated form, but all of the advantages of Segmentation have been lost.

I agree that for full-blown computers (workstations, desktops, laptops and even tablets) 64-bit is best - usually because of the bloat that GUIs impose! But for embedded systems, or simpler computers, 32-bit is still more than adequate.

Addressing

Segmentation

Paging