转载:http://emb.hqyj.com/Column/7565.html 1、Linux内核如此庞大(几万个文件),目录又分为很多层,它是如何将各层目录下的文件关联起来的?

linux内核通过层层目录管理,形成了一个树形目录[内核源码树],这是一个树形结构。从数据结构管理方面看,对于一颗非标准树,还是有办法将其进行遍历的,只是算法比较复杂而已。那么在linux内核源码的这棵树,就是 就是通过Kconfig文件建立各层子目录之间的连接,通过Makefile文件来选择各个目录下的对应的文件是否被编译,而.config文件就是总控制台,控制Makefile文件去编译指定的程序代码文件。而这一切控制关系是有Kconfig文件建立起来的。

2、Linux支持如此多的架构(X86、ARM、AVR、mips等等),为何我们在使用某一架构的芯片,比如x210时,其他架构的代码不会被编译?并且同为ARM架构下的其他系列SOC架构相关的代码不被编译?

make xx_defconfig和make menuconfig结合生成正确的.config文件 make xx_defconfig生成一个基础的。默认的.config文件,此文件的内容就包含了架构相关的东西,所以在进行linux内核源码编译时,根据.config文件的基本配置,寻找架构相关的代码进行编译和设置相关的代码进行编译。总之以.config这个控制台为准。 make menuconfig只是为了修改一些驱动模块和要编译的一些程序,没有架构相关。

3、在编译内核前,执行命令:make menuconfig的意义为何? make menuconfig就是以菜单的形式打开内核源码的树形结构,然后程序员在默认配置的基础上自行配置和选择需要编译的模块代码。

其实能做这个工作的命令有很多,比如: •make config:基于文本的最为传统的配置界面,太复杂,不直观,不推荐使用。 •make xconfig:基于图形窗口模式的配置界面,直观明了,Xwindow界面下推荐使用。 •make oldconfig:如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦,可以使用。 •make menuconfig:基于文本选单的配置界面,直观明了,字符终端下推荐使用。

大概好像这几种吧,其实还有一种就是,手动修改.config文件,呵呵!相信基本上没人会去干这种事的。

4.编译内核时,执行命令:make zImage的意义为何? * 目的:生成zImage或者uImage的内核镜像。

当然,有人在疑问了,在编译Firefly的RK3288开发板时,执行的命令是make firefly-rk3288.img ,而不是上面的任何一个,其实这是Firefly修改过的方法了,其实说白了也就是一个名字而已。这个不要太过纠结,想具体了解的话,答案就在Firefly提供的内核源码内。

linux内核和w,Linux内核中Makefile、Kconfig和.config的关系相关推荐

  1. Android 驱动(13)---Makefile, Kconfig和.config关联关系

    Makefile, Kconfig和.config关联关系 Makefile, Kconfig和.config关联关系 第一步,明确Kconfig是配置文件,现在比如要加入新的内核配置,必须在相关Kc ...

  2. Linux内核中Makefile、Kconfig和.config的关系

    转载:http://emb***/Column/7565.html 1.Linux内核如此庞大(几万个文件),目录又分为很多层,它是如何将各层目录下的文件关联起来的? linux内核通过层层目录管理, ...

  3. linux安装软件w,Linux软件安装小结

    一.Linux中软件安装的方式 在Linux中一切皆文件,软件都是由源码编译生成的二进制文件.因此在Linux中安装软件有多种方式,一种是使用软件管理器安装软件,二是使用前端软件管理器安装,三是自行编 ...

  4. 十六.linux开发之Kernel移植——内核的配置和编译原理

    有道云笔记地址: 详情看这里链接,记录太多,就不一一排版了. http://note.youdao.com/noteshare?id=d25dbce79566963e3699574a74048154& ...

  5. Linux内核中makefile有什么作用?深入解析makefile工作过程和原理

    Table of Contents Makefile 中的变量 常用的变量有以下几类: 1) 版本信息 2) CPU 体系结构:ARCH 3) 路径信息:TOPDIR, SUBDIRS 4) 内核组成 ...

  6. Linux内核中Makefile、Kconfig、

    核心:学习过数据结构的童鞋应该知道,对于一棵非标准树,还是有办法将其进行遍历的,只是算法比较复杂而已.那么在Linux内核源码的这棵树,就是通过Kconfig文件建立各层子目录之间的连接,通过Make ...

  7. 解析linux内核中makefile,.config以及Kconfig的作用

    申明,下面这篇文章是原文,本文参考了这篇文章,这篇文章分析得比较透彻,下面是链接. https://zhuanlan.zhihu.com/p/28461589 首先我们要知道makefile文件是什么 ...

  8. Linux内核移植之一:内核源码结构与Makefile分析

    内容来自 韦东山<嵌入式Linux应用开发完全手册> 一.内核介绍 1.版本及其特点 Linux内核的版本号可以从源代码的顶层目录下的Makefile中看到,比如下面几行它们构成了Linu ...

  9. Linux 内核配置机制(make menuconfig、Kconfig、makefile)讲解

    前面我们介绍模块编程的时候介绍了驱动进入内核有两种方式:模块和直接编译进内核,并介绍了模块的一种编译方式--在一个独立的文件夹通过makefile配合内核源码路径完成   那么如何将驱动直接编译进内核 ...

最新文章

  1. 【面试】迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)...
  2. wxWidgets:wxPGProperty类用法
  3. java 组合代码_java实现Composite组合模式的实例代码
  4. recyclerview的数据刷新(下拉刷新和自动加载更多)以及添加提示语(例如:“数据已加载完毕”)
  5. gsoap的几个常用设置选项
  6. java中final是修饰符么_Java final修饰符详解
  7. ClickHouse深度揭秘
  8. bs cs架构区别_软件架构设计分层模型和构图思考
  9. 苹果cms v8模板 高仿爱奇艺带PC+手机模板
  10. Activity的生命周期方面复习笔记
  11. 全球顶级的5个数据可视化案例
  12. OPTEE学习笔记 - IPC
  13. 个人微信支付宝接入GOGO支付免签系统详细教程(图文)
  14. 有情感会说话,虚拟人脸Zoe诞生
  15. String常用方法!
  16. matlab程序模拟微信抢红包,微信红包算法MATLAB实现
  17. 记一次 .NET 某电子病历 CPU 爆高分析
  18. IT研发技能表v3.1
  19. AB PLC协议开发总结
  20. 计算机本科毕业论文外审严格吗,论文外审没过的几大原因

热门文章

  1. Python函数的装饰器,两层装饰器和三层装饰器
  2. 3种Python字典合并方法
  3. python两种生成md5的方法
  4. Python递归算法以及命名空间
  5. python教程:列表(list)、元组(tuple)、字典(dict)
  6. spring resttemplate 中文参数_SpringBoot使用RestTemplate访问第三方接口
  7. pcb成型板aoi检测_缺陷检测 | PCB AOI质量检测之自动定位核选取算法
  8. 浅谈Java虚拟机JVM的垃圾回收机制
  9. 黑马程序员pink老师前端入门教程,零基础必看的JavaScript基础语法视频教程(jQuery1)
  10. NIO源码解析:IntBuffer基本使用