Linux内核裁剪及编译
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内核裁剪及编译相关推荐
- linux内核裁剪,编译,移植---目标板FS2410----未完成
现在21:20,争取今天把内核烧进去,应该不难吧..... 先看看内核的裁剪与编译. 基本步骤: 1.建立交叉编译环境,这步在之前已经完成,使用交叉编译工具链:arm-linux-gcc-4.4.3. ...
- [转载]基于ARM的linux内核裁剪与移植
基于ARM的linux内核裁剪与移植 http://bbs.elecfans.com/forum.php?mod=viewthread&tid=185020 wutaimin( 楼主 ) 2 ...
- ARM在嵌入式linux内核裁剪与移植的应用
微处理器用一片或少数几片大规模集成电路组成的中央处理器.这些电路执行控制部件和算术逻辑部件的功能.微处理器与传统的中央处理器相比,具有体积小,重量轻和容易模块化等优点.微处理器的基本组成部分有:寄存器 ...
- linux 脚本裁剪内核,Linux 内核裁剪的自动化方法
Linux 内核裁剪的自动化方法 随着广泛地获得使用并被移植到不同的平台,Linux 内核源代码正在越来越大,比如, Linux 2.6.28 中, 文件数有 25282 个,大小有350M. 对于某 ...
- linux 内核裁剪的具体过程和方法,Linux内核裁剪的具体过程和方法
Linux内核裁剪的具体过程和方法 这是我前段时间自己整的一份,内核功能: 能够完成系统的基本功能,上网,收发邮件等,支持xwindows图形界面. 在menuconfig中配置: 详细介绍内核配置选 ...
- 【华为云技术分享】Linux内核的分布式编译(2)
上一期中我们介绍了用源码包安装distcc的方法,这一期我们尝试用distcc对Linux 4.19.90内核进行分布式编译. 一.Linux内核的分布式编译 我们尝试用同一个子网中的三台服务器对Li ...
- 【华为云技术分享】Linux内核的分布式编译(1)
上一期中我们介绍了Linux内核模块依赖图的绘制方法,这一期中我们将介绍Linux内核的分布式编译方法和分布式编译工具distcc的安装过程. 一.Linux内核的分布式编译 分布式编译是指将源程序通 ...
- 【linux内核-源码编译之centos7】
linux内核-源码编译之centos7 一. 为什么要编译内核 二.疑难杂症 三.演示环境 四.下载源码 4.1.两者源码区别 4.2.将获取到的源码放在/usr/src/kernels/ 下 五. ...
- 编译linux源码报错,记录一次Linux内核源码编译实验
记录一次Linux内核源码编译实验 文章目录 记录一次Linux内核源码编译实验 0. 实验环境 1. 选择.下载内核源码 2. 安装必要的依赖软件以及性能要求 3. 解压.配置和编译内核源码 3.1 ...
最新文章
- 西门子绿色数据中心的“新”境界
- 从Android中Activity之间的通信说开来
- 安装 SharePoint 2013
- JMeter压测笔记
- 遇到联邦计算数据碰撞难题怎么办?不妨试一试PSI
- 力扣645.错误的集合
- FZOJ2110: Star
- 通过编写串口助手工具学习MFC过程——(三)Unicode字符集的宽字符和多字节字符转换...
- avalon2学习教程11数据联动
- python爬虫案例_Python“豆瓣电影TOP250爬虫案例”详解
- CSDN中Markdown格式(编辑器)语法及其使用
- 人类700万年(震撼的极简人类史)
- 2019 中兴秋招笔试题1
- 赖活不如好死?慎选你的死亡方式
- 微信h5页面禁止下拉方法
- 帮我们找房租房买房的代理模式
- c语言程序输入自己班级学号,C语言中设计一个程序就是通过输入学号就能知道班级的程序...
- VIL-SLAM论文翻译:Stereo Visual Inertial LiDAR Simultaneous Localization and Mapping
- 腾讯云 云点播 JAVASDK上传
- 寒假每日一题——两句话中的不常见单词