trying out this distributed thing
Recently I've been trying to follow Philipp Oppermann's excellent set of tutorials on creating a kernel using rust. I haven't ever done any rust or assembly programming, so it's very new. I also have only a tiny understanding of hexadecimal or the low level parts of a computer, so that's been interesting.
I haven't actually been able to run any code yet. I'm on a mac, on amd64, not x86_64 like he is programming for. Which means I also need to cross compile binutils. Not that difficult, actually went smoothly without a hitch. However, remember I'm new to all this, so it's all a bit uncertain. Having done that, I need to use the grub-mkrescue command. Cross compiling grub can be done, and I found a guide on how to do it on OSDev wiki. However, I can't seem to get that to work. I'll edit this blog piece later on that mac so I can copy some code snippets in, but objconv is failing with a not very descriptive error on what seems to be not a very special file. I'm still trying to figure it out. This was the millionth error with this process I had to debug, but I like the challenge. Assembly seems really cool, and botting up my own kernel, no matter how useless, will be a fun learning experience.
I'm trying to understand the code as I go, too. Of course the rust is really hard to get, but I'll get there. Right now I can kind of understand what some assembly will do, even if I don't know what it does in a higher sense. I can look at what registers are moving where and whatnot.