书栈网 · BookStack 本次搜索耗时 0.034 秒,为您找到 40 个相关结果.
  • 手动触发断点中断

    手动触发断点中断 设置中断处理程序起始地址 保证异常处理入口对齐 手动触发断点中断 代码 如要让 OS 正确处理各种中断,首先 OS 在初始化时,需要设置好中断处理程序的起始地址,并使能中断。 我们引入一个对寄存器进行操作的库,这样就可以不用自己写了。 // Cargo.toml [ dependencies ] riscv...
  • 文件读写

    文件读写 文件读写 代码 心态炸了。本来已经写好了,因为文件不小心被删了只能重写一遍。:cry: 我们要在用户态支持文件读写功能。具体的用户态程序如下: // usr/rust/src/bin/write.rs #![no_std] #![no_main] extern crate alloc ; #[m...
  • 练习题

    练习说明 实验报告要求 测评方式 整体情况 评测脚本使用方法 内核态测试 用户态测试 练习说明 所有题目分数总和:140 ,满分 100 ,超出 100 按 100 计算。 可以把 https://github.com/rcore-os/rCore_tutorial 的 master 分支作为起点,逐步完成所有 8 个实验;也可以按照...
  • 引言

    引言 本章导读 实践体验 本章代码树 本章代码导读 引言 本章导读 本章展现了操作系统一系列功能: 通过动态内存分配,提高了应用程序对内存的动态使用效率 通过页表的虚实内存映射机制,简化了编译器对应用的地址空间设置 通过页表的虚实内存映射机制,加强了应用之间,应用与内核之间的内存隔离,增强了系统安全 通过页表的虚实内存映射...
  • 实现记事本

    实现记事本 缓冲区 条件变量 缓冲区实现 生产者:键盘中断 消费者:sys_read 实现 实现记事本 代码 为了实现上节中交互式终端的目标,先不管运行程序,我们首先要能够通过键盘向终端程序中输入。也就是说,我们要实现一个用户程序,它能够接受键盘的输入,并将键盘输入的字符显示在屏幕上。这不能叫一个终端,姑且叫它记事本吧。 这个用户程...
  • 引言

    引言 本章导读 实践体验 本章代码树 本章代码导读 引言 本章导读 在正式开始这一章的介绍之前,我们很高兴告诉读者:在前面的章节中基本涵盖了一个功能相对完善的内核抽象所需的所有硬件机制,而从本章开始我们所做的主要是一些软件上的工作,这会略微轻松一些。 在前面的章节中,随着应用的需求逐渐变得复杂,作为其执行环境的内核也需要在硬件提供的相关...
  • chapter1练习

    chapter1练习 编程作业 彩色化 LOG 实验要求 实验检查 tips 问答作业 报告要求 chapter1练习 本节难度: 低 编程作业 彩色化 LOG lab1 的工作使得我们从硬件世界跳入了软件世界,当看到自己的小 os 可以在裸机硬件上输出 hello world 是不是很高兴呢?但是为了后续的一步开发,更...
  • 引言

    引言 本章导读 实践体验 本章代码树 本章代码导读 引言 本章导读 在第六章中,我们为进程引入了文件的抽象,使得进程能够通过一个统一的接口来读写内核管理的多种不同的 I/O 资源。作为例子,我们实现了匿名管道,并通过它进行了简单的父子进程间的单向通信。其实文件的最早起源于我们需要把数据持久保存在 持久存储设备 上的需求。 大家不要被 ...
  • 应用程序执行环境与平台支持

    应用程序执行环境与平台支持 本节导读 执行应用程序 应用程序执行环境 平台与目标三元组 Rust 标准库与核心库 应用程序执行环境与平台支持 本节导读 本节介绍了如何设计实现一个提供显示字符服务的用户态执行环境和裸机执行环境,以支持一个应用程序显示字符串。显示字符服务的裸机执行环境和用户态执行环境向下直接或间接与硬件关联,向上可通过函数...