saltlamp wrote:
Hi...sorry for the late reply.
Ah, okay. Never knew that the whole init thing was Unix thing.
No worries. Well, having an init process is very common, calling it the "init process" is a typical UNIX terminology.
saltlamp wrote:
The main reason that wanted to load it that way was an attempt to cram as much functionality of into the boot sector, instead of letting those good bytes go to waste.
Don't. One of the biggest challange of a programmer is to find the best abstraction layer. I often forget that because with my several decades of experience it comes to me instantly. But I had to learn that, it's not something you born with.
The point is, find the proper abstractions, so to make your code simple and modular. Drawing layer borders at CPU modes (such as 16 bit and 32 bit) makes sense. Then you can compile and link your kernel in a pure 32 bit build environment which simplifies things. On the other hand I would not recommend to put device specific code into the loader as that would ruin your kernel's portability (would tie your OS to a specific device, as you can't easily change the loader code, or you would need many different loader implementations). It is hard to explain what is a good abstraction, you'll have to learn that for yourself by experimenting a lot. Sooner or later you'll see that you can predict the complications of a certain decision in advance, so that you can choose the best solution even before you start coding. But first you'll have to make many many bad choices to learn from them.
saltlamp wrote:
I forgot to add that the whole 32 bit kernel thing is not in development right now; I'm still working on a 16-bit DOS-like clone, and eventually, I want to use the code that I have now, and just take what I can and create a 32-bit kernel out of it. My specs for this 32 bit system are just specs, and subject to many changes.
Just getting some info, so that I can figure out how to convert my 16 bit system (kernel, loader, etc) into a 32 bit system in the future.
That's okay, I usually spend 90% of the time with designing and thinking, and I do actual coding the remaining 10% only.
Cheers,
bzt