rCore技术详解:基于Rust语言的RISC-V操作系统开发
创作时间:
作者:
@小白创作中心
rCore技术详解:基于Rust语言的RISC-V操作系统开发
引用
CSDN
1.
https://m.blog.csdn.net/2301_79725204/article/details/143097003
rCore是一个基于Rust语言开发的类Unix操作系统,主要运行在RISC-V架构上。本文将详细介绍rCore的开发过程,包括裸机打印、分时时间轮转、虚拟页表、进程管理、文件系统和多线程等核心功能的实现。
基础环境
QEMU 是一个开源的虚拟化软件,可以模拟多种架构的硬件,使用户能够在不同的平台上运行操作系统和应用程序。在rCore中用到qemu-system-riscv64
BIOS是计算机的固件,负责在启动时初始化硬件并引导操作系统。在rCore中使用RUSTSBI
编译:cargo+riscv64gc-unknown-none-elf(指定平台)
开发步骤
在开源操作系统青训营的第二阶段,对rCore的学习中,写出一个os是循序渐进的
第一步:先脱离标准库限制去打印字符串,裸机打印"hello world"
用到链接脚本(.ld)内核程序加载脚本(.S)RUSTSBI(bootloader)riscv汇编代码
Riscv下的OS代码三模式:M(machine)S(supervisor)U(user)
- M模式:RUSTSBI实现
- S模式:各种操作系统功能的底层实现,涉及访问内存硬件资源
- U模式:应用程序,地址空间与S模式隔离,受错误处理机制监视
entry.S和linker.ld:加载内核到内存中
Rustsbi提供中断和异常的处理,定时器,内存管理等
第二步:实现分时时间轮转运行应用程序
用到switch.S(切换脚本),trap.S(异常处理脚本),懒加载
批处理系统:
- 在任务队列中加载应用程序
- 设置任务的状态:运行(running),挂起(ready),退出(exit)
- 保存当前任务的上下文
- 切换到下一个任务,放入switch中运行
在这个基础上加每个任务运行最大时间限制就是分时时间轮转了,用到定时器中断
异常处理
- enable_timer_interrupt函数实现定时
- Trap_handler实现监督,
- 超时则挂起当前任务,运行下一个任务
- Trap_handler
- 中断处理
- 程序异常时退出并报错
- 系统调用
第三步,实现虚拟页表在内存中存储数据
用到SV39,mmu(硬件,辅助虚拟地址转换为物理地址)
- SV39划分了39位虚拟地址和56位物理地址
- 39位=vpn0(2^9)+ vpn1(2^9)+ vpn2(2^9)+page_offset(2^12)
- vpn0, vpn1, vpn2都是虚拟页号,索引到页表
- 第一级页表包含了第二级页表的地址,
- 第二级页表包含了第三级页表的地址,
- 第三级页表包含了映射的物理页号(44位)和页表项(读写权限),
- 物理页号+页内偏移量为物理地址
- (在rCore的mm目录中有相应的转换计算和映射处理)
第四步,实现进程管理
- 虚拟地址的基础上,
- 任务+内存栈-->进程
- 实现fork,exec,spawn等系统调用
- 调度算法采用优先级调度
- 优先级值越小,步长越大,进程越靠前,越先执行
第五步,实现文件系统
也就是disinode这个结构体索引到具体的数据块
一个块512个字节,可以存放一定数量的索引,被称为索引块,也可以存放数据,被称为数据块
第六步,实现并发(多线程)
也就是将原本的进程中一个个线程单独拎出来,放到列表中执行
这样也就方便对每个线程操控,进行死锁检测
先潦草记一下rCore的大框架,后面有空在细说
热门推荐
病案首页大数据:医疗决策、疾病预测和临床研究的新利器
三甲医院如何用信息技术提升病案首页管理?
宽大车头设计:豪车性能与美学的双重追求
深圳至厦门旅游攻略:高铁4小时直达,三天玩转两城
比特币2024年大涨120%突破10万美元,专家预测或涨至20万美元
杭州国家版本馆开馆:数字展陈让版本资源焕发新活力
中国国家版本馆落成,构建中华版本资源保藏传承体系
Visual LISP入门:开发AutoCAD自动备份插件
LISP编程:提升CAD设计效率的利器
诺奖团队最新Cell:细菌的这种免疫防御系统,还可以感知DNA损伤
让免疫系统“返老还童”,斯坦福最新研究或能“逆转”衰老
丰田卡罗拉双擎冬季保养全攻略:电池维护与驾驶技巧详解
雌雄同体还能再生,海肠的生存绝技令人惊叹
解决传感器问题:面对不工作或异常报警的实用指南
马丹阳天星十二穴:将366个穴位简化到12个的针灸革新
脑梗后遗症的中医治疗:广安门医院专家建议
律师资格证:职场人的重要里程碑
杭州国家版本馆开馆:数字技术让版本珍品“活”起来
5S工作法:让办公室更整洁高效
5S管理:制造业提升效率与质量的五大利器
中国无人作战体系渐成规模:“九天”无人机与“鸾鸟2号”成亮点
生命科学 向新向质丨15项生命科学优秀科技成果发布
别让忙碌成为借口:提升婚姻沟通质量的7个建议
当夫妻间没了共同话题,试试这4个方法
追剧不如追文,网络小说也能提升你的中文阅读水平?
天问三号即将揭秘火星生命之谜
揭秘罗斯威尔:从气象气球到外星技术
2047年能找到外星生命吗?中国空间科学规划给出答案
外星生命发现,人类哲学观要翻篇了吗?
远程还是近战?一文读懂诛仙青云合欢职业特点