• Linux——系统引导流程学习简单笔记


    开启电源:

    固件 firmware(CMOS/BIOS) →  POST 加电自检 对硬件就行检查

    自举程序 BootLoader(GRUB) →  载入内核

    载入内核 Kernel 1:驱动硬件

    2:启动进程 init


    读取执行配置文件/etc/inittab

    initdefalut 系统默认运行级别
      ↓
    /etc/rc.d/rc.sysinit 执行该脚本
      ↓
    etc/rc.d/rc 该脚本判断initdefault
      ↓
    /etc/rc.d/rcN.d N = 0 -- 6 然后执行对应的启动目录,启动需要的服务程序

    一: 

      date  显示系统时间 、

      hwclock  显示硬件时间  我们可以调整  通过man 帮助文档查看修改

    二:

      内核的版本号第二个数字奇数表示测试版本,偶数表示正式版本。

    三:

      init进程:

    init启动后读取inittab文件,执行缺省运行级别,从
    
    而继续引导过程。在UNIX系统中,init是第一个可
    
    以存在的进程,它的PID恒为1,但它也必须向一个
    
    更高级的功能负责:PID为0的内核调度器(Kernel
    
    scheduler),从而获得CPU时间。
    

      这里就引出了两个问题:

      如果父进程死亡,子进程还存在的话,这样的进程被称为孤儿进程

      如果子进程死亡,父进程不知道还保持与子进程的通信,那个这样的进程叫做僵尸进程

        我们在系统中是不允许出现这两种进程的。 父进程死亡,子进程也应该消亡

    在inittab中,所有条目采取以下格式:

    id:run-levels:action:process
    
    id:标识符,一般为两位字母或数字
    
    run-levels:指定运行级别,可以指定多个
    
    action:指定运行状态
    
    process:指定要运行的脚本/命令
    

      

    我们可以通过runlevel命令查看当前系统的运行级别,  通过init 【0-6Ss】 或者  telinit【0-6Ss】改变系统运行级别

    action常用取值:

    initdefault:指定系统缺省启动的运行级别
    sysinit:系统启动执行process中指定的命令
    
    wait:执行process中指定的命令,并等其结束再
    
    运行其他命令
    
    once:执行process中指定的命令,不等待其结束
    ctrlaltdel:按下Ctrl+Alt+Del时执行process指定
    
    的命令

    powerfail:当出现电源错误时执行process指定的 、命令,不等待其结束

    powerokwait:当电源恢复时执行process指定的命令

    respawn:一旦process指定的命令中止,便重新运行该命令

    
    

      

    启动脚本/etc/rc.d/rc.sysinit,完成系统服务程序启动,如系统环境变量设置、设置系统时钟、加载字体、检查加载文件系统、生成系统启动信息日志文件等。

    判断默认运行级别,调用/etc/rc.d/rc脚本,执行相应运行级别目录中的服务程序,完成相应运行级别的初始化设置

    /etc/rc.d/init.d   该目录下包含各个运行级别的服务程序脚本    其实/etc/rc.drcN.d是一些软连接,指向了十几存在于/etc/rc.d/init.d的脚本

    四:

    我们如何设置自动启动程序:

      1:常用的是利用ln -s 首先我们常见自己的脚本,给予可执行权限,然后将它放到/etc/rc.d/init.d,然后再在相应的/etc/rc.drcN.d里面创建软连接即可;

      2: 我们可以通过chkconfig来启动关闭服务

      3:ntsysv 同样

    五:

    其他:

      运行dmesg检查引导期间的错误

      检查系统日志/var/log/messages,查找可能被dmesg忽略的应用程序错误

  • 相关阅读:
    MUI 实现下拉刷新上拉加载的简单例子
    MySQL 游标的使用
    Java 策略模式
    [].slice.call(arguments,1) 个人理解
    Hbuilder + MUI 的简单案例
    传输SO10 (SO10 Transport)
    SAP 供应商/客户的冻结及其删除操作
    SAP FI CO模块常用事务代码
    SAP-批量修改主数据(客户、供应商、物料)
    远程主动读取数据 RFC_READ_TABLE
  • 原文地址:https://www.cnblogs.com/E-star/p/3408344.html
Copyright © 2020-2023  润新知