zoukankan      html  css  js  c++  java
  • Linux开机启动程序

    Linux系统启动过程

    • 内核的引导
    • 运行init
    • 系统初始化
    • 建立终端
    • 用户登录系统
    init程序的类型:
           systemd: systemd ,Centos7,配置文件:/usr/lib/systemd/system、/etc/systemd/system
    

    内核引导

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

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

    运行init

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

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

    运行级别

    ​ 许多程序需要开机启动。在Windows种叫做服务(service),在Linux中交战守护进程(daemon)。

    ​ init进程的一大任务,就是去运行这些开机自启的程序。

    ​ 但是不同的场合需要启动不同的程序,Linux允许为不同的场合,分配不同的开机启动程序,这就叫做运行级别(runleve)。也就是说,启动时根据运行级别,确定要运行那些程序。

    ​ Linux系统有7个运行级别:

    • 运行级别0:系统停机状态
    • 运行级别1:单用户工作状态,用于系统维护,禁止远程登录,可以进入后修改密码。
    • 运行级别2:多用户状态(没有NFS)。
    • 运行级别3:完全多用户状态(有NFS),常用级别,登录后进入控制命令行模式。
    • 运行级别4:系统未使用,保留
    • 运行级别5:图形模式
    • 运行级别6:关机重启

    系统初始化

    ​ 在init的配置文件中有这一行,si::sysinit:/etc/rc.d/rc.sysinit 他调用执行了/etc/rc.d/rc.sysinit,而rc.sysinit时一个bash shell的脚本。它主要时完成一些系统初始化的工作,rc.sysinit是每一个运行级别都要运行的重要脚本。

    ​ 它主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其他一些需要优先执行的任务。

    建立终端

    rc执行完毕后,返回init。这时基本环境已经设置好了,各种守护进程也已经启动了。

    init接下来会打开6个终端,以便用户登录。

    用户登录系统

    • 命令行登录
    • ssh登录
    • 图形界面登录
  • 相关阅读:
    PHP中feof()函数的猜测
    PHP curl函数模拟爬虫(操作cookie)
    django发音
    Nginx出现“413 Request Entity Too Large”错误解决方法
    Python开发利器WingIDE破解方法
    开启Apache mod_rewrite
    LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
    python 正则学习
    php定时执行任务
    命令行CURL教程[转载]
  • 原文地址:https://www.cnblogs.com/bb9527/p/14284810.html
Copyright © 2011-2022 走看看