Comprehensive Rust(简体中文) 202412操作系统开发者而言,了解类似 Bazel 的构建规都很有用。 • 趣味小知识:《星际迷航》中的数据是 Soong 类型的 Android。 188 33.1 Rust 二进制文件 让我们从一个简单的应用程序开始。在 AOSP 签出的根目录下,创建以下文件: hello_rust/Android.bp: rust_binary { name: "hello_rust", crate_name: "hello_rust" • 请注意,只使用 addr_of! / addr_of_mut! 获取指向各个字段的指针,而不创建中间引用,这样 很不安全。 53.5.4 开始使用 使用驱动程序编写一个小程序,将数据写入串行控制台,并回显传入的字节。 mod exceptions; mod pl011; use crate::pl011::Uart; use core::fmt::Write; use core::panic::PanicInfo; enabled: true, }, }, } 55.1 vmbase 对于在 aarch64 上使用 crosvm 运行的虚拟机,vmbase 库提供了链接器脚本和实用的默认构建规则, 以及入口点、UART 控制台日志记录等功能。 use vmbase::{main, println}; main!(main); pub fn main(arg0: u64, arg1: u64, arg2: u64, arg3:0 码力 | 359 页 | 1.33 MB | 11 月前3
Rust 程序设计语言 简体中文版 1.85.0uninstall 本地文档 安装程序也自带一份文档的本地拷贝,可以离线阅读。运行 rustup doc 在浏览器中查看本地 文档。 任何时候,如果你拿不准标准库中的类型或函数的用途和用法,请查阅应用程序接口 (application programming interface,API)文档! 文本编辑器和集成开发环境(Integrated Development Environments, IDE) Reference 的常量求值部分。 在声明它的作用域之中,常量在整个程序生命周期中都有效,此属性使得常量可以作为多处代 码使用的全局范围的值,例如一个游戏中所有玩家可以获取的最高分或者光速。 将遍布于应用程序中的硬编码值声明为常量,能帮助后来的代码维护人员了解值的意图。如果 将来需要修改硬编码值,也只需修改汇聚于一处的硬编码值。 遮蔽 正如在第二章猜数字游戏中所讲,我们可以定义一个与之前变量同名的新变量。Rustacean 宏相反,后者接收的是引用),打印出代码中调用 dbg! 宏时所在的文件和行号,以 及该表达式的结果值,并返回该值的所有权。 注意:调用 dbg! 宏会打印到标准错误控制台流(stderr),与 println! 不同,后者 会打印到标准输出控制台流(stdout)。我们将在第十二章 “将错误信息写入标准错误 而不是标准输出” 一节中更多地讨论 stderr 和 stdout。 下面是一个例子,我们对分配给0 码力 | 562 页 | 3.23 MB | 1 月前3
Rust 程序设计语言简体中文版uninstall 本地文档 安装程序也自带一份文档的本地拷贝,可以离线阅读。运行 rustup doc 在浏览器中查看本地 文档。 任何时候,如果你拿不准标准库中的类型或函数的用途和用法,请查阅应用程序接口 (application programming interface,API)文档! 14/600 Rust 程序设计语言 简体中文版 1 . 2 . H e l l Reference 的常量求值部分。 在声明它的作用域之中,常量在整个程序生命周期中都有效,此属性使得常量可以作为多处代 码使用的全局范围的值,例如一个游戏中所有玩家可以获取的最高分或者光速。 将遍布于应用程序中的硬编码值声明为常量,能帮助后来的代码维护人员了解值的意图。如果 将来需要修改硬编码值,也只需修改汇聚于一处的硬编码值。 隐藏 正如在第二章猜数字游戏中所讲,我们可以定义一个与之前变量同名的新变量。Rustacean 宏相反,后者接收的是引用),打印出代码中调用 dbg! 宏时所在的文件和行号, 以及该表达式的结果值,并返回该值的所有权。 注意:调用 dbg! 宏会打印到标准错误控制台流(stderr ),与 println! 不同,后 者会打印到标准输出控制台流(stdout )。我们将在第十二章 “将错误信息写入标准 错误而不是标准输出” 一节中更多地讨论 stderr 和 stdout 。 下面是一个例子,我们对分配给0 码力 | 600 页 | 12.99 MB | 1 年前3
KCL: Rust 在编译器领域的实践与探索KusionStack是什么? KusionStack架构 KCL KusionStack 是什么? KusionStack 是开源的云原生可编程技术栈! 1. 围绕现代应用程序交付以及使用 OCI 镜像对配置和策略进 行编码和统一 2. 组织应用程序资源,并在整个交付过程中通过身份确保安 全 3.为 Kubernetes 和云精简应用交付工作流,并提供开发友 好的体验 基于 Platform as Code0 码力 | 25 页 | 3.50 MB | 1 年前3
Comprehensive Rust(繁体中文)請注意,如果使用 addr_of!/addr_of_mut! 取得個別欄位的指標,而不建立中繼參照,這種做 法並不安全。 271 53.5.4 開始使用 讓我們編寫一個小程式,使用驅動程式寫入序列控制台,並回應傳入的位元組。 mod exceptions; mod pl011; use crate::pl011::Uart; use core::fmt::Write; use core::panic::PanicInfo; 值,以及進入點、UART 控制台記錄等。 use vmbase::{main, println}; main!(main); pub fn main(arg0: u64, arg1: u64, arg2: u64, arg3: u64) { println!("Hello world"); } • main! 巨集會標記主函式,方便從 vmbase 進入點呼叫。 • vmbase 進入點會處理控制台初始化作業,並在主函式傳回時發出 56.1 RTC 驅動程式 QEMU aarch64 虛擬機器的 PL031 即時時鐘位於 0x9010000。在這個練習中,您應為該時鐘編寫驅動 程式。 1. 使用該時鐘將目前時間顯示至序列控制台。您可以使用 chrono Crate 設定日期/時間格式。 2. 使 用 比 對 暫 存 器 和 原 始 中 斷 狀 態,忙 碌 等 待 至 指 定 時 間,例 如 未 來 3 秒 (呼 叫 迴 圈0 码力 | 358 页 | 1.41 MB | 11 月前3
Comprehensive Rust(繁体中文) 202406請注意,如果使用 addr_of!/addr_of_mut! 取得個別欄位的指標,而不建立中繼參照,這種做 法並不安全。 269 53.5.4 開始使用 讓我們編寫一個小程式,使用驅動程式寫入序列控制台,並回應傳入的位元組。 mod exceptions; mod pl011; use crate::pl011::Uart; use core::fmt::Write; use core::panic::PanicInfo; 值,以及進入點、UART 控制台記錄等。 use vmbase::{main, println}; main!(main); pub fn main(arg0: u64, arg1: u64, arg2: u64, arg3: u64) { println!("Hello world"); } • main! 巨集會標記主函式,方便從 vmbase 進入點呼叫。 • vmbase 進入點會處理控制台初始化作業,並在主函式傳回時發出 56.1 RTC 驅動程式 QEMU aarch64 虛擬機器的 PL031 即時時鐘位於 0x9010000。在這個練習中,您應為該時鐘編寫驅動 程式。 1. 使用該時鐘將目前時間顯示至序列控制台。您可以使用 chrono Crate 設定日期/時間格式。 2. 使 用 比 對 暫 存 器 和 原 始 中 斷 狀 態,忙 碌 等 待 至 指 定 時 間,例 如 未 來 3 秒 (呼 叫 迴 圈0 码力 | 356 页 | 1.41 MB | 1 年前3
Rust HTTP 协议栈在终端通信场景的实践 - 胡凯协议 Rust 对于 HTTP 协议有良好支持: HTTP 协议是以 TCP\TLS\UDP 等各种连接为基础的,非常依赖于高性能的 IO 操作。 利用 Rust 异步实现 HTTP 协议和各种应用程序能得到十分可观的性能提升,并且能降低用户编码的难度。 Rust China Conf 2022 – 2023, Shanghai, China Rust 与 HTTP 协议 借助于 Rust0 码力 | 26 页 | 1.25 MB | 1 年前3
简谈 Rust 与国密 TLS - 王江桐Security,TLS)是一种密码协议,主要目的是在两个或多个通信计算机应用程 序之间提供加密,包括隐私(机密性),完整性和使用证书的真实性。TLS 协议广泛用于电子邮件、即时消息和 IP 语音等应用程序,但它在 HTTPS 方面的使用仍然是最常见的。未通过 TLS 保护的 HTTP 链接通常使用端口 80, HTTPS 则使用端口 443; • 国密 TLS 指使用国密套件的 TLS 协议,包含如下规范:0 码力 | 44 页 | 3.70 MB | 1 年前3
Rust 语言学习笔记了共享内存的方式和相应的锁等机制。 在 rust 中,共享内存主要有两种方式: static 和堆。 7.4.1 static Rust 语言中也存在 static 变量,其生命周期是整个应用程序,并且在内存中 某个固定地址处只存在一份实例。所有线程都能够访问到它。这种方式也是最 简单和直接的共享方式。 use std::thread; static mut VAR: i32 =0 码力 | 117 页 | 2.24 MB | 1 年前3
Hello 算法 1.1.0 Rust版虽然自定义对象(比如链表节点)的成员变量是可变的,但它是可哈希的。这是因为对象的哈希值通常是基 于内存地址生成的,即使对象的内容发生了变化,但它的内存地址不变,哈希值仍然是不变的。 细心的你可能发现在不同控制台中运行程序时,输出的哈希值是不同的。这是因为 Python 解释器在每次启 动时,都会为字符串哈希函数加入一个随机的盐(salt)值。这种做法可以有效防止 HashDoS 攻击,提升哈 希算法的安全性。0 码力 | 388 页 | 18.50 MB | 1 年前3
共 12 条
- 1
- 2













