书栈网 · BookStack 本次搜索耗时 0.067 秒,为您找到 40 个相关结果.
  • 文件系统接口

    文件系统接口 本节导读 文件和目录 常规文件 目录 文件系统 简易文件与目录抽象 打开与读写文件的系统调用 文件打开 文件的顺序读写 文件系统接口 本节导读 本节我们首先以Linux 上的常规文件和目录为例,站在访问文件的应用的角度,介绍文件中值得注意的地方及文件使用方法。由于 Linux 上的文件系统模型还是比较复杂,在我们的...
  • 引言

    引言 本章导读 实践体验 本章代码树 本章代码导读 引言 本章导读 到第七章为止,我们设计实现的操作系统已经具备了传统操作系统中的内在重要因素,如进程、文件、地址空间等,应用程序也能通过操作系统输入输出字符,读写在磁盘上的数据。不过与我们常见的操作系统(如Linux,Windows等)比起来,好像感知与交互的I/O能力还比较弱。 终于到...
  • 物理内存探测与管理

    物理内存探测与管理 物理内存探测 物理页帧与物理页号 物理内存页式管理 物理内存探测与管理 代码 我们知道,物理内存通常是一片 RAM ,我们可以把它看成一个以字节为单位的大数组,通过物理地址找到对应的位置进行读写。但是,物理地址并不仅仅 只能访问物理内存,也可以用来访问其他的外设,因此你也可以认为物理内存也算是一种外设。 这样设计是因...
  • 构建用户态执行环境

    构建用户态执行环境 本节导读 用户态最小化执行环境 有显示支持的用户态执行环境 实现输出字符串的相关函数 构建用户态执行环境 本节导读 本节开始我们将着手自己来实现之前被我们移除的 Hello, world! 程序中执行环境的功能。 在这一小节,我们介绍如何进行 执行环境初始化 。 在这里,我们先设计实现一个最小执行环境以支持最简单...
  • 页表:从虚拟内存到物理内存

    页表:从虚拟内存到物理内存 虚拟地址和物理地址 页表项 多级页表 页表基址 快表(TLB) 小结 页表:从虚拟内存到物理内存 回顾第二章,我们曾提到使用了一种“魔法”之后,内核就可以像一个普通的程序一样运行了,它按照我们设定的内存布局决定代码和数据存放的位置,跳转到入口点开始运行…当然,别忘了,在 位寻址空间下,你需要一块 大小为 ...
  • 在内核中使用 easy-fs

    在内核中使用 easy-fs 本节导读 块设备驱动层 Qemu 模拟器平台 K210 真实硬件平台 内核索引节点层 文件描述符层 文件系统相关内核机制实现 文件系统初始化 通过 sys_open 打开文件 通过 sys_exec 加载并执行应用 在内核中使用 easy-fs 本节导读 上节实现了 easy-fs 文件系统,并...
  • 2.2.1 radare2

    2.2.1 Radare2 简介 安装 更新 卸载 命令行使用方法 radare2/r2 rabin2 rasm2 rahash2 radiff2 rafind2 ragg2 rarun2 rax2 交互式使用方法 分析(analyze) Flags 定位(seeking) 信息(information) 打印(print...
  • 驱动程序(上)

    驱动程序(上) 本节导读 驱动程序概述 硬件系统架构 设备树 传递设备树信息 解析设备树信息 平台级中断控制器 串口驱动程序 串口设备初始化 串口设备输入输出操作 对进程管理的改进 驱动程序(上) 本节导读 本节首先讲述了驱动程序要完成的主要功能,包括初始化设备,接收用户进程的I/O请求并给设备发出I /O命令,响应设备发出...
  • 实现特权级的切换

    实现特权级的切换 本节导读 RISC-V特权级切换 特权级切换的起因 特权级切换相关的控制状态寄存器 特权级切换 特权级切换的硬件控制机制 用户栈与内核栈 Trap 管理 Trap 上下文的保存与恢复 Trap 分发与处理 执行应用程序 实现特权级的切换 本节导读 由于有特权级机制的存在,应用程序在用户态特权级运行时,是无法...