Jos - lab1 Boot the PC

Start up flow of PC:

1. BIOS

    a. At the very beginning, BIOS will load 512-byte boot sector into [0x7c00,0x7dff);

    b. Then set CS:IP = 0000:7C00

2. Boot loader

    a. Switch from real mode (16 bit) to protected mode (32 bit), mainly by setting gdtr.

    b. Load kernel image from hard disk.

         ((void (*)(void))(ELFHDR->e_entry())();      // Check the kernel image, it's 0x0010000c

3. Kernel

    a. In kern/entry.S, it will turn on MMU first, set cr3 & cr0 with entry_pgdir

    b. Set esp and ebp.

    c. i386_init()

i386_init()
|--> cons_init()
|    |--> cga_init()
|    |--> kbd_init()
|    |--> serial_init()
|--> mem_init()
|--> env_init()
|--> trap_init()
|--> mp_init()
|--> lapic_init()
|--> pic_init()
|--> boot_aps()
|--> env_create()


發佈了44 篇原創文章 · 獲贊 44 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章