接下来我们继续对linux继续进行深入学习,这次一起分享的是我在学习linux引导流程的一些笔记!

linux引导流程解析:
课程大纲:
linux引导流程
linux运行级别
linux启动服务管理
grub配置与应用
启动故障分析与解决

首先我们要清楚系统的引导流程,具体如下:

固件 firmware (cmos/bios)  -  post加电自检
                          ↓

自举程序BootLoader(grub)   -  载入内核

                         ↓
载入内核Kernel               – 驱动硬件
                         ↓

启动进程init

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

接下来,对流程进行详细的剖析:

一、常用固件设置

比如:安全设置   可引导介质列表   可引导介质搜索顺序   电源管理   启动设置 等都是常用的固件设置

这里我们学习一些关于时钟的东西,首先我们要知道时钟分为硬件时钟和软件时钟,硬件时钟是固化在固件中的,可以通过hwclock查到,而软件时钟,可以通工date命令查到

硬件时钟与软件时钟有时候可能不一致,所以我们需要同步时钟,我们可以man一下hwclock命令

发现其中两个选项:

 -s | –hctosys      set the system time from the hardware clock  设置硬件时间为系统时间
  -w | –systohc      set the hardware clock to the current system time  设置系统时间为硬件时间

我们可以使用这两个选项来同步时间!

另外,如果硬件与软件都是错,还有一个选项 –set 修改硬件时间  –date  可以修改软件时间

date 121411302011.38  修改系统时间为2011年12月14日 11点30分38秒
hwclock –set –date=”9/22/96 15:45:05″修改硬件时钟为96年9月22日 15点45分5秒

二、如果固件没有问题,接下来接下来读取MBR (master boot record )即主引导记录  位于零柱面零磁头零扇区

MBR里面保存着三个东西
bootloader、 partition table 磁盘分区表、magic number结束标志字

今天解释一下 bootloader:
linux中常用grub  windows常用ntldr  因为windows为nt内核
nt为new techonicla的缩写

GRUB的应用和配置在后面详细介绍

自举程序最重要的作用的载入内核,不管什么操作系统
内核包括计算机整个管理的完成

2.6.18 主版本号-次版本号-末版本号   第二位比较重要
奇数为测试版  偶数为正式版 
内核可以下载并且升级

内核为独立的一个文件   /usr/src/linux  中放着没有编译的内核文件
三、载入内核kernel 以后 内核只做两件事情
  一个是驱动硬件,下载的内核中保存中最多的都是驱动程序;可以进行裁剪。二是 启动进程init  是系统启动的第一个进程

init的工作:
init启动后读取inittab文件,执行确省运行级别,从而继续引导过程。在unix操作系统中,init时第一个可以存在的进程  他的PID恒为1,但他也必须向一个更高级的功能负责,PID为0的内核调度器(kernel scheduler)用来分配cpu时间,从而获得cpu时间
父进程终止,子进程终止
父进程死了  子进程还没有死,这个时候称作孤儿进程,这样的进程是不允许存在的,如果检测到这样的进程时,自动将其父进程指向为init、
子进程死了,父进程还不知道,还在保持联系,还没切断,这样进程教程僵尸进程,用Z表示,这样的进程也是不允许存在的!
四、接下来读取/etc/inittab配置文件

首先讲linux的运行级别
runlever  从0到6  
运行级别类似与windows中安全模式选项等  ,可以在linux出现安全故障时进行修复
0 系统不推荐
1是linux的单用户模式 只有root可以登录 没有图形界面
2和3都是linux的多用户模式,
  2与3的区别是2没有nfs功能,nfs可以实现文件共享,简单设置,但是安全性不好
4.没有在使用的,可以用户自己定义
5.系统缺省的运行级别 x11是图形界面版本号。 图形化的多用户环境
6.reboot不停重启

运行级别的切换:
1 查看当千运行级别  runlevel 
2 运行级别的切换    init[0123456Ss]   telinit[0123456Ss]
telinit是init的一个软链接
所以一般使用init

linux引导流程解析(一)

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据