学习操作系统是一件复杂的事情,靠的不仅仅是智慧,更关键的是坚持不懈,下面是笔者总结的几个问题,相当于是个读书笔记,留作考究。


什么是DOS系统调用?

系统功能调用是DOS为用户提供的常用函数,大概80多个,可以在汇编语言程序中直接调用,这些程序的主要功能包括:

  1. 设备管理,如键盘、显示器、打印机、磁盘等的管理;
  2. 文件管理和目录操作;
  3. 其他管理,如内存、时间、日期等。

调用方法:

DOS功能调用程序已按顺序编号——功能号(00H~68H)

调用方法是:

  1. 功能号——>AH
  2. 入口参数——>指定寄存器
  3. INT 21H


什么是BIOS中断调用?

BIOS的全称是ROM BASIC I/O SYSTEM,即只读存储器基本输入输出系统;它是一组固化到微机主板上的一个ROM芯片的子程序,主要功能包括:

  1. 驱动系统中所配置的常用外设;
  2. 开机自检,引导装入;
  3. 提供时间、内存容量及设备情况等参数。


什么是MBR?


(来自于维基百科)


访问硬盘时所必须要读取的 首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。在深入讨论主引导扇区内部结构的时候,有时也将其开头的446字节内容特指为“主引导记录”(MBR),其后是4个16字节的“磁盘分区表”(DPT),以及2字节的 结束标志(55AA)。因此,在使用“主引导记录”(MBR)这个术语的时候,需要根据具体情况判断其到底是指整个主引导扇区,还是主引导扇区的前446字节;



盘本身的相关信息以及硬盘各个 分区的大小及位置信息,是数据信息的重要入口。如果它受到破坏,硬盘上的基本数据结构信息将会丢失,需要用繁琐的方式试探性的重建数据结构信息后才可能重新访问原先的数据。主引导扇区内的信息可以通过任何一种基于某种操作系统的分区工具软件写入,但和某种操作系统没有特定的关系,即只要创建了有效的主引导记录就可以引导任意一种操作系统(操作系统是创建在高级格式化的硬盘分区之上,是和一定的文件系统相联系的)。


MBR的组成


  • 启动代码


主引导记录最开头是第一阶段引导代码。其中的硬盘引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后将控制权交给硬盘上的[[引导程序]](如[[GNU GRUB]])。 它不依赖任何操作系统,而且启动代码也是可以改变的,从而能够实现[[多系统引导]]。

  • 硬盘分区表

硬盘分区表占据主引导扇区的64个字节(偏移01BEH--偏移01FDH),可以对四个分区的信息进行描述,其中每个分区的信息占据16个字节。具体每个字节的定义可以百度'''硬盘分区结构信息'''。

  • 结束标志字

''结束标志字'' 55,AA(偏移1FEH-偏移1FFH)是'''主引导扇区'''的最后两个字节,是检验主引导记录是否有效的标志。



实模式和保护模式?

  • 实模式,又叫实地址模式,CPU完全按照8086的实际寻址方法访问从00000h--FFFFFh(1MB大小)的地址范围的内存,在这种模式下,CPU只能做单任务运行;寻址公式为:物理地址=左移4位的段地址+偏移地址,即:物理地址是由16位的段地址和16位的段内偏移地址组成的。
  • 保护模式,又叫内存保护模式,寻址采用32位段和偏移量,最大寻址空间4GB,在这种模式下,系统运行于多任务,设计这种模式的原因和好处是:保护模式增加了寻址空间,增加了对多任务的支持,增加了段页式寻址机制的内存管理(分段机制使得段具有访问权限和特权级,各应用程序和操作系统的代码和核心是被保护的,这也是多任务支持的实现关键和保护这个名字的由来)。寻址过程为:物理地址=由段地址查询全局描述符表中给出的段基址+偏移地址,即:物理地址由影像寄存器中的基址加上16位或者32位的偏移组成。

保护模式与实模式相比:

  1. 提供了段间的保护机制,防止程序间胡乱访问地址带来的问题;
  2. 访问的内存空间变大。


为什么分段之后还要分页?


关于内存分页机制,可以查看 中关于分页机制的部分;



你可能已经知道,分段管理机制已经提供了很好的保护机制,为什么还要引入分页管理机制呢?其实它的目的在于实现虚拟存储器。



虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。



物理内存碎片的使用和 内存消耗殆尽拿出一部分硬盘空间来充当内存使用,缓解内存的紧张。