本篇学习目标
了解Linux系统的启动原里。
了解Linux系统的终端。
熟悉Linux的登录和注销;关机、重启、系统基本操作。
熟悉Linux系统中用户的切换,和查看系统中和登录用户有关的其他操作。
正文:
了解Linux系统的启动原里。
Linux的启动过程简介:
当用户打开计算机的电源的时候,首先会进行BIOS自检,根据BIOS中设置的启动设备进行启动。接着计算机读取硬盘上的MBR记录冰启动设备上安装的引导程序GRUB或者LILO,引导程序接着开始引导Linux系统。此时,BIOS会将CPU的控制权交给Linux系统,Linux系统重新进行硬件自检让后引导内核,接下来执行init父进程,系统会根据/etc/inittab文件选择系统的启动级别并调用rc.sysinit和/etc/rc目录中的脚步。最后到达用户的登录界面,用户输入正确的凭据后,就进入系统。到此,Linux启动启动完成。
上面只是简单的介绍了Linux系统启动过程,下面让我们对Linux系统的启动过程进行详细的讲解。
Linux系统的整个启动需要经过多个步骤,我们逐一的对其进行分析。
1.BIOS开机自检
计算机在接通电源之后首先由BIOS进行POST(Power On Self Testing)开机自检,接着安装BIOS设置的引导顺序从网络、软盘、硬盘、或光驱中读入引导程序。Linux系统通常都是从硬盘上引导的,其中分区中的主引导记录(MBR)包含主引导加载程序(GRUB或者LILO)。MBR是一个512字节大小的扇区,位于磁盘上的第一个扇区(0磁道0柱面1扇区)。当MBR被加载到内存之后,BIOS就会将控制权交给MBR。Linux系统是从BIOS中的地址0xFFFF0处开始引导的。BIOS的第1个步骤是加电进行POST自检。POST的工作是对硬件进行检测。BIOS的第2个步骤是进行本地设备的枚举和初始化。BIOS由两部分组成:POST代码和运行时的服务。当POST在内存中完成自检之后,POST代码将从内存中清理出来,但是BIOS运行时服务依然保留在内存中,这些服务可以提供给目标操作系统使用。
2.启动GRUB/LILO引导加载程序
GRUB和LILO都是引导加载程序,但是LILO现在很少用了。引导加载程序用于引导操作系统启动。当机器引导它的操作系统时,BIOS会读取引导介质上最前面的512字节(主引导记录)。在单一的MBR中只能存储一个操作系统的引导记录,所以当安装了多个操作系统时引导就会出现问题,所以就需要更灵活的引导加载程序。
所有引导加载程序都以类似的方式工作,满足共同的目的,但LILO现在已经很少用了,因为l LILO没有交互式命令界面、并且不支持从网络引导。所以现在大部分的系统引导加载程序都用GRUB。GRUB包含许多特性,这使得GRUB比其他可用的引导加载程序更加优越,下面列出一些比较重要的特性:
(1)GRUB在x86机器上提供一个真正基于命令行的、先于操作系统启动的环境。
(2)GRUB支持逻辑块寻址(LBA)方式。
LBA的主要作用是寻找驱动器上文件的地址并将其置于驱动器的硬件中,它被用在许多IDE和SCSI硬盘中。在使用LBA之前,硬盘驱动器遇到一个1024柱面的限制,即BIOS不能找到在1024柱面后的文件(比如一个引导加载程序或是内核文件)。只要系统BIOS能支持LBA模式(大多数都支持),那么LBA就允许GRUB超越1024柱面的限制,引导操作系统。
(3)GRUB的配置能在每次系统引导时被读取。
这就避免了用户每次改变引导选项时都要重写一次主引导记录。大多数的引导加载程序都不能读取配置文件,并使用它们来设置引导选项。比如,用户必需改变一个LILO的配置文件,然后执行一个命令将新的配置数据重写回系统的主引导记录。这种方法比GRUB所采用的方法更加危险,因为一个错误配置的主引导记录将使系统无法引导。在使用GRUB中,如果配置文件被错误配置并且引导,那它也仅仅简单地转到一个默认的命令行,允许用户手工输入命令来运行操作系统。