【Rust日报】2020-10-28 RustSBI项目已进入RISC-V SBI标准

2024-06-22 23:58

本文主要是介绍【Rust日报】2020-10-28 RustSBI项目已进入RISC-V SBI标准,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

RustSBI项目已进入RISC-V SBI标准

RISC-V指令集的SBI标准规定了类Unix平台下,操作系统运行环境的规范。目前,RustSBI项目已获得SBI编号4,代表它已经被收录入RISC-V SBI标准。

RISC-V架构中,存在着定义于操作系统之下的运行环境。这个运行环境不仅将引导启动RISC-V下的操作系统,还将常驻后台,为操作系统提供一系列二进制接口,以便其获取和操作硬件信息。RISC-V给出了此类环境和二进制接口的规范,称为“操作系统二进制接口”,即“SBI”。规范定义了跨核软中断IPI、跨核页表刷新RFENCE、硬件线程监视器HSM等模块,构成二进制接口的各个部分,以支持在其上的操作系统正常工作。

RustSBI项目发起于鹏城实验室的“rCore代码之夏”活动,它是完全由Rust语言开发的SBI实现。目前,它支持RISC-V SBI规范最新的v0.2版本,支持包含QEMU、勘智K210在内的多款平台。RustSBI有特殊的兼容性设计,以兼容以往版本的指令集和芯片。除了提供多款平台的二进制实现,RustSBI也可以作为组件库,帮助更多的SBI开发者适配自己的平台,或者开发更复杂的SBI实现。

参考链接:https://github.com/riscv/riscv-sbi-doc/pull/61 RustSBI项目主页:https://github.com/luojia65/rustsbihttps://crates.io/crates/pin-project)

有《我的世界》的粉丝吗? Rust和WASM在本地绘制Minecraft世界

它使用File API在浏览器中完全呈现一个世界。它永远不会将您的世界上传到任何地方进行任何处理,而一切都在浏览器中进行。

详情:https://www.reddit.com/r/rust/comments/jj6k9b/any_minecraft_fans_rust_and_wasm_to_map_minecraft/

run-script: Rust 文件和表达式作为脚本运行

使用rust-scriptRust文件和表达式可以像shell或Python脚本一样执行。功能包括:

  • 缓存已编译的工件以提高速度。

  • 读取嵌入Rust脚本的货运清单。

  • 通过Unix shebangs和Windows文件关联支持可执行的Rust脚本。

  • 使用表达式作为流过滤器(用于命令管道)。

  • 通过脚本运行单元测试和基准测试。

  • 命令行表达式和过滤器的自定义模板。

安装需要最新的稳定版Rust(1.47)。

cargo install --force rust-script

reddit:https://www.reddit.com/r/rust/comments/jjnyv1/rustscript_run_rust_files_and_expressions_as/

rust-script:https://rust-script.org/


From 日报小组 冰山上的 mook

社区学习交流平台订阅:

  • Rustcc论坛: 支持rss

  • 微信公众号:Rust语言中文社区

这篇关于【Rust日报】2020-10-28 RustSBI项目已进入RISC-V SBI标准的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1085771

相关文章

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法

《SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法》本文主要介绍了SpringBoot项目启动错误:找不到或无法加载主类的几种解决方法,具有一定的参考价值,感兴趣的可以了解一下... 目录方法1:更改IDE配置方法2:在Eclipse中清理项目方法3:使用Maven命令行在开发Sprin

Nginx实现高并发的项目实践

《Nginx实现高并发的项目实践》本文主要介绍了Nginx实现高并发的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录使用最新稳定版本的Nginx合理配置工作进程(workers)配置工作进程连接数(worker_co

C++ Primer 标准库vector示例详解

《C++Primer标准库vector示例详解》该文章主要介绍了C++标准库中的vector类型,包括其定义、初始化、成员函数以及常见操作,文章详细解释了如何使用vector来存储和操作对象集合,... 目录3.3标准库Vector定义和初始化vector对象通列表初始化vector对象创建指定数量的元素值

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

SpringBoot项目注入 traceId 追踪整个请求的日志链路(过程详解)

《SpringBoot项目注入traceId追踪整个请求的日志链路(过程详解)》本文介绍了如何在单体SpringBoot项目中通过手动实现过滤器或拦截器来注入traceId,以追踪整个请求的日志链... SpringBoot项目注入 traceId 来追踪整个请求的日志链路,有了 traceId, 我们在排

Rust中的注释使用解读

《Rust中的注释使用解读》本文介绍了Rust中的行注释、块注释和文档注释的使用方法,通过示例展示了如何在实际代码中应用这些注释,以提高代码的可读性和可维护性... 目录Rust 中的注释使用指南1. 行注释示例:行注释2. 块注释示例:块注释3. 文档注释示例:文档注释4. 综合示例总结Rust 中的注释

Rust格式化输出方式总结

《Rust格式化输出方式总结》Rust提供了强大的格式化输出功能,通过std::fmt模块和相关的宏来实现,主要的输出宏包括println!和format!,它们支持多种格式化占位符,如{}、{:?}... 目录Rust格式化输出方式基本的格式化输出格式化占位符Format 特性总结Rust格式化输出方式

Rust中的Drop特性之解读自动化资源清理的魔法

《Rust中的Drop特性之解读自动化资源清理的魔法》Rust通过Drop特性实现了自动清理机制,确保资源在对象超出作用域时自动释放,避免了手动管理资源时可能出现的内存泄漏或双重释放问题,智能指针如B... 目录自动清理机制:Rust 的析构函数提前释放资源:std::mem::drop android的妙

Rust中的BoxT之堆上的数据与递归类型详解

《Rust中的BoxT之堆上的数据与递归类型详解》本文介绍了Rust中的BoxT类型,包括其在堆与栈之间的内存分配,性能优势,以及如何利用BoxT来实现递归类型和处理大小未知类型,通过BoxT,Rus... 目录1. Box<T> 的基础知识1.1 堆与栈的分工1.2 性能优势2.1 递归类型的问题2.2