NewBie to OS Development
Posted: Sun Feb 01, 2009 12:49 am
Well i am a newbie to OS development. I did following things :
1. Used GRUB to load the first sector of my os partition.
2. That sector searches for another file and loads and executes that.
3. That file checks for compatibilities and information like RAM size.
Now comes a problem:
Should I enable gateA20 here or in kernel?
Should I Remap PIC here or in Kernel?
Should I set GDT here or in kernel?
By the way is this enough that I am setting 4 GDT entries except null
(2 for ring0 code and data and 2 for ring3 code and data)?
Should I set IDT here or in kernel?
Now these above question need yes/no, what is confusing me is Paging!
I mean I am using flat model where every Code/Data entry in GDT for ring 0 or ring 3 will have base=0 and limit=fffff while page tables will map them to exact location.This will help me in running a flat binary file but I not am able to decide where to put bitmap for pages and where to put page directories and tables?
Also how to do it dynamically on RAM size basis?
1. Used GRUB to load the first sector of my os partition.
2. That sector searches for another file and loads and executes that.
3. That file checks for compatibilities and information like RAM size.
Now comes a problem:
Should I enable gateA20 here or in kernel?
Should I Remap PIC here or in Kernel?
Should I set GDT here or in kernel?
By the way is this enough that I am setting 4 GDT entries except null
(2 for ring0 code and data and 2 for ring3 code and data)?
Should I set IDT here or in kernel?
Now these above question need yes/no, what is confusing me is Paging!
I mean I am using flat model where every Code/Data entry in GDT for ring 0 or ring 3 will have base=0 and limit=fffff while page tables will map them to exact location.This will help me in running a flat binary file but I not am able to decide where to put bitmap for pages and where to put page directories and tables?
Also how to do it dynamically on RAM size basis?