操作系统真象还原
文章平均质量分 88
记录复刻《操作系统真象还原》一书中的操作系统的全过程
Redamancy-QR
这个作者很懒,什么都没留下…
展开
-
第七步 实现打印函数
现在接力棒意见交到内核手中啦,只不过我们的内核现在可谓是一穷二白啥都没有,为了让我们设计的内核能被看见被使用,那首先就得有在屏幕输出信息的能力。因此,我们就先来实现打印函数,它的功能就是在屏幕上输出字符信息。原创 2024-05-24 22:31:53 · 943 阅读 · 1 评论 -
第六步 设计我们的LOADER——加载内核
我们在前面利用LOADER进入了保护模式、开启了分页机制,如今也到了它交出控制权的时候了,接下来我们将完善LOADER,看看它是如何将控制权交给内核的。原创 2024-05-22 00:00:06 · 893 阅读 · 0 评论 -
第五步 设计我们的LOADER——开启内存分页机制
现代 CPU 都采用的虚拟内存空间技术,其功能是依靠硬件实现的,但是它所需要的某些数据仍然需要我们进行设置,本章就来看看实现最简单的虚拟内存,我们需要做些什么。原创 2024-05-20 23:52:40 · 1028 阅读 · 1 评论 -
第四步 设计我们的LOADER——获取内存容量
我们在第三步 设计我们的LOADER——跨入保护模式已经知道了如何进入保护模式,但是我们其实还忘记了一件事,那就是获取物理内存的大小!这是为了后续开启分页机制做准备,具体的到时候再说,咱们先来看看如何获取物理内存大小。原创 2024-05-19 23:58:23 · 1331 阅读 · 1 评论 -
第三步 设计我们的LOADER——跨入保护模式
我们在第二步 完善MBR中简要介绍了一下什么LOADER,那么在这篇文章中简要介绍一下如何实现LOADER。原创 2024-05-18 07:26:44 · 1159 阅读 · 0 评论 -
x86 CPU的保护模式——全局描述符表(二)
在前一篇文章我们主要讲了一下保护模式和实模式之间的主要变化,在这篇文章中,我们主要讲一下保护模式下的寻址过程,也就是如何得到真实的物理地址。本文在好几个地方都提到了特权级或者系统段,这一部分知识和 GDT 关系不大,而且一两句话说不清楚,等到后面专门在讲解啦!持续更新中~~原创 2024-05-17 08:10:49 · 1244 阅读 · 0 评论 -
x86 CPU的保护模式——概述(一)
我们在前面已经介绍过实模式了,它是32位 CPU 的一种工作模式,模拟了16位 CPU 的工作环境,但是大多数时候 CPU 并不会处于实模式,而是保护模式,我们接下来看看实模式和保护模式有什么区别。原创 2024-05-16 09:28:20 · 916 阅读 · 0 评论 -
第二步 完善MBR
在上一篇文章第一步 从启动BIOS开始中,我们介绍了BIOS系统,知道了它只负责做一些硬件检测和初始化的工作,然后控制权就到MBR手中了,那我们这一节就来介绍一下MBR是什么,又有什么作用叭!MBR也叫做“ 主引导程序 ”,从名字不难看出,它是主要的引导程序。引导的程序就是“ 次引导程序 ”,可以叫做“ 内核加载器 ”,总的来说就是加载内核也就是操作系统的程序。也就是MBR并不加载操作系统,其原因在于有时候我们希望计算机可以在不同的分区使用不同的操作系统,所以MBR。原创 2024-05-15 13:17:58 · 883 阅读 · 0 评论 -
x86 汇编如何控制硬盘?
CPU 要想控制硬盘,就必须要通过硬盘控制器,本文只介绍最基础的使用,以满足《操作系统真象还原》一书中的需要,更详细的内容请参考ATA手册。CPU 要控制的硬件非常多,不可能为每个硬件都设计专门的电路,所以需要一个通用的方法来操作硬盘,因此,硬盘控制器就诞生了。它作为CPU与硬盘间中转站,不仅有帮助CPU控制硬盘的作用,还有缓存的作用,用来解决CPU和硬盘速度不一致的问题。硬盘控制器属于I/O接口,因此我们需要通过读写硬盘控制器的端口,以此来操作硬盘控制器,完成我们的读写需求。原创 2024-05-14 07:18:15 · 909 阅读 · 1 评论 -
x86 文本模式显示适配器
本文介绍了如何在文本模式下在显示器上打印字符。原创 2024-05-13 00:32:03 · 366 阅读 · 0 评论 -
x86 CPU的实模式——内存布局(四)
在实模式下,CPU一共有20根地址线,故最多可寻址1MB大小的内存,虽然看起来非常小,但实模式下需要做的事也不多,接下来我们看看实模式下CPU是如何利用这1MB的空间。原创 2024-05-12 14:21:54 · 340 阅读 · 1 评论 -
x86 CPU的实模式——调用与跳转(三)
在上一节x86 CPU的实模式——寻址(二)中,我们介绍了如何获取数据,但是光有数据没有什么用,还要有代码才行。我们知道在内存中有非常多少代码段,它们互相配合共同为我们提供各种各样的服务,接下来我们来看看如何将这些代码段联系起来。这一节的东西非常多,但还是有有一些规律的,不过大多数时候,不会全部用到的,记住一些常用的,就足够啦!持续更新~~原创 2024-05-11 21:53:01 · 1436 阅读 · 1 评论 -
x86 CPU的实模式——寻址(二)
在前一节CPU的实模式——寄存器(一)中,我们已经介绍了8086常用的寄存器,也知道了寄存器的主要作用就是为了给CPU提供计算的数据,为了找到数据并传递给CPU,那么就必须要设计一套规则,这套规则就是寻址方式,接下来一起看看8086 CPU有哪些寻址方式。总的来说8086 CPU的寻址方式并不复杂,反而很简单很固定,缺少变通,这是由于硬件设计原因导致的,不过只要一到保护模式,一切都不一样咯。持续更新~~原创 2024-05-10 15:22:16 · 525 阅读 · 1 评论 -
x86 CPU的实模式——寄存器(一)
x86系列CPU在诞生之初是16位,而如今16位的CPU已经成为历史,但CPU的发展是兼容的,也就是说即便是32位的CPU也应当能完成16位CPU的功能,因此,实模式就是指8086这款划时代的CPU的工作环境、工作方式、工作状态、寻址方式、寄存器、指令用法等等。上面已经介绍完8086 CPU的常用寄存器啦,其它没有介绍的寄存器就留到保护模式啦!持续更新~~原创 2024-05-09 17:31:09 · 695 阅读 · 1 评论 -
第一步 从启动BIOS开始
当我们按下电源键,我们电脑第一个运行的软件就是BIOS,即基本输入输出系统。很显然它并不是我们电脑上的操作系统,它的工作是检测、初始化硬件,确认一切没有问题,BIOS会将控制权交给MBR(主引导记录),然后它的使命就结束了。原创 2024-05-08 20:22:29 · 697 阅读 · 0 评论