POST(开机自检)-->BIOS(boot seqvence)-->MBR(boot loader)-->kernel-->initrd-->sbin/init

内核设计:
    单内核:linux  轻量级线程
    微内核:windows 支持多线程
内核位置:/lib/modules 以版本号命名的目录

ldd 路径:显示共享库的依赖关系(which查看命令的绝对路径)

启动的服务不同,运行的级别也不相同:
     0 halt 关机
    6 reboot 重启
    1 Single user mode 单用户模式(可以直接以管理员身份登入)
    2 Multiuser, without NFS 多用户模式,但不启用网络文件系统
    3 Full multiuser mode 多用户模式 文字接口
    4 unused 保留级别
    5 X11 多用户模式 图形接口

boot loader :引导加载
    GRUB:(第一阶段)stagel1(mbr)--->stagel1.5(识别文件系统)--->(第二阶段)stagel2(/boot/grub/)
    /boot/grub/grub.conf :

default=0  设定默认启动的title,默认为0(从第一个开始)
        timeout=10  等待用户选择的时长 秒
        splashp_w_picpath=(hd0,0)/grub/linux.xpm.gz  选择菜单的背景图片(默认为                      splash.xpm.gz可以自定义修改)
        # hiddenmenu  隐藏菜单,可以注释掉,显示菜单

title HuiShao CentOS 6 (2.6.32-504.el6.x86_64)  (title  名字 :名字可以更                     改)
                root (hd0,0)     第一个磁盘的第一个分区
                kernel /vmlinuz-2.6.32-504.el6.x86_64 ro root=UUID=f12bd5ee-6514-4bc8-a225-a25aa52e491e
         nomodeset rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=128M LANG=zh_CN.
        UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet  内核所在的位置
                initrd /initramfs-2.6.32-504.el6.x86_64.img

还可以给grub 加密码,但普通用户就不能在开始选择菜单上修改启动级别,从而不能以管理员身份直接登入
            第一种:password 密码
            第二种:password --md5 加密的密码(可以使用grub-md5-crypt )
                [root@HuiShao ~]# grub-md5-crypt
                Password:
                Retype password:
                $1$25qnL$IIL4Fq1crGaF6T6fWAyLl0  这就是md5加密后的密码
            再次进入启动选择菜单时若要修改启动级别就要先 输入p 再输入密码才可以修改

runlevel命令:查看当前运行级别
    [root@HuiShao ~]# runlevel
    N 5  (N 为前一个级别,没有就为N,5就是当前使用的启动级别)
who -r 也可以查看运行级别 :
    [root@HuiShao ~]# who -r
            运行级别 5 2015-07-26 07:43
uname -r 查看内核
    [root@HuiShao ~]# uname -r
    2.6.32-504.el6.x86_64安装grub

kernel初始化的过程:
    1.设备探测
    2.驱动初始化(可能会从initrd(initramfs)文件中装载驱动模块)
    3.挂在根文件系统(以只读方式挂载)
    4.装载第一个进程init(因为init是第一个装载的进程所以pid永远为1,且是所有进程的父进程)

RH5.8:/sbin/init (/etc/inittab配置文件)
RH6.2:systemd 可以并行启动
RH6.3:upstart (ubuntu 开发 基于d-bus配置 /etc/init/init.d/配置文件脚本的存放位置,相当于inittab的配置文件
    只不过分片化了)
    id:5:initdefault:
    id (标识符) 5 (运行级别) initdefault (在什么情况下执行) 要运行的程序
          respawn (一旦程序终止就重新启动 如logout) 若没有指定级别,表示在所有级别

/etc/rc.d/rc.sysinit 完成的任务:
    1.激活udev和selinux
    2.根据/etc/sysctl.conf文件来设定参数
    3.设定时钟
    4.装载键盘映射
    5.启用交换分区
    6.设置主机名
    7.根文件系统检测,并以读写方式重新挂载
    8.激活RAID和LVM设备
    9.启用磁盘配额
    10.根据/etc/fstab检查并挂在系统文件
    11.清理过期的锁和pid文件

/etc/rc.d/init.d 目录里面是服务类的脚本:
    /etc/rc.d/init.d/某个服务 start/stop/restart/status/reload/configtest  跟某个参数可以开启或关闭某个服务
     /etc/rc.d/init.d/** 服务脚本:
        #!/bin/sh
        #
        # chkconfig: - 91 35
        # description: Starts and stops the Samba nmbd daemon \
        #              used to provide NetBIOS name services.
      #chkconfig 启动级别 启动优先次序(s开头的服务脚本) 关闭的优先次序(k开头的服务脚本)
        -表示没有级别默认为s*开头的连接 (服务先开启的后关闭,后开启的先关闭)
    #description 用户说明此脚本的简单功能 \续行
    #chkconfig 和 #description 虽然为注释行但是仍会被读取
 
chkconfig命令:
    --list 列出查看当前系统上的所有独立守护服务的启动设定
    --list 服务名 指定查看
    --add 服务名 脚本名 添加服务但服务器下次启动才会生效
      service 服务名 start|stop 启动或停止服务
    --del 服务名 删除服务所有链接
    [--level](省略为2345) 24 服务名 on|off 在2、4级开启或关闭服务

/etc/rc.d/rc.local 系统最后启动的一个脚本(可以加入一些命令)

/etc/rc.d/init.d/    /etc/rc.d/rc.sysinit     /etc/rc.d/rc.local
    /etc/rc.d/rc[0-6].d 表示每个启动级别所要启动服务

RH5 /etc//inittab的任务
    1.设定默认运行级别
    2.运行初始化脚本
    3.运行指定运行级别对立的目录脚本(K* S*)
    4.设定ctrl+alt+delete组合键的操作
    5.定义UPS电源故障恢复时执行后的操作
    6.启动虚拟终端(默认为2345)
    7.启动图形终端(只在5级别)

守护进程类型:
    独立守护进程:xinetd 超级守护进程,管理瞬时守护进程
    瞬时守护进程:不需要关联至运行级别
        当有访问瞬时守护进程A时,xinetd就临时启动A,访问后就立即关闭

转载于:https://blog.51cto.com/benniaoxianhui/1679223

linux 笔记--系统启动流程相关推荐

  1. Linux的系统启动流程

    Linux的系统启动流程 一.systemd进程介绍 1.systemd服务介绍 2.systemd功能 3.服务单元 3.查看以激活状态的服务单元 4.查看服务之间的依赖关系 二.Linux的运行级 ...

  2. linux操作系统启动流程与kickstart文件制作

    文章目录 一.Linux操作系统启动流程 1.1.简单回顾linux系统组成以及内核作用 1.2.简单了解一下磁盘构成以及相关基础知识 二.CentOS 启动流程(只适用于MBR类型的PC架构主机) ...

  3. linux文件系统启动流程 ---笔记整理

    下面是一张linux启动流程图: 在了解启动流程之前,我们应该先知道系统的几个重要脚本和配置文件,他们对应的路径为: 1. /sbin/init 2. /etc/inittab 3. /etc/rc. ...

  4. Linux操作系统启动流程简单介绍

    Linux 系统的启动,从计算机开机通电自检开始,一直到登陆系统,需要经历多个过程.了解 Linux操作系统的启动过程,对Linux操作系统更深入认识和日常的运维工作非常有帮助,感兴趣的朋友可以了解一 ...

  5. linux文件系统启动流程,linux 内核启动过程以及挂载android 根文件系统的过程

    转载 作者:汕头大学-黄珠唐 时间:2009 年10 月29 日 主要介绍linux 内核启动过程以及挂载android 根文件系统的过程,以及介绍android 源代码中文件系统部分的浅析. 主要源 ...

  6. Linux 操作系统启动流程以及trouble shooting

    2019独角兽企业重金招聘Python工程师标准>>> 最近在某个版块看到有人讨论GRUB的问题,这里是我个人的一些理解. 我想大部分还是正确的,但肯定也有理解错误的地方,在这里抛砖 ...

  7. linux系统启动流程详解

    系统启动流程(CentOS6) Post加电自检: 开机检查cpu.内存.磁盘等是否存在 Boot Sequence: BIOS:Basic Input and Output System 按照BIO ...

  8. Linux 操作系统原理 — 系统启动流程

    目录 文章目录 目录 系统启动流程 编辑 gurb.cfg RHEL7 的启动级别 RHEL7 破密码步骤 grup2 加密,防止破密码 initramfs 文件 系统启动流程 RHEL7 使用了 G ...

  9. Linux 系统启动流程及其介绍

    熟悉Linux系统启动流程可以更好的排除Linux系统在启动的过程中所遇到的错误,下面介绍Linux系统在启动过程. 开机,BIOS自检:检测外置设备,目的是为了把外围设备的信息提供给操作系统使用 寻 ...

最新文章

  1. 团队作业—第二阶段06
  2. IP网络设计系列之-局域网设计
  3. 阿里云 MVP技术直播——缪政辉教你如何搭建万能LNMP环境
  4. java service 事物_Service 事务(JdbcUtils 升级)
  5. java 构造函数的执行顺序
  6. 进程部分(IPC机制及生产者消费者模型)和线程部分
  7. java--小示例:-1:输入判断信息
  8. 拓端tecdat|R语言关联挖掘实例(购物篮分析)
  9. matlab面板数据处理程序,MATLAB空间面板数据模型操作简介
  10. 文献阅读-CSC-中文错别字-有关论文搜集-+CGED
  11. 丁向荣单片机pdf_《单片机原理与应用 --基于可在线仿真的STC15F2K60S2单片机》 丁向荣、陈崇辉 【正版电子纸书阅读_PDF下载】- 书问...
  12. mysql 分页查询数据重复出现
  13. 快闪视频快影_快闪的12个步骤!
  14. js中定义变量时单引号和双引号的区别
  15. (译)在cocos2d里面如何使用物理引擎box2d:弹球
  16. MacOS上BeyondCompare无限试用的方法
  17. unity 3d网络游戏实战(全).pdf_“游戏开发入门指南——Unity+”的食用指南
  18. 《C++新经典》第1章 C/C++语言
  19. 简单NLP分析套路(1)----语料库积累之3种简单爬虫方式应对大部分网站
  20. 计算机图形学(四)几何变换_3_矩阵逆变换

热门文章

  1. 各种流行深度学习构架的性能对比
  2. 常见八种安卓开发报错的方式
  3. 关于js 中call()和 apply()方法的解释
  4. mybatis-plus sql注入原理
  5. Linux权限管理总结(1)--基础权限
  6. 语言是用的,把日常的交流转换成其它语言就可以了(转)
  7. 思维题 UVA 10881 Piotr's Ants
  8. OpenGL编程轻松入门之二次几何体
  9. 白内障预防+手术中人工晶状体的选择
  10. matlab2015b修改快捷键