目录 一、前景回顾 二、进程的创建与初始化 三、如何进行进程的切换 四、运行测试 五、原书勘误 一、前景回顾 在上一回我们大概讲述了任务切换的发展,并且知道Linux采用的是一个CPU使用一个TSS的方式,在最后我们成功实现了tss。现在万事俱备,我们正式来实现用户进程。 二、进程 ...
目录 一 前景回顾 二 任务切换相关 三 实现TSS 四 运行测试 一 前景回顾 在上一回我们已经实现了键盘的驱动编写和环形缓冲区的实现,现在让我们来想这么一个问题: 一直以来我们的程序都在最高特权级 下工作,这意味着任何程序都和操作系统平起平坐,可以改动任何资源。如果不改变这种现状的话,某个不听话的程序甚至可以给操作系统致命一击,取而代之,那么后果将不堪设想。所以从本回开始,我们便要开始着手实现 ...
2022-08-15 21:20 0 589 推荐指数:
目录 一、前景回顾 二、进程的创建与初始化 三、如何进行进程的切换 四、运行测试 五、原书勘误 一、前景回顾 在上一回我们大概讲述了任务切换的发展,并且知道Linux采用的是一个CPU使用一个TSS的方式,在最后我们成功实现了tss。现在万事俱备,我们正式来实现用户进程。 二、进程 ...
一、到目前为止的程序流程图 为了让大家清楚目前的程序进度,画了到目前为止的程序流程图,如下。 二、CPU 原生支持多任务切换 没错,本来多任务同分页、中断、段选择子一样,都是软 ...
目录 一、前景回顾 二、线程的实现 三、线程的切换 四、运行测试 一、前景回顾 上一回我们实现了内存管理系统,说实话代码还是比较多,看起来还是比较头疼的,不过为了知识这都是小事。这一节终于可以来实现我们的线程了,以前学操作系统的时候,听到的最多的就是什么线程,进程等,这一回我们来自 ...
目录 一、前景回顾 二、锁的实现 三、使用锁实现console函数 四、运行测试 一、前景回顾 上回我们实现了多线程,并且最后做了一个小小的实验,不过有一点小瑕疵。 可以看到黄色部分的字符不连续,按道理应该是“argB Main”,这是为什么呢?其实仔细思考一下 ...
目录 一、前景回顾 二、位图bitmap及函数实现 三、内存池划分 四、运行 一、前景回顾 前面我们已经花了一个回合来完善了一下我们的系统,包括增加了makefile,ASSERT以及一些常见的字符串操作函数。关于makefile,还是我以前学习Linux系统编程的时候学了一点点 ...
目录 一、前景回顾 二、实现键盘输入的中断函数 三、编写键盘驱动 四、实现环形输入缓冲区 五、运行测试 一、前景回顾 上一回我们完成了锁的实现,并且利用锁优化了终端输出函数。这一回我们来实现键盘的输入,为后面的用户交互功能打好基础。 二、实现键盘输入的中断函数 首先我们需要 ...
本书依靠的教材是于渊的《Orange'S:一个操作系统的实现》 实验环境及工具 ArchLinux(windows也可以) 代码编辑器Emacs(你尽情使用自己喜欢的编辑器) nasm (一个开源的汇编器,可以从sourceforge下载,也可以从Linux发行版的软件 ...
,我们已经简单实现了MBR,直接操作显示器和硬盘操作来加载其他扇区的程序,如今已经可以进入保护模式了, ...