Linux的核心编译,kernel

阅读更多

Linux的核心(kernel)

1 Linux就是指kernel

2 kernel负责整个硬件的驱动,和提供各种核心功能

3 kernel是一个文件,一般放置在/boot/vmlinuz-$(uname -r)

   此文件包含各项硬件侦测程序和驱动模块

4 核心模块(kernel module),有些功能没有集成在核心中,编译成模块以便核心随时加载

   放置路径/lib/modules/$(uname -r)/kernel/

5 核心的版本,主版本.次版本.发布版本-修改版本

6 最新稳定版核心源代码下载地址,http://www.kernel.org/

7 建议将核心源代码放置在/usr/src/kernels/下

 

核心源代码编译步骤 

1 清除环境,第一次编译用make mrproper,以后可以用make clean

2 选择核心功能,make XXconfig,生成.config文件,此步最复杂且重要

3 编译核心,make bzImage

4 编译模块,make modules

5 安装模块,make modules_install

6 安装核心,将核心文件bzImage和核心功能列表文件.config,移动并改名到/boot/路径下

7 新建相应的initrd文件,mkinitrd

8 编辑开机菜单,设置grub

 

核心源代码编译命令

make mrproper

删除以前的目标文件,也删除以前的核心功能选择文档

只有第一此执行编译前使用此命令

make clean 删除以前编译生成的目标文件
make XXconfig

挑选核心功能,生成.config文件,核心功能列表文件

/boot/config-$(uname -r)就是已经设置完成的文件

make vmlinux 生成未经压缩的核心
make modules 生成仅核心模块
make bzImage 生成经过压缩的核心(预设)
make all 进行make mlinux,make modules,make bzImage
make modules_install 将模块放置到/lib/modules/$(uname r)路径下

mkinitrd

新建initrd文件

 

make XXconfig挑选核心功能多种方法

make menuconfig 文本模式下显示类似图形接口,来选择列表
make oldconfig

通过已存在的./.config,使用该文件内的设定值为默认值

只将新版本核心内的新功能选项让用户选择

make xconfig 通过Qt图形接口的图形化显示,需要X window支持
make gconfig 通过Gtk图形接口的图形化显示,需要X window支持
make config

每个项目一条一条的列出供用户选择

如果设定错误,只能再次从头选择,不常用

 

make XXconfig具体选项

General setup 一般性设置,可以设置核心的新版本
Enable loadable module  支持动态模块
Enable the block layer 支持block设备的功能
Processor type and features cpu类型与功能选择
Power management and ACPI options 电源管理功能
Bus options(PCI etc.) 总线相关选项,支持PCI和PCI-E
Executable file formats/Emulations 编译后执行文件格式
Networking support 核心网络功能,包括防火墙
Device Drivers 硬件设备驱动
Firmware Drivers 固件驱动
File system 文件系统支持
Kernel hacking 核心黑客,与核心开发者相关
Security options 信息安全方面设定
Cryptographic API 加密API的设定
Virtualization 虚拟化设置
Library routines 函数库设置

 

核心源代码目录

arch

与硬件平台相关,主要指cpu类别

block 与存储媒介相关,主要指磁盘分区等
crypto 核心支持的加密技术
Documentation 核心说明文档
drivers  硬件驱动 
firmware  固件数据 
fs  核心所支持的文件系统
include  头文件 
init  核心初始化的定义功能 
ipc  定义系统内各程序的沟通 
kernel  定义核心的程序,核心状态,线程,程序排程,程序信号等
lib  函数库 
mm 与内存单元相关的各项数据,包括swap与虚拟内存
net 与网络相关的各项协议数据,防火墙模块等
security 与安全方面相关的设定
sound 与音效相关的各项模块
virt 与虚拟化相关的信息

 

你可能感兴趣的:(Linux的核心编译,kernel)