17.01.2014 Views

The holy bible of SWEB - Institute of Applied Information Processing ...

The holy bible of SWEB - Institute of Applied Information Processing ...

The holy bible of SWEB - Institute of Applied Information Processing ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3.5. <strong>SWEB</strong> BOOT PROCESS CHAPTER 3. VM, PROTECTION AND PAGING<br />

Index Base Limit P DPL S Type A G D X U<br />

[24] [20] [1] [2] [1] [3] [1] [1] [1] [1] [1]<br />

0 0 0 0 00 0 000 0 0 0 0 0<br />

1 0 0 0 00 0 000 0 0 0 0 0<br />

2 0 FFFFFh 1 00 1 001 0 1 1 0 0<br />

3 0 FFFFFh 1 00 1 101 0 1 1 0 0<br />

4 0 FFFFFh 1 11 1 001 0 1 1 0 0<br />

5 0 FFFFFh 1 11 1 101 0 1 1 0 0<br />

Table 3.7: Sweb Global segment Descriptor Table<br />

3. zero out kernel BSS (uninitialized data section)<br />

4. set up stack (which is in the BSS section)<br />

5. call parseMultibootHeader()<br />

6. call initialiseBootTimePaging()<br />

7. enable PSE (extended PageSize 4k and 4m mixed)<br />

8. enable Paging (PG bit = 1)<br />

9. Paging Mode:<br />

10. reload GDT with new address<br />

11. load LINEAR_DATA_SEL into all segment registers<br />

12. call removeBootTimeIdentMapping()<br />

13. reload CR3<br />

14. call startup()<br />

14. 1. init KernelMemoryManager<br />

14. 2. init PageManager<br />

14. 3. init Console<br />

14. 4. init Scheduler<br />

14. 5. init kprintf_no_sleep<br />

14. 6. init KernelThreadInfo<br />

14. 7. init Interrupts<br />

14. 8. add Threads<br />

14. 9. enable synchronisation mechanisms in KMM and PM<br />

14. 10. enable Interrupts: from here on, tasks are executed pseudo-parallel.<br />

14. 11. yield away<br />

for details, refer to the files init_boottime_pagetables.cpp, boot.s and main.cpp.<br />

3.5.2 Sweb Global Descriptor<br />

Sweb’s boot time GDT can be found in boot.s and Table 3.7 with a per-descriptor<br />

elaboration in Table 3.8.<br />

44 <strong>of</strong> 151

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!