读源码时应该注意的事项
-
在第一遍阅读源码时,已弄懂整体流程为主,至于具体的实现细节先简单的理清处过一遍,不用过于纠结。
-
当梳理清楚全部的框架逻辑后,第二遍再深入的学习研究各个模块的实现,此时应该解决第一遍中的疑惑。
-
第三遍可以跳出代码的实现,来看Linux的设计思路、编程艺术和演进之路。
实模式
x86架构计算机的一种工作模式,也是计算机启动时的初始工作模式。在实模式下,处理器访问物理内存的方式非常简单,但也非常受限,因此她通常用于启动计算机和加载操作系统的引导程序。
-
16位寻址:在实模式下,处理器使用16位地址总线,因此最多可以寻址2^16(64K)个内存单元。这限制了系统的内存寻址能力。
-
物理地址:实模式下,处理器直接使用物理内存地址进行内存访问,没有内存保护机制。这意味着一个程序程序可以访问系统中的任何内存位置,包括操作的关键数据结构,这可能导致系统不稳定。
-
段寄存器:实模式使用段寄存器来定位内存中的数据,而不是使用线性地址。段寄存器包括CS(代码段)、DS(数据段)、ES(附加数据段)等。段寄存器的值与偏移量相结合,形成物理地址。
-
实地址模式:在实模式下,段寄存器和偏移量以实地址模式下来计算物理地址。物理地址直接等于段寄存器左移4位后与偏移量相加。
-
无保护模式:实模式没有内存保存机制和特权级别,所有代码都以最高特权级别运行。这意味着一个程序可以执行对系统有害的操作
实模式通常用于计算机的启动过程,当计算机开机时,处理器会一开始处于模式下。在实模式下,计算机的引导程序(BIOS)负责加载操作系统的引导程序(Boot Loader),然后将处理器切换到更高级的保护模式,如保护模式或长模式,以便操作系统能够更好地管理内存和硬件资源。
总结
总之,实模式是x86架构计算机的一种工作模式,它具有简单的寻址方式和较低的特权级别,但也有一些显著的限制,因此在计算机启动后通常会切换到更高级别的模式来执行操作系统和应用程序。
保护模式(Protected Mode)
保护模式是x86架构计算机的一种工作模式,与实模式相对。保护模式提供了更高级别的内存保护和多任务支持,使得操作系统能够更好地管理系统资源,并确保不同程序之间的隔离。
-
32位和64位寻址:
保护模式支持32位和64位的线性地址,允许计算机访问更大的内存空间。这大大增加了系统的内存寻址能力。
-
虚拟内存:
保护模式引入了虚拟内存机制,允许操作系统将物理内存映射到不同的线性地址空间,提供了内存保护和隔离。每个程序都以自己的虚拟地址空间运行。不会其他程序。
-
特权级别
保护模式引入了特权级(PrivilegeLevels)概念,通常分为0至3级。特权级别0是最高特权级别0是最高特权级别,操作系统内核通常在这个级别上运行。较低的级别用于应用程序。不同特权级别之间有不同的权限和访问限制。
-
分段
保护模式中的段寄存器仍然存在,但它们的功能有所不同。段描述符包含了段的基址、大小、访问权限等信息,这样可以便灵活地管理内存。
-
多任务支持
保护模式允许操作系统管理多个任务或进程,通常时间轮转等调度算法来切换执行。每个任务都有自己虚拟地址空间。
-
硬件保护
保护模式提供硬件级别的内存保护,防止程序越界或破坏其他程序的内存。
-
异常和中断处理:
在保护模式下,操作系统可以捕获和处理各种异常和中断,包括硬件错误,系统调用请求等。 -
分页
分页机制允许操作系统将线性地址映射到物理地址的过程进行更细粒度的控制,提供了更高级别的内存管理。
保护模式
保护模式是现代操作系统的基础,它提供了更高级别的隔离和安全性,允许操作系统有效地管理多任务和资源。当计算机启动时,通常会从实模式切换到保护模式,这由计算机的引导加载程序(BootLoader)负责。例如,在x86架构的计算机上,操作系统通常在保护模式下运行,如Windows、Linux和macOS等。
标签:保护模式,计算机,模式,内存,级别,操作系统 From: https://www.cnblogs.com/doubleconquer/p/17726758.html