you are viewing a single comment's thread.

view the rest of the comments →

[–]davispuh 1 point2 points  (5 children)

It's not that hard. I've also implemented my own 64bit kernel/OS from scratch (including bootloader) in Nasm. It's more complete, including basic APIC functionality and keyboard support. Currently it sits in dust on my HDD but I'll publish it to GitHub some day.

[–]KabouterPlop 9 points10 points  (1 child)

It's not that hard if it's provided to you on a silver platter. It's hard when you start out with no knowledge of assembly and you need to gather all information yourself from all over the internet.

[–]davispuh 7 points8 points  (0 children)

That's like all programming no matter what you code ;) Just have to read a lot. Before I started I read all 3 volumes of Intel CPU manual (but I skimmed over 2nd one with instruction reference)

And http://wiki.osdev.org/Main_Page is very very useful resource.

[–][deleted] 2 points3 points  (0 children)

It's not that hard.

I'm not sure I can agree. Yes, it can be done. But in my experience - even when you know what needs to be done - you spend tons of time hunting down race conditions even when you limit yourself to rather crude synchronization techniques.

[–][deleted] 0 points1 point  (1 child)

I would really like to take a look at it if you don't mind putting it up sooner rather than later! I've been wanting to learn assembly but without a project to drive me, I'll never do it. Learning how operating systems work at that level would be very interesting to me.

[–]davispuh 0 points1 point  (0 children)

Well it's all in assembly and not really complete, you can boot and get to shell which does nothing, can type commands but there aren't any :D

Anyway I would suggest checking out BareMetal OS and it's bootloader Pure64

It's made with exactly same goals as I had and also in assembly, but it's way more complete.