开发环境
先决条件
在开始之前,您需要在系统上安装Rust的稳定版和夜间版工具链。这可以通过rustup轻松实现:
安装完Rust工具链后,还需要安装bpf-linker。该链接器依赖于LLVM,如果您在Linux x86_64系统上运行,可以使用以下命令构建:
如果您使用的是macOS或其他架构的Linux,则需要先安装最新的稳定版LLVM(例如,通过brew install llvm),然后使用以下命令安装链接器:
要为您的项目生成脚手架,您需要安装cargo-generate,可以通过以下命令安装:
最后,为生成内核数据结构的绑定,您必须安装bpftool,可以从您的发行版获取,或者从源代码构建。
在Ubuntu 20.04 LTS (Focal)上运行?
如果您在Ubuntu 20.04上运行,bpftool和发行版默认安装的内核存在一个bug。为了避免遇到这个问题,您可以安装不包含该bug的更新版本bpftool:
开始一个新项目
要开始一个新项目,可以使用cargo-generate:
这将提示您输入项目名称——在本示例中,我们将使用myapp。它还会提示您选择一个程序类型,以及可能根据选择的类型提供其他选项(例如,网络分类器的附加方向)。
如果您愿意,也可以直接在命令行中设置模板选项,例如:
有关可用选项的完整列表,请参见aya-template存储库中的cargo-generate.toml文件。