Page 1 of 1
Questions from a beginner
Posted: Sun May 24, 2009 11:12 pm
by schwarzerosen
Hello.
I have started making my kernel, and I have hit a little snag. I was hoping some of you may be able to help. I was planning on a hybrid kernel. The main issue is knowledge. I do not understand how one works(well, I have a basic, but very incomplete idea). How does the kernel load what it needs(drivers, etc.)? How do applications work with the kernel? Will I need to make API libraries? What about basic commands(changing directories, removing files, etc.)?
I am unable to find many in-depth resources on this. Any help or advice would be greatly appreciated.
Thank you,
SchwarzeRosen.
Re: Questions from a beginner
Posted: Mon May 25, 2009 12:00 am
by JackScott
Hi,
Our Wiki has the answers to all of those questions. It can be found at
http://wiki.osdev.org/
In future, it's best to search both the wiki and this forum before posting, since bets are that every single beginner question has already been answered.
Re: Questions from a beginner
Posted: Mon May 25, 2009 1:29 am
by kop99
Hi,...
I think James Molloy's tutorial is very helpful for beginers...
http://www.jamesmolloy.co.uk/tutorial_html/index.html
Re: Questions from a beginner
Posted: Sat May 30, 2009 7:28 am
by ehenkes
I think James Molloy's tutorial is very helpful for beginers...
It shows how to start in a practical sense, but from a design viewpoint it has a lot of weaknesses. How to run processes or threads in user mode is not fully explained. Pmm and Vmm is not clearly separated in chapter 6.
Does a book "OS development for Dummies" exist?
Re: Questions from a beginner
Posted: Sat May 30, 2009 7:53 am
by NickJohnson
ehenkes wrote:Does a book "OS development for Dummies" exist?
That's an oxymoron, even for the Dummies series.
I think the whole "genesis" section of JamesM's tutorial is really the important part though. Once you have a build system, bootloader, and emulator set up, you can figure real things out from various documentation or reading others' code. That's why I usually recommend it to newbies.
Re: Questions from a beginner
Posted: Sat May 30, 2009 3:14 pm
by ehenkes
That's an oxymoron, even for the Dummies series.
I think it should be possible. It has to be a mixture of design principles, why to select what, and easy-to-understand example OS.
I think the whole "genesis" section of JamesM's tutorial is really the important part though. Once you have a build system, bootloader, and emulator set up, you can figure real things out from ...
That is right. Bran´s tutorial is a fundamental core of it.
Re: Questions from a beginner
Posted: Sat May 30, 2009 3:50 pm
by neon
The problem with this is that the implementation details of any kernel is specific on your design needs. You can build your design off of others (might be bad) or build your design around the generic design and concept of - in your case - a hybrid kernel.
Click here for a nice introduction of what hybrid kernels are.
Re: Questions from a beginner
Posted: Sun May 31, 2009 11:01 am
by ehenkes
Where could one find an article about making own API libraries?
Is there an alternative to JM´s tutorial, e.g. with an micro kernel approach?
Re: Questions from a beginner
Posted: Sun May 31, 2009 11:20 am
by neon
ehenkes wrote:Where could one find an article about making own API libraries?
There isnt anything to learn. A library is just a set of routines that provide an interface for working with something or a way to abstract something. So long as the level of abstraction is the same across the interface of the library, you have effectively created a good library.
ehenkes wrote:Is there an alternative to JM´s tutorial, e.g. with an micro kernel approach?
I dont think so, microkernels are somewhat hard to set up and almost always specific on your overall system architecture design. I can show you my setup if you like for an example.
Re: Questions from a beginner
Posted: Sun May 31, 2009 6:00 pm
by JamesM
Hi,
ehenkes wrote:Where could one find an article about making own API libraries?
Is there an alternative to JM´s tutorial, e.g. with an micro kernel approach?
The point behind those OS tutorials is to introduce a concept and to show how concepts can be practically concreted and linked together - taking the numerous abstractions in theory books and resources and showing how to take that and implement it.
The concrete concepts required for a microkernel implementation are all covered in that tutorial. All you need to add is a robust IPC system - message passing or something similar.
And the criticism is constructively received - I'm working long-term on a groundup rewrite of them (found at
http://jamesm-tutorials.googlecode.com/) that attempts to address a lot of the comments I've received. Especially that about the task switching section and the seperation of physical and virtual memory managers. Now all I need to do is get the time to finish it...