Linux内核配置编译

本文介绍了Linux内核的组成,包括用户空间与内核空间、内核架构及源代码目录。详细讲解了内核配置的原因、方法,如交互式、菜单式配置,并提到了配置文件的保存和使用。接着,文章阐述了内核编译的过程,包括不同类型的编译命令,以及如何制作ramdisk和安装新内核。最后,讨论了清理内核的步骤,以及针对嵌入式系统的内核制作流程。
摘要由CSDN通过智能技术生成

一.内核简介:
1.系统架构
(1)Linux是由用户空间和内核空间构成的
(2)用户空间主要是用户应用程序以及一些C库文件,配置文件。一般是看得见的。
(3)内核空间主要是系统调用接口,狭义上的内核,处理器架构相关的代码。
(4)划分两个空间的理由:处理器有不同的工作模式,不同的模式权限不一样,可以运行的指令不一样。两个空间对应不同的工作模式(操作级别),程序执行的两种不同的状态。可以起到系统保护作用。比如用户空间级别较低,内核空间级别高。
(5)通过系统调用和硬件中断可以在两种空间相互切换。
2.内核架构(狭义上内核,纯代码)
(1)系统调用接口
(2)进程管理(创建进程—fork,exec,停止进程–kill,exit,控制通信—signal,POSIX机制,共享CPU–进程调度)
(3)存储管理(内存分配,回收,控制多个进程安全的共享内存区域)
(4)CPU架构相关代码(为的是提高至移植性)
(5)设备驱动程序
(6)网络协议栈(只是协议,与硬件无关)
(7)虚拟文件系统(隐藏各种文件系统的具体操作细节,提供统一的文件操作接口)
3.源代码目录简介
(1)ARCH:存放体系结构相关的代码。下设子目录,分别对应具体的CPU,每个子目录还有boot,mm,以及kernel三个子目录,分别对应系统引导以及存储管理,和系统调用
(2)documentation:内核文档,包含帮助信息,修改信息等
(3)drivers:设备驱动目录
(4)include:内核所需要的头文件目录。与平台无关的头文件在/include/linux子目录下。平台相关的则放在include相应的子目录中。
(5)fs:存放各种文件系统的实现代码。每个子目录对应一种文件系统。公用的源代码则用于实现VFS。
(6)net:网络协议的实现目录。
(7)管理源代码:SourceInsight软件。
二.内核配置
1.配置原因:根据嵌入式系统软硬件可裁剪的特性,即根据你项目软硬件的实际需求,对内核的相关模块进行裁剪。
2.配置命令:
(1)make config—–》交互式
(2)make menuconfig—-》菜单式
(3)运行配置和编译命令都是在顶层目录进行的。
3.一般要用到的大项
(1)处理器类型(Process type)
–process family
–具体CPU
(2)Networking Suport
(3)Devices Drivers
(4)File Systems
4.利用已存在的配置文件(一般在已存在的Linux系统的/boot目录下),来提高配置效率,一般在arch/$cpu/configs子目录(或者使用默认的配置文件)。
5.<>—对应三种取值方式
(1)*——-编译进uImage(内核映像文件运行在内存里面,一开机就调进内存)
(2)空格—-舍弃不用该功能
(3)M——-编译成模块(.ko)存放在硬盘,等到系统需要的时候再调用,节省内存。
6.[]—–只有两个取值,*和空格。
7.配置结果保存在.config文件,默认情况是隐藏的。
(1)后面的Y对应选择时候的*
(2)M对应选择时候的M
(3)可在menuconfig中选中某一项然后通过help选项可以查看该项在.config文件中的对应项。且是双向对应的,即可以修改.config文件来改变menuconfig的菜单界面的选择。
8.解压tar.xz文件
有两种解压方法:

xz -d **.tar.xz
tar -xv -f **.tar
#######################################################################
tar -Jxv -f **.tar.xz(大写的J)

9.配置当前系统准备升级的内核
(1)备份原来的.config文件
mv ./.config ./.config——bak
(2)复制当前系统配置文件
cp /boot/config-2.6.32-279.el6.i686 ./.config
三.内核编译
1.编译命令
(1)make zImage —–只能用于小于512K的内核
(2)make bzImage —通用性较强
(3)如果想要在编译过程中显示详细信息,则需要在后面加上 V=1选项。
(4)编译好的内核映像文件在/arch/ cpu/boot.1.makemodules2.<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值