From ca4d6122f2f9183465e3b86d2c2ed294a40492d0 Mon Sep 17 00:00:00 2001 From: Iru Cai Date: Thu, 30 May 2019 12:59:34 +0800 Subject: rearrange paragraphs --- chap/chap2.tex | 35 +++++++++++++++-------------------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/chap/chap2.tex b/chap/chap2.tex index bcdd020..29a357b 100644 --- a/chap/chap2.tex +++ b/chap/chap2.tex @@ -63,9 +63,21 @@ Meltdown 型攻击利用的是处理器异常产生的暂态指令,这些指 其他程序或内核空间的内存区域。现代计算环境利用这种隔离,使得系统上可 以同时运行多个应用程序,和多个用户的进程。 -在现代处理器中,内核和用户进程之间的隔离,通常由处理器定义的一个权限位 -实现,它定义了内核的页是否可以被访问。这一位只能在进入内核态时设置,并 -在切换到用户态时清除。这个硬件特性使得操作系统可以将内核映射到每个进程 +为了将不同的进程相互隔离,处理器为操作系统提供了虚拟地址空间机制,它将 +虚拟地址翻译为物理地址。虚拟地址空间将内存划分为一系列的页,系统通过多 +级页表将虚拟页翻译为物理页。页表是一个多级的结构,存放虚拟页到物理页的 +映射,同时,它还保存了每个页的保护属性,用于处理器进行权限检查,例如可 +读、可写、可执行、用户可读等。操作系统中每一个运行中的进程有一个对应的 +页表,页表所在的位置存放在处理器的一个特定的寄存器中,在上下文切换时, +操作系统更新这个寄存器,切换至处理器上的新进程可以使用这个进程对应的页 +表。利用这个机制,每个进程的虚拟地址空间映射到不同的物理内存区域,每个 +进程只能使用自己地址空间中的数据,从而达到进程间隔离的效果。 + +每个地址空间都可以分为用户地址空间和内核地址空间。正在运行的进程可以访 +问用户地址空间,而内核地址空间只有进入内核态后可以访问,操作系统通过在 +页表中设置内核地址空间的页为用户不可访问,来实现这个特性。内核地址空间 +除了包含内核所要使用的数据外,通常还保存了整个物理内存的映射、文件缓存 +等内容。用户和内核地址空间的隔离,使得操作系统可以将内核映射到每个进程 的地址空间,在中断等事件发生时,可以在不改变内存地址映射的条件下,高效 地从用户进程切换至内核。 @@ -91,23 +103,6 @@ Intel 处理器,也可能可用于其他厂商的处理器。 击者在隐蔽信道的接收端,找出这个临时寄存器的值。因此,在微体系结构层次, 即实际的硬件实现中,存在可利用的安全性问题。 -% background: address spaces -为了将不同的进程相互隔离,处理器为操作系统提供了虚拟地址空间机制,它将 -虚拟地址翻译为物理地址。虚拟地址空间将内存划分为一系列的页,系统通过多 -级页表将虚拟页翻译为物理页。页表是一个多级的结构,存放虚拟页到物理页的 -映射,同时,它还保存了每个页的保护属性,用于处理器进行权限检查,例如可 -读、可写、可执行、用户可读等。操作系统中每一个运行中的进程有一个对应的 -页表,页表所在的位置存放在处理器的一个特定的寄存器中,在上下文切换时, -操作系统更新这个寄存器,切换至处理器上的新进程可以使用这个进程对应的页 -表。利用这个机制,每个进程的虚拟地址空间映射到不同的物理内存区域,每个 -进程只能使用自己地址空间中的数据,从而达到进程间隔离的效果。 - -每个地址空间都可以分为用户地址空间和内核地址空间。正在运行的进程可以访 -问用户地址空间,而内核地址空间只有进入内核态后可以访问,操作系统通过在 -页表中设置内核地址空间的页为用户不可访问,来实现这个特性。内核地址空间 -除了包含内核所要使用的数据外,通常还保存了整个物理内存的映射、文件缓存 -等内容。 - 操作系统将内核地址空间映射至每个用户进程的地址空间中。处理器执行访存指 令时,在将虚拟地址翻译为物理地址的时候,检查地址对应的权限位,判断用户 空间的指令是否可访问该地址。在 Meltdown 攻击中,攻击者让处理器从用户不 -- cgit v1.2.3