crunch wrote:Just because you refuse to learn assembly doesn't mean writing a bootloader is hard. In fact, it's rather quite easy if you read the wiki. It realistically shouldn't take more than a couple days
If it takes a beginner just a couple days, it's not worth being called a bootloader, but just a quick and dirty hack. Yes, everyone can hack together some boot code that loads a kernel from sector 2, but that's not a bootloader, it's crap that nobody should be using. It influences the kernel in negative ways because it doesn't support a proper binary format, it doesn't support a filesystem, it probably even breaks down when the kernel binary exceeds some hardcoded size, and of course it contains bugs.
Of course, it's also a question of focus: If your goal is to write a bootloader, by all means go ahead, but please plan with a few months at least and make a
proper bootloader. If, however, your goal is writing an OS, then maybe you'd better use your time for, you know, writing an OS and just use some existing bootloader that does the job. (There is also the case where there is no existing bootloader that does the job for your specific OS, so you need to write one. This is rare, though, and certainly doesn't apply to beginners.)
With qemu -kernel, using GRUB isn't even necessary.
Yes, the point isn't that you should be using GRUB, but that you shouldn't waste your time on a hackish "bootloader" when your actual goal is an OS. Whether you use GRUB, syslinux, qemu -kernel or something else doesn't really matter.
Having a basic grasp of assembly language should be a pre-requisite to writing an operating system.
If you can learn it while writing some boot code, you can also learn it while writing a kernel. I recommend a little practice in a hosted environment, but people manage to do without it all the time.