Linux学习_系统启动

作者: 皮皮大 | 来源:发表于2019-05-26 20:25 被阅读0次

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


    内核引导

    当打开电源后,首先BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动

    操作系统接管硬件以后,首先读入 /boot 目录下的内核文件:


    image.png

    运行init

    init 进程是系统所有进程的起点,没有这个进程,系统中任何进程都不会启动。

    init 程序首先是需要读取配置文件 /etc/inittab:


    image.png

    Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel),Linux有7大运行级别:

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

    系统初始化

    • 在init的配置文件中有一行: si::sysinit:/etc/rc.d/rc.sysinit 它调用执行了/etc/rc.d/rc.sysinit

    • rc.sysinit是一个bash shell的脚本,它主要是完成一些系统初始化的工作,rc.sysinit是每一个运行级别都要首先运行的重要脚本。


      image.png

    建立终端

    rc执行完毕后,返回init,init中有6个终端:tty 1-6,各种守护进程已经启动。

    1:2345:respawn:/sbin/mingetty tty1
    2:2345:respawn:/sbin/mingetty tty2
    3:2345:respawn:/sbin/mingetty tty3
    4:2345:respawn:/sbin/mingetty tty4
    5:2345:respawn:/sbin/mingetty tty5
    6:2345:respawn:/sbin/mingetty tty6
    

    用户登录系统

    用户登录系统一般有3种方式:

    • 命令行登录
    • ssh登录
    • 图形界面登录


      image.png

    图形界面和文字界面的切换

    • 在Linux中提供了6个终端给用户登录,分别为tty1,tty2 … tty6

    • 默认登录的是第一个tty1,通过Ctrl + Alt + F1 ~ F6 进行切换。

    $ chvt  3      # 进入终端3
    $ tty          #  查看具体在哪个终端
    
    • 若安装了图形界面,默认进入图形界面的,按Ctrl + Alt + F1 ~ F6选择进入一个命令窗口界面

    • 若使用vmware 虚拟机,命令窗口切换快捷键: Alt + Space + F1~F6

    • 若在图形界面下,按Alt + Shift + Ctrl + F1~F6 切换至命令窗口。

    • 按Ctrl + Alt + F7 返回图形界面

    使用小技巧

    • 图形界面中运行 runlevel 显示运行模式
    $ runlevel    # 表示从N模式(上一次,开机直接进入图形界面)到5模式
    N 5   
    
    • 图形界面 ---> 字符界面,必须在root账户下执行;图形界面节省内存
    # init 3       # 进入字符界面
    # runlevel
    5  3           # 从5图形界面进入字符界面3
    
    • 字符界面---->图形界面
    # init 5        # 回到图形界面, 需要登录
    # startx       # 不需要登录,且切换之后模式不变
    

    init命令

    init 0:关机,halt(centos7中关机不断电)、poweroff、shutdown

    init 1:单用户模式,只用root进行维护

    init 2:多用户模式

    init 3:字符界面

    init 4:安全模式

    init 5:图形界面

    init 6:重启


    systemctl管理服务(centos7适用)

    命令 作用
    systemctl enable foo.service 开机自启动foo服务
    systemctl disable foo.service 开机不自动启动
    systemctl start foo.service 启动服务
    systemctl restart foo.service 重启服务
    systemctl stop foo.service 停止服务
    systemctl status foo.service 查看服务状态
    systemctl reload foo.service 重新加载配置文件(不重启服务)
    Linux学习_系统启动

    相关文章

      网友评论

        本文标题:Linux学习_系统启动

        本文链接:https://www.haomeiwen.com/subject/nnyftctx.html