bafiOS - 高中生编写的裸机操作系统
在 Rust 中从头开始构建的裸机 x86_32 操作系统。
过去几个月我一直在研究这个操作系统,作为我高中最后一年的一个项目,我认为它值得分享。
这是我使用 Rust 的第一个项目,因此代码质量参差不齐 — 有些部分还不错,有些部分看起来像是无限猴子在无限打字机上编写的。
一切都是在没有外部库的情况下构建的,尽管我不太确定它是优点还是缺点,特别是对于 GUI,但我想它可以工作。
该项目提供了一个完整的操作系统环境(bootloader + 内核 + 用户空间),仅使用 Rust 和最少的汇编构建。
当前功能:
- ✅ 引导过程 :自定义 3 阶段引导加载程序
- ✅ 显卡 : VBE 模式,支持 24/32 位颜色
- ✅ 存储 :磁盘访问 (ATA PIO + DMA)
- ✅ 多任务处理 :单核抢占式调度
- ✅ 输入 :PS/2 鼠标和键盘支持
- ✅ 文件 :有效的 Fat16 文件系统实现
- ✅ 安全性 :使用 syscall 进行用户空间分离
- ✅ 界面 :自定义 GUI 库
- ✅ 网络 :通过 RTL8139 驱动程序进行基本连接
- ✅ 程序 :加载动态 ELF 二进制文件
仓库:https://github.com/notBafio/bafiOS
Reddit:https://www.reddit.com/r/rust/comments/1kphaj6/hobby_rust_os/
HelixDB - 用 Rust 构建的快速矢量图数据库
这是一个用 Rust 编写的新数据库,它原生地结合了图和向量类型 (graph and vector types)。
我们构建它主要是为了支持 RAG,其中需要相似性和关系查询。
矢量数据库非常适合语义搜索(例如嵌入),而图形数据库则需要用于表示关系(例如,人员→项目→组织)。某些 RAG 系统需要两者,但将两个单独的数据库组合在一起可能是一场噩梦,而且难以维护。
HelixDB 将向量视为属性图模型中的一等类型。将连接到其他节点的矢量节点视为任何图形数据库,它允许您在一个查询中从人员遍历到他们的文档,再到语义相似的报表。
目前,我们在向量搜索方面与 Pinecone 和 Qdrant 相当,比 Neo4j 快 2 到 3 个数量级。
作为 Rust 开发人员,我们厌倦了大多数查询语言中的类型歧义。因此,我们还构建了 HelixQL,这是一种类型安全的查询语言,可编译成 Rust 代码并作为本机端点运行。遍历是函数式的(如 Gremlin),语言是命令式的,语法是以 Rust 为蓝本的,并受到 Cypher 和 SQL 的影响。它是基于 schema 的,所以一切都是预先进行类型检查的。
我们一直在改进图引擎以支持流水线和并行遍历 - 仅在需要时从磁盘加载数据,并有效地流式传输中间结果。
仓库:https://github.com/HelixDB/helix-db/
Reddit:https://www.reddit.com/r/rust/comments/1kpaok5/helixdb_a_fast_vectorgraph_database_built_in_rust/
文章《async/await versus the Calloop Model》
文章通过对比 async
/await
和 calloop
的设计目标、优势和局限性,展示了它们在不同应用场景中的适用性。async
/await
更适合高性能、多线程的网络应用程序,而 calloop
更适合单线程、事件驱动的 GUI 应用程序。尽管两者可以兼容,但在共享状态方面,calloop
仍然具有独特的优势。
阅读:https://notgull.net/calloop/
Reddit: https://www.reddit.com/r/rust/comments/1kpzuki/asyncawait_versus_the_calloop_model/
ripwc:重写 wc - 比 GNU wc 快 ~49 倍
ripwc 是受 ripgrep 启发的 GNU wc(字数)的高性能重写。ripwc 专为速度和非常低的内存使用而设计,它计算行、字、字节、字符和最大行长度,就像 wc 一样,同时速度更快,并且与 wc 不同具有递归功能。
(注意:根据 Reddit 评论,巨大的加速部分是由于没有进行同类比较的结果,比如没有考虑 wc 的 locale 设置)
仓库:https://github.com/LuminousToaster/ripwc/
Reddit: https://www.reddit.com/r/rust/comments/1kpt3yc/ripwc_a_much_faster_rust_rewrite_of_wc_up_to_49x/
rv: 管理和安装 R 语言包
RV 是一种以可复现、快速且声明式的方式管理和安装 R 包的新工具。
仓库:https://github.com/A2-ai/rv
Reddit: https://www.reddit.com/r/rust/comments/1ko8x58/rv_a_package_manager_for_r/
AIX 上的 IBM Rust SDK
IBM 为其 AIX 操作系统发布了 Rust 1.86.0。它仍然是一个 Tier 3 平台(没有来自 Rust 项目的官方版本),但这是一个巨大的里程碑。它允许通过其 PASE 兼容层在 AIX 和 IBM i (AS/400) 上使用 Rust。
网站:https://www.ibm.com/docs/en/osfroa/1.86.0
Reddit: https://www.reddit.com/r/rust/comments/1kod4d6/ibm_open_sdk_for_rust_on_aix_1860/
--
From 日报小组 苦瓜小仔
社区学习交流平台订阅:
评论区
写评论还没有评论