操作系统
文章平均质量分 83
old_memory
交大软院学生,写博客是为了总结课程中学到的知识(找点事情做)
展开
-
计算机启动流程分析--以JOS为例(从boot loader 到kernal)
Boot Loader即引导程序,它在BIOS执行完毕后被执行,它的代码在JOS中由两部分组成,boot.S汇编语言文本文件和main.c的C语言文本文件,之前说到汇编代码跳转到叫做bootmain的地方,它是main.c的一个函数:voidbootmain(void){ struct Proghdr *ph, *eph; // read 1st page off disk r...原创 2018-04-08 00:58:08 · 658 阅读 · 0 评论 -
计算机启动流程分析--以JOS为例(从BIOS到刚进入boot loader)
最近的OS课程(借鉴自MIT6.828)学习了PC boot的过程,自己也动手完成了6.828的lab1,对启动流程有了一定认识。 环境:jos,QEMU为lab的实验环境。 CPU加电后,先进入预先写好的BIOS程序执行,首先执行:[f000:fff0] 0xffff0: ljmp $0xf000,$0xe05b f000:fff0是这条语句的地址,必须注意:BIO...原创 2018-03-15 20:28:57 · 923 阅读 · 0 评论 -
cprintf函数调用到屏幕(cga)输出流程分析
本文所有代码均为JOS内核源代码,可以从MIT 6.828课程网站下载。 概述:所有向屏幕输出的过程,一定是经过参数处理,最后组织成一个字符数组(BUFFER),这个数组(一段内存)会在虚拟地址空间映射到显示硬件的那一部分空间里(memory mapped I/O 的思想)。这段空间是内核才能读写的,所以屏幕输出会进行系统调用。 C语言函数在调用printf时,会根据输出特点调...原创 2018-04-13 13:30:02 · 2281 阅读 · 0 评论