2010年3月16日星期二

哈哈哈哈哈哈!

已经一年没有来此写文字了,今天找到了好的翻墙方法,facebook也能上了,耶!为自己加油!

2009年2月22日星期日

Linux操作系统下GRUB引导过程及原理

Linux操作系统下GRUB引导过程及原理

GRUB是一个多重启动管理器。GRUB是GRand Unified Bootloader的缩写,它可以在多个操作系统共存时选择启动哪个系统。它可以启动的操作系统包括Linux, FreeBSD, Solaris, NetBSD, BeOS, OS/2, Windows 95/98 /NT /2000。它可以载入操作系统的内核和初始化操作系统(如Linux, FreeBSD),或者把启动权交给操作系统(如Windows 98)来完成启动。Thiz Server默认安装GRUB,并用它来启动机器。
  安装了GRUB,开机后会出现一个菜单,列出所有的启动选项。如果设置了启动画面,则会显示启动画面,按【Esc】键则可以取消启动画面显示菜单选项GRUB,按【e】是编辑启动命令,按【c】是使用命令行等。用上下键可以选择菜单项,按【Enter】启动所选项。按【e】键可以编辑所选项的启动命令,您可以用这个功能临时改变系统的启动参数。按【c】键则进入命令行模式。在命令行模式下可以输入命令直接执行,例如可以敲入poweroff关闭电脑。按【Tab】键可以列出所有支持的命令。
  GRUB可以代替LILO来完成对Linux的启动,特别适用于 Linux与其他操作系统共存情况,与LILO相比,它有以下特点:
  支持大硬盘
  以前许多Linux发行版本的LILO 都有同样的一个问题:根分区(/boot分区)不能分在超过1024柱面的地方,一般是在8.4GB左右的地方,否则LILO不能安装,或者安装后不能正确启动系统。而GRUB就不会出现这种情况,只要安装时您的大硬盘是在LBA模式下,GRUB就可以启动根分区在8GB以外的操作系统。在LILO下,您需要手动输入操作系统的名字来启动不同的操作系统。而GRUB使用一个菜单来选择不同的系统进行开机。您还可以自己设置各种参数,如延迟时间、默认操作系统等。
  支持开机画面
  GRUB支持在启动开机的同时显示一个开机画面。对于玩家来说,这样可以制作自己的个性化开机画面;对于PC厂商来说,这样可以在开机时显示电脑的一些信息和厂商的标志等。GRUB支持640×480, 800×600, 1024×768各种模式的开机画面,而且可以自动侦测并选择最佳模式,与Windows的320×240的开机画面不可同日而语。
  两种执行模式
  GRUB不但可以透过设置文件进行例行的开机,还可以在选择开机前动态改变开机时的参数,还可以动态载入各种设备。例如您在Linux下编译了一个新的内核,但不能确定它能不能工作,您就可以在开机时动态改变GRUB的参数,尝试装载这个新的内核进行使用。GRUB的命令行有非常强大的功能,而且支持如bash或DOSKEY一样的历史功能,您可以用上下键来寻找以前的命令。
  分区位置改变后不必重新设置
  LILO是透过读取硬盘上的绝对分区来装入操作系统,因此每次分区改变都必须重新设置LILO,例如您用Partition Magic调整了分区的大小,那LILO在您重新设置好之前就不能引导这个分区的操作系统了。而GRUB是透过文件系统直接把内核读取到内存,因此只要操作系统内核的路径没有改变,GRUB就可以启动系统。除此之外,GRUB还有许多非常强大的功能。例如支持多种外部设备,动态装载操作系统内核,甚至可以透过网络装载操作系统内核。GRUB支持多种文件系统、多种可执行文件格式,以及自动解压,还可以启动不支持多重引导的操作系统等。

GRUB启动时会在 /boot/grub 中寻找一个名字为grub.conf的设置文件,如果找不到此设置文件则不进入菜单模式而直接进入命令行模式。
  grub.conf是一个纯文字文件,您可以用任何一个文字编辑器来打开它。每一行代表一个设置命令,如果一行的第一个字符为井号#,则这一行为注释,您可以简单地用增加或减少注释行来改
变设置。
  编辑grub.conf时,一般会有以下几行:
  
timeout second
  设置在second秒之后引导默认的操作系统。
  Thiz Linux 默认是timeout 10,也就是说10秒之内如果没有其他命令就启动系统。如果设成 -1,则 GRUB 会一直等待直到用户选择一个选项为止。
  
default num
  默认启动第 num +1行选项,也就说default=0,则默认启动菜单第1行的操作系统,default=1,则启动第2行的系统,如此类推。
  
splash pathname/filename
  指出开机画面的文件所存放的路径和文件名,如 splash /boot/logo/800x600x8.img 是指用在/boot/logo路径下的800×600像素的文件作为开机画面。
  
title OSname title
  后面的字符就是在菜单项上所看见的选项,可以写上操作系统的名字和描述,如用title BluePoint Linux, Single Mode 代表这一选项的话,是引导Thiz Linux的单用户模式。
  下面结合两个系统引导描述来解释几个引导选项的意义:
  title Thiz Server, Default Mode
  root (hd0,1)
  kernel /boot/vmlinuz vga=auto root=/dev/hda2
  hd0是指第一个硬盘(主硬盘),(hd0,1)是指第一个硬盘的第二个分区。kernel /boot/vmlinuz是指出Linux内核的路径在/boot/vmlinuz中。vga=auto是设置显示模式,root=/dev/hda2是指把第一个硬盘的第二个分区作为根挂载点。
  title Microsoft Windows
  root (hd1,0)
  chainloader (hd1,0)+1
  root (hd1,0)是指第二个硬盘(从硬盘)上的第一个分区。
  chainloader (hd1,0)+1 是指装入一个分区的数据然后把引导权交给它。

Windows XP系统启动过程原理全面分析

Windows XP系统启动过程原理全面分析

现在个人用的最多的就是windows XP,要正确使用Windows XP,一定要熟练掌握Windows XP的启动原理。Windows XP的启动过程所执行的操作可以看成是一个操作系统整体环境的快照或缩影,了解了Windows XP的启动原理,有助于深入了解Windows XP的多方面机制。
正如很多人所经常遇到的那样,Windows XP并不是十全十美的,如果操作失误,很可能导致Windows XP的各种故障。其中,启动故障比较常见,也比较难于对付。因为,如果系统启动不起来,对它的排错也就无从谈起。所以,熟练掌握对Windows XP启动故障的排除,也是一个“菜鸟”必不可少的技能。
Windows XP是基于NT技术的操作系统,它的启动过程同Windows NT和Windows 2000基本相同,但是同DOS、Windows 3.X、Windows 9.X和Windows ME大相径庭。Windows XP彻底抛弃了原先的基于字符的实模式环境,其启动过程比较复杂。 一般来说,Windows XP的启动过程,主要包括以下几个步骤:

一、电源开启自检过程 在打开计算机电源时,首先开始电源启动自检过程。在BIOS中包含一些基本的指令,能够帮助计算机在没有安装任何操作系统的情况下进行基本的启动。电源启动自检过程首先会从BIOS中载入必要的指令,然后进行如下一系列的自检操作: 进行硬件的初始化检查,例如检查内存的容量等。 验证用于启动操作系统的设备是否正常,例如,检查硬盘是否存在等。从CMOS中读取系统配置信息。 在完成了电源启动的自检之后,每个带有固件的硬件设备,如显卡和磁盘控制器,都会根据需要完成内部的自检操作。

二、初始化启动过程 在完成了电源启动自检过程之后,存储在CMOS中的设置,例如磁盘的引导顺序等,能够决定由哪些设备来引导计算机。例如,可以设置磁盘的引导顺序为首先通过A盘引导,其次才通过C盘引导,则系统会首先尝试用A盘引导系统,如果A盘存在并可引导,则通过A盘引导。如果A盘不存在,则通过C盘引导系统。如果A盘存在,但不是引导盘,则系统地提示系统不可引导。 一般来说通常会使用硬盘引导。在进行硬盘引导时,启动过程通常按照如下的步骤进行:系统首先检测打开电源的硬盘。 www.gadmin.cn若该硬盘是启动盘,BIOS就将主引导记录(Main Boot Record――MBR)中的引导代码载入内存。 接着,BIOS会将启动过程的运行交给MBR来进行。 计算机搜索MBR中的分区表,找出活动分区(Active Partition)。计算机将活动分区的第一个扇区中的引导代码载入到内存。 引导代码检测当前使用的文件系统是否可用。 www.ieeye.com/Goodie.htm引导代码查找ntldr文件,找到之后启动它。 (该文件ntldr文件将来在登录进入windows系统之后C盘根目录隐藏文件下找到)BIOS将控制权转交给ntldr,由ntldr完成操作系统的启动。   

注意:这里简单介绍一下MBR的概念。MBR位于启动磁盘的第一个扇区,其中主要包含引导代码(Boot Code)和分区表(Partition Table)数据。引导代码主要用于引导系统。而分区表则主要用于标识基本分区和扩展分区。

三、引导程序载入过程 本过程主要由ntldr 文件完成。Ntldr从引导分区载入启动文件,然后完成如下一些任务。
1、在基于X86CPU的系统下,设置CPU的运行使用32位的Flat内存模式 。对基于X86CPU的计算机来说,第一次启动的时候总是进入所谓的实模式(RealMode)。在实模式下CPU的某些特性不能完全发挥,这是因为它要保证同8位或16位的CPU(如8086、8088)相兼容。实模式下由于系统规格的限制,无法对大容量内存进行直接存取,而必须通过分段的方式完成。对于32位的Windows XP来说,8位或16位的CPU显然是无用的。 ntldr首先会将CPU切换到32位的模式,从而确保Windows XP的正常。在CPU的32位模式下,可以对大容量内存进行直接存取,而彻底抛弃了原先在8位或16位下分段存取内存的不便。这也是为什么32位模式称作Flat内存模式的原因。
2、启动文件系统 ntldr 中包含相应的代码,能够帮助Windows XP完成对NTFS或FAT格式的磁盘进行读写。从而能够读取、访问和复制文件。
3、读取boot.ini 文件 在这一步中,ntldr 会分析boot.ini文件,确定操作系统分区所在的位置。 对于单引导的系统来说,ntldr 会通过启动ntdetect.com来初始化硬件检测状态。 对于多引导系统来说,首先由用户在操作系统菜单中选择要启动的操作系统然后而由ntldr进行相应的操作。 如果用户选择启动ntdetect.com来初始化硬件检测状态。 如果选择启动旧式的微软操作系统,如MS-DOS、Windows 9x/ME,ntldr会将从bootsect.dos文件中读取MBR代码,然后将控制权交给bootsect.dos中的MBR。
4、根据需要提供启动菜单 在这一步,如果用户按下F8键,则会显示启动菜单,允许用户选择不同的启动方式,例如使用安全方式启动,或是使用最后一次正确的配置启动等。
5、检测硬件和硬件配置 在这一步中,ntldr 启动ntdetect.com文件进行基本的设备检查,然后将 boot.ini文件中的信息,以及注册表中的硬件和软件信息传递给ntoskrnl.exe 程序。

四、检测和配置硬件过程 在处理完boot.ini文件之后,ntldr会启动ntdetect.com程序。在基于X86的系统中,ntdetect.com会通过调用系统固件程序收集安装的硬件信息,然后由ntdetect.com将这些信息传递送回ntldr。Ntldr获取从ntdetect.com发来的信息后,将这些信息组织成为内部的断气结构形式,然后由ntldr 启动ntoskrnl.exe ,并将这些信息发送给它。 www.ieeye.com/Goodie.htmNtdetect.com 会收集如下类型的硬件信息: 系统固件信息,例如时间和日期等 总线适配器的类型 显卡适配器的类型 键盘 通信端口 磁盘 软盘 输入设备,例如鼠标 并口 安装在ISA槽中的ISA设备 完成信息的检测之后,Windows XP会在屏幕上显示那个著名的Windows XP商标,并显示一个滚动的,告诉用户Windows 的启动进程。

五、内核加载过程在此过程中,ntldr实施下列一些功能。
1、将内核(ntoskrnl.exe)和硬件抽象层(hal.dll)载入到内存
2、加载控制集信息 在这一过程中,ntldr从注册表中的HKEY_LOCAL_MACHINE\SYSTEM位置加载相应的控制集(Control Set)信息,并确定在启动过程中要加载的设备驱动。
3、加载设备驱动程序和服务 在这一步中,系统会在BIOS的帮助下开始加载设备驱动程序,以及服务。
4、启动会话管理器 完成上面的过程之后,内核会启动会话管理器(Session Manager),这是一个名为smss.exe 的程序,其作用表现如下: (1)创建系统环境变量 (2)创建虚拟内存页面文件

六、用户登录过程 在这一过程中,Windows 子系统会启动winlogon.exe,这是一个系统服务,用于提供对Windows 用户的登录和注销的支持。Winlogon.exe 可以完成如下一些工作: 启动服务子系统(services.exe),也称服务控制管理器(Service Control Manager, SCM)。 启动本地安全授权(Local Security Authority , LSA)过程(lsass.exe)。 在开始登录提示的时候,对Crtl+Alt+Del组合键进行分析处理。一个图形化的识别和认证组件收集用户的帐号和密码,然后将这些信息安全地传送给LSA以进行认证处理。如果用户提供的信息是正确的,能够通过认证,就允许用户对系统进行访问。要注意的是,如果您的计算机中,只有Administrator这一个用户,那么在欢迎屏幕中就会显示Administrator 用户项。如果您的计算机中不仅有Administrator用户,还有别的可以交互登录的用户,那么欢迎屏幕中就只显示出Administrator之外的用户,而不显示Administrator用户。 如果用户希望以Administrator用户登录,该怎么办呢?实际很简单,直接在欢迎屏幕中按下两次Crtl+Alt+Del组合键,即可打开标准的登录窗口,可以再输入Administrator 的用户名和密码,以便用最高管理员的身份登录。

七、即插即用设备的检测过程 对即插即用设备的检测,实际上是和登录过程异步进行的。由系统固件、硬件、设备驱动和系统特性决定了Windows XP如何对新设备进行检测和枚举。当即插即用组件正常工作后,Windows XP会对新设备进行检测,为它们分配系统资源,并在尽量不要用户提供选择的情况下,为新设备安装一个合适版本的驱动程序。
至此,Windows XP已成功启动!!!

版权申明:本文在www.windowso.comwww.ieeye.com首发 作者:热能

Search with Google