< 返回版块

苦瓜小仔 发表于 2025-05-19 16:30

Tags:日报

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/awaitcalloop 的设计目标、优势和局限性,展示了它们在不同应用场景中的适用性。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 日报小组 苦瓜小仔

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页