![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统学习笔记
文章平均质量分 87
miaowangjian
这个作者很懒,什么都没留下…
展开
-
操作系统实验三:实模式与保护模式间自由跳转
此次实验,是在 操作系统实验二:从实模式跳转到保护模式 基础上的进一步实验。实验实现的内容很简单,一开始进入实模式,然后跳转到保护模式,然后再跳转回实模式,然后再跳转到保护模式,如此不断循环。 从实模式调转到保护模式步骤:1.准备好GDT2.使用lgdt指令加载gdtr3.打开地址线A204.设置cr0的PE位为15.使用cli指令关闭中断6.根据G原创 2010-01-24 02:54:00 · 2255 阅读 · 0 评论 -
操作系统实验四:保护模式之局部任务(LDT)初探
通过前几次实验,对于实模式与保护模式间的跳转已经有了充分认知。此次实验与接下来的实验主要集中在认识保护模式下的一些特性,如多任务的基础(局部任务LDT)、分页机制、中断、异常、I/O等。为了尽可能将实验设计的简单,我尽量将以上实验压缩在引导扇区的512字节内。为了节省空间,我将pm16.c精简了许多,它只负责跳转到保护模式(程序限制在80字节以内),在pm32.c里会重新加载新原创 2010-01-30 19:44:00 · 1456 阅读 · 0 评论 -
操作系统实验五:保护模式之初步认知门任务(求助:如何使用其他指令替代或模拟retf指令)
向汇编高手求助: 此次实验中需要用到retf指令在调用门任务后返回。可是yc09编译器不支持retf指令。而我使用ret指令无法正确跳转返回。 因为对汇编不熟,胡乱试了许多方法后依然无法解决,无奈之下,只好在编译好代码后直接修改机器指令码。希望有路过的高手、大牛等告说我在不换编译器的前提下如何解决这问题。 使用retf指令报错信息: pm32.c(原创 2010-02-03 21:15:00 · 1981 阅读 · 2 评论 -
操作系统实验七:保护模式之中断测试实验
我对中断的理解: 中断,顾名思义,就是在遇到特殊的情况时,停下当前正在做的事情,转去干其他(根据特殊情况预先设计好的)事情,完成后(并不一定非要)再继续之前做的事情。 首先说说“去干其他(根据特殊情况预先设计好的)事情”。 我们可以预先设计好256件事情(处理函数),然后使用0~255这256个编号(中断向量号)表示代指。“事情”根据是否可以再次打断(中断),分为中断门(不可以被打断原创 2010-02-15 00:13:00 · 2474 阅读 · 0 评论 -
操作系统实验六:保护模式之使用调用门提升特权级
对IA32分段机制中特权级的个人总结: 在IA32的分段机制里,分为4个特权等级(ring0~ring3): Level0 高(内层) L e v e l 1 L e v e l 2 L e v e l 3原创 2010-02-14 23:42:00 · 2918 阅读 · 0 评论 -
操作系统实验一:在引导扇区编写显示字符串的引导程序
写在前面的话: 一直以来就想要自己动手写一个简单的操作系统,可惜水平有限,在linux下编译安装一个程序几天都没有成功,更不用说研究Linux的内核代码了。后来买来minix的书籍,看了半个月,也不知道如何开始写自己的第一行代码……无意中发现于源写的《自己动手写操作系统》,终于让我真正踏上了编写操作系统的第一步。这里要非常感谢于源大大为广大学习编写操作系统的初学者作出的巨大贡献。原创 2010-01-12 02:09:00 · 4381 阅读 · 9 评论 -
操作系统实验二:从实模式跳转到保护模式
写在前面的话: 编写这一个实验实在是让我感到惭愧,捣鼓了许多次,也失败了许多次,才好不容易才正确跳转到保护模式。想当初我按照《自己动手写操作系统》直接打代码,用nasm编译运行,尽管也会出现一些小错误。但仔细对照书或直接拉出源代码来对比一下就ok了。自以为已经完全弄懂了,如今换个编译器,在代码不完全通用而编译器又极度缺乏相关的参考资料、只能靠使用bochsdbg.exe一点一点调试的原创 2010-01-13 05:53:00 · 2273 阅读 · 0 评论