随笔分类 - 操作系统真相还原笔记
摘要:第十三章 编写硬盘驱动程序 硬盘及分区表 创建硬盘分区表 文件系统并不仅仅是文件存储的静态数据结构,还有一套操作的方法。 分区:由多个连续的柱面组成。 分区表:在MBR中的64位固定大小的表,每个表项是分区的描述信息,大小16字节,所以共有4个表项,即有4个分区。 4个分区:是硬盘最初设计的遗留,最
阅读全文
摘要:第十二章 进一步完善内核 主要是系统调用的实现,中断的笔记中已经有记录
阅读全文
摘要:第十一章 用户进程 为什么要有任务状态段TSS Linux 任务切换未采用 Intel 的做法,而是用了一套自己的方法,只用了 TSS 小部分功能。 现在操作系统采用的任务切换方式 CPU提供了0、1、2、3共4个特权级,linux只用了内核特权级0和用户特权级3。 有一件工作必须且只能用 TSS
阅读全文
摘要:第十章 输入输出系统 同步机制-锁 找出代码中的临界区、互斥、竞争条件 临界区:多个任务访问同一资源时,每个任务中访问资源的指令代码被称为临界区,临界区是代码,并不是资源。 互斥:也可称为排他,是指某一时刻公共资源只能被一个任务独享。 竞争条件:指多个任务以非互斥的方式同时进入临界区,大家对公共资源
阅读全文
摘要:第九章 线程 实现内核线程 执行流 一个处理器任意时刻只能执行一个任务,真正的并行指多个处理器同时工作,并行能力取决于其物理处理器的数量。 任务:完成一个任务,可能需要用户进程部分和内核部分共同完成。 调度器:在内核中维护一个任务表(进程表或调度表),按照一定的算法,从任务表中取一个任务,把该任务放
阅读全文
摘要:第八章 内存管理系统 位图bitmap及其函数的实现 位图简介 位图: bitmap,常用的数据结构,广泛用于资源管理,大量资源的管理可以采用位图的方式。redis也有bitmap。 位(bit)是最小的单位,节省空间,可以用位来映射(map)一个被管理的资源单位,0表示此资源单位未使用,1表示使用
阅读全文
摘要:第七章 中断 操作系统是中断驱动 操作系统是死循环,操作系统是中断驱动 中断分类 外部中断 来自cpu内部的中断。 外部中断按照是否导致宕机,可以划分为可屏蔽中断,不可屏蔽中断。 INTR收到的中断不影响系统运行,可以稍候处理,甚至可以屏蔽中断,不处理。可通过eflags寄存器中的IF位屏蔽中断。
阅读全文
摘要:第六章 完善内核 函数调用约定简介 函数约定主要包括: 参数的传递方式,放在寄存器还是栈中? 如果参数放在栈中,调用完后,栈中的参数由谁来清理? 参数的传递顺序,从右往左还是从左往右? 返回值,放在哪里? 调用函数时,寄存器环境由谁保存,调用者还是被调用者? cdecl调用约定: cdel(c de
阅读全文
摘要:第五章 保护模式进阶,向内核迈进 启动内存分页机制 为什么分页 分段的缺点 内存换出时,只能换出整个段。IO较高,新进程缺少的内存可能很小。 段内存是基于段基址+偏移来寻址,是线性的,进程需要连续的内存。如果内存整体剩余满足,但是不连续,就无法加载该进程。 一级页表 兼容分段机制,分页机制建立在分段
阅读全文
摘要:第四章 保护模式入门 实模式 什么是实模式 实模式,又叫实地址模式.从80386开始,CPU有三种工作模式:实模式、保护模式和虚拟8086模式。80286开始的CPU引入保护模式,实际上,实模式概念是在保护模式推出之后为了区别保护模式之前的8086CPU工作模式才有的,在8086时代CPU工作模式只
阅读全文
摘要:第三章 完善MBR 让MBR使用硬盘 8086启动步骤 启动重启计算机,寄存器被初始化 CS:FFFF IP:0000; CS:FF FF,其它的寄存器:00 00。 FFFF0—> jmp F000:005C CS:F000 IP:005C;内存中最顶端的ROM(Read-Only Memory,
阅读全文
摘要:第二章 编写MBR主引导记录 8086启动的整体流程 启动计算机,寄存器被初始化 CS:FFFF,IP:0000; CS:FFFF,其它的寄存器:00 00。 FFFF0—> jmp F000:005C CS:F000 IP:005C;内存中最顶端的ROM(Read-Only Memory,只读存储
阅读全文
摘要:第一章 部署工作环境 nasm yum install build-essential nasm bochs 安装 下载bochs wget https://master.dl.sourceforge.net/project/bochs/bochs/2.6.2/bochs-2.6.2.tar.gz
阅读全文

浙公网安备 33010602011771号