Rust for Linux 这个项目是希望今后可以使用 Rust 编程语言来编写内核代码,该项目已经进行了几年,有越来越多的开发者认为是时候将这项工作合并到主线中了。在 2022 年的 Linux 内核维护者峰会上,Miguel Ojeda 向大家更新了此项目的最新状况,希望能达成一致来确定何时可以完成合并。 他得到的答案是很清晰的:内核中确实很快会有 ......
189
0
0
2022-10-13
Rust Linux 驱动程序实现与 C 代码相当的性能 在都柏林举行的 2022 年 Linux Plumbers 大会(LPC)的 Rust 小型会议上,介绍了 Rust for Linux 工作的最新状况。Linux 内核已经有了很好的 C 语言编写的 NVMe 驱动,西部数据的测试显示,虽然其开发的 Rust NVMe 驱动仍处于早期阶段,但其 ......
206
0
0
2022-10-11
本文摘自 inside-rust-std-libraryRUST Option类型标准库代码分析代码路径:%USER%.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\option.rsOption的方法源代码如下:impl<T ......
215
0
0
2022-09-05
本文摘自 inside-rust-std-libraryRUST的固有(intrinsic)函数库代码路径:%USER%.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\intrinsic.rsintrinsic库函数是指由编译器内置 ......
296
0
0
2022-09-05
本文摘自 inside-rust-std-libraryRUST堆内存申请与释放接口资深的C/C++程序员都了解,在大型系统开发时,往往需要自行实现内存管理模块,以根据系统的特点优化内存使用及性能,并作出内存跟踪。对于操作系统,内存管理模块更是核心功能。对于C/C++小型系统,没有内存管理,仅仅是调用操作系统的内存系统调用,内存管理交给操作系统负责。操作系统 ......
218
0
0
2022-09-05
本文摘自 inside-rust-std-librarymem模块函数库mem::zeroed<T>() -> T 代码如下:pub unsafe fn zeroed<T>() -> T { // 调用者必须确认T类型的变量可以取全零值 unsafe { intrinsics::as ......
214
0
0
2022-09-05
本文摘自 inside-rust-std-librarymem模块结构及函数MaybeUninitMaybeUninit结构定义源代码如下:#[repr(transparent)] pub union MaybeUninit<T> { uninit: (), value: ManuallyDrop& ......
270
0
0
2022-09-05
本文摘自 inside-rust-std-libraryRUST标准库内存模块代码分析内存模块的代码路径举例如下(以作者电脑上的路径):%USER%.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core\src\alloc*.*%USER%.rus ......
355
0
0
2022-09-05
rustup 可用于 Rust 安装与更新。它还能够在稳定版、测试版和每日更新版之间无缝切换 Rust 编译器及其工具。Rust 编程语言 如今变得越来越流行,受到爱好者和公司的一致好评。它受欢迎的原因之一是 Rust 提供的令人惊叹的工具,使其成为开发人员使用的乐趣。rustup 是管理 Rust 工具的官方工具。它不仅可以安装和更新 ......
250
0
0
2022-07-03
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容本节我们使用栈来实现双端队列。实现栈栈的实现基本上和最开始的单链表的实现差不多,如下:pub struct Stack<T> { head: Link<T&g ......
288
0
0
2022-05-16
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容本节实现剩余的迭代器、Drop等。IntoIter实现代码如下://实现IntoIter pub struct IntoIter<T> (List<T>); ......
280
0
0
2022-05-16
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...链表定义我们重新定义链表如下:pub struct List<T> { head: Link<T>, tail: *mut Node<T> ......
280
0
0
2022-05-16
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容前面我们都是使用安全的Rust编程来实现链表,但是实现的时候难度确实比较大。从本节开始,我们开始用非安全编程的方式来实现链表。栈和队列的区别是,栈是先进后出,队列是先进先出。对应到两者的 ......
218
0
0
2022-05-01
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容本节我们来为我们的双链表实现迭代器。IntoIter实现代码如下://实现IntoIter pub struct IntoIter<T>(List<T>); ......
251
0
0
2022-05-01
介绍视频地址:www.bilibili.com/video/av78062009/相关源码:github.com/anonymousGiga/Rust-link...详细内容之前我们实现了push_front、pop_front、peek_front,本节将实现push_back、pop_back、peek_back。这些函数的实现和之前的实现都差不多太多, ......
318
0
0
2022-05-01