首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用BPF实现用户态tracing

    BPF是最近Linux内核领域热门的技术。传统的BPF指的是tcpdump命令用于过滤网络包的工具,现在BPF已经得到极大的扩展,不再是Berkeley Packet Filter的缩写对应的简单的网络包过滤工具。 从Kernel 4.9之后,BPF已经成为一个完善的内核扩展工具,BPF在内核里运行一个sandbox,用于执行BPF的字节码(bytecode), 在执行BPF程序前,BPF的检查器会对BPF程序的字节码进行安全检查(比如,指针要先判断不为空后再访问,代码里不能有循环,等等),以保证BPF程序不会导致系统崩溃,因为BPF程序执行时是在内核态。 因此,BPF可以很安全地在内核态执行用户编写的程序,而且有安全保证,这比编写内核模块安全太多了。 正是因为BPF能保证安全,并运行在内核态,可以大大简化很多以前很复杂的事情,目前BPF已经应用于性能分析、网络、安全、驱动、区块链等等领域。

    01

    Python 的 .py 与 Cython 的 .pxd .pyx .pyd 文件格式之间的主要区别

    Python 最常用格式就是 .py (另一较常用格式为 .pyw),由 python.exe 解释,可在控制台下运行。当然,也可用文本编辑器或其它专用 Python IDE (集成开发环境) 工具进行修改。常见情形是,用 Python 快速生成程序原型 (有时甚至是程序最终界面),然后对其中有特别要求的部分,用更合适的语言改写;譬如:3D 游戏中的图形渲染模块,性能要求特别高,就可用 C/C++ 重写,而后封装为 Python 可调用的扩展类库。需要注意的是,在您使用扩展类库时可能需要考虑平台问题,某些扩展类库可能不提供跨平台实现。此外,还可采用 Cython 为 Python 编写 C 扩展。Cython 是编写、包裹外部 C/C++ 库的胶水代码,将 CPython 嵌入现有应用程序、加速 Python 代码执行的理想 C 模块语言。

    03

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券