Linux insides笔记(三)

头不疼鼻子哗哗的ios

感冒了居然,宿舍里众人皆感冒一周有余我自岿然不动的神话破灭api

伤心ide

如下正文编码

程序终于运行到main.c。接着继续配置内核启动环境和参数。命令行

首先把启动参数,就是以前bootloader填入的kernel setup hdr中信息,拷贝到c程序中定义可用的启动参数结构体中,所谓的zero page设计

这里虽然进入c程序,实际上调用bios仍是依靠中断实现,程序还处在实模式。内存

首先初始化控制台,从命令行参数中读取端口波特率啥的,调用bios的api初始化串口,这时打印字符啥应该就好了。io

接着是设置堆,以后设置video mode要用扩展

验证cpu,把合适cpu信息存到某些可用位置配置

内存探测,把内存信息读出存到可用位置

初始化键盘,获取键盘状态和设置参数,这些io相关的东西和硬件关系较大,有各类硬编码的规定。反正按规矩写没问题,我已经忘了具体哪些数字什么设计,反正记得io这里设计了一个主从层来知足不一样外设需求,无论它。

获取mca,ist,apm,edd啥的,存到启动参数合适位置 。这些操做全依靠bios

万事俱备,准备进入保护模式。

这里复习了下保护模式是啥,分段的从新设计,全局描述符表的结构等。这种东西网上处处都是。

保护模式相比实模式,个人理解,是权限机制的设计,分页设计与支持,总线位数的扩展。

Cheers

相关文章
相关标签/搜索