I've visited making a bootloader once or twice before (https://github.com/cfenollosa/os-tutorial
) but I never actually understood it well. Some of my questions were "What do all the registers mean?" and "Why are we using a 16 and 32 bit mode, and not just a 64-bit mode? What do modes even mean?"
So I'm calling for help to make a tutorial on how to build a basic operating system. One where you don't have to Google every single thing or go back to previous pages. Here's how I'm probably going to structure it:
Introduction to ASM: Printing "Hello, World!"
ASM: What are registers and what do they mean?
ASM: Preparing to load up a kernel
C: Your first kernel
C: Drawing shapes
C: Taking input
The parts are short because I only want to go over the basics, but this whole time I've been assuming that you don't have to enable a 16 or 32 bit mode to enter it. (This is due to the confusion of many tutorials surrounding loading a kernel.)