Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

OS from Scratch

Although the title is part of my question, the second part won't be as simple. The First part: Let's say I want to create my own operating system. How do I even go about doing that? I understand I have to create a bootloader. But where do I go from there? I would have to send it to another program, but to do that, that program already has to be there, and I have to know exactly where it's at in the memory space. Any tips/tutorials?

The second question. I'm currently studying memory management, and I think I have a theory on a better implementation for a placement algorithm, but I have no way to really test it except in theory. Once I can create the OS (so this is for future reference), how do I actually mess with main memory, and move processes around?

P.S.: Also, would I have to write my own filesystem?

Edit: After reading over the current comments I want to revise what I said. When I said "the second part won't be as simple", that seems to be a poor choice in words. I know both will be very difficult endeavors, but that doesn't matter to me. I just enjoy learning new things. And I didn't mean for someone to write a tutorial for me, just to point me in the right direction.

like image 238
Nicholas Roge Avatar asked Dec 13 '22 17:12

Nicholas Roge


2 Answers

Phew. Now that's quite a question! I don't think any answer you get here will cover such a huge ground (unless someone sits down to write and revise for an hour or two).

I suggest you read up on operating systems first -- try Tanenbaum's books, and OSDev.org for quick references.

You can use GRUB as your bootloader -- that should simplify things.

like image 81
slezica Avatar answered Dec 28 '22 09:12

slezica


I don't agree that the title is the simple part. You may consider studying minix

like image 38
Eric Fortis Avatar answered Dec 28 '22 11:12

Eric Fortis