flaneur2020 / fleurix

an unix-like toy os kernel
BSD 3-Clause "New" or "Revised" License
286 stars 60 forks source link

So we do not need to care about the initialization of the BIOS? #15

Closed acgtyrant closed 9 years ago

acgtyrant commented 9 years ago

I am doubt that the initialization of the BIOS is not the part of kernel's work, and the former is taken by QEMU/Bochs these emulator, right?

flaneur2020 commented 9 years ago

@acgtyrant emulator 会需要一个 bios 镜像,bochs 的话有个配置:

romimage: file=/usr/share/bochs/BIOS-bochs-latest
vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest

然后 kernel 的引导,是在 bios 引导之后的,比如 load 内核到 0x7c00 就属于 BIOS 做的事情;然后内核在引导阶段调用的几个中断,也是 bios 的活。到内核进入保护模式之后覆盖中断表,BIOS 基本上就没用了。

比较先进的 BIOS 的话支持 UEFI 就不需要内核写 bootloader 了,整个内核直接扔一个 elf 就行 Q.Q...

acgtyrant commented 9 years ago

我怎么感觉你答非所问呢?我只关心写内核时是否需要亲自处理 BIOS 的初始化,但你只讲了 BIOS 的用处。

acgtyrant commented 9 years ago

此外严格来说是 load bootloader 到 0x7c00, 而不是 load 内核本身吧。

flaneur2020 commented 9 years ago

@acgtyrant 基础的东西自己查资料,给你打字别挑三拣四。