关于系统
1、BIOS:"Basic Input Output System" 基本输入输出系统
是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
BIOS和CMOS区别:
CMOS 是电脑主机板上一块特殊的RAM芯片,是系统参数存放的地方,而BIOS中系统设置程序是完成参数设置的手段。因此,准确的说法应是通过BIOS设置程序对CMOS参数进行设置。
2、BIOS主要程序
(1)BIOS终端例程
BIOS中终端例程即BIOS中断服务程序。它是微机系统软、硬件之间的一个可编程接口,用于程序软件功能与微机硬件实现的衔接。DOS/Windows操作系统对软、硬盘、光驱与键盘、显示器等外围设备的管理即建立在系统BIOS的基础上。程序员也可以通过 对INT 5、INT 13等终端的访问直接调用BIOS终端例程。
(2)BIOS系统设置程序
微机部件配置情况是放在一块可读写的CMOSRAM芯片中的,它保存着系统CPU、软硬盘驱动器、显示器、键盘等部件的信息。关机后,系统通过一块后备电池向CMOS供电以保持其中的信息。如果CMOS中关于微机的配置信息不正确,会导致系统性能降 低、零部件不能识别,并由此引发一系列的软硬件故障。在BIOS ROM芯片中装有一个程序称为“系统设置程序”,就是用来 设置CMOS RAM中的参数的。这个程序一般在开机时按下一个或一组键即可进入,它提供了良好的界面供用户使用。这个设置 CMOS参数的过程,习惯上也称为“BIOS设置”。新购的微机或新增了部件的系统,都需进行BIOS设置。
(3)POST上电自检
微机接通电源后,系统将有一个对内部各个设备进行检查的过程,这是由一个通常称之为POST(Power On Self Test,上电自检)的程序来完成的。这也是BIOS的一个功能。完整的POST自检将包括CPU、640K基本内存、1M以上的扩展内存、ROM、主板、 CMOS存贮器、串并口、显示卡、软硬盘子系统及键盘测试。自检中若发现问题,系统将给出提示信息或鸣笛警告。
(4)BIOS系统启动自检程序
在完成POST自检后,ROM BIOS将按照系统CMOS设置中的启动顺序搜寻软硬盘驱动器及CDROM、网络服务器等有效的启动驱动器 ,读入操作系统引导记录,然后将系统控制权交给引导记录,由引导记录完成系统的启动。
3、BIOS功能,分为三个部分
(1)自检及初始化;这部分负责启动电脑,具体有三个部分:
第一个部分是用于电脑刚接通电源时对硬件部分的检测,也叫做加电自检(Power On Self Test,简称POST),功能是检查电脑是否良好,通常完整的POST自检将包括对CPU,640K基本内存,1M以上的扩展内存,ROM,主板,CMOS存储器,串并口,显示卡,软硬盘子系统及键盘进行测试,一旦在自检中发现问题,系统将给出提示信息或鸣笛警告。自检中如发现有错误,将按两种情况处理:对于严重故障(致命性故障)则停机,此时由于各种初始化操作还没完成,不能给出任何提示或信号;对于非严重故障则给出提示或声音报警信号,等待用户处理。
第二个部分是初始化,包括创建中断向量、设置寄存器、对一些外部设备进行初始化和检测等,其中很重要的一部分是BIOS设置,主要是对硬件设置的一些参数,当电脑启动时会读取这些参数,并和实际硬件设置进行比较,如果不符合,会影响系统的启动。
第三个部分是引导程序,功能是引导DOS或其他操作系统。BIOS先从软盘或硬盘的开始扇区读取引导记录,如果没有找到,则会在显示器上显示没有引导设备,如果找到引导记录会把电脑的控制权转给引导记录,由引导记录把操作系统装入电脑,在电脑启动成功后,BIOS的这部分任务就完成了。
(2)程序服务处理
为应用程序和操作系统服务,这些服务主要与输入输出设备有关,例如读磁盘、文件输出到打印机等。为了完成这些操作,BIOS必须直接与计算机的I/O设备打交道,它通过端口发出命令,向各种外部设备传送数据以及从它们那儿接收数据,使程序能够脱离具体的硬件操作。
(3)硬件中断处理
硬件中断处理则分别处理PC机硬件的需求,BIOS的服务功能是通过调用中断服务程序来实现的,这些服务分为很多组,每组有一个专门的中断。例如视频服务,中断号为10H;屏幕打印,中断号为05H;磁盘及串行口服务,中断14H等。每一组又根据具体功能细分为不同的服务号。应用程序需要使用哪些外设、进行什么操作只需要在程序中用相应的指令说明即可,无需直接控制。
4、linux启动过程
它主要分成两个阶段:
1.启动内核。在这个阶段,内核装入内存并在初始化每个设备驱动器时打印信息。
2.执行程序init。装入内核并初始化设备后,运行init程序。init程序处理所有程序的启动,包括重要系统精灵程序和其它指定在启动时装入的软件。
细分为如下几个部分:
(1)BIOS自检
当电脑开机的时候,电脑会进入BIOS,BIOS的工作主要是侦测电脑的周边配套设备是否工作正常,如CPU的类型、速度、缓存等,主要是为了检查这些设备在开机的时候是否能通过检测,如果能通过检测,说明电脑可以正常的工作。
(2)载入启动程序
BIOS自检完成后,BIOS会根据用户设置的启动顺序来由那个设备来启动电脑的操作系统,这个设备一般是硬盘。也就是进入到硬盘的MBR区域,这个区域中的有512个字节的大小,其中前446个字节中保存的程序是选择启动分区,也就是电脑由那个硬盘分区来载入开机的程序。那么在这个446个字节的空间中保存的就是启动程序,然后由这个小程序来加载存储在其他位置的操作系统,也就是启动grub程序。grub程序的这个配置文件是保存在:/boot/grun/grub.conf这个文件中。
(3)加载内核
正确的启动了启动程序之后,接下来的工作就是载入操作系统的内核(Kernel)。内核主要作用是取得BIOS所检测到的硬件设备的信息,然后将这些硬件设备自己来管理,这样才能够提供给Linux系统使用。接手了硬件设备后,然后就要加载这些设备的驱动程序。以便于控制电脑上的设备如何正确的工作。加载完硬件的驱动程序后,接下来就是件系统了,也就是加载开机所需要的库文件,程序等,所以/etc /bin /sbin /dev /lib这些目录的根目录必须是同一个分区,否则会造成Linux的开机失败。
(4)启动init服务
加载完成内核之后,Kernel会启动init这个程序,也是Linux内核启动后的第一个动作,这个程序会根据Run Level来执行一些相关的程序程序。启动init服务的目的就是为了用来初始化Linux的环境。也就代表了Linux已经顺利的加载了内核,这个时候的系统启动就进入了另外的一个阶段:系统初始化阶段。
(5)系统初始化系统环境
init程序其实是去读取/etc/inittab配置文件的配置,根据配置来决定作什么工作,使用cat /etc/inittab指令,就可以看到这个文件的内容,里面设置了init需要作那些工作。
1决定要使用那个run level
run level可以从0到6分成7种,一般是为了执行不同的程序或环境而设置的
run level 0:是作关机,所以不能设置initdefault中,也就是id:5:initdefaule的设置。否者一开机就会作关机的动作。
run level 1:是Single user mode模式,只允许root账号登录,主要是作一些系统维护的工作。
run level 2:可以使所有的用户登录,但不会启用NFS working,也就是没有网络功能
run level 3:可以使所有用户登录,并拥有完整的功能。包含run level 2没有的功能,但是开机后是用文本模式
run level 4 :使用者自己定义,但是默认情况下和run level 3完全相同,
run level 5:和run level 3几乎一样,唯一的不同是开机后是图形界面,
run level 6:重启。所以run level 6也不会设置在initdefault中,否者开机后立刻重启
一般情况下我们使用最多的是1,3,5这三个run level。
2执行初始操作系统的程序
设定执行/etc/rc.d/rc.sysinit这个程序,来初始化操作系统,主要是用来:
设定电脑的名称,hostname在/etc/sysconfig/network文件中;设定系统的时间;义键盘;swap分区;查根目录(/)有没有问题。并且挂载成可读可写的状态;定系统的时间;载一些其他的设备,如RAID和LVM。
3执行run level对应目录中的程序
用来决定启用那些服务,也就是执行rc程序。
定义UPS不间断电源系统如果你的服务器有UPS,当电源发生问题或电源恢复的时候,执行这些程序。
产生6个虚拟控制台。也就是tty1到tty6是使用mingetty指令分别产生tty1到tty6这6个虚拟控制台
如果启用的是run level 5,就会初始化X Windows环境。