第三十九天:linux内核裁剪

培训的第四阶段:通过编写驱动,从应用层,内核层,再到底层硬件之间的关系。明白内核驱动的意义。现在开始才是重头戏,前面的都是铺垫。     

  正式编写驱动前,要先了解linux内核代码的组成。linux主要是由五个子系统组成:进程调度,内存管理,文件系统,网络接口以及进程间通信。linux源代码用来实现这些功能,linux源码包在source_code目录下的linux-3.5-20131028.tgz,将其解压,进入目录下,在下面是linux源码截图:

  

  这里面最重要的是Makefile,这个文件中包含了许多linux内核配置的信息,我们Linux内核要编译的平台,交叉编译器的选择,编译链接Linux内核的参数,等等。

  arch目录中包含于体系结构有关的子目录和文件,arm的相关平台信息在arch/arm目录下。

  scripts目录中存放着对核心配置的脚本文件。

  crypto目录中包含着常见的加密算法。

  drivers目录包含各种各样的驱动,包括字符型,快型,网络设备驱动程序。

  fs目录中包括了linux系统所支持的文件系统类型,比如ext4 nfs

  init目录中存放着与linux内核相关的启动代码。

  kernel目录中包含许多linux进程调度子系统相关的源代码。

  lib目录存放linux内核所用的库文件。

  mm目录存放linux内存管理的源代码。

  net目录存放有关网络协议的源代码。

 

  linux源码数量庞大,需要一个工具来管理,方便我们来查找,这个工具就是ctags 。

 

 执行上面一条命令后,会生成tags的文件。使用vim 任意打开一个文件。在命令模式下 输入 ta + 要查找的函数。

下面是使用内核裁剪的步骤:

  首先是编译内核:

   (1): 先把原先编译的删除

   

   (2) : 继续删除配置文件

    

           (3) :将平台的配置文件拷贝到源码目录下的 .config  ,  .config文件是在进行内核配置的时候,经过配置后生成的内核编译参考文件。

   原本是要执行  cp arch/arm/configs/exynos4_defconfig .config

   因为友善之臂在源码目录下提供了他们更改过的,这时候我们就用这个

  

  (4):编译

  

  经过漫长的等待,linux内核镜像就会出现在arch/arm/boot/ 目录下,其中Image是就是linux内核镜像,zImage是压缩过的linux内核镜像。

    现在编译的是没有裁剪过得内核,使用 make menuconfig 就可以通过图形界面来裁剪内核。把不需要的模块前面的*去掉,就能实现内核的裁剪。相当的方便。

  

  选择保存退出后 再次执行 make 就能生成编译过后的镜像文件了。

     Linux 内核源码树的每个目录下都有两个文档Kconfig和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个 Kconfig分别描述了所属目录源文档相关的内核配置菜单。在执行内核配置make menuconfig时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文档中。在内核编译时,主Makefile调用这 个.config,就知道了用户的选择。这个内容说明了,Kconfig就是对应着内核的每级配置菜单。

  

    

 

  • 15
    点赞
  • 80
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Linux网络体系结构: Linux内核中网络协议的设计与实现》这本书主要介绍了Linux操作系统内核中网络协议的设计和实现。 首先,这本书从网络协议栈的层次结构出发,详细讲解了Linux内核中网络协议的各个层次。网络协议栈包括物理层、数据链路层、网络层、传输层和应用层。通过深入分析每个层次的功能和作用,读者可以全面了解整个网络协议栈的工作原理。 其次,作者对Linux内核中网络协议的设计原理进行了深入解析。例如,作者介绍了Linux内核中网络协议的处理流程,包括数据包的接收与发送、路由选择、数据包的转发等。同时,作者还探讨了Linux内核中网络协议的数据结构和算法,以及与其他模块的协作关系。 另外,这本书还涵盖了Linux网络设备驱动程序的开发与调试。作者详细阐述了Linux内核中网络设备驱动程序的结构和工作原理,并引导读者进行网络设备驱动程序的开发与调试。这对于想要深入了解Linux网络协议栈内部工作机制的读者来说,是非常有价值的内容。 总体来说,《Linux网络体系结构: Linux内核中网络协议的设计与实现》这本书通过深入分析Linux内核中网络协议的设计和实现细节,为读者提供了全面的知识体系。无论是对于想要深入学习Linux网络协议的专业人士,还是对于对网络协议感兴趣的普通读者,这本书都是一本极具参考价值的读物。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值