随笔分类 - 『rCore』
rust and os
发表于 2024-01-31 22:09阅读:73评论:0推荐:0
摘要:本章任务 让应用能便捷地访问外设 侏罗猎龙 进一步增加了多种设备驱动程序的侏罗盗龙操作系统 – DeviceOS的总体结构如下图所示 设备驱动程序 CPU访问外设的方式 在RISC-V环境中,把外设相关的控制寄存器映射为某特定的内存区域(即MMIO映射方式),然后CPU通过读写这些特殊区域来访问外设
阅读全文 »
发表于 2024-01-28 21:56阅读:161评论:0推荐:0
摘要:本章任务 实现线程 + 并发处理 达科塔盗龙 达科塔盗龙是一种生存于距今6700万-6500万年前白垩纪晚期的兽脚类驰龙科恐龙,它主打的并不是霸王龙的力量路线,而是利用自己修长的后肢来提高敏捷度和奔跑速度。它全身几乎都长满了羽毛,可能会滑翔或者其他接近飞行行为的行动模式。 线程与进程 进程强调隔离,
阅读全文 »
发表于 2024-01-23 21:32阅读:61评论:0推荐:0
摘要:本章任务 本章要完成的操作系统的核心目标是: 让不同应用通过进程间通信的方式组合在一起运行 。 支持标准输入/输出文件 我们将支持三种文件:标准输入输出、管道以及在存储设备上的常规文件和目录文件 支持管道文件 支持对应用程序的命令行参数的解析和传递 实现标准 I/O 重定向功能 支持信号 迅猛龙 迅
阅读全文 »
发表于 2024-01-22 00:29阅读:114评论:0推荐:1
摘要:本章任务 实现文件系统 霸王龙 持久存储设备 持久存储设备就是我们今天说的外存 文件系统数据结构 1、superblock: 超级块(super block),包含文件系统的所有关键信息,在计算机启动时,或者在该文件系统首次使用时,超级块会被载入内存。超级块中的典型信息包括分区的块的数量、块的大小、
阅读全文 »
发表于 2024-01-18 23:03阅读:76评论:0推荐:0
摘要:本章任务 本章要完成的操作系统的核心目标是: 让开发者能够控制程序的运行 。 伤齿龙 最聪明的恐龙... 一些基本概念 进程与任务的不同点 第三/四章提到的 任务 是这里提到的 进程 的初级阶段,任务还没进化到拥有更强大的动态变化功能:进程可以在运行的过程中,创建 子进程 、 用新的 程序 内容覆盖
阅读全文 »
发表于 2024-01-16 18:06阅读:202评论:0推荐:0
摘要:OS知识点 VPN : 虚拟页号 PPN : 物理页号 1、静态分配与动态内存分配 静态分配 : 在编译器编译程序时已经知道这些变量所占的字节大小,于是给它们分配一块固定的内存将它们存储其中,这样变量在栈帧/数据段中的位置就被固定了下来。 动态内存分配: 分配可变大小的空间 2、内碎片与外碎片 内存
阅读全文 »
发表于 2024-01-10 23:20阅读:122评论:0推荐:0
摘要:本章任务 1、通过提前加载应用程序到内存,减少应用程序切换开销 2、通过协作机制支持程序主动放弃处理器,提高系统执行效率 3、通过抢占机制支持程序被动放弃处理器,保证不同程序对处理器资源使用的公平性,也进一步提高了应用对 I/O 事件的响应效率 本章主要是设计和实现建立支持 多道程序 的二叠纪“锯齿
阅读全文 »
发表于 2024-01-07 19:03阅读:66评论:0推荐:0
摘要:lab2代码 https://github.com/TL-SN/rCore/tree/lab2 lab2 目的 本章我们的目标让泥盆纪“邓式鱼”操作系统能够感知多个应用程序的存在,并一个接一个地运行这些应用程序,当一个应用程序执行完毕后,会启动下一个应用程序,直到所有的应用程序都执行完毕。 知识点
阅读全文 »
发表于 2024-01-07 19:02阅读:63评论:0推荐:0
摘要:lab1代码 https://github.com/TL-SN/rCore 记录一下写rCore中学到的OS知识与rust知识 一、永不返回的发散函数 二、string与&str所有权问题 另外: let s1 = String::from("hello"); let s2 = s1; printl
阅读全文 »