发布时间:2016-02-12 21:19:24
内核的初始化大体上是要重新建立GDT,然后建立IDT表,加载好TSS选择子。此时就可以用c语言写代码了,跳到初始化程序,开始进程的初始化了。GDT表格最初在loader里面临时建立了一个,但是此时换了执行环境,内核还是用在自己地址空间的数据比较好。作者是在cstart函数中重新建立GDT,顺带初始化了IDT表。重建GDT.........【阅读全文】
发布时间:2016-02-08 19:46:10
在开机加电之后,cs=F000h,ip=fff0h,(应该是这样的), 该处是固化在主板上的BIOS程序,该程序将从0地址处建立中断表,并准备中断服务程序,然后探测一些硬件的信息,诸如硬盘,显卡,光驱等等。最后会执行int 0x19中断指令,该中断服务程序就是启动加载服务程序,负责把硬盘或者是软盘的第零号扇区(0磁头0磁道.........【阅读全文】
发布时间:2016-02-08 19:43:11
我自己感觉的最有意思的也是有些难度的文件系统的部分简单的总结了下。剩下的还有一些CPU的硬件特性和一些关于进程布局的纯内存操作了。先说些x86特性吧,都被说烂了。分段机制实模式中cs是一个实实在在的段首地址,ip为cs所指向段的偏移,所以cs<<4+ip是当前cpu执行的指令。我自己学汇编的时候,整天念叨着段地.........【阅读全文】
发布时间:2016-02-01 16:08:56
作者真是一个性情中人,他说这本书是以他妻子的名字命名的,真让人高兴,想来她妻子一定会觉得在作者写作期间自己的默默付出再没有比这更好的肯定和回报了。我以前对文件系统只是有个模糊的认知,看linux 源码心中隐隐约约觉得文件系统就是如何在磁盘上安排文件的规则。但是这种认识只是局限在逻辑层面上的认识.........【阅读全文】