宣布社区导向的osquery分支:osql
Mike Myers | 2019年4月18日
engineering-practice, osquery
数月来,Facebook一直在全面重构osquery代码库,将其从CMake等标准开发工具迁移至Facebook内部工具链。他们的本意是提升代码质量、增加测试并转向更模块化的架构。但实际变化导致了对多种架构、操作系统及开源C++社区常用开发工具的支持缺失。
更严重的是,项目的新内向焦点极大延迟了社区贡献的审核—— effectively stalling development of features or fixes for the needs of the community — without a clear end in sight. 由于缺乏路线图或可预测的发布周期,用户对项目的信心下降。企业推迟了原定的osquery部署计划,转而寻找替代方案。
全球许多最安全的组织已投入资源将osquery打造成满足其需求的终极端点管理解决方案。被迫转向其他方案将浪费他们的投资,并使其依赖效果较差的替代品。为此,我们宣布推出社区导向的osquery分支:osql。
osql的目标是什么?
通过osql,我们致力于恢复社区对osquery项目的信心,使开发流程更加开放和可预测,并更快地审核和接受社区贡献。我们的目标是恢复直接的社区参与。
开放透明的开发流程
短期内,osql将作为“软分叉”维护。我们将紧密跟踪Facebook的上游更新,不与代码库分叉。大量已完成的工作仅在上游的Pull Requests中等待。我们准备了一个工作流,osql项目可以通过该流程接受社区认为足够稳定但被上游维护者忽略的Pull Requests。社区可以从这些贡献中选择优先级,并将其纳入osql的下一个版本中。
GitHub上的osql组织将成为社区项目的中心。
持续集成与持续交付
我们还集成了急需的公共CI(使用Azure Pipelines),将在每次提交时构建和运行测试。结果可在此处查看。CI将帮助我们更快、更频繁地构建、测试和发布。我们承诺每月定期发布新的osql二进制(包安装程序)。我们将沟通用户可在下一个版本中预期的变化。他们将知道何时可以期待,并确保下载的版本已通过所有测试。
一目了然地确定最新代码是否在所有平台上构建。
为开发者恢复标准工具支持
我们从头重写了构建系统,将其恢复为CMake——C++社区事实上的项目构建标准。这项努力非同小可,但我们相信这对于保持项目与开源工具链的兼容性至关重要。代表现代C++开发基础的库和工具,如Boost或LLVM/Clang编译器工具链,都原生支持CMake。最常用的第三方库也使用CMake,使得将它们包含在基于CMake的项目中非常容易。
开发者受益于IDE中内置的CMake支持。Visual Studio、VS Code、CLion和QtCreator都可以轻松地从CMakeLists文件打开项目, enabling a precise view of the project’s structure and the outputs of its build process. 他们还将重新获得支持CMake的静态分析器框架的便利,如Clang的scan-build,这有助于发现整个项目中的关键错误。
通过将一切重新围绕CMake构建过程,我们使osql比上游osquery更开发者友好。如果您想亲自体验并开始为osql贡献,请查看构建指南。
在Visual Studio Code IDE中方便地工作, with CMake integration.
osql的下一步计划
我们的工作刚刚开始!我们计划继续改进osql发布的自动化。最初,osql发布将是未签名的二进制/包。项目的下一个优先级是在CI过程中实现安全的代码签名步骤,以便每个发布都是由“osql”组织签名的二进制文件。
osquery项目的构建过程过去允许您选择下载或构建第三方依赖项, thanks to easily modifiable Homebrew formulas. 不仅如此,您还可以选择从何处下载这些依赖项。这对于当前的osquery不再成立,但我们将在osql中恢复该能力(得益于CMake,这项任务变得更容易)。
我们还计划扩展osql的公共CI,使其能够测试针对上游osquery打开的PR。这将帮助社区审核这些PR,并为它们纳入未来osql发布提供一种质量保证。
长期来看,得益于CMake对多种平台构建的支持,osql将能够为社区需求的任何新系统构建。
想要更多?让我们谈谈
当我们最初将osquery移植到Windows时,我们没想到它会变得如此庞大,或超出Facebook单独维护的能力。现在整个社区的组织都在部署和依赖osquery。这就是我们推出osql——社区导向的osquery分支的原因。如果您是这个社区的一部分,并且有兴趣移植到其他平台、需要项目的特殊功能或希望对核心进行一些定制,请加入我们的osquery/osql支持组或联系我们!
如果您喜欢这篇文章,请分享:
Twitter | LinkedIn | GitHub | Mastodon | Hacker News
页面内容
osql的目标是什么?
开放透明的开发流程
持续集成与持续交付
为开发者恢复标准工具支持
osql的下一步计划
想要更多?让我们谈谈
近期文章
我们构建了MCP始终需要的安全层
利用废弃硬件中的零日漏洞
Inside EthCC[8]:成为智能合约审计员
使用Vendetect大规模检测代码复制
构建安全消息传递很难:对Bitchat安全辩论的 nuanced take
© 2025 Trail of Bits.
使用Hugo和Mainroad主题生成。