码迷,mamicode.com
首页 > 其他好文 > 详细

内核启动流程

时间:2015-10-22 17:37:16      阅读:322      评论:0      收藏:0      [点我收藏+]

标签:sequence   网络管理   配置文件   linux   操作系统   

系统启动流程(1)
  
    pc:os(linux)
  
     POST(加电自检)-->BIOS (Boot sequence)(决定到哪里有启动操作系统的顺利)--MBR(bootloader ,446bit)

    -->Kernel  (文件系统、进程管理、内存管理、网络管理、安全功能、驱动程序)-->initrd
    --/sbin/init (用户空间进程的管理)[启动系统模块,与相关的硬件信息的初始化文件 /etc/rc.d/rc.sysinit-->启动系统中所需的各项服务/etc/rc.d/rc]
    

    /etc/rc.d/ec.loacl   可以自定义脚本程序在这里,开机启动就可以启动的服务
    
       这些脚本的配置文件都是放在、/etc/sysconfig

       系统自定义的设备与模块对应文件  :   /etc/modprobe.conf

    加载流程:
              1、通电自检,加载BIOS的硬件信息与进行自我测试,并根据设置取得第一个可启动的设备;
              2、读取并执第一个启动设备内MBR的boot loader(即是grup,spfdisk等程序)
              3、依据boot loader的设置加载Kernel,Kernel会开始检测硬件与加载驱动程序
              4、在硬件驱动成功后,Kernel会主动调用init进程,而init会取得run-level等信息
              5、init执行/etc/rc.d/rc.sysinit文件来准备软件执行的操作环境(如网络、时区等信息)
              6、init执行run-revel的各个服务的启动
              7、init执行/etc/rc.d/rc.local文件
              8、init执行终端模拟程序mingetty来启动login进程,最后就等用户登录

     运行级别:启动的服务不同
          运行级别:0-6
               0:halt  关机
               1:single user mode   单用户模式 ,直接以管理员身份切入,不用密码(维护模式)1 s S singer
               2:multi user mode, no nfs文件系统   多用户模式
               3:multi user mode,多用户命令模式
               4:reseved 保留级别
               5:multi user mode   多用户界面模式
               6:重启 
         
     运行级别的配置文件  /etc/inittab

  详解启动过程
    bootloader(属于MBR)
          linux    LILO:linux LOader
                   GRUB:
                   stagel:MBR
                   stagel1.5:
                   stagel:/boot/grub/

  grub  的配置文件
greb.conf
 default=0     设定默认启动的title的编号,从0开始
timeout=5      等待用户选择的超时时长,单位为妙
splashimage=(hd0,0)/grub/splash.xpm.gz   grub 的背景图片
hiddenmenu    隐藏菜单
password 明文
password  --md5  md5格式加密的           命令行grub-md5-crypt  可以直接产生MD5密码
title CentOS 6 (2.6.32-504.el6.x86_64)     内核标题或操作系统名称,字符串可以自由修改
        root (hd0,0)    内核文件所在的设备,对Grub而言,所有类型硬盘一律为hd: 表示第几个磁盘,最后的0表示对应磁盘的分区
        kernel /vmlinuz-2.6.32-504.el6.x86_64 ro SFONT=
        initrd /initramfs-2.6.32-504.el6.x86_64.img

   查看运行级别:
    runlevel    who -r  
  
   查看内核:
       uname -r   显示内核版本号
   
   安装grub  stagel:
     #grub
     grub >root  (hd0,0)
     grub >set (hd0)
     安装grub第二种方式:
     # grub-install --root-directory=/
Kernel初始化的过程中:
    1:设备探测
    2:驱动初始化(从initrd文件中装载驱动模块)
    3:以只读方式挂载根文件系统
    4:装载第一个进程init (pid :1)


     /sbin/init:   读取的文件(/etc/inittab)
         upstart
        
         id:标识符
         runlevels:运行在哪个级别;
         action:在什么情况下执行此行;
         process:要运行进程;
     
         si :sysinit (系统初始化)
   
          initdefault:设定默认运行级别
          sysinit:系统初始化
          wait:等待级别切换完成
         

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




     内核设计的风格:
        单内核:把所有的功能多做成一个内核,Linux,仅支持轻量级进程(线程)
                 核心:KO(Kernel object)

        微内核:window,支持多线程


      chroot:chroot  /PATH/TO


核心:/boot/vmlinuz-version
内核模块(ko):/lib/modules/version/
内核设计:
      单内核     Linux   模块化设计     内核很小,吧基本的功能装载模块
   
      
      微内核     模块化设计  
 
装载模块:
       indmod
       www.kernel.org
     用户空间访问,监控内核的方式:
 /proc,/sys

  伪文件系统
   /proc/sys :在此目录中的文件是可以读写的,
   /sys :某些文件可写
  
设定内核参数值的方法:
   echo VALUE > /proc/sys/...
   sysctl -W kernel.hostname=

内核参数脚本: /etc/sysctl.conf  


内核模块管理 ;
    列出内核装载了哪些模块      command:lsmod
    管理模块:    modprobe   MOD_NAME:装载某个模块
                  modprobe  -r   MOD_NAME   卸载某个模块
               
     查看模块的具体信息   modinfo   COM_NAME  
       
      insmod  /PATH/TO/MOD-NAME_FILE    装载模块,   一定要指定模块的路径
      
         remod MOD_NAME    移除某个模块


      depmod   /PTAH/TO/MODLIES_STR      依靠关系


    内核中的 功能除了核心功能之外,在编译的时候,大多功能会有三种选择:
     1、不适用此功能
     2、编译成内核模块
     3、编译进内核
     
  如何手动编译内核:
    
     查看内核版本:   uname -r    
     


内核启动流程

标签:sequence   网络管理   配置文件   linux   操作系统   

原文地址:http://10744927.blog.51cto.com/10734927/1705251

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!