Skip to content

前期调研报告

Author: 许逸凡 PB23000202

往年项目 ArkFS

ArkFS(https://github.com/OSH-2024/ArkFS/) 旨在利用大语言模型提取文本中的关键信息,形成特征向量传递给任务调度层,通过执行对应操作,实现文件系统的自动化操作,同时验证 AIOS 的可行性。

项目框架:

  • 解析层:对自然语言命令的解析
  • 管理层:任务队列的建立
  • 执行层:对目标文件增删,查找,修改
  • 应用层:用户交互界面的设计,实现用户输入、调用流程、展示与筛选等功能

我们可改进的方面:

  • 完善 ArkFS 未实现的功能:如自动摘要生成(长文本文件简明总结);安全隐私保护(敏感信息访问检测,向用户提供访问控制建议)等
  • 优化任务调度算法:提升模型反应速度

nova

Nova(https://github.com/trynova/nova/) 是使用 Rust 编写的新的 JavaScript 引擎,目前尚未完成,通过了 55% 的 test262 测试。

Javascript 引擎发展现状:

  • V8:Google 开发的开源 JavaScript 和 WebAssembly 引擎
    • 不断完善即时编译(JIT)技术,生成更优的机器码序列,减少指令执行时间和内存占用
    • 不断加强安全防护机制,如严格模式的默认启用、同源策略的严格执行、Content Security Policy 的应用
    • 不断优化的垃圾回收算法,引入隐藏类,内联缓存等缓存机制,完成并发标记与清理等方法
  • QuickJS:轻量级 JavaScript 引擎
    • 命令行工具完善:qjs 命令用于直接解释执行 JavaScript 代码,qjsc 命令将 JavaScript 代码编译为二进制文件,方便测试
    • 与 v8 类似的编译技术和垃圾回收算法
  • JavaScriptCore:主要在移动应用开发中占主导地位:在苹果的生态系统中,JavaScriptCore 是 iOS 和 macOS 等平台应用程序的核心组件(e.g,Safari 浏览器、WKWebView 等),为移动应用提供了丰富的交互能力和动态内容呈现

Nova 的主要创新:

  • Data-oriented Design(思想:CPU 读取内存的单位是 cache line,而计算本身比内存访问快得多,因此要尽可能高效地使用 cache line)
  • 尽可能地减少对象的大小,将一般用不到的字段移动到外部哈希表
  • 使用 index 而非指针来表示对象的引用,保证访问的安全性且足够高效
  • 通过 Rust 的所有权和借用系统来保证垃圾回收的安全性

改进方向:Nova 没有 JIT 编译器。JS 代码先编译到字节码,然后在 Nova 虚拟机中解释运行。或许我们可以尝试完成 JIT 编译