Linux系统启动过程和登录方式
Linux系统启动过程
1、BIOS启动
当系统加电后,计算机会首先从CMOS(complementary Metal Oxide Semiconductor)芯片中加载BIOS,并且检测系
统硬件基本信息,如内存、硬盘、处理器等。然后BIOS寻找是否有系统启动盘,如果没有,系统会寻找主引导区
MBR(Master Boot Record)并运行记录在MBR上的程序。通常这个程序就是操作系统的Loader程序(嵌入式系统
中称为BootLoader),其主要功能是指示系统在启动之后所要加载的系统以及加载方式。例如,在MBR上运行Linux
的Loader程序(GRUB和LILO)后,就可以加载Linux内核。
BIOS称为固件。在计算机系统中,BIOS程序是存储于主板芯片中的,格式化硬盘对此住信息没有任何影响除使用
专门工具可以对其进行擦除外,其内容始终是存在的。
2、GRUB加载系统
GRUB是一种系统运行的Loader程序,一般情况下,安装了Linux操作系统后,启动系统时的第1个程序即是GRUB。
此程序用于加载操作系统内核(如果有多个操作系统,此程序可以用于选择启动多个操作系统)。
在Linux操作系统下,与启动相关的应用程序位于/boot文件夹下。运行GRUB时读取的应用程序
为/boot/grub/grub.conf文件,修改此文件可以设置加载操作系统的启动等待时间(超过此等待时间后系统将启
动默认启动操作系统)、启动菜单、默认启动操作系统和操作系统内核映像文件及位置。
# ls -l /boot/grub/grub.conf //查看此文件位置
# cat /boot/grub/grub.conf //显示此文件内容
3、系统启动文件
在系统加载Linux内核后,系统将依次运行以下几个内核程序。系统运行的第1个内核文件为/sbin/init,此程序
将创建系统第1个进程,并将此进程作为整个系统以后应用程序的父进程,然后运行/etc/rc.d/rc.sysinit初始化
系统。/etc/inittab是系统运行的第3个重要程序,此程序主要用来选择系统启动级别,不同的启动级别运行不同
的程序及命令,这些文件在/etc/rcX.d文件夹下读取。执行完成以上内容后,系统即加载用户所特有的信息。下
面详细介绍这些文件。
(1)/sbin/init.此文件位于/sbin文件夹下,用户可以在#提示符下查询当前系统进程,可以发现init进程号为
0.在整个系统中,此进程必须处于活动状态,除非系统关闭。
# ls /sbin/init //查看init文件位置
# ps -aux //查看当前系统中所有进程
(2)/etc/rc.d/rc.sysinit.创建0进程后,系统将读取文件/etc/rc.d/rc.sysinit进行系统初始化。
系统初始化的内容有以下几个方面:
设置环境变量内容;
读取/etc/sysconfig/network;
使用fsck检测文件系统;
将启动信息经过dmesy存入/var/log/dmesg中;
使用/etc/sysconfig/clock文件来初始化clock;
检测系统参数proc并设置PNP;
运行rc.erial对串行端口进行初始化;
安装root、proc文件系统以及其他文件系统;
设置字体,启动Swapping等操作。
(3)/etc/inittab.读取并检测系统基本信息后,系统将读取/etc/inittab文件来选择默认的运行级别,以决定
启动哪些系统服务。Linux包括6种运行级别,不同的运行级别将默认启动不同的硬件和系统环境,例如,要启动
网络环境,必须在级别3和级别5中进行;要修改系统错误,一般在单用户模式级别1中进行。一般情况下,系统将
默认启运行级别3或级别5.
# cat /etc/inittab
6种运行级别的义如下:
0,挂起模式,建议不要设置成这一级别;
1,单用户模式,一般在系统修复时使用;
2,多用户模式,但没有网络文件系统支持;
3,多用户完整模式,很多服务器选择这种模式;
4,没有使用;
5,为X11模式,即图形界面,运行桌面系统需要选择此级别;
6,重启模式。
(4)/etc/rcX.d.根据/etc/inittab中选择的默认级别,系统将读取/etc/rcX.d文件夹下的文件(X即为对应的级
别,如1,2,3...),此文件夹下全部为S和K前缀文件。
4、初始化用户文件
(1)/etc/rc.d/rc.local是一个脚本文件,在完成以上初始化后,用户可以在该文件夹下加载系统启动时要运行
的程序。系统启动时自动启动的程序即可以在此文件中添加,相当于启动时的一个批处理程序。
(2)/etc/profile文件。读取/etc/rc.d/rc.local后,系统将设置环境变量,这是系统最主要的shell配置文件
,也是用户登录时系统最先检测的文件。主要包括PATH、USER、LOGNAME、MAIL、HOSTMAME等。
(3)/home/$USERNAME/./bash_profile文件。读取完/etc/profile文件后,各用户将读取自己特有的配置文件,
除root用户外,所有用户都将分别读取/home/$USERNAME/.bash_profile文件并设置自身的环境变量。
执行完以上文件后,Linux操作系统就可以登录了。
Linux登录方式
Linux是一个多用户的网络操作系统,登录方式有多种,包括虚拟控制台和远程登录等方式。Linux启动到图形界
面后(级别3),系统提供了多个虚拟控制台,每个控制台相互独立,互不影响,在字符界面下,可以通过按快捷
键Alt+F1~F6进行多个虚拟控制台之间的切换,使用startx可以切换到图形界面;如果当前是图形界面,可以通过
按快捷键Alt+Ctrl+F1~F6切换到字符虚拟终端,按Alt+Ctrl+F7可以返回图形界面。
远程登录是一种非常重要的登录方式,Linux服务器一般都采用远程登录的方式登录系统,通常使用telnet工具。