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的大框架,后面有空在细说
热门推荐
2024国产剧市场迎来爆发,十部精品剧集展现内容至上趋势
任嘉伦三部古装剧待播:悬疑、宫廷、玄幻全覆盖
王者荣耀新英雄“影”出装教学:从零开始
从戛纳到奥斯卡:15部亚洲电影的获奖传奇
从女性悬疑到连环杀手:五部高分剧集让你体验极致反转
汽车行业的10大趋势、创新和挑战,将来的汽车会进化成什么样子?
中药调理,糜烂性胃炎治疗的新选择
小米粥、山药粥、莲子粥:糜烂性胃炎患者的饮食良方
从饮食调节开始,告别糜烂性胃炎
合法辞职指南:从提出申请到完成交接,这些细节要注意
乌当区:生态保护与绿色发展双轮驱动
乌当区:红色记忆与布依风情的双重魅力
中国金冶炼行业:2023年产量增长0.84%,未来机遇与挑战并存
甘油护肤全攻略:冬季必备的平价保湿神器
皮肤科医生胡云峰:甘油护肤的真相与使用指南
新能源汽车电池车身一体化:CTC与CTB技术路线详解
贵阳必打卡景点全攻略:从经典到网红,玩转爽爽贵阳
贵阳周边三大自然奇观:瀑布、梯田与喀斯特峰林
从猫娘到贵族:宝可梦合众四天王背后的故事
攻克塞尔达传说大师模式,四神兽通关技巧详解
秋季自驾游丰宁坝上草原:金黄秋色中的草原天堂
劣质产品会造成视力下降 热销的美瞳你选对了吗?
《剑网3》天策最优出装攻略:PVE与PVP装备搭配详解
《决胜巅峰》罗杰最强出装攻略:三种方案详解与实战技巧
海南百岁老人比例全国居首,健康生活成关键
养老护理员:照顾百岁老人需要这些专业技能和素质
解码长寿:百岁老人的干细胞、基因与健康饮食
复旦研究:不吸烟、多运动、饮食多样助长寿
豆类与长寿:研究发现降低死亡风险,是健康饮食重要组成
锦囊妙录》央八开播收视破1,无流量明星也能靠实力圈粉