学习osv原理需要操作系统启动流程
来源:互联网 发布:unity3d接入支付宝sdk 编辑:程序博客网 时间:2024/05/17 09:32
次引导加载程序显示GRUB(GRand Unified Bootloader,GRUB)选择界面,根据用户的选择(就是假如机器上安装了多个操作系统)把相应操作系统的内核映像加载进内存中。
4.Linux内核映像:
init进程会挂载/etc/fstab中设置的所有文件系统,并根据/etc/inittab文件来执行相应的脚本进行系统初始化,如设置键盘、字体、网络、启动应用程序等。到这个时候linux系统已经启动完毕,用户这个时候就可以登录系统并进行操作。以上就是linux引导的完整过程。下面我们来看一下它们各个步骤的详细信息。
内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。
几种linux内核文件的区别:
1、vmlinux 编译出来的最原始的内核文件,未压缩。
2、zImage 是vmlinux经过gzip压缩后的文件。
3、bzImage bz表示“big zImage”,不是用bzip2压缩的。两者的不同之处在于,zImage解压缩内核到低端内存(第一个640K),bzImage解压缩内核到高端内存(1M以上)。如果内核比较小,那么采用zImage或bzImage都行,如果比较大应该用bzImage。
4、uImage U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的tag(64个字节,说明这个映像文件的类型、加载位置、生成时间、大小等信息)。其实就是一个自动跟手动的区别,有了uImage头部的描述,u-boot就知道对应Image的信息,如果没有头部则需要自己手动去搞那些参数。换句话说,如果直接从uImage的0x40位置开始执行,zImage和uImage没有任何区别。
5、vmlinuz 是bzImage/zImage文件的拷贝或指向bzImage/zImage的链接。
6、initrd 是“initial ramdisk”的简写。一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态
这里要介绍一下objcopy命令,它的作用是把一个object文件转化为另一种格式的文件。在这里,objcopy的作用就是去掉原来elf文件中的elf header和一些无用的section信息。为什么要这么做呢?因为elf文件中的elf header和一些section的作用是告诉elf loader如何载入elf可执行文件。但是,linux内核作为一种特殊的elf文件,需要特殊折辅助程序去装载它。往往它的装载地址是固定的。这时,为了保证通用性而存在的elf header和一些section对内核的装载就没有意义了。加上为了使内核尽可能小,所以干脆把这些信息去掉。
- 学习osv原理需要操作系统启动流程
- osv main启动流程分析
- Linux 操作系统启动流程
- Linux 操作系统启动流程
- 操作系统的启动流程
- Linux操作系统启动流程
- Linux操作系统启动流程
- 开源虚拟化操作系统OSv初探
- 开源虚拟化操作系统OSv初探
- 操作系统安装和启动流程
- 【学习笔记】AMS启动App流程和原理
- 计算机与操作系统启动原理
- 计算机与操作系统启动原理
- 操作系统原理学习总结
- 操作系统原理学习总结
- 开源虚拟化操作系统OSv初探(一)
- grub启动流程及原理
- 启动原理及配置流程
- 文件夹下的文件遍历-python
- 多线程:下载图片(不用SDWebImage)
- hadoop使用场景
- 哪些函数不能声明为虚函数
- 本地不安装Oracle,plsql远程连接数据库
- 学习osv原理需要操作系统启动流程
- 添加xcode插件时,如果手误点击了"Skip Bundle" 肿么办?xcode 插件
- 贡献两道简单的leetcode
- Word中更新所有的域
- 深入理解OpenGL拾取模式(OpenGL Picking)
- Linux下运行Python脚本显示“: 没有那个文件或目录”问题
- 多线程:实现下载图片(使用 SDwebImage框架)
- MFC-关机注销重启
- 存储过程详解 C#