From OSDev Wiki
Jump to: navigation, search

Do we need this?

Is this tutorial really needed? There are a few problems with it:

1. It's mainly an assembly tuorial and a poor one at that.
2. There's no new information in this series.
3. I've noticed that many people from IRC stumble across this and think it's what they need when they actually want the bare bones tutorial.

Any arguments in favour of it? --Love4boobies 20:56, 6 November 2010 (UTC)

I cannot really judge the quality of the tutorial. If it's bad, it should be improved. But I do feel we should keep it here. It does show what a bootloader does, how to set up CPU mode etc., whereas the Bare Bones tutorial shows how to get from GRUB into your main() - two very seperate things.
So keep, definitely, and improve, if necessary. (I haven't followed this tutorial myself, and anyway I'm not the one to judge the quality of anything written in ASM.) -- Solar 11:03, 8 November 2010 (UTC)
If its purpose is to explain assembly language (which it attempts to do several times - e.g., the useless attempt on somewhat explaining instruction encoding) then yes, it does that poorly. On the other hand, if its purpose is to be a tutorial on constructing boot loaders then I would like to point out that all it does is show a show a printing routine (the equivalent of that routine in C would be something like for (char *p = str; p != '\0'; ++p) putchar(*p); instead of puts(str); -- not really something people want to do) and switch to protected mode.
We have an article on constructing boot loaders, one on protected mode and one on the A20 gate (not covered by this series) - all of them with sample code. Readers might benefit more if they browse around. Of course, that's just my opinion. I obviously won't delete anything unless the other contributors agree with me. --Love4boobies 00:42, 9 November 2010 (UTC)
keep and maybe improve. As far as didactics go, most people need the same thing told thrice in different ways for them to understand it. Also, for the same line of reasoning, examples are a totally different thing than theory. The babystep tutorials is an excellent case of teaching by example, as well as a showcase of how to put all the tiny bits together to match a specification. I went up to babystep 4 in a short time and while some things may need some more elaboration, I don't see any serious educational problems. (But please fix that floating div, it's ugly). - Combuster 09:51, 9 November 2010 (UTC)

I edited the code, 0x55, 0xAA is wrong. it should be 0xAA, 0x55. - 0xjarno

And I have reverted your changes because they are incorrect. :) --Love4boobies 16:04, 23 January 2013 (CST)

Yes they are. More information: X86 is little endian. Therefore 0x55,0xAA = 0xAA55. The whole reason for this is you don't concern size when cast from DWORD to BYTE: 0x89ABCDEF -> 0xEF,0xCD,0xAB,0x98 -> (BYTE) 0xEF (low bits). Don't worry, it happens to us all at some point, for me it was copying partition data from existing MBR to new MBR I was about to write (EEK!). Once it happens, you'll never make the same mistake again. --Bellezzasolo 13:14, 24 January 2013 (CST)

Personal tools