posted @ 2011-06-15 12:35
随笔分类 - Orange's学习
摘要:以下 是YY 的文章, 感谢 YY但是 文中漏了 一点很重要的 要把 LDFLAGS 中 -s 去掉!---------------------------------文章使用Bochs和GDB对内核进行源代码级调试Written by YY Wednesday, 21 April 2010 12:491. 安装 Bochs编译 Bochs 要加入 --enable-gdb-stub 选项:$ ./configure --enable-gdb-stub$ make$ sudo make install 2. 生成内核修改 Makefile将 CFLAGS 加入 -g 选项,以便加入调试符号CF
阅读全文
摘要:http://hi.baidu.com/oolol/blog/category/%A1%B6%D7%D4%BC%BA%B6%AF%CA%D6%D0%B4%B2%D9%D7%F7%CF%B5%CD%B3%A1%B7%CE%CA%CC%E2%BC%AF
阅读全文
posted @ 2011-06-10 22:03
摘要:编辑器加载中...CFLAGS = -I include/ -c -fno-stack-protector -fno-builtin
阅读全文
posted @ 2011-06-10 21:55
摘要:补充知识:对8259中断控制器的说明23. 8259A的编程因为8259A是可编程的中断控制器,所以它的操作是用软件通过命令进行控制的。8259A的编程命令字有两类:一是初始化命令字(ICW),二是操作命令字(OCW)。相应的8259A的控制部分有一些可编程的位,它们分布在7个8位寄存器中。这些寄存器分成两组,一组用作存ICW,另一组存OCW。当计算机刚开机时,用初始化程序设定ICW,即由CPU按次序发送2~4个不同格式的ICW,用来建立起8259A操作的初始状态,此后的整个工作过程中该状态保持不变。相反操作命令字(OCW)用于动态控制中断处理,是在需要改变或控制8259A操作时发送的。注意:
阅读全文
posted @ 2011-06-09 17:50
摘要:1>2>各层堆栈指针区域 0级内核堆栈,总被压入者认为其是空栈!3>地址映射寄存器区域 在分页机制下,由线性地址空间到物理地址空间的映射 由包含页目录起始地质的控制寄存器CR3确定。 与 任务相关的虚拟地址空间 到物理地址空间的映射由LDTR和CR3确定!----------------------------------------------------------------------------------------------------整体思路,及详细分析!一二三 四 完成跳转,实现ring0->ring1(kernel.asm之restart) 1 r
阅读全文
posted @ 2011-05-28 15:47
摘要:原文:http://www.cnblogs.com/wanghj-dz/archive/2011/05/20/2051641.html进程的进程表、进程体、GDT、TSS的关系,以及进程表的初始化 关系见P252,图6-9进程表与GDT的关系:进程表里的LDT Selector对应GDT中的一个描述符,而这个描述符所指向的内存空间就存在与进程表内。进程表与进程体的关系:进程表是进程的描述,进程运行过程中如果被中断,各个寄存器的值都会被保存进进程表中。使用到进程表堆栈。但是,在我们的第一个进程开始前并不需要初始化太多内容,只需知道进程的入口地址就足够了。同时需要设置esp,指向进程表。GDT与T
阅读全文
posted @ 2011-05-24 16:06