• linux 启动引导流程


    课程大纲:

    Linux引导流程

    Linux运行级别

    Linux启动服务管理

    GRUB配置与应用

    启动故障分析与解决

    系统引导流程

    1.固件firmwareCMOS(固化在硬件上的程序与硬件统称)/BIOS(界面) ->  POST加电自检(检测基本的硬件是否正常,显示器,键盘等,与操作系统无关,裸机也可进行此步骤)如果加入一块硬盘,一个网卡,进入系统则看不到,需要在加电自检时进行处理。

         常用固件设置

             安全设置

             可引导介质列表

             可引导介质搜索顺序

             电源管理

             启动细节显示

             。。。。。。

    硬件时钟,固化在硬件上。Hardware clock

    安装好操作系统后还有软件时钟。通过date命令可以查到。

    问题是如何同步硬件时钟和软件时钟是个关键问题。因为有些软件程序在运行时发现硬件时钟与软件时钟不同步,在进行时间值调取时会出错,导致无法运行。

    查看软件时钟用date命令,显示出系统当前时间值。

    查看硬件时钟用hwclock命令,显示出硬件当前的时间值。

    一般来讲这两个时间值应该一值。

    hwclock --help查看此命令的选项

       --hctosys 将系统时间设置为硬件时间

       --systohc 将硬件时间设置为系统时间

             如果硬件时钟与软件时钟都不对,则都不可互为参考。此时用--set修改硬件时钟

             date 121511302010.38  20101215113038

             hwclock --set --date=”9/22/96 16:45:08”  

    2.自举程序BootLoader(GRUB)   ->   载入内核

            MBR(主引导记录) 位于磁盘0柱面0磁头1扇区

        自检完毕后读取MBR

         

        Master boot  record

        

        Bootloader(自举程序)  446byte

        

    Partition table(磁盘分区表) 64 byte     1,2,3,4

    Magic number(结束标志字)

    所有的操作系统都有一个bootloader Windows成为ntldr

    Linux称为grub

    自举程序无论在什么系统中其作用都是载入内核。

    vi  /etc/grub.conf 查看配置文件,这是一个连接文件,真正的文件在boot目录下。里边有一条语句kernel来指定内核位置。

    Ls /boot  出现vmlinuz-2.6.18-194.el5

    这是一个单独的可执行文件。

    源文件在/usr/src/linux中,是源代码文件,即未编译的文件。

    内核大部分是驱动程序,有驱动程序,则不要另外安装。

    内核版本号2.6.18  第二位十分重要,为奇数是测试版,为偶数是正式版。

        3. 载入内核(Kernel)     ->    驱动硬件

            内核中大部分是驱动,比如将内核移植到mp4等设备中去,其中只需保留需要的驱动,也就是内核裁剪。

            内核启动加载的过程中需要驱动硬件。通电自检是在硬件层面上,驱动硬件是在操作系统软件的层面上识别硬件是否会被调用。

         4.启动进程init       

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

    Init的工作

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

    linux中父进程终止,子进程则被称之为孤儿进程。理论上这种进程在linux中是不存在的,指向其父进程为init进程。故理论上init进程是所有进程的父进程。

    子进程死亡,父进程应该切断与子进程的联系。单父进程并不知道子进程死亡。则这样的子进程被称之为僵尸进程。

    用命令vi /etc/inittab  查看配置文件

    在其中可以看到运行级别。即 Runlevels

    运行级别:主要有7种    

    0:关机

    1:单用户模式(安全模式只有root可以登陆,无登录界面,也成为修复模式)

    2:   无NFS(网络文件系统,很少使用,安全性差,最好不用)

    3:   2,3都是字符界面的多用户运行模式(用到最多的服务器模式)

    4:无使用,用户自定义

    5:系统缺省运行级别X11x表示图形界面,图形化的多用户运行模式,也就是正在用的)

    6:重启

    Windows切换运行级别必须重启

    Linux使用命令即可

    1.查看当前的运行级

          Runlevel

    N 3 (未切换)     S 3(切换)

    2.运行级的切换

            init[0123456Ss]  或  telinit[0123456Ss]

  • 相关阅读:
    冬至——汤圆
    偷偷的高兴!
    sql 70229 考试样题(2)
    SQL Server开发人员应聘常被问的问题妙解汇总
    GOOLE Picasa Web License
    辞旧迎新!
    VC98\mfc\lib' specified in 'LIB environment variable' 系统找不到指定路径
    ASP 入门
    OpenCV类型转换
    坐标旋转变换公式的推导
  • 原文地址:https://www.cnblogs.com/invisible2/p/7232478.html
Copyright © 2020-2023  润新知