操作系统实验
文章平均质量分 99
SIR怀特
这个作者很懒,什么都没留下…
展开
-
操作系统原理实验(三)操作系统的基石:中断与异常(内核测试,异常,双重故障)
内核测试,异常,双重故障内核测试在rust中测试退出 QEMU打印到控制台测试 VGA 缓冲区集成测试CPU异常实现加载 IDT双重故障什么是双重错误?双重故障处理器双重故障的原因切换堆栈堆栈溢出测试内核测试在rust中测试Rust 具有内置测试框架,能够运行单元测试。只需创建一个函数,将属性添加到函数标头。然后将自动查找并执行您的箱子的所有测试功能。#[test]cargo test问题是 Rust 的测试框架隐式使用内置测试库,它依赖于标准库。这意味着我们不能使用内核的默认测试框架。no_std原创 2020-12-13 13:44:33 · 747 阅读 · 1 评论 -
操作系统原理实验(1) 实现最小核
实现最小核安装工具链安装rust安装 bootimage,xbuild 和 rust-src 等安装 QEMU和Vscode 编辑器(sudo apt-get install qemu)安装Vscode遇到的问题及解决方法发现curl指令不行发现curl无法安装E: 无法获得锁 /var/lib/apt/lists/lock - open (11: 资源暂时不可用) E: 无法对目录 /var/lib/apt/lists/ 加锁安装QEMU时拒绝连接E:无法修正错误,因为您要求某些软件包保持现状创建裸机程序原创 2020-11-13 21:49:57 · 1352 阅读 · 0 评论 -
操作系统原理实验(四)深渊:竞争条件与死锁(硬件中断)
硬件中断中断控制器启动中断处理定时器中断死锁竞争条件HLT指令键盘输入中断控制器中断提供了一种从附加硬件设备通知CPU的方法。这个英特尔8259是1976年推出的可编程中断控制器(PIC)。8259具有8条中断线和几条用于与CPU通信的线路。一个主PIC和一个从PIC连接到主系统的一条中断线上,一共15个端口。pics的默认配置不可用,因为它向CPU发送0-15范围内的中断向量号。这些数字已经被CPU异常占用。为了解决这个重叠问题,我们需要将PIC中断重新映射到不同的数字。只要不与异常重叠,实际范围就原创 2020-12-13 13:46:06 · 688 阅读 · 1 评论 -
操作系统原理实验(2)实现 println 宏
从打印开始:实现 println 宏实验主要内容VGA字符缓冲区包装到Rust模块字符缓冲区打印字符易失操作格式化宏换行全局接口延迟初始化自旋锁安全性println!宏使用println!的Hello World实现清屏(将屏幕上显示的字符全部清除)的功能实验心得体会实验主要内容VGA字符缓冲区为了在VGA字符模式向屏幕打印字符,我们必须将它写入硬件提供的VGA字符缓冲区(VGA text buffer)。通常状况下,VGA字符缓冲区是一个25行、80列的二维数组,它的内容将被实时渲染到屏幕。这个数组原创 2020-11-14 22:31:23 · 428 阅读 · 0 评论 -
操作系统原理实验(五) 内存管理
内存管理一、实验目的二、实验内容分页介绍内存保护分段外部碎片分页内部碎片页表多级页表在x86_64上分页示例翻译页表格式转换表缓冲区(TLB)实施页面错误访问页表一、实验目的分页内存管理是内存管理的基本方法之一。本实验的目的在于全面理解分页式内存管理的基本方法以及访问页表,完成地址转换等方法。二、实验内容分页介绍内存保护操作系统的一项主要任务对一个进程的内存区域进行保护,不允许其他进程访问。例如,你的网页浏览器不应该干扰你的文本编辑器。为了实现这一目标,有不同的方法,x86上,硬件支持两种不同的原创 2021-01-04 23:15:41 · 4092 阅读 · 0 评论