内核组成、内核优化、内核编译步骤:开发环境、硬件信息、展开到源码树、内存特性设定、编译

屏幕:在一个终端上,为多个进程,开启多个使用接口。

何谓交叉编译:目标代码非当前平台


    有10天没有学习了,去做了LFS,当然得感谢我"瑞哥",学习Linux的导师,www.mykernel.cn , 要不是他告诉我说,选对发行版本LFS手册很关键,否则很难一次成功的。

前3天就是不懂,好不容易编译到gcc,呀!失败了,.....

    心得:体验就够了,没有必要花时间在LFS制作之上,完全浪费时间。

    1、选对内核

    2、选对LFS

    3、没有什么难度,复制->运行,重复即可

    4、CentOS 6.9 LFS Version 8.0-rc1

谢烟客---------Linux之内核编译及LFS制作_第1张图片


内核组成

.ko文件 /lib/modules/$(uname -r)/

bzImage格式 /boot/vmlinuz-VERSION-RELEASE


内核优化:只在内核中编译内核必须的功能,用不到的功能在内核中越少越好

    1)消耗更少的内存

    2)内核体积小

    3)运行速度快


编译内核目的

    1、添加新功能:发行商提供内核的功能不完善

    2、添加新驱动:为硬件添加新的驱动


编译内核的步骤


1、开发环境

wKioL1myd_myzSU2AAAIaO2Ad3o478.png


2、硬件信息

谢烟客---------Linux之内核编译及LFS制作_第2张图片

    **可以试试, -v 或 -vv选项**


3、展开至源码目录

wKiom1myhrWCh3AdAAAZYe74fAk813.png


4、配置内核选项

谢烟客---------Linux之内核编译及LFS制作_第3张图片


5、安装

谢烟客---------Linux之内核编译及LFS制作_第4张图片


使用示例

1、新建SESSION

wKiom1myghHxWm2TAAAGGmls-eM394.png


2、关闭SESSION

wKiom1mygoPRmucrAAAEUgUYu8Y067.png

wKiom1mygoOBaYUkAAAGIuGMUVI535.png


3、剥离SESSION

wKioL1mygxzTFJVYAAACEdu-toE520.png

wKioL1mygx2Awmr6AAAESmQHaeU565.png

wKiom1mygz-Sp3JjAAACssVDc9A941.png


4、显示SESSION

wKiom1myhILAImiCAAACTFheaNw752.png


5、连接SESSION

wKioL1myhSCjJYnNAAAClM7qrbs709.png

wKiom1myhV7BGhtLAAADIl93-Dc779.png



编译后生成的文件: .ko

    .c --> .o --> .ko

源码.c --> 编译 --> 目标代码 --> 汇编 --> 目标平台的代码(.o) --> 链接 --> .ko


普通编译: 目标平台的代码,为编译平台

交叉编译:目标平台的代码,非编译平台

wKioL1myf6KxXFRdAAAeP0eMMOc098.png