Right...
Looking at what you wrote I am starting to realise how little I know.
I don't have much experience with kernel development or development in general so its kind of hard
for me to grasp the concepts still.
So far my kernel runs on bochs, qemu etc. from an iso that grub-mkresque generates for me.
I haven't touched on disk access or how the kernel would eventually stay on the disk
and on each boot get loaded into memory and run from there.
Currently it is being run as a cd-rom image.
I think the bottleneck in my understanding is how the above would work - more specifically
how the kernel relocates its binaries to the disk and then runs from there?
The ideal scenrario would be:
- kernel somehow magically appears on a hard drive
- on boot, grub loads it from there into memory together with some modules
- kernel runs and loads modules
- party time!
The big question is: How do I get from a simple "kernel" that I have right now,
to something that the ideal scenario describes.
To be completely honest I might have the whole sequence of things wrong.
A really helpful answer would probably involve giving me a rough idea
on how you would go about writing a modular kernel.
Rough steps such as:
- ... have a bootable kernel
- ... paging
- ... scheduling
- ... writing a module loader
- ... writing some modules
- ...
- ... kernel appears on disk and boots from there
- ...
- ... kernel becomes skynet...
I think thats the best I can describe my thinking process.
It would really help me if you could give me such rough idea on how you think about things.
Thanks!