Hello,
I just finished the Bare Bones "hello world". I am *very* newbish at OS development (but definitely not at C/assembly application dev : user space programming is so simple now I see the OS underlyings where I have to code everything myself ).
The _worst_ thing is I love to learn So it is alright.
Currently I test my kernel with qemu with the "-kernel" switch. It works. Displaying the Hello world. Ok.
Now, should I understand that I am free to implement whatever I wish, however I wish ?
I mean after adding gdt, ldt, idt and going to protected mode, I am running into the real deal (making an OS) ?
"That is it" or are there a lot of other initializations?
I ask a lot of questions but I get very excited.
Thanks
Bare Bones, ok. Now where should I head?
-
- Member
- Posts: 97
- Joined: Tue Mar 10, 2015 10:08 am
Re: Bare Bones, ok. Now where should I head ?
Hello,
Welcome aboard! Good to hear you have trained user-space skills in C and assembly. They'll serve you well as a foundation.
There's a little section with some nice exercises at the end of Bare Bones. It's probably a good idea to follow them.
If you want to do serious osdev, and why not, I suggest you look at my Meaty Skeleton example template as a reasonable way to structure your operating system. Feel free to diverge according to your taste, but a lot of the design is done that way for a reason, except the kernel code itself which is just generic hello world quality.
It's easy to be lost without a big picture roadmap when starting out, so I put together a Creating an Operating System meta tutorial (in progress) that tries to list most things you want to do.
You definitely want gdt, paging, memory management, idt, tss, multithreaded pre-emption, scheduling and such early on. It's a good deal of learning and work and debugging, all necessary work. But you're right, it's going to be free-form fairly soon. It's your operating system.
Have Fun!
Welcome aboard! Good to hear you have trained user-space skills in C and assembly. They'll serve you well as a foundation.
There's a little section with some nice exercises at the end of Bare Bones. It's probably a good idea to follow them.
If you want to do serious osdev, and why not, I suggest you look at my Meaty Skeleton example template as a reasonable way to structure your operating system. Feel free to diverge according to your taste, but a lot of the design is done that way for a reason, except the kernel code itself which is just generic hello world quality.
It's easy to be lost without a big picture roadmap when starting out, so I put together a Creating an Operating System meta tutorial (in progress) that tries to list most things you want to do.
You definitely want gdt, paging, memory management, idt, tss, multithreaded pre-emption, scheduling and such early on. It's a good deal of learning and work and debugging, all necessary work. But you're right, it's going to be free-form fairly soon. It's your operating system.
Have Fun!
You are already in protected mode if you followed Bare Bones. I suggest you learn what the processor modes actually are.and going to protected mode
Re: Bare Bones, ok. Now where should I head?
For a challenge you might like to try working your way through the labs from the MIT OS course: http://pdosnew.csail.mit.edu/6.828/2014/ . You'll learn a lot by doing so, but you'll probably need to do quite a lot of research.
-
- Member
- Posts: 119
- Joined: Tue Jan 20, 2015 9:01 am
- Libera.chat IRC: glauxosdever
Re: Bare Bones, ok. Now where should I head?
Welcome to osdev, JulienDarc!
Writing an Operating System is a very demanding process,
which requires months of work just to get something usable.
Don't expect it to be easy. You will need to try very hard.
You will get frustrated many times, just don't let it bring you down.
Along with sortie's recommendations, you could try
to get keyboard input and execute some commands.
Later, you will want to add USB and FileSystem support.
And then, you will want to write some programs, such as a text editor.
Also, you should decide which primary language you will use.
Assembly and C have both pros and cons. Check them out!
Edit: Of course you can use inline assembly.
Remember: http://wiki.osdev.org is your friend.
Good Luck!
Writing an Operating System is a very demanding process,
which requires months of work just to get something usable.
Don't expect it to be easy. You will need to try very hard.
You will get frustrated many times, just don't let it bring you down.
Along with sortie's recommendations, you could try
to get keyboard input and execute some commands.
Later, you will want to add USB and FileSystem support.
And then, you will want to write some programs, such as a text editor.
Also, you should decide which primary language you will use.
Assembly and C have both pros and cons. Check them out!
Edit: Of course you can use inline assembly.
Remember: http://wiki.osdev.org is your friend.
Good Luck!
-
- Member
- Posts: 97
- Joined: Tue Mar 10, 2015 10:08 am
Re: Bare Bones, ok. Now where should I head?
Thanks a lot,
I feel at home
I've done the meaty now and I would like to thank you so much for such a resource you offer.
Without it, I would have never got my feet wet.
Thanks thanks for showing us the arcanes.
Julien
I feel at home
I've done the meaty now and I would like to thank you so much for such a resource you offer.
Without it, I would have never got my feet wet.
Thanks thanks for showing us the arcanes.
Julien
Re: Bare Bones, ok. Now where should I head?
Do join #osdev on irc.freenode.net if you like IRC. It's quite useful to have real-time access to many established hobbyist operating systems developers.