zoukankan      html  css  js  c++  java
  • Linux启动过程

    系统启动

    系统启动依赖于引导Linux的硬件。在嵌入式平台,系统在启动或重启时会用到引导程序环境变量,比如:包括u-boot,redboot及lucent公司的MicroMonitor。嵌入式平台通常附带一个引导监视器。这些程序位于

    系统启动

    系统启动依赖于引导Linux的硬件。在嵌入式平台,系统在启动或重启时会用到引导程序环境变量,比如:包括u-boot,redboot及lucent公司的MicroMonitor。嵌入式平台通常附带一个引导监视器。这些程序位于目标硬件的flash内存中一个特别的区域,为Linux内核镜像加载到flash内存提供方法,并在随后执行Linux内核。除了存储和启动Linux镜像外,引导监视器还会执行一些系统测试及硬件初始化。在一个嵌入式目标,引导监视器通常存在于第一步及第二步引导程序。

    对于个人计算机,Linux从0xffff0地址的BIOS开始启动。BIOS的第一步是上电自检(POST)。上电自检的工作是检查硬件。BIOS的第二步是枚举和初始化本地设备。

    鉴于BIOS的不同用途,BIOS主由两部分组成:上电自检代码和运行服务。在上电自检完成后,上电自检代码从内存被清除,但是运行服务被保留并且对目标操作系统仍然有效。

    要引导一个操作系统,BIOS运行时会按照CMOS的设置定义的顺序来搜索处于活动状态并且可以引导的设备。引导设备可以为软盘,CD-ROM,硬盘的分区,网络上的设备以及U盘。

    Linux一般从MBR包含初级引导程序的硬盘启动。MBR是一个512字节的扇区,位于硬盘的第一扇区(0道0柱1扇区)。在MBR被加载到RAM中后,由BIOS去控制它。

    提取MBR(主引导记录)
    
    可以通过如下命令查看你的MBR:
    # dd if=/dev/hda of=mbr.bin bs=512 count=1
    # od -xa mbr.bin
    
    dd命令:需要root权限,从/dev/hda(第一个集成驱动电路或IDE驱动器)中读取512字节内容并写到mbr.bin文件。
    od命令:以hex和ASCII格式打印二进制文件

     第一阶段引导

           初级引导程序位于512字节的MBR镜像,MBR镜像由一个小型分区表和代码组成(见Figure 2)。前446字节是初级引导程序代码,包括执行代码和错误信息。接下来的64字节是一个分区表,包含4个16字节的分区记录。MBR最后的两字节定义了一个magic数字(0xaa55)。这个magic数字用来校验检查MBR。

     

    第二阶段引导程序

    http://huaqianlee.github.io/2015/08/21/Linux/深入理解Linux启动过程/
  • 相关阅读:
    vs2015 打开xaml:右击-打开方式->xml编辑器
    交互式计算机图形学(基于webGL)资源使用
    利用pushState开发无刷页面切换
    js 阻止冒泡 stopPropagation
    PHP中“简单工厂模式”实例讲解
    ajax传递特殊字符串问题 +%@
    GitHub自学
    ajax 请求超时 取消请求
    mongo操作之分页
    我使用过的Linux命令之date
  • 原文地址:https://www.cnblogs.com/longyongzhen/p/6557612.html
Copyright © 2011-2022 走看看