摘要: 目录 一、前景回顾 二、进程的创建与初始化 三、如何进行进程的切换 四、运行测试 五、原书勘误 一、前景回顾 在上一回我们大概讲述了任务切换的发展,并且知道Linux采用的是一个CPU使用一个TSS的方式,在最后我们成功实现了tss。现在万事俱备,我们正式来实现用户进程。 二、进程的创建与初始化 进 阅读全文
posted @ 2022-09-04 12:29 李知行 阅读(606) 评论(5) 推荐(0) 编辑
摘要: 目录 一、前景回顾 二、任务切换相关 三、实现TSS 四、运行测试 一、前景回顾 在上一回我们已经实现了键盘的驱动编写和环形缓冲区的实现,现在让我们来想这么一个问题: 一直以来我们的程序都在最高特权级0下工作,这意味着任何程序都和操作系统平起平坐,可以改动任何资源。如果不改变这种现状的话,某个不听话 阅读全文
posted @ 2022-08-15 21:20 李知行 阅读(605) 评论(0) 推荐(0) 编辑
摘要: 目录 一、前景回顾 二、实现键盘输入的中断函数 三、编写键盘驱动 四、实现环形输入缓冲区 五、运行测试 一、前景回顾 上一回我们完成了锁的实现,并且利用锁优化了终端输出函数。这一回我们来实现键盘的输入,为后面的用户交互功能打好基础。 二、实现键盘输入的中断函数 首先我们需要知道键盘是属于外设,所以对 阅读全文
posted @ 2022-07-11 21:39 李知行 阅读(1594) 评论(0) 推荐(3) 编辑
摘要: 目录 一、前景回顾 二、锁的实现 三、使用锁实现console函数 四、运行测试 一、前景回顾 上回我们实现了多线程,并且最后做了一个小小的实验,不过有一点小瑕疵。 可以看到黄色部分的字符不连续,按道理应该是“argB Main”,这是为什么呢?其实仔细思考一下还是很好得出结论。我们的字符打印函数是 阅读全文
posted @ 2022-07-09 16:32 李知行 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 目录 一、前景回顾 二、线程的实现 三、线程的切换 四、运行测试 一、前景回顾 上一回我们实现了内存管理系统,说实话代码还是比较多,看起来还是比较头疼的,不过为了知识这都是小事。这一节终于可以来实现我们的线程了,以前学操作系统的时候,听到的最多的就是什么线程,进程等,这一回我们来自己动手实现一下,加 阅读全文
posted @ 2022-07-08 14:28 李知行 阅读(747) 评论(0) 推荐(1) 编辑
摘要: 目录 一、前景回顾 二、位图bitmap及函数实现 三、内存池划分 四、运行 一、前景回顾 前面我们已经花了一个回合来完善了一下我们的系统,包括增加了makefile,ASSERT以及一些常见的字符串操作函数。关于makefile,还是我以前学习Linux系统编程的时候学了一点点,很久没用导致就几乎 阅读全文
posted @ 2022-07-07 20:30 李知行 阅读(695) 评论(0) 推荐(0) 编辑
摘要: 目录 一、前景回顾 二、编写makefile 三、实现Assert断言 四、实现字符串操作函数 五、测试 一、前景回顾 上一回我们详细地讲解了整个系统的中断工作流程,整个中断系统比较难的地方在于中断的执行流程,我开始学的时候对这一块也是比较模糊的,感觉不知从何入手。现在已经很清楚整个流程了,这里可以 阅读全文
posted @ 2022-07-06 19:00 李知行 阅读(606) 评论(0) 推荐(0) 编辑
摘要: 目录 一、前景回顾 二、实现中断框架 三、代码实现 四、中断的压栈和出栈过程分析 五、运行测试 一、前景回顾 前面我们已经讲解了中断的基本知识,接下来要开始进行代码的实操。代码主要有两块,其中一块是关于可编程中断控制器8259A的代码,另一块主要是整个中断的代码。 二、实现中断框架 IDT:中断描述 阅读全文
posted @ 2022-07-05 15:43 李知行 阅读(930) 评论(0) 推荐(2) 编辑
摘要: 目录 一、前景回顾 二、初识中断 三、中断分类 四、中断号 五、可编程中断控制器8259A 六、中断描述符表IDT 一、前景回顾 上一回我们简单地讲解了特权级的原理,这一块其实我当时也是啃的云里雾里,看了好大一会儿才明白。如果实在不怎么理解特权级检查也没关系,因为后面的代码中也不会涉及到手写特权级检 阅读全文
posted @ 2022-07-02 16:45 李知行 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 目录 一、前景回顾 二、什么是特权级检查 三、门 四、如何进行特权级检查 五、调用门的跳转执行流程 六、调用门的跳转权限检查 一、前景回顾 我们在前面讲过保护模式较之于实模式的三大特点:分页机制、特权级和分时机制。现在分页机制的坑已经填好了,接下来我们开始填特权级的坑。 二、什么是特权级检查 首先我 阅读全文
posted @ 2022-07-02 15:09 李知行 阅读(597) 评论(0) 推荐(1) 编辑