MIT6.828 32位操作系统笔记(9)----内存管理 LAB2下

这篇博客详细介绍了MIT6.828实验中的32位操作系统内存管理,包括内核地址空间的划分,权限隔离机制,以及实验中的Exercise 5的相关问题。JOS操作系统将虚拟地址空间分为用户和内核两部分,通过页表的访问权限位防止用户进程访问内核空间,确保内核安全。此外,还讨论了操作系统的最大物理内存和管理这些内存的额外开销。
摘要由CSDN通过智能技术生成

MIT EDU 6.828 实验源代码

分类 MIT6.828 32位操作系统实验笔记

实验完善代码 LAB2-4下载链接 提取码:79t8

1、内核地址空间

JOS 将32位线性地址虚拟空间分为两部分,其中用户环境(用户进程)通常占据低地址部分,叫做用户地址空间;操作系统内核总是占据高位,叫做内核地址空间。这两部分的分界线是定义在memlayout.c 中的一个宏ULIM。JOS 为内核保留了256MB 的虚拟地址空间[0xF0000000,0xFFFFFFFF],这也解释了为什么在LAB1 我们设置的KERNBASE 是0xF0000000,否则的话用户地址空间将不够用。
在这里插入图片描述

2、权限及错误隔离

由于内核和用户进程只能访问各自的地址空间,所以我们必须在X86 页表中使用访问权限位来使用户进程的代码只能访问用户地址空间,而不会访问内核地址空间。否则,用户代码的一些错误可能会覆盖内核中的数据,最终导致内核崩溃。

处在用户地址空间中的代码不能访问高于ULIM 的地址空间,但是内核可以读写这部分的地址。需要注意的是,对于地址空间[UTOP, ULIM ] 内核和用户拥有同样的权限:只能读不能写; 这个范围的空间通常被用于将一些只读的内核数据结构暴露给用户。在UTOP之下的地址范围是给用户进程使用的,用户进程可以访问、修改 [0X0, UTOP] 地址空间的内容。

接下来的实验主要是设置UTOP 之上的地址空间:这也就是整个虚拟地址空间中的内核地址空间部分。

3、Exercise 5

在这里插入图片描述


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值