Linux 专题介绍,汇总各种 Linux 的基础知识。
介绍
Unix 哲学
- 一切皆文件
- 程序应该只关注一个目标,并尽可能把它做好
- 让程序能够互相协同工作
- 应该让程序处理文本数据流,因为这是一个通用的接口
其他哲学
All problems in computer science can be solved by another level of indirection(摘自)
基础
Linux Kernel
Linux 网络
Linux 硬件
ABI vs EABI
- ABI (Application Binary Interface,应用程序二进制接口):API(应用程序编程接口) 是源代码级别的契约(规定了函数名、参数类型等,给人看的);那么 ABI 就是机器码级别的契约(给 CPU 和操作系统看的)。如果两份代码按照不同的 ABI 编译,它们即使被链接在一起也无法正常运行,必然会导致程序崩溃。
- EABI (Embedded Application Binary Interface,嵌入式应用程序二进制接口) 是 ABI 的一个子集或特例,专门为了**嵌入式系统(Embedded Systems)**量身定制的二进制接口标准。我们在进行单片机、ARM Cortex-M 系列开发时,最常遇到这个词(例如常见的交叉编译工具链
arm-none-eabi-gcc)。
| 对比维度 | ABI (通用标准) | EABI (嵌入式标准) |
|---|---|---|
| 应用场景 | 桌面端、服务器端(Windows, Linux, macOS)。 | 嵌入式开发、微控制器、物联网设备(ARM, PowerPC 等)。 |
| 对操作系统的依赖 | 强依赖。需要系统提供复杂的内存管理、动态库加载等底层支持。 | 无依赖或弱依赖。设计之初就考虑了在没有操作系统的“裸机”上运行。 |
| 内存与性能 | 优先考虑通用性、多进程安全和扩展性,对内存占用不敏感。 | 优先考虑代码密度(体积小)、执行速度和极低的栈内存消耗。 |
| 典型工具链命名 | gcc (本地编译)arm-linux-gnueabi-gcc |
arm-none-eabi-gcc (注意这里的 none 代表没有操作系统) |
相关术语
PDU(Power Distribution Unit)电源分配单元LUKS(Linux Unified Key Setup, Linux统一密钥设置)是由 Clemens Fruhwirth 在 2004 年为 Linux 开发的磁盘加密规范。LUKS 实现了可用于各种工具上的跨平台标准磁盘加密格式,促进了不同工具之间的兼容性和互操作性,确保它们都以安全和统一的方式实施密码管理。gossip 协议(gossip protocol)又称epidemic 协议(epidemic protocol)是基于流行病传播方式的节点或者进程之间信息交换的协议,在分布式系统中被广泛使用,比如我们可以使用 gossip 协议来确保网络中所有节点的数据一样。
其它
翻译
最近更新
最新评论