FZFeng Ziinfengzi.hashnode.dev·Aug 17, 2021 · 5 min read[4.2] 操作系统学习 (深入保护模式)接下来我们将讲上节没有讲完的内容, GDT 全局描述符表 我们之前说过了在保护模式下为了安全着想, 引入了 GDT, 内存段(如数据段, 代码段等)不再是简单地用段寄存器加载一下段基址就能用啦,段的信息增加了很多, 需要提前把段定义好才能使用 全局描述符表(GDT)就是为此而生, GDT 其实就是一个用于登记内存段信息的东西, GDT 因为要记录很多的东西, 所以寄存器的装不了的, GDT 通常都储存再内存中 GDT 的结构一般都是这样的: 其中 GDT 的位置不是固定的, 要使用某个寄存器指...00
FZFeng Ziinfengzi.hashnode.dev·Aug 12, 2021 · 2 min read[4.1] 操作系统学习 (保护模式)本节我们将会学习保护模式 保护模式是怎么来的? 我们都知道实模式下存在很多安全问题, 这主要表现在: 操作系统和用户程序的特权级是一样的 (坏处: 用户程序想干嘛就干嘛, 操作系统根本管不了) 用户程序所使用的地址都是会指向真正的物理地址, 用户程序能读取任意内存 (坏处: 用户程序能随便读取和修改内存, 造成系统不稳定) 一次只能运行一个程序 (坏处: 浪费资源) 只有 20 条地址总线, 寻址范围小 (坏处: 只能范围 1MB 内存) 为了解决这个问题工程师发明了 保护模式 其实在保护模...00
FZFeng Ziinfengzi.hashnode.dev·Aug 4, 2021 · 4 min read[3.2] 操作系统学习 (完善 MBR,进入 loader)查看本系列文章目录 下列内容可能有出错的地方, 毕竟只是个人理解, 有问题评论区🥲🥲 本节将会彻底完善 mbr 扇区,进入 loader 硬盘介绍 现在硬盘大多分为 2 类 固态硬盘 机械硬盘 我们主要讲机械硬盘 机械硬盘其实就像唱片机一样, 一个磁头不断的在磁盘上读取数据 一个机械硬盘由许多的磁头和磁盘组成 而每一个磁盘的构造都是一样的 我们的 mbr 扇区就是里面最开始的扇区 这是一个简单的磁盘运行过程图 我们可以用 CHS 和 LBA 的方式来表示每一个扇区 CHS 就是以硬...00
FZFeng Ziinfengzi.hashnode.dev·Jul 31, 2021 · 5 min read[3.1] 操作系统学习 (深入了解并完善 Mbr)查看本系列文章目录 下列内容可能有出错的地方, 毕竟只是个人理解, 有问题评论区🥲🥲 本篇文章将会让你了解一点关于汇编的知识, 还会介绍一下 CPU 实模式, 最后我们会完善 MBR 分区 MBR 是怎么输出 HelloWorld 上篇文章我们让 MBR 输出了 HelloWorld, 接下来我们要了解其中的奥秘 我们先看看SECTION MBR vstart=0x7c00, 看一眼代码我们发现了 3 个关键词 SECTION vstart 0x7c00 先说说 SECTION 这个单...00
FZFeng Ziinfengzi.hashnode.dev·Jul 19, 2021 · 3 min read[2] 操作系统学习 (开始动手实践, 编写一个简单的mbr)查看本系列文章目录 下列内容可能有出错的地方, 毕竟只是个人理解, 有问题评论区🥲🥲 从 BIOS 进入 MBR 实模式下的 1MB 内存布局 在开始讲之前, 我们要先了解一下 实模式下的 1MB 内存布局 我们可以看到 0x7c00~0x7dff 就是我们的 MBR 要加载的位置 对了再补充一下, 我们现在正常的内存条都有 4GB 了, 但是为什么我们只能使用 3.8GB 呢? 这是因为我们有 0.2GB 被用来作为外设的内存映射了 BIOS -> MBR 开机时 BIOS 先被加载, ...00