Linux内核编程知识集锦
编译内核
下载源码
1 |
git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git |
根据需要,切换分支。
安装工具
1 |
apt install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison |
配置内核
你也可以手工直接编辑.config文件。每个选项都可以设置以下值之一:
取值 | 说明 |
y | 将相应特性构建到内核中 |
n | 不包含此特性 |
m |
构建为模块,这样可以按需加载 注意:
|
12 years ago
0
Linux进程间通信
管道
当从一个进程连接数据流到另外一个进程时,使用术语“管道”。通常是把一个进程的输出通过管道连接到另外一个进程的输入。Shell命令通过管道字符可以实现命令的连接:
1 2 3 4 5 |
cmd1 | cmd2 #cmd1的标准输入来自终端键盘 #cmd1的标准输出传递给cmd2,作为它的标准输入 #cmd2的标准输出连接到终端屏幕 |
popen函数
Linux提供了类似的API,允许通过编程的方式,利用管道在两个程序之间传递数据。在两个程序之间进行数据传递的最简单方式是使用popen/pc…
阅读全文
15 years ago
0
Linux信号、进程和会话
进程
进程和信号是Linux操作环境的基础部分,控制着Linux和其它类UNIX系统的几乎所有活动。
UNIX标准对进程的定义:其中运行着一个或者多个线程的地址空间,以及这些线程需要的系统资源。Linux系统的进程是非常轻量级的。
进程基础知识
每个Linux进程…
阅读全文
15 years ago
0
Linux编程知识集锦
库
共享对象
共享库(Shared libraries),在程序执行起始时被自动加载(而非执行过程中随时动态加载)。在链接阶段,必须有共享库才能链接。
使用共享库时,运行时加载的库,应当与链接时期望的库的“版本”一致,即功能上没有不兼容的变化。二进制…
阅读全文
15 years ago
0
Linux IO编程
文件访问
Linux系统中每个运行的进程,具有与之关联的文件描述符,通过这些描述符可以访问打开的文件或者设备。当一个进程打开时,一般会有三个已经打开的文件描述符:
描述符 | 说明 |
0 | 代表标准输入 |
1 | 代表标准输出 |
2 | 代表标准错误 |
系统调用
下表是与文件访问有关的系统调…
阅读全文
15 years ago
0
Linux网络知识集锦
网络编程
参考:
Bonding
网络接口绑定(Network Interface Bonding)是Linux下的一项技术,它能够将多块物理网卡绑定为单一的逻辑网卡,从而实现:
- 带宽增加
- 提供容错能力,防止一根网线损坏的情况
也叫Teaming、 Link Aggr…
阅读全文
18 years ago
0
1