加载内核以启动计算机的过程,称为系统引导boosting。

大多数计算机系统都有一小块代码,称为引导程序或引导加载程序,这段代码能够定位内核并且加载到内存以开始执行。
有的计算机系统采用的方式是两步走:先用一个简单的引导程序从磁盘上调入一个更复杂的引导程序,后者再加载到内核。

当CPU收到一个重置事件时,例如上电开机或重新启动,指令寄存器会加载某个预先定义的内存位置,并从该位置开始执行。该位置就是初始引导程序所在。该程序为ROM形式,因为系统启动时RAM处于未知状态。由于不需要初始化和不受计算机病毒的影响,用ROM是很方便的。

引导程序可以完成一系列任务。通常,有一个任务需要运行诊断程序来确定机器状态。如果通过诊断,则程序可以继续启动步骤。引导程序也能初始化系统的所有方面:从CPU寄存器到设备控制器以及内存内容。最终,它启动操作系统。

有些系统,如手机、平板电脑和游戏控制器,将整个操作系统保存在ROM中。对于小型的操作系统、简单的支持硬件和耐用的操作,将操作系统存储在ROM中是适合的。该方法有一个问题:改动引导程序代码需要改动ROM芯片。为了解决这个问题,有些系统采用可擦可编程只读存储器(EPROM),这是一种ROM,但当明确给定一个命令时就会变为可写的。所有形式的ROM都是固件(firmware),因为它的特性介于硬件与软件之间。通常,固件存在的问题是:执行代码比在RAM中慢。有些系统将操作系统保存在固件中,而在要执行时将其复制到RAM中,以便执行更快。固件的最后一个问题是相对较贵,所以通常只有少量可用。

对大型操作系统(包括大多数的通用操作系统,如 Windows、Mac OS X和 UNIX)或经常改变的系统,引导程序存放在固件上

【操作系统】系统引导相关推荐

  1. 哈工大操作系统实验1-操作系统引导

    哈工大操作系统实验1-操作系统引导 实验内容: 1. 改写 bootsect.s 主要完成如下功能: bootsect.s 能在屏幕上打印一段提示信息"XXX is booting...&q ...

  2. volcanol_Linux_问题汇总系列_1_系统引导过程中到check filesystem时就无法继续引导问题解决方法。...

    在说问题之前,首先说一下我的用户名:volcanol.这里有点巧合,在上高中之前,我比较喜欢看火山喷发的景象,然后上了高中后 学习了火山这个单词:volcano, 然后加上我自己的姓的第一个字目是&q ...

  3. grub通过img文件启动linux,Linux GRUB实现双系统引导之菜鸟教程

    根据网友 Seqic 反映,在安装了 Linux 和 Windows 双系统之后,不知如何再启动 Windows (因为系统使用 Linux 的引导程序了).通常,这是因为安装 Linux 时没有为 ...

  4. 用bochs调试自己写的系统引导代码

    1 安装和配置bochs 首先从bochs.sourceforge.net里面把BOCHS给download下来,鉴于Windows的普及,仅仅谈BOCHS在win下的使用方法,其实在其它的OS中方法 ...

  5. Windows 7 Ubuntu 14.04完美双系统安装及系统引导配置

    Windows 7 & Ubuntu 14.04完美双系统安装及系统引导配置 来源:本站整理 作者:佚名 时间:2014-07-24 TAG: 我要投稿 本文写于完美安装双系统之后,所以图片会 ...

  6. grub 引导 多linux系统,GRUB 多系统引导

    GRUB 多系统引导 [日期:2007-12-02] 来源:Linux公社 作者:Linux [字体:大 中 小] 六.通过GRUB引导Windows操作系统: 1.通过编辑 menu.lst 来引导 ...

  7. 如何自动修复XP/VISTA/WIN7系统引导的工具(NTBootAutofix 2.02)

    如何自动修复XP/VISTA/WIN7系统引导的工具(NTBootAutofix 2.02) NTBootAutofix:一款极为优秀的自动修复XP/VISTA/WIN7系统引导的工具 这个工具的用途 ...

  8. linux 引导管理器,linux系统引导管理器GRUB

    1.什么是多重操作系统引导管理器及工作原理: 系统启动引导管理器,是在计算机启动后运行的第一个程序,他是用来负责加载.传输控制到操作系统的内核,一旦把内核挂载,系统引导管理器的任务就算完成退出,系统引 ...

  9. 引导linux的工具下载,多系统引导工具(BootThink)下载_多系统引导工具(BootThink)官方下载-太平洋下载中心...

    BootThink可以引导各种系统,包括linux和win 还有mac osx系统,写入完成后.安装Bootthink 当出现一下的提示时说明bootthink安装成功! 1. 适合对象 在 PC 上 ...

最新文章

  1. 浮动元素会引起的问题和你的解决办法
  2. 设置子元素在主轴(横轴)方向上的对齐方式为容器的开头_今日推送 CSS Flexbox布局(上)...
  3. AngularJS的稍复杂form验证
  4. Python学习笔记:Day15 部署Web App
  5. 8、JavaScript深入浅出——数据类型
  6. 蓝桥杯 日志统计 尺取
  7. 通用mapper 如何处理多表条件查询通过list封装(一对多)
  8. wince 开发_大牛总结: 入行嵌入式开发之前,先来看看这个规划
  9. 本地传奇架设详细教程
  10. Spring WebFlux - WebClient连接池简单测试和代码分析
  11. echarts版中国地图
  12. [转]全面比较Delphi和Visual C++
  13. 如何打开.pdm文件(Mac OS X)
  14. 计算机网络浅谈,浅谈计算机网络的重要性
  15. HTML5编写的小游戏
  16. 【JavaSE专栏2】JDK、JRE和JVM
  17. python怎么写lnx_如何在PYTHON程式中使用YOLO
  18. linux根据文件内容查找文件名,文件查找:find命令,文件名后缀
  19. 【差分约束+spfa优化】P3084 [USACO13OPEN]Photo G
  20. 头戴式蓝牙耳机怎么选?2020五款主动降噪性能强劲蓝牙耳机盘点

热门文章

  1. Mybatis下collections使用pageHelper进行分页
  2. 文件拷贝(字符、字节)
  3. python屏幕的交互(读取输出信息)input,raw_input的区别
  4. 用C#生成不重复的随机数
  5. MAC 修改文件夹以及子文件夹和子文件权限 以及 修改文件夹owner
  6. java 遍历属性文件路径_Java项目中读取properties文件,以及六种获取路径的方法...
  7. msgpack java lua_使用lua-cmsgpack序列化和反序列化lua对象
  8. eslint不报错 vue_2-2【微信小程序全栈开发课程】index页面搭建--ESlint格式错误
  9. matlab画无量纲速度分布,麦克斯韦分布与概率论中典型分布的比较教学
  10. mysql udp服务器_netty学习:UDP服务器与Spring整合(2)