Linux内核裁剪及编译可加载模块

一 Linux基础知识

linux内核组要由五个子系统组成:

进程调度
内存管理
文件系统
网络接口
进程间通信

Linux源码目录
arch    目录中包含于体系结构有关的子目录和文件,arm的相关平台信息在arch/arm目录下。
scripts    目录中存放着对核心配置的脚本文件。
crypto    目录中包含着常见的加密算法。
drivers    目录包含各种各样的驱动,包括字符型,快型,网络设备驱动程序。
fs    目录中包括了linux系统所支持的文件系统类型,比如ext4 nfs
init    目录中存放着与linux内核相关的启动代码。
kernel    目录中包含许多linux进程调度子系统相关的源代码。
lib    目录存放linux内核所用的库文件。
mm    目录存放linux内存管理的源代码。
net    目录存放有关网络协议的源代码。

二 Linux源码编译

1 在编译之前首先使用make clean, make distclean清除原编译和配置文件

2 找到运行平台(arm)下面的配置文件拷贝到源码目录一命名为 .config,.config文件是在进行内核配置的时候,经过配置后生成的内核编译参考文件,命令如下cp arch/arm/configs/exynos4_defconfig .config

3 拷贝完成之后就可以运行make命令,这个过程要等很久.

4 编译完成之后就会在arch/armboot目录下生成zImage,生成的这个文件就是linux镜像,之后我们就可以使用linux的镜像文件了.

三 Linux内核裁剪

以上编译的是没有裁剪过linux源码,如果我们不想使用源码里面的部分功能,我们就可以通过裁剪的方式阻止它编译:
    在linux源码包中我们可以使用make menuconfig,图形化界面很容易操作;如果不想使用它的某些功能,取消前面*即可,按空格键来控制选择. 就可以进行linux源码的裁剪. 选择完成之后就可以保存退出,执行make.

四 编译可加载模块

内核模块是Linux内核向外部提供的一个插口,其全称为动态可加载内核模块(Loadable Kernel Module,LKM), 我们简称为模块,模块是具有独立功能的程序,它可以被单独编译,但不能独立运行。它在运行时被链接到内核作为内核的一部分在内核空间运行,这与运行在用户空间的进程是不同的。模块通常由一组函数和数据结构组成,用来实现一种文件系统、一个驱动程序或其他内核上层的功能。

总之,模块是一个为内核(从某种意义上来说,内核也是一个模块)或其他内核模块提供使用功能的代码块.

Linux内核模块是一种可被动态加载和卸载的可执行程序。通过内核模块可以扩展内核功能,内核模块通常用于设备驱动、文件系统等。如果没有内核模块,需要向内核添加功能就需要自发代码、重新编译内核、安装新内核等步骤;

Linux内核裁剪及编译相关推荐

  1. linux内核裁剪,编译,移植---目标板FS2410----未完成

    现在21:20,争取今天把内核烧进去,应该不难吧..... 先看看内核的裁剪与编译. 基本步骤: 1.建立交叉编译环境,这步在之前已经完成,使用交叉编译工具链:arm-linux-gcc-4.4.3. ...

  2. [转载]基于ARM的linux内核裁剪与移植

    基于ARM的linux内核裁剪与移植 http://bbs.elecfans.com/forum.php?mod=viewthread&tid=185020  wutaimin( 楼主 ) 2 ...

  3. ARM在嵌入式linux内核裁剪与移植的应用

    微处理器用一片或少数几片大规模集成电路组成的中央处理器.这些电路执行控制部件和算术逻辑部件的功能.微处理器与传统的中央处理器相比,具有体积小,重量轻和容易模块化等优点.微处理器的基本组成部分有:寄存器 ...

  4. linux 脚本裁剪内核,Linux 内核裁剪的自动化方法

    Linux 内核裁剪的自动化方法 随着广泛地获得使用并被移植到不同的平台,Linux 内核源代码正在越来越大,比如, Linux 2.6.28 中, 文件数有 25282 个,大小有350M. 对于某 ...

  5. linux 内核裁剪的具体过程和方法,Linux内核裁剪的具体过程和方法

    Linux内核裁剪的具体过程和方法 这是我前段时间自己整的一份,内核功能: 能够完成系统的基本功能,上网,收发邮件等,支持xwindows图形界面. 在menuconfig中配置: 详细介绍内核配置选 ...

  6. 【华为云技术分享】Linux内核的分布式编译(2)

    上一期中我们介绍了用源码包安装distcc的方法,这一期我们尝试用distcc对Linux 4.19.90内核进行分布式编译. 一.Linux内核的分布式编译 我们尝试用同一个子网中的三台服务器对Li ...

  7. 【华为云技术分享】Linux内核的分布式编译(1)

    上一期中我们介绍了Linux内核模块依赖图的绘制方法,这一期中我们将介绍Linux内核的分布式编译方法和分布式编译工具distcc的安装过程. 一.Linux内核的分布式编译 分布式编译是指将源程序通 ...

  8. 【linux内核-源码编译之centos7】

    linux内核-源码编译之centos7 一. 为什么要编译内核 二.疑难杂症 三.演示环境 四.下载源码 4.1.两者源码区别 4.2.将获取到的源码放在/usr/src/kernels/ 下 五. ...

  9. 编译linux源码报错,记录一次Linux内核源码编译实验

    记录一次Linux内核源码编译实验 文章目录 记录一次Linux内核源码编译实验 0. 实验环境 1. 选择.下载内核源码 2. 安装必要的依赖软件以及性能要求 3. 解压.配置和编译内核源码 3.1 ...

最新文章

  1. 西门子绿色数据中心的“新”境界
  2. 从Android中Activity之间的通信说开来
  3. 安装 SharePoint 2013
  4. JMeter压测笔记
  5. 遇到联邦计算数据碰撞难题怎么办?不妨试一试PSI
  6. 力扣645.错误的集合
  7. FZOJ2110: Star
  8. 通过编写串口助手工具学习MFC过程——(三)Unicode字符集的宽字符和多字节字符转换...
  9. avalon2学习教程11数据联动
  10. python爬虫案例_Python“豆瓣电影TOP250爬虫案例”详解
  11. CSDN中Markdown格式(编辑器)语法及其使用
  12. 人类700万年(震撼的极简人类史)
  13. 2019 中兴秋招笔试题1
  14. 赖活不如好死?慎选你的死亡方式
  15. 微信h5页面禁止下拉方法
  16. 帮我们找房租房买房的代理模式
  17. c语言程序输入自己班级学号,C语言中设计一个程序就是通过输入学号就能知道班级的程序...
  18. VIL-SLAM论文翻译:Stereo Visual Inertial LiDAR Simultaneous Localization and Mapping
  19. 腾讯云 云点播 JAVASDK上传
  20. 寒假每日一题——两句话中的不常见单词

热门文章

  1. java 方法泛型_Java基础学习,什么是泛型概念,使用泛型有哪些好处?
  2. Backbonejs之view的基本用法
  3. 数据库知识点2——关系模型之基本概念
  4. Windows 技术篇-利用telnet方法ping端口通不通实例演示,如何测试服务器端口是否启用,windows启用telnet功能
  5. first-child伪类选择器没有效果(不起作用)
  6. 霍尔传感器测量转向的方法
  7. flipdim--按指定维数翻转矩阵
  8. 用界面读取图片并且保存图片的方法
  9. 2.2.3 动量梯度下降法
  10. 信号处理之filter去噪