From: 全面解析Linux 内核 3.10.x - 本文章完全基于MIPS架构

2015年的第一场雪,比以往时候来的更早一些 - 凛冬将至

1、内核最终呈现给我们的形态什么?

万事万物都有它最原始的形态,也有它千变万化的形态!但万变不离其宗,同根同源!

a、内核镜像的几种分类?

大概分为2类:
1.elf 格式镜像(原始)
vmlinux – 编译后生成的最原始的内核镜像(默认包含所有的符号信息,故而比较大)
vmlinxz – 为压缩格式
2.Image 格式镜像(objcopy转化过的二进制格式)
Image – vmlinux 通过objcopy 转化过的二进制文件,未压缩
zImage – 压缩文件,是由vmlinux(去掉符号信息的) + 解压代码通过gzip压缩而成
bImage – big zImage,表示压缩强度比zImage高,内容一样
uImage – zImage + 头信息 (此格式可能更适合uboot,仅仅是可能更合适而已,其实每种都是合适的)
xipImage – 此格式一般用于自启动的norflash

2、我们一般需要哪种形态?支持这种形态的前提都有哪些?

上述几种格式其实都适合做启动文件,就看你的boot或者(x86上其他引导程序)的支持了!
支持这些格式的前提是什么呢?
既然上面我们说都适合做启动文件,但是总归得选一种吧,选择不同有何区别呢?
问题终于显现了:
1.几种文件对于我们的区别在哪里?
2.引导程序或者boot的支持各种文件的区别在哪里?
第一个问题:
几种格式我们都在上面做出了简单的分析!其实对我们而言每种格唯一的区别就是头信息,对自带的头信息!
grub应该比较简单,就是去寻找镜像位置,符号表位置,配置文件位置,然后引导(这里我步专门去研究),
我需要研究的是uboot的引导,对boot而言,上面几种格式唯一的区别就是头信息,有的自带头信息,有的不带头信息,带头信息需要将头信息读出来,而后使用boot四个碉堡的fw_arg0 - fw_arg3去给内核传参而已,Ps这里我们暂时知道就行(后续会单独在boot的分析中体现出来)!
第一个问题的答案先是意见,那就是不同格式的文件对我们而言区别并不是很大!
第二个问题:
通过第一个问题,第二个问题可回答为在boot阶段其实对各个文件的支持并没有多大区别,就看你想使用那一种格式了,不同格式的镜像文件在boot中的解析不一样(可随意更改)!

3、如何得到这种形态?

这个问题可能才是我们大多数人比较关心的问题,因为百分之八十的人一般是不会主动修改boot的,一般根据boot的支持来选择一种格式即可!
前面我们已经知道vmlinux 是编译后得到的最终内核镜像!
这里就已经进入到编译阶段需要了解的东西了!
其它几种是怎么生成的呢?
让我们把这些问题留在下一节进行一一处理

4、跑在21世纪的大道上

说了这么多,马上就要真正的去体验21世纪最伟大的开源工程,作为21世纪的美丽新世界,Linux Kernel 肩负着他自己的使命,到2015年,内核伴随Linux已经走过了风风雨雨的24年(Linux诞生的那年(1991.10.5.),也就是我诞生的那年(1991.10.xx)),我也步履蹒跚的走过了24年,从第一次接触内核到如今也已经有3个念头,想想也蛮兴奋的!当今世界,最流行的移动操作系统android,使用的是Liunx Kernel,占有率最高的服务器操作系统依然使用的Linux Kernel!全世界人民都在享受科技发展带来的便利,Linux 已经是世界上最成功的操作系统之一!而在未来十年,这种情况会愈演愈烈!如此作为一个内核工程师(虽然是菜B),我也有我的梦想,我真诚的希望在未来的某一天,我也可以提交我的patch或者我的模块到Kernel. 哪怕只有一个patch..

做一件事情病把它做好,最后,你的辛苦付出将会获得你想要的回报!加油吧!

By: Keven - 点滴积累

更多相关文章

  1. linux 内核协议栈
  2. Ubuntu 12.04安装Bochs 2.6.2, 调试linux 0.11 内核
  3. 常见压缩格式的区别,及 Linux 下的压缩相关指令
  4. linux 下常用音频格式的转化
  5. 编译Linux内核 4.13
  6. 有关Linux内核分析课程的总结
  7. 20169210《Linux内核原理与分析》第七周作业
  8. linux内核分析——扒开系统调用的三层皮(下)
  9. Ubuntu 12.10安装Bochs 2.6, 调试linux-0.11内核

随机推荐

  1. AES加密进行Android的SharedPreferences
  2. android project 文件夹
  3. android -- 多级目录创建
  4. Android(安卓)按键消息path
  5. 使用Android系统自带的icon图标
  6. android [1_ManagingProjects]
  7. Android requires compiler compliance l
  8. 快手Android
  9. Android 知识总结
  10. android 实现button的背景改变