Hello, it's me again.
I started implementing some of libc (specifically string).
But, I'm not sure what to do next kernel-wise.
I know I need to implement Userspace and threading and memory management and...
But I'm not sure where/how to start.
Thank you.
-Sophite
[Q] Went through meaty skeleton - What's next?
-
- Member
- Posts: 501
- Joined: Wed Jun 17, 2015 9:40 am
- Libera.chat IRC: glauxosdever
- Location: Athens, Greece
Re: [Q] Went through meaty skeleton - What's next?
Hi,
Maybe you can take a look at Going Further on x86. It is served as an outline to write the kernel basics (although some things are still missing, like driver interfaces, better scheduling advice, etc).
For memory management, Brendan has written a very good guide ([wiki]Brendan's Management Guide[/wiki]). For scheduling, he has written guides on the forums (but not ported them over to the wiki). And then there are some other things more experienced OS developers are aware of, so better wait for further replies too.
Hope this helps.
Regards,
glauxosdever
Maybe you can take a look at Going Further on x86. It is served as an outline to write the kernel basics (although some things are still missing, like driver interfaces, better scheduling advice, etc).
For memory management, Brendan has written a very good guide ([wiki]Brendan's Management Guide[/wiki]). For scheduling, he has written guides on the forums (but not ported them over to the wiki). And then there are some other things more experienced OS developers are aware of, so better wait for further replies too.
Hope this helps.
Regards,
glauxosdever
Re: [Q] Went through meaty skeleton - What's next?
As I see it you have to main options:
1) Start implementing kernel features that "all kernels need"
2) Start implementing your first userland app and implement kernel features as needed
Second will guide your kernel needs and may be more rewarding for some, others prefer the first.
If you want to do #1, and because of that are asking what next, then if you don't have memory management I would recommend that. Without memory (proper memory management) everything is a pain.
If you want to do #2 then I would start by deciding what type of OS are you doing, GUI or CLI, if CLI then some sort of shell would be first app and can guide you on what kernel feats you need, if GUI then maybe Windows like Notepad as it's simple and useful and will guide a lot of the kernel feats you need.
In both cases I would keep the user app simple, especially with the shell I wouldn't do any auto completion, etc, and reserve that stuff for second or third shell..
1) Start implementing kernel features that "all kernels need"
2) Start implementing your first userland app and implement kernel features as needed
Second will guide your kernel needs and may be more rewarding for some, others prefer the first.
If you want to do #1, and because of that are asking what next, then if you don't have memory management I would recommend that. Without memory (proper memory management) everything is a pain.
If you want to do #2 then I would start by deciding what type of OS are you doing, GUI or CLI, if CLI then some sort of shell would be first app and can guide you on what kernel feats you need, if GUI then maybe Windows like Notepad as it's simple and useful and will guide a lot of the kernel feats you need.
In both cases I would keep the user app simple, especially with the shell I wouldn't do any auto completion, etc, and reserve that stuff for second or third shell..