Ugh. I don’t know. Looks like they will have the opportunity to learn… a vast amount of stuff. I feel like if they set their goals to be that broad, they are setting themselves up for some disappointment. I don’t want them to be disappointed at osdev. It’s very rewarding if you can establish some scope eventually. I know that @fogus certainly was active in the osdev community, so maybe you’d agree?
I mean, I feel bad! Looks like they want to write a new OS layer, not a kernel, but still want to know what the kernely things are like. I say do both, independently. Write a kernel, respect it, throw it away, grab an existing kernel, write a userspace, respect that, throw most away, write up postmortem. That would be far better!
Writing all software from scratch is like riding a unicycle over a minefield.
Jeez. For god’s sake, don’t use visual studio for your kernel development environment. Or windows for that matter. There is a reason why nobody does that. You’re going to hit the point where you’ll want passthrough-io and then be really sad that windows doesn’t really care about you. :D Don’t use the JamesM tutorials, they are absolute crap. Use xv6 instead and program in a unix/linux environment.
Also, I relate to the stupid x86 backwards compatibility all the way up the colon thing Intel does. But… it only takes about a millisecond or something stupidly small to switch from real to protected to long mode. Memory holes? Described by BIOS well enough (although if you are getting rid of the bootloader, you’ll have all kinds of fun with that you could otherwise avoid.) Basically, I would never recommend writing a bootloader /and/ a kernel. Not much to learn that doesn’t overlap, really, and it’s really really not fun. :P
Also, yes, I agree. Screw POSIX. I could care less about the names of functions, but it has serious flaws that mean it is basically not fully supported anywhere. For instance, fork() is dumb. I’m hoping this experience teaches gusC here why that is the case. :)
I don’t want them to be disappointed at osdev.
OSDev is a harsh mistress. There are many who enter and view few who leave with more than a bootloader. I encourage anyone to try, but you have to really really like the guts of a system — and like real guts, modern hardware stinks to its very core.