? Editing: Post:21.body Save Delete Cancel
Content changed Sign & Publish new content

cgm616

trying out this distributed thing


Latest comments:

Add new post

Title

21 hours ago · 2 min read 2
Body
Read more

Messing with assembly

on Nov 24, 2015

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.

2 Comments:

user_name1 day ago
Reply
Body
cgm616on Dec 11, 2015
Reply

petko: There's no difference between amd64 and x86_64

Really? Okay then. I've never done any stuff like this, thanks for the heads up!

petkoon Dec 10, 2015
Reply

There's no difference between amd64 and x86_64

This page is a snapshot of ZeroNet. Start your own ZeroNet for complete experience. Learn More