linux内核编译

xiaoxiao2021-02-27  207

内核设计风格:

微内核:windows,solaris(支持真正的线程)单内核:linux(用LWP模拟线程)

linux内核 = 核心 + 内核模块ko(kernel object) 核心/boot/vmlinuz可以动态加载/lib/modules/version/*.ko,所以初始化的时候是内核核心的初始化;

用户和内核通信的方式:

/proc, 伪文件系统/proc/sys:此目录中的文件很多是可读写的/sys:某些文件可写 ### 设定内核参数的方法: # echo VALUE > /proc/sys/xxx # sysctl -w kernel.hostname=hello #此方法可以省略/proc/sys前缀, ### 这两种方式能立即生效但不是永久有效,如果想永久生效,需要修改/etc/sysctl.conf,使用sysctl -p立即生效,使用sysctl -a显示所有内核参数

内核模块管理:

lsmod #查看当前系统加载的模块 modinfo #查看模块的具体信息 insmod /PATH/TO/MODULEFILE #装载模块 modprobe MODULENAME #自动到modules文件目录下查找并装载模块 modprobe -r MODULENAME #卸载模块 rmmod MODULENAME #卸载模块 depmod /PATH/TO/MODULESDIR #生成依赖关系文件

编译内核:

内核中的功能除了核心功能之外,在编译时,大多数功能有三种选择:

不使用此功能[ ];编译成内核模块[M];编译进内核[*];

编译过程

2.1 定制内核

### 3种定制内核命令: ###A. Gnome桌面环境使用,需要安装图形开发库组:GNOME software development # make gconfig ###B. KDE桌面环境使用 # make kconfig ###C. 文本图形库 # make menuconfig 生成.config文件

2.2 编译

# make #等待较长时间

2.3 安装模块

# make modules_install

2.4安装内核

# make install

2.5 二次编译清理

# make clean # make mrproper #比clean清理的更彻底,注意备份配置文件

注意: 如果想使用远程连接编译内核,建议使用screen,否则一旦连接断开内核编译将被终止 screen命令: screen -ls:显示已经建立的屏幕 screen:直接打开一个新的屏幕 ctrl+a, d:剥离屏幕 screen -r ID:还原回某屏幕 exit:退出

转载请注明原文地址: https://www.6miu.com/read-9699.html

最新回复(0)