2021信创“大比武”鲲鹏基础软件开发赛道
基于Rust语言的openGauss驱动2021信创“大比武”鲲鹏基础软件开发赛道 基于Rust语言的openGauss驱动 目录 1. 背景及要求 2. 方案介绍 3. 遇到的问题 4. 团队简介 3 背景 Rust是一门新兴的系统编程语言 ,专注于安全 ,尤其是并发安全,支持函数式和命令式以及泛型等编程范 式的多范式语言。 openGauss数据库是一款高性能、高安全的数据库,社区支持Rust驱动可以更方便Rust语言开发者更好地基0 码力 | 14 页 | 566.24 KB | 1 年前3
CeresDB Rust 生产实践 任春韶FAQ GitHub : • https://github.com/CeresDB/ceresdb • https://github.com/CeresDB/ceresmeta 钉钉群: 微信公众号: Thank you !0 码力 | 22 页 | 6.95 MB | 1 年前3
KCL: Rust 在编译器领域的实践与探索https://github.com/KusionStack/kcl • https://github.com/KusionStack/konfig Twitter • @KusionStack 微信 钉钉 Thank you!0 码力 | 25 页 | 3.50 MB | 1 年前3
简谈 Rust 与国密 TLS - 王江桐China Conf 2022 – 2023, Shanghai, China • SM9 为标识加密算法(Identity-Based Cryptography),非对称加密,标识加密将用户的标识 (如微信号、邮件地址、手机号码、QQ 号等)作为公钥,省略了交换数字证书和公钥过程,使得 安全系统变得易于部署和管理。提供签名校验,密钥交换,密钥封装与加解密功能。由于以上用 例,可以用于网络安全密码协议,如SSL/TLS。 8446,扩展通用 TLS 1.3,增加国密套件支持,声明 SM4_GCM_SM3 、 SM4_CCM_SM3 以及 SM2 单证书机制在 TLS 1.3 中的使用; • 当前 360 安全浏览器、奇安信可信浏览器等产品已支持 TLCP 协议,部分银行或金融产品仅允许通过 TLCP 协议进行 通信。 国密算法在 TLS 安全协议中的应用 Rust China Conf 2022 – 2023, Shanghai0 码力 | 44 页 | 3.70 MB | 1 年前3
Hello 算法 1.1.0 Rust版到有序数 据。然而,我们通常会使用一种更优雅的方式实现堆排序,详见“堆排序”章节。 ‧ 获取最大的 ? 个元素:这是一个经典的算法问题,同时也是一种典型应用,例如选择热度前 10 的新闻 作为微博热搜,选取销量前 10 的商品等。 8.2 建堆操作 在某些情况下,我们希望使用一个列表的所有元素来构建一个堆,这个过程被称为“建堆操作”。 8.2.1 借助入堆操作实现 我们首先创建一个空 graph)和有向图(directed graph),如图 9‑2 所示。 ‧ 在无向图中,边表示两顶点之间的“双向”连接关系,例如微信或 QQ 中的“好友关系”。 ‧ 在有向图中,边具有方向性,即 ? → ? 和 ? ← ? 两个方向的边是相互独立的,例如微博或抖音上 的“关注”与“被关注”关系。 第 9 章 图 hello‑algo.com 196 图 9‑2 有向图与无向图 根据 ‧ 贪心算法不会考虑过去的决策,而是一路向前地进行贪心选择,不断缩小问题范围,直至问题被解决。 我们先通过例题“零钱兑换”了解贪心算法的工作原理。这道题已经在“完全背包问题”章节中介绍过,相 信你对它并不陌生。 Question 给定 ? 种硬币,第 ? 种硬币的面值为 ?????[? − 1] ,目标金额为 ??? ,每种硬币可以重复选取,问 能够凑出目标金额的最少硬币数量。如果无法凑出目标金额,则返回0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版到有序数 据。然而,我们通常会使用一种更优雅的方式实现堆排序,详见“堆排序”章节。 ‧ 获取最大的 ? 个元素:这是一个经典的算法问题,同时也是一种典型应用,例如选择热度前 10 的新闻 作为微博热搜,选取销量前 10 的商品等。 8.2 建堆操作 在某些情况下,我们希望使用一个列表的所有元素来构建一个堆,这个过程被称为“建堆操作”。 8.2.1 借助入堆操作实现 我们首先创建一个空 graph)和有向图(directed graph),如图 9‑2 所示。 ‧ 在无向图中,边表示两顶点之间的“双向”连接关系,例如微信或 QQ 中的“好友关系”。 ‧ 在有向图中,边具有方向性,即 ? → ? 和 ? ← ? 两个方向的边是相互独立的,例如微博或抖音上 的“关注”与“被关注”关系。 第 9 章 图 www.hello‑algo.com 196 图 9‑2 有向图与无向图 ‧ 贪心算法不会考虑过去的决策,而是一路向前地进行贪心选择,不断缩小问题范围,直至问题被解决。 我们先通过例题“零钱兑换”了解贪心算法的工作原理。这道题已经在“完全背包问题”章节中介绍过,相 信你对它并不陌生。 Question 给定 ? 种硬币,第 ? 种硬币的面值为 ?????[? − 1] ,目标金额为 ??? ,每种硬币可以重复选取,问 能够凑出目标金额的最少硬币数量。如果无法凑出目标金额,则返回0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.0.0 Rust版到有序数 据。然而,我们通常会使用一种更优雅的方式实现堆排序,详见“堆排序”章节。 ‧ 获取最大的 ? 个元素:这是一个经典的算法问题,同时也是一种典型应用,例如选择热度前 10 的新闻 作为微博热搜,选取销量前 10 的商品等。 8.2 建堆操作 在某些情况下,我们希望使用一个列表的所有元素来构建一个堆,这个过程被称为“建堆操作”。 8.2.1 借助入堆操作实现 我们首先创建一个空 graph」和「有向图 directed graph」,如图 9‑2 所示。 ‧ 在无向图中,边表示两顶点之间的“双向”连接关系,例如微信或 QQ 中的“好友关系”。 ‧ 在有向图中,边具有方向性,即 ? → ? 和 ? ← ? 两个方向的边是相互独立的,例如微博或抖音上 的“关注”与“被关注”关系。 第 9 章 图 hello‑algo.com 195 图 9‑2 有向图与无向图 根据所有顶点是否连通,可分为「连通图 ‧ 贪心算法不会考虑过去的决策,而是一路向前地进行贪心选择,不断缩小问题范围,直至问题被解决。 我们先通过例题“零钱兑换”了解贪心算法的工作原理。这道题已经在“完全背包问题”章节中介绍过,相 信你对它并不陌生。 � 给定 ? 种硬币,第 ? 种硬币的面值为 ?????[? − 1] ,目标金额为 ??? ,每种硬币可以重复选 取,问能够凑出目标金额的最少硬币数量。如果无法凑出目标金额,则返回0 码力 | 383 页 | 17.61 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Rust 版有序資料。然而,我們通常會使用一種更優雅的方式實現堆積排序,詳見“堆積排序”章節。 ‧ 獲取最大的 ? 個元素:這是一個經典的演算法問題,同時也是一種典型應用,例如選擇熱度前 10 的新 聞作為微博熱搜,選取銷量前 10 的商品等。 8.2 建堆積操作 在某些情況下,我們希望使用一個串列的所有元素來構建一個堆積,這個過程被稱為“建堆積操作”。 8.2.1 藉助入堆積操作實現 我們首先建 graph)和有向圖(directed graph),如圖 9‑2 所示。 ‧ 在無向圖中,邊表示兩頂點之間的“雙向”連線關係,例如微信或 QQ 中的“好友關係”。 ‧ 在有向圖中,邊具有方向性,即 ? → ? 和 ? ← ? 兩個方向的邊是相互獨立的,例如微博或抖音上 的“關注”與“被關注”關係。 第 9 章 圖 www.hello‑algo.com 196 圖 9‑2 有向圖與無向圖 ‧ 貪婪演算法不會考慮過去的決策,而是一路向前地進行貪婪選擇,不斷縮小問題範圍,直至問題被解決。 我們先透過例題“零錢兌換”瞭解貪婪演算法的工作原理。這道題已經在“完全背包問題”章節中介紹過,相 信你對它並不陌生。 Question 給定 ? 種硬幣,第 ? 種硬幣的面值為 ?????[? − 1] ,目標金額為 ??? ,每種硬幣可以重複選取,問 能夠湊出目標金額的最少硬幣數量。如果無法湊出目標金額,則返回0 码力 | 388 页 | 18.82 MB | 10 月前3
Comprehensive Rust(繁体中文)更符號或轉換到 較小型別時的直觀做法,請檢查文件並加註說明內容。 雖然使用 as 進行型別相當簡單,但是非常容易出錯;舉例來說,如果往後的維護作業改變了所用型別或 型別中值的範圍,這常常就是某些細微錯誤的來源。只有在意圖用於指明無條件截斷時,我們才建議使用 型別轉換。舉例來說,如果無論高位元中的內容為何,您都只需要 u64 的底部 32 位元,就可以使用 as u32。 如果是 u32 到 u64 編寫應用程式處理器的系統啟動載入程式/核心程式碼。 • 一些適用於 Rust 裸機開發的實用 Crate。 在本課程的微控制器部分,我們將使用 BBC micro:bit 第 2 版當做範例。這是以 Nordic nRF51822 微 控制器為基礎的開發板,具備一些 LED 和按鈕、連接 I2C 的加速計和羅盤,以及內建的 SWD 偵錯工具。 如要開始使用,請先安裝稍後需使用的工具。使用 gLinux 或 Debian: sudo 具有優先順序、計時器、網路、USB 功能的 async 執行器 • TockOS – 注重安全性的 RTOS,提供先占式排程功能,並支援記憶體保護單元 • Hubris – Oxide Computer Company 的微核心 RTOS,提供記憶體防護、未具有特權的驅動程式、IPC • FreeRTOS 繫結 • 部分平台提供 std 實作項目,例如 esp-idf。 • RTIC 可視為 RTOS 或並行架構。0 码力 | 358 页 | 1.41 MB | 11 月前3
Comprehensive Rust(繁体中文) 202406更符號或轉換到 較小型別時的直觀做法,請檢查文件並加註說明內容。 雖然使用 as 進行型別相當簡單,但是非常容易出錯;舉例來說,如果往後的維護作業改變了所用型別或 型別中值的範圍,這常常就是某些細微錯誤的來源。只有在意圖用於指明無條件截斷時,我們才建議使用 型別轉換。舉例來說,如果無論高位元中的內容為何,您都只需要 u64 的底部 32 位元,就可以使用 as u32。 如果是 u32 到 u64 編寫應用程式處理器的系統啟動載入程式/核心程式碼。 • 一些適用於 Rust 裸機開發的實用 Crate。 在本課程的微控制器部分,我們將使用 BBC micro:bit 第 2 版當做範例。這是以 Nordic nRF51822 微 控制器為基礎的開發板,具備一些 LED 和按鈕、連接 I2C 的加速計和羅盤,以及內建的 SWD 偵錯工具。 如要開始使用,請先安裝稍後需使用的工具。使用 gLinux 或 Debian: sudo 具有優先順序、計時器、網路、USB 功能的 async 執行器 • TockOS – 注重安全性的 RTOS,提供先占式排程功能,並支援記憶體保護單元 • Hubris – Oxide Computer Company 的微核心 RTOS,提供記憶體防護、未具有特權的驅動程式、IPC • FreeRTOS 繫結 • 部分平台提供 std 實作項目,例如 esp-idf。 • RTIC 可視為 RTOS 或並行架構。0 码力 | 356 页 | 1.41 MB | 1 年前3
共 18 条
- 1
- 2













