• Linux系统的启动过程


    Linux 系统启动过程

    Linux系统的启动过程可以分为5个阶段:

    • BIOS自检
    • 内核的引导。
    • 运行init。
    • 系统初始化。
    • 用户登录系统。

    BIOS自检:

    BIOS是英文"Basic Input Output System"的缩写,中文名称就是"基本输入输出系统"。 BIOS是电脑启动时加载的第一个程序,它是计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。主机接通电源后,系统将有一个对内部各个设备进行检查的过程,这是由一个通常称之为POST(Power On Self Test,上电自检)的程序来完成的。这也是BIOS的一个功能。完整的POST自检将包括CPU、640K基本内存、1M以上的扩展内存、ROM、主板、 CMOS存贮器、串并口、显示卡、软硬盘子系统及键盘测试等。自检中若发现问题,系统将给出提示信息或鸣笛警告。如果自检没有问题,会根据BIOS中的引导选项中查找引导设备,然后读取设备的第一扇区,设备的第一个扇区(MBR)主要记录了系统的分区信息。
    内核引导:
    此时BIOS将权限交给GRUB(GRand Unified Bootloade),GRUB到/boot目录下去读取内核文件。读取成功后,将控制权交给内核。
    INIT:
    内核启动系统的第一个进程INIT,因此INIT的进程号总是1,init进程是所有进程的发起者和控制者,所有如果init出现问题,系统随之垮掉。init读取配置文件/etc/inittab,决定启动的运行级别(runlevel)。

    Linux系统有7个运行级别(runlevel):

    • 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
    • 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
    • 运行级别2:多用户状态(没有NFS)
    • 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
    • 运行级别4:系统未使用,保留
    • 运行级别5:X11控制台,登陆后进入图形GUI模式
    • 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

    系统初始化:

    centos7以前版本在/etc/inittab文件中系统默认运行级别。然后根据运行级别/etc/rc*.d执行相应的环境初始化,建立终端。

    用户登陆:

    输入用户名密码登陆系统。

    初次安装系统后,系统的时区可能不是我们想要的。

    1、查看系统时间:

     [root@localhost ~]# timedatectl 
          Local time: Mon 2019-04-29 01:24:46 CST
      Universal time: Sun 2019-04-28 17:24:46 UTC
            RTC time: Sun 2019-04-28 19:19:12
           Time zone: Asia/Shanghai (CST, +0800)
         NTP enabled: no
    NTP synchronized: no
     RTC in local TZ: no
          DST active: n/a


    发现系统时间和Universal time时间相差8个小时;

    2、将当前系统所处的分区重新命名:

    [root@localhost ~]# mv /etc/localtime  /etc/localtime.bak


    3、将/usr/share/zoneinfo/中创建软连接以替换当前的时区信息:

    [root@localhost ~]# ln -s /usr/share/zoneinfo/Universal  /etc/localtime


    4、再次查看系统时间

    [root@localhost ~]# timedatectl
    Local time: Sun 2019-04-28 19:26:03 UTC
    Universal time: Sun 2019-04-28 19:26:03 UTC
    RTC time: Sun 2019-04-28 19:26:03
    Time zone: n/a (UTC, +0000)
    NTP enabled: no
    NTP synchronized: no
    RTC in local TZ: no
    DST active: n/a

  • 相关阅读:
    base64加密/解密
    js split 的用法和定义 js split分割字符串成数组的实例代码
    js获取html5 audio 音频时长方法
    获取虾米音乐的歌词
    ajax请求QQ音乐
    MarkdownPad2.5 注册码
    neovim 使用
    tmux的使用方法和个性化配置
    linux 安装libevent
    boost.sha1
  • 原文地址:https://www.cnblogs.com/caesar-id/p/10786087.html
Copyright © 2020-2023  润新知