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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孙金才

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值