What Order Should I Make Things In?: Difference between revisions
Jump to navigation
Jump to search
[unchecked revision] | [unchecked revision] |
Content deleted Content added
moved comment to Lino Commando page |
m Link fix |
||
Line 1: | Line 1: | ||
This is a question of style. You can start at the start and dig straight in, writing a bootsector, then a minimal kernel, and build from there. You could skip the bootsector, and use a ready-made bootloader like [[GRUB]]. (People keep arguing if rolling your own [[ |
This is a question of style. You can start at the start and dig straight in, writing a bootsector, then a minimal kernel, and build from there. You could skip the bootsector, and use a ready-made bootloader like [[GRUB]]. (People keep arguing if rolling your own [[Rolling Your Own Bootloader|bootloader]] is a valuable experience or a waste of time.) Or you can write bits and pieces in no specific order, and just put them together at the very end. |
||
There is probably no right or wrong way to go about doing it. |
There is probably no right or wrong way to go about doing it. |
||
Line 8: | Line 8: | ||
# Being able to print strings and integer numbers (both decimal and hex) to screen certainly is a must at early stage. This is one of most basic ways of debugging, and virtually all of us have gone through a kprint() or kout in version 0.01. |
# Being able to print strings and integer numbers (both decimal and hex) to screen certainly is a must at early stage. This is one of most basic ways of debugging, and virtually all of us have gone through a kprint() or kout in version 0.01. |
||
# You are likely to make mistakes when going further, so having a working and (once again) reliable interrupt/exception handling system that can report you the address of the fault as well as the register contents will be a valuable help aswell. |
# You are likely to make mistakes when going further, so having a working and (once again) reliable interrupt/exception handling system that can report you the address of the fault as well as the register contents will be a valuable help aswell. |
||
# Having the opportunity to allocate memory at run-time (malloc()-like interface) for your kernel's internal structure will certainly come handy sooner or later. It is suggested you handle it soon. |
# Having the opportunity to allocate memory at run-time (<tt>malloc()</tt>-like interface) for your kernel's internal structure will certainly come handy sooner or later. It is suggested you handle it soon. |
||
Once those steps are taken, whether you'll try to have a working GUI before you have a filesystem or multitasking or module-loading facility is '''really''' up to you. Try to sketch out what is likely to depend on what, and do things in 'least dependent first' order. |
Once those steps are taken, whether you'll try to have a working GUI before you have a filesystem or multitasking or module-loading facility is '''really''' up to you. Try to sketch out what is likely to depend on what, and do things in 'least dependent first' order. |