zoukankan      html  css  js  c++  java
  • 操作系统是怎么启动的?

      当我们按下电脑电源键,十几秒后我们就看到了操作系统的登录界面。这里我们通过各种问题来反向梳理一下操作系统启动过程。

    • 可能某次我们都能看到操作系统都进入到登录画面了,但就是不会展示用户账号,最终卡死或者报错、或者是蓝屏等。

        这种情况可能是操作系统本身的文件或驱动损坏导致,比如你删除了操作系统目录下的一些系统文件。

        如果使用安全模式,说不定还能进入系统,然后排查到底是什么原因,实在不行就重装了。

    • 可能某次我们看到是一个黑色的画面,上面直接提示某个文件找不到,系统启动失败。

        这种情况可能是操作系统核心文件丢失,无法引导了,比如你删掉了启动分区中的某个文件。

                  这时也可以重装,但有点费事。其实只需求修复启动分区中的文件即可。一般可系统运维工具直接恢复启动分区。

    • 有的时候我们看到是另外一句话:找不到可启动的设备。

        这种情况可能是启动分区被格式化了,或者是整个硬盘坏了。

        如果是前者,也可以通过系统运维工具恢复启动分区。但如果整个硬盘坏了,那只能修复或更换硬盘了。

    • 还有些情况,我们可能能看到一些初始的启动画面,然后马上机器就关机或重启了。

        这里一般操作系统还没加载。那说明是bios的问题了。

        因此也只能试试重置下bios设置看运气了,通过拔掉bios电池并短接的方式,可以重置bios设置,如果这样能够进行下去,说明是之前的设置出现问题了。

    • 还有的时候,我们看不到屏幕有任何画面,直接听到一些蜂鸣声,或长或短。

        这里说明是电脑硬件问题了,通过几长几短可以查到具体是什么设备的问题,也有可能只是接触不良了。

    • 好像都差不多了,但还有一种,按下电源键,没有任何反应的。  

        大家应该都知道了该怎么变了吧,那就是检查电源插线板了。

        如果是笔记本也可能是电池问题,此时拆下电池直接上电源,可能会出现奇迹。

    通过以上的过程,应该不难看出操作系统的启动主要有以下几个阶段。

    • 上电,BIOS自检                    检查各硬件设备的状态是否正常
    • BIOS找到可启动的设备               按一定顺序检查哪些设备是可启动的。
    • 引导分区中的某些东西被执行了  可启动分区中的代码被拷贝到内存中执行
    • 操作系统被执行了                       操作系统代码被执行

    我们了解到操作系统也是一个特殊的软件程序,软件程序最终都需要编译成机器码给计算机执行。而同时我们也知道机器码是需要放到内存中才能被执行的。那这里又有一个问题了。操作系统代码是怎么拷贝到内存的。

      首先可以排除自身,因为操作系统是在硬盘或光盘、软盘、U盘上的。(牢记任何指令都是在内存中被执行的)。没错,是引导分区代码。引导分区代码一般只有512字节,被写入在磁盘的第一个扇区。但引导分区又是被谁拷贝到内存的呢?没有谁了,只剩下BIOS了。BIOS一般是写再只读存储上,那它是怎么加载到内存的呢?BIOS已经是最基本的程序了,只能靠硬件了。有一种内存映射的技术可以直接将硬件的某个地址段映射到固定的内存地址。正真的寻址前,还要经过一个设备,这个设备预设了一些地址段,这些地址段的访问不会走向内存,而是走向硬件的ROM,因此看上去像是你想访问内存的某个地址,但最终返回的数据其实是硬件的ROM,这就相当于变相把硬件中的ROM拷贝到内存了。

          

  • 相关阅读:
    go语言——strings和strconv
    go语言——map
    Manjaro配置
    go语言——数组和切片
    go语言——随机数
    go——选择和循环
    go语言——输入输出
    java动态代理实现--基于子类的动态代理
    java动态代理实现--基于接口的动态代理
    spring依赖注入
  • 原文地址:https://www.cnblogs.com/wp2ypy/p/13953252.html
Copyright © 2011-2022 走看看