zoukankan      html  css  js  c++  java
  • 操作系统的启动流程

    windows:

    1.计算机加电

    2.BIOS开始运行,检测硬件:cpu、内存、硬盘等

    3.BIOS读取CMOS存储器中的参数,选择启动设备

    4.从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位)

    5.根据分区信息读入bootloader启动装载模块,启动操作系统

    6.然后操作系统询问BIOS,以获得配置信息。对于每种设备,系统会检查其设备驱动程序是否存在,如果没有,系统则会要求用户按照设备驱动程序。一旦有了全部的设备驱动程序,操作系统就将它们调入内核。然后初始有关的表格(如进程表),穿件需要的进程,并在每个终端上启动登录程序或GUI

    LINUX系统的系统启动流程:

    1、计算机加电

    2、BIOS开始运行,检测硬件:cpu、内存、硬盘等,BIOS读取CMOS存储器中的参数,选择启动设备

    3、读取MBR。从启动设备上读取第一个扇区的内容(MBR主引导记录512字节,前446为引导信息,后64为分区信息,最后两个为标志位。第一部分为预引导区,占了446个字节,它的作用之一是找到标记为活动(ACTIVE)的分区,并将活动分区的引导区读入内存;第二部分为分区表,共有66个字节,记录硬盘的分区信息。
    目前计算机读取"主引导记录"前面446字节的机器码之后,不再把控制权转交给某一个分区,而是运行事先安装的"启动管理器"(boot loader),由用户选择启动哪一个操作系统。
    Linux环境中,目前最流行的启动管理器是Grub。

    4、启动Boot Loader 就是在操作系统内核运行之前运行的一段小程序。系统读取内存中的grub配置信息(一般为menu.lst或grub.lst),并依照此配置信息来启动不同的操作系统

    5、加载内核。kernel运行。

    6、用户层init依据inittab文件来设定运行等级。

    7、执行init进程。在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。如果你有兴趣,可以到/etc/rc.d中查看一下rc.sysinit文件。

    8、执行/bin/login,进入操作系统

  • 相关阅读:
    学习之Struts2框架实现原理----个人理解
    The import java.util cannot be resolved The import javax.servlet cannot be resolved
    谈谈HashSet的存储原理
    RabbitMQ的问题
    剑指Offer:合并列表(25)
    剑指Offer:反转列表(24)
    剑指Offer:链表中倒数第 K 个结点(22)
    剑指Offer:调整数组顺序使奇数位于偶数前面(21)
    剑指Offer:机器人的运动范围(13)
    剑指Offer:变态跳台阶(10.4)
  • 原文地址:https://www.cnblogs.com/Sargreis/p/6875256.html
Copyright © 2011-2022 走看看