FTL 是一种轻量级容器架构,其中每个容器都运行一个以共享库形式实现的用户态操作系统。它提供与 Linux 兼容的功能,如进程、VFS、网络和系统调用;同时,精简的 FTL 内核负责提供虚拟 CPU、内存、进程管理、信号、驱动程序和 `/dev` 等核心服务。 这种设计结合了微内核的灵活性与安全性,以及单体内核的简单性与性能。其目标是实现虚拟机级隔离、高安全性和轻量级容器的高效运行。由于操作系统运行在用户态,开发者无需修改内核或使用 eBPF,即可扩展 Linux 功能,从而快速更新、添加 `printf` 等调试功能、应用安全补丁和实现自定义能力。
C++ Insights 是一个基于 Clang 的源到源转换工具,能够将编译器的隐式行为呈现为 C++ 代码。它可以揭示编译器生成的特殊成员函数、构造函数调用、赋值、运算符使用、类型转换、继承关系调整,以及 `auto` 和 `decltype` 背后的推导类型。它还能够展开 lambda 表达式、范围式循环和结构化绑定等复杂语法结构。
该工具使用 Clang 的 AST,目标是将源代码转换为可编译的代码,但某些上下文无法被完全准确地还原。它主要面向现代 C++ 标准,并持续提供包括 C++20 在内的新特性支持。
C++ Insights 可以通过 CMake/Ninja 独立构建,也可以直接集成到 LLVM/Clang 源码树中。典型用法如下:
```bash
insights file.cpp -- -std=c++17
```
系统头文件路径可能需要通过 `scripts/getinclude.py` 获取,也可以使用 `--gcc-toolchain` 指定自定义的 GCC 安装。该项目还提供在线使用方式、Docker、Homebrew、编辑器扩展和 Shell 自动补全。文档、构建选项、演讲、视频和贡献机会可通过其 GitHub 项目及相关资源获取。