Ryo's blog

归档 · 2022

首页

关于

归档

LLVM

LLVM编译器基础知识

一、基础概念1.1 Interpreter 和 Compile Interpreter 解释器 Compile 编译器 程序步骤 1、创建代码 2、没有文件链接或机器代码生成 3、源语句在执行过程中逐行执行 1、创建代码 2、将解析或分析所有语言语句的正确性 3、将把源代码转换为机器码 4、链接到可运行程序 5、运行程序 Input 每次读取一行 整个程序 Output 不产生任何的中间代码 生成中间目标代码 工作机制 编译和执行同时进行 编译在执行之前完成 存储 不保存任何机器代码 存储编译后的机器代码在机器上 执行 程序执行是解释过程的一部分,因此是逐行执行的 程序执行与编译是分开的,它只在整个输出程序编译后执行 生成程序 不生成输出程序,所以他们在每次执行过程中都要..

更多
Linuxebpf

《eBPF 核心技术与实战》

概览eBPF 是什么呢? 从它的全称“扩展的伯克利数据包过滤器 (Extended Berkeley Packet Filter)” 来看,它是一种数据包过滤技术,是从 BPF (Berkeley Packet Filter) 技术扩展而来的。 BPF 提供了一种在内核事件和用户程序事件发生时安全注入代码的机制,这就让非内核开发人员也可以对内核进行控制。随着内核的发展,BPF 逐步从最初的数据包过滤扩展到了网络、内核、安全、跟踪等,而且它的功能特性还在快速发展中,这种扩展后的 BPF 被简称为 eBPF(相应的,早期的 BPF 被称为经典 BPF,简称 cBPF)。实际上,现代内核所运行的都是 eBPF,如果没有特殊说明,内核和开源社区中提到的 BPF 等同于 eBPF。 tcpdump 和 BCC 之所以..

更多