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