User:Johnburger/Tutorials
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.