..........
920-923行, 将第一个 page table map 到 page directory 的第一个
entry. 这一个 page table 将会"暂时"在 page directory
map 两次. 主要是因为目前的指令实际执行的 address
为 physical address, 当一开始 enable paging 时, 将会
产生一个模糊地带, 使的我们 address 依然是以 physcial
address 的值进行 map, 而不是我们所希望的 KERNBASE
为其 base. 因此, 我们做此 map, 以便在 enable paging
之後, 可以顺利的执行正确的 code.
926-929行, 将 _KPTphys 安装在 page table directory(PDE) 正确的位置,
使 kernel map 到 KERNBASE.
932-935行, 将 PDE 安装在 PDE 上, 这是一个 recursive 的做法, 如
此会使的 PDE 在第二层 mapping 时, 转而成为 page table,
使的原本 PDE 所 mapping 的 page table 反而成为最後的
destination memory. 我们可以直接透过 mapping 直接读每
一个 page table.
推荐阅读
- 在FreeBSD4.3 release上使用IP Filter做NAT
- zh-hztty-2.0 FreeBSD 中文转码
- FreeBSD handbook中文版 4 安装应用程序:Packages 和Ports
- FreeBSD下如何访问MS-DOS文件系统
- FreeBSD下网络备份Net Backup System的实现
- FreeBSD下基于DNS的负载均衡
- IPFILTER 使用FreeBSD配置基于ADSL的VPN防火墙网关
- 一 FreeBSD kernel 编译大法
- FreeBSD 新软件安装
- FreeBSD MRTG-Packet Count