x86的内存寻址方式

一、实模式寻址在16位的8086时代,CPU为了能寻址超过16位地址能表示的最大空间(因为 8086 的地址线 20 位而数据线 16 位),引入了段寄存器。通过将内存空间划分为若干个段(段寄存器像 ds、cs、ss 这些寄存器用于存放段基址),然后采用段基地址+段内偏移的方式访问内存,这样能访问1


CPU架构和指令集

一 、CPU架构不同的CPU架构通常使用不同的指令集。每种CPU架构都有其自己的一组特定的机器指令,这些指令用于执行计算机程序。不同的CPU架构之间的指令集是不兼容的,这意味着编写的程序通常需要根据目标CPU的架构进行编译或汇编,以确保它们能够在该CPU上正确运行。一些常见的CPU架构包括:x86架


操作系统——虚拟内存管理

@一、虚拟内存中的几种地址1、逻辑地址2、线性地址3、逻辑地址转线性地址4、线性地址转物理地址二、进程与内存1、内核空间和用户空间2、内存映射3、进程内存分配与回收早期程序直接运行在物理内存上,直接操作物理内存,这种方式存在几个问题:地址空间不隔离,程序操作相同地址空间会造成相互影响甚至崩溃,安全性


系统调用与用户态陷入内核态

我们都知道操作系统中运行着很多的进程,如果普通的进程可以直接操作硬件那么这个系统的安全性没办法保障,所以操作系统分出了两种状态,一种状态是运行的代码可以操作硬件;一种状态不能操作硬件,只能切换到第一种状态去操作后再切换回来,这就是内核态和用户态。在用户态下,进程只能访问自己的虚拟地址空间和一些受限的