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