make menuconfig:修改、添加内核配置选项,最后生成.config配置文件。

make all:首先编译.config得到没有压缩的内核核心vmlinux,然后将其压缩生成引导过程使用的内核镜像bzImage,最后编译内核选项中相关的module。        压缩过程:首先对vmlinux瘦身(即用objcopy命令删除注释得到vmlinux.bin)并压缩(即用gzip命令压缩vmlinux.bin得到vmlinux.bin.gz),再用ld连接器根据连接脚本arch/i386/boot/compressed/vmlinux.scr将vmlinux.bin.gz转换为piggy.o(该文件包含压缩的系统核心)。        接下来ld连接器会将piggy.o、head.o、misc.o链接生成新的文件vmlinux。(其中misc.o包含zlib算法的解压缩代码C语言的实现,head.o包含的汇编代码用于设置解压程序用到的参数及堆、栈)         然后再调用objcopy命令对vmliux瘦身得到vmlinux.bin(此处的vmlinux.bin是经过压缩的内核核心与前面的vmlinux不一样)。      最后利用内核镜像构建工具arch/i386/boot/tools/build 将bootsect、setup、vmlinux.bin三个文件依次存放到新建的bzImage文件中去。 然后就是编译一些相关的module。

make module_install:安装内核模块。

make install :安装内核     该命令调用了内核目录中的install.sh的shell脚本。该脚本首先将bzImage、System.map复制到/boot目录,并将这两个文件依次改名为vmlinuz-,System.map-。接着调用脚本/sbin/installkernel根据在内核配置、编译阶段生成的内核模块以及模块依赖关系/lib/modules//modules.dep生成引导过程使用的临时根文件系统initrd。最后修改/boot/grub/grub.conf文件、添加新的引导菜单。

linux 2.6内核镜像,Linux2.6内核镜像的构建过程相关推荐

  1. linux中initrd的含义,Linux2.6 内核的 Initrd 机制解析

    1.什么是 Initrdinitrd 的英文含义是 boot loaderinitialized RAM disk,就是由 boot loader 初始化的内存盘.在 linux内核启动前, boot ...

  2. linux 2.6内核进程调度,linux2.6内核进程调度

    Linux2.4内核进程调度的缺陷: Linux2.4 内核的进程调度采用时间片轮转和优先级相结合的调度策略,但存在以下几个致命缺陷: 1>调度算法时间复杂度是 O(n).2.4 内核每次调度都 ...

  3. linux 2.6内核进程调度,Linux2.6内核进程调度系列--scheduler_tick()函数2.更新实时进程的时间片,...

    Linux2.6内核进程调度系列--scheduler_tick()函数2.更新实时进程的时间片, RT /** * 递减当前进程的时间片计数器,并检查是否已经用完时间片. * 由于进程的调度类型不同 ...

  4. linux系统调用劫持隐藏进程,Linux2.6内核中劫持系统调用隐藏进程

    //#include #define CALLOFF 100 //使用模块参数来定义需要隐藏的进程名 int orig_cr0; char psname[10]="looptest" ...

  5. linux2.6内核分析,linux2.6内核分析——LRU链表

    LRU链表 本文转自http://liurugongzi.blog.sohu.com/153648100.html lru链表是统称,细分为:活动链表.非活动链表.链表中存放的是属于进程用户态地址空间 ...

  6. Docker——Dockerfile(构建自己的CentOS镜像和Tomcat镜像)并打包镜像发布上线

    Dockerfile(构建自己的CentOS镜像和Tomcat镜像)并打包镜像发布上线 Dockerfile概述 Dockerfile构建过程 Dockerfile指令说明 实战:构建自己的CentO ...

  7. 测试linux内核镜像,测试Petalinux BSP镜像参考例子

    测试预构建Petalinux镜像 现在,你可以尝试一个预构建参考例.这是通过petalinux-boot 工具来实现的.petalinux-boot可以在物理硬件或者QEMU上启动参考例子. 在硬件上 ...

  8. linux内核镜像的分层,Docker镜像分层的原理详解

    base镜像 base镜像有两层含义: 不依赖其他镜像,从scratch构建 其他镜像可以之为基础进行扩展 所以,base镜像一般都是各种Linux发行版本的Docker镜像,比如:Ubuntu,De ...

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

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

最新文章

  1. 回首向来萧瑟处,也无风雨也无晴~小祁的2018
  2. vuls漏洞扫描工具
  3. JZOJ 5275. 水管
  4. python算法与数据结构-二叉树的遍历
  5. 架构之:微服务和单体服务之争
  6. sleep()和yield()
  7. Java服务GC参数调优案例
  8. android xml黑体字_为 Android 换上任意喜欢的字体,你可以试试这个 Magisk 模块
  9. docker ubuntu镜像_macOS 下使用 Docker 搭建 ubuntu 环境
  10. IE9 以下版本浏览器兼容HTML5的方法,使用的静态资源的html5shiv包:
  11. Too_many_open_files_问题的解决
  12. 水性油墨在纺织品印花中的应用
  13. 压电式加速计matlab,低频压电加速度传感器的噪声特性及信号处理方法研究
  14. 我滴个乖乖,一万三千颗卫星那
  15. MongoDB数据库学习
  16. 英国政府将投资11.4亿英镑部署FTTP和开发5G
  17. matlab第三版第五章课后题答案,Matlab第五章答案
  18. Linux下sopcast
  19. ckeditor使用----跳坑之旅
  20. JAVAWEB-NOTE04

热门文章

  1. python数字分割
  2. 「BJOI 2019」奥术神杖
  3. 【机器学习】LP距离、欧式距离、曼哈顿距离、切比雪夫距离
  4. 机器学习(回归二)——线性回归-最小二乘-代码实现
  5. html常用语义化元素和全局属性整理
  6. java日志系统介绍
  7. 使用idea打包web项目为war
  8. 如何通过事务消息保障抢购业务的分布式一致性?
  9. Linux系统rootfs切换到真正的根文件系统详细源码解析(附工作项目手动制作根文件实例)
  10. 【机器学习】生成式模型和判别式模型