Filnix Fil-C Nix
4 months ago
- #Nix
- #memory-safety
- #C-programming
- Fil-Pizlo开发的Fil-C是一种内存安全的C/C++实现,无需修改代码或使用不安全的后门,即可防止释放后使用、越界访问和类型混淆问题。
- Fil-C中的每个指针都携带隐藏的能力元数据(边界+类型),所有访问都会经过检查。其并发垃圾回收机制能有效预防释放后使用错误。
- Fil-C可运行OpenSSH、CPython、curl、SQLite、Emacs等100多种程序,充分证明其实际应用价值。
- `runfilc`命令能单行编译运行C代码,当检测到内存安全违规时,Fil-C会提供带有详细错误信息的报告。
- 该代码库将Fil-C打包为可复现的Nix派生项,支持模块化构建,并能与Nix生态系统集成。
- lighttpd演示项目构建了完整的内存安全Web栈,包括用bash和C编写的CGI脚本,Fil-C会拦截越界访问尝试。
- 实验项目包含用内存安全工具构建的最小化'Linux发行版',支持通过Docker、systemd-nspawn或QEMU虚拟机运行。
- 已移植的非官方软件包包括lighttpd、nethack、wasm3等,技术细节详见`ports/analysis.md`文件。
- `ports.nix`文件采用领域专用语言进行软件移植,未来目标是让大部分Nixpkgs能自动适配Fil-C运行环境。