## Moss:基于Rust的微内核
Moss是一个新的、与Linux兼容的内核,使用Rust和Aarch64汇编构建,专为现代硬件和安全性设计。它利用Rust的async/await模型来防止常见的内核死锁,并具有模块化架构,方便移植到其他平台,如x86_64和RISC-V。
目前,Moss拥有完整的Aarch64支持,一个功能完善的内存管理系统(包括CoW页面),并且由于与Linux用户空间的兼容性,可以运行大多数BusyBox命令。它实现了51个Linux系统调用,一个虚拟文件系统(带有只读FAT32驱动程序),以及基本设备驱动程序。
`libkernel`促进了开发,实现了基于主机的测试。一个全面的230多个测试套件确保了跨架构的功能。用户可以使用QEMU和aarch64-none-elf工具链来构建和运行Moss。
正在进行中的开发重点是扩展系统调用兼容性,实现网络堆栈,以及改进调度器。Moss积极寻求贡献,并以MIT许可证分发。
## Haskell 在 Jupyter 中:IHaskell 与 xeus-haskell
Jupyter notebook 是将 Haskell 集成到数据科学和文档中的标准界面。目前,有两个内核可以实现这一点:**IHaskell** 和 **xeus-haskell**,它们各自采用不同的架构方法。
**IHaskell** 是一个“单体”内核,直接实现 Jupyter 协议并与 GHC 交互。这提供了对 GHC 生态系统的完全访问和原生性能,非常适合 demanding 的数据科学任务。然而,它对 GHC 版本敏感,并且由于 GHC 的依赖管理,安装可能很复杂。
**xeus-haskell** 采用“中间件”方法,将协议处理委托给 Xeus C++ 框架,并将其连接到 MicroHs Haskell 解释器。这简化了安装,并支持通过 WebAssembly 进行客户端执行(例如在 JupyterLite 中),使其适用于交互式文档和演示。然而,它依赖于较小的 MicroHs Haskell 子集,限制了库的兼容性并可能影响性能。
本质上,IHaskell 优先考虑性能和兼容性,而 xeus-haskell 强调可访问性和可移植性。IHaskell 在服务器端、计算密集型场景中表现出色,而 xeus-haskell 在轻量级、客户端应用程序中表现出色。两者都有助于扩展 Haskell 在数据科学生态系统中的应用。
这讲述了历时近两年的3D打印一个功能性机械计算器的过程。最初,作者试图寻找现成的设计,但最终选择从头开始创建,希望构建一个模块化且简单的结构。早期使用基本齿轮设计——十齿齿轮和进位机构——的尝试失败了,原因是齿轮啮合不准确以及对齿轮旋转比率的理解不足。
研究促使作者采用“渐开线齿轮”,这是一种18世纪的最佳齿形,使用CAD库生成。然而,即使改进了齿轮设计,齿轮在轴上打滑的问题仍然存在。最初的修复方法,如卡簧,被证明是临时的。
经过一年半的时间,作者重新审视了这个项目,最终设计采用了旋转销钉以实现牢固的组装。这个改进版本已被证明耐用,作者已在线分享了3D模型和打印说明,将古老技术与现代技术融合在一起。
## 智能眼镜摄像头检测 - 项目总结
该项目旨在开发能够检测智能眼镜(如Meta Ray-Ban)中摄像头的眼镜,以解决日益增长的隐私问题。最初的方法探索了两种途径:通过光反射(“逆反射”)进行光学检测,以及通过蓝牙/Wi-Fi进行网络分析。
光学检测涉及使用红外LED和光电二极管,基于摄像头镜头的反射特性来识别它们。初步测试显示出区分摄像头反射峰值和一般反射的潜力,但实际应用中证明结果不一致且微弱,即使使用不同的波长也是如此。目前正在探索一种有规律的扫描方法以提高信号清晰度。
目前,**蓝牙低功耗 (BLE) 指纹识别是最有希望的方向。** 该眼镜能够在配对、开机以及偶尔在从保护壳中取出时可靠地检测到Ray-Ban,通过唯一的制造商和Service UUID(0x01AB & 0xFD5F)来识别它们。然而,检测正常使用过程中的持续通信仍然很困难,需要比当前硬件(ESP32)所能处理的更深入的数据包分析。计划进一步研究蓝牙经典流量,但这可能需要更复杂(且更昂贵)的硬件。
该项目仍在进行中,未来的工作将集中于完善光学检测的扫描模式,并改进BLE检测能力。