计算机系统及启动方法

文档序号:10593890阅读:357来源:国知局
计算机系统及启动方法
【专利摘要】一种计算机系统及启动方法,该启动方法用于包括一处理器、一存储器以及一硬盘的计算机,其中该硬盘包括一操作系统。该启动方法包括:首先启动一基本输入输出系统。接着依据一设定文件在该存储器中划分一预留区块。接着将该操作系统从该硬盘中拷贝至该预留区块,构成一操作系统副本。最后启动该操作系统副本。本发明可加速操作系统的启动。
【专利说明】计算机系统及启动方法
[0001 ] 本申请是申请日为2009年7月23日、申请号为200910159943.8、发明名称为“计算机系统及启动方法”的申请的分案申请。
技术领域
[0002]本发明有关于计算机系统的开机程序,尤其是有关于加速载入操作系统的技术。
【背景技术】
[0003]—般计算机系统中包括了基本的处理器、存储器、硬盘等元件,由基本输入输出系统负责基本管理。而操作系统的载入可进一步使计算机系统完全发挥功能。计算机系统的开机程序通常分为几个阶段:首先基本输入输出系统在开机后逐一初始化每一元件,接着从硬盘中启动开机载入器(Boot Loader)或直接启动操作系统。由于计算机系统中的元件相当多,逐一初始化的过程可能会耗费十秒至十六秒不等。接着依照基本输入输出系统或开机载入器的定义,计算机系统会从硬盘中读取操作系统以供处理器执行。从硬盘读取操作系统的过程也是相当漫长,一般需要四十秒至一分钟不等。由于在基本输入输出系统逐一初始化每一元件的过程中,并不是每一元件都是载入操作系统所需的必要元件。因此一种节省时间而更快启动操作系统的方法是有待开发的。

【发明内容】

[0004]—种启动方法,用于包括一处理器、一主存储器以及一硬盘的计算机,其中该硬盘包括一操作系统以及一开机载入器。首先启动一基本输入输出系统。接着依据一设定文件的设定在该主存储器中划分一段固定地址的存储器空间作为一预留区块。接着将该操作系统从该硬盘中拷贝至该主存储器的该预留区块,构成一操作系统副本,并启动被拷贝至该预留区块的操作系统副本,其中,该预留区块的该段固定地址由该操作系统所包括的一存储器管理程序在计算机系统之前的一次正常开机时设定,并存储于该设定文件中,当该计算机再次上电时,该基本输入输出系统通过读取该设定文件以获得该预留区块的该段固定地址。
[0005]本发明另一实施例是一种计算机系统,包括一处理器、一主存储器、一硬盘以及一基本输入输出系统。该硬盘中包括一操作系统,其中该操作系统包括一存储器管理程序。该计算机系统在开机后,该处理器执行该基本输入输出系统,依据一设定文件的设定在该主存储器中划分一段固定地址的存储器空间作为一预留区块,并将该操作系统从该硬盘中拷贝至该主存储器的该预留区块以构成一操作系统副本,接着该处理器启动被拷贝至该预留区块的该操作系统副本,其中,该预留区块的该段固定位地址由该存储器管理程序在计算机系统之前的一次正常开机时设定,并存储于该设定文件中,当该计算机系统再次上电时,该基本输入输出系统通过读取该设定文件以获得该预留区块的该段固定地址。
[0006]本发明可加速操作系统的启动。
【附图说明】
[0007]图1为本发明实施例的一计算机系统100;
[0008]图2为本发明实施例的计算机系统100的启动流程图;
[0009]图3为本发明实施例的划分预留区块的流程图;
[0010]图4为本发明实施例中载入操作系统的流程图;以及
[0011]图5为本发明实施例中各项启动阶段的时序图。
[0012]附图中符号的简单说明如下:
[0013]100:计算机系统
[0014]102:处理器
[0015]104:基本输入输出系统
[0016]106:总线
[0017]110:非易失性存储器
[0018]120:主存储器
[0019]122:预留区块
[0020]124:操作系统副本
[0021]130:硬盘
[0022]132:开机载入器
[0023]134:操作系统
[0024]140:芯片组。
【具体实施方式】
[0025]图1为本发明实施例的一计算机系统100。计算机系统100是一简化架构图,介绍了几项基本必备元件,包括处理器102,非易失性存储器110,总线106,主存储器120,硬盘130以及芯片组140。其中该非易失性存储器110中可储存一基本输入输出系统104,是控制整个开机流程的核心机制。该硬盘130中可存放一开机载入器(Boot Loader) 132以及一操作系统134。开机载入器132通常用来提供额外服务,可在载入操作系统之前将操作系统所需的各种启动环境预先设置好。举例来说,该开机载入器132可以操作多重操作系统的开机选单,或是多重开机模式的开机选单等。
[0026]为了加速开机,本发明实施例在基本输入输出系统104进行初始化的阶段,基本输入输出系统104利用初始化一些非必要元件的空文件,同时将操作系统134拷贝到主存储器120中。由于主存储器120的读写速度往往远大于硬盘130,因此从主存储器120中载入操作系统,可以达到加速效果。为了将操作系统134预先拷贝到主存储器120中,必须在主存储器120中保留一预留区块122以存放操作系统副本124。因为主存储器120的空间分配,是在操作系统134的一内核程序(kernel)载入以后由一存储器管理程序(memory manager)控制。如果未保留一预留区块,则进入操作系统的运行阶段后,操作系统为硬件驱动程序或其它应用软件等分配存储器空间时,可能会覆盖到该操作系统副本124的存储器空间而发生错误。因此在主存储器120中保留一预留区块可防止后续所有软件和硬件发生冲突。详细作法将于接下来以流程图搭配图1来说明。
[0027]图2为本发明实施例的计算机系统100的启动流程图。首先在步骤201中,启动计算机系统100。该处理器102首先会读取非易失性存储器110,执行其中的基本输入输出系统104,然后将主存储器120初始化。在步骤203中,为了要将操作系统134预载入主存储器120中,必须划分出一段固定地址的存储器空间作为预留区块122使其不被其他软硬件所存取。该固定地址可以事先定义在一设定文件中。划分预留区块的具体方法将于图3详述。
[0028]在该主存储器120中划分了一块预留区块122后,接着在步骤205中,基本输入输出系统104将硬盘130初始化。唯有先将硬盘130初始化,其中的操作系统134才有办法被读出来。该操作系统134可以是一种映像文件(image file)的形式,而大小则视计算机系统100的规格而不等。举例来说,该操作系统134可以是一个200MB大小的小型Linux操作系统。而假设该主存储器120有2GB的大小,该预留区块122可以是从OxOOOOH起始的300MB的连续空间。
[0029]接着在步骤207中,基本输入输出系统104可以开始将操作系统134从硬盘130中拷贝到主存储器120的该预留区块122中。拷贝操作系统134的动作可能需要数秒不等,假设该硬盘130传输至主存储器120的速度为每秒60MB,则拷贝200MB需要三至四秒。在本实施例中,拷贝的进度可以被即时地记录在一个基本输入输出系统104、开机载入器132及操作系统三者都能访问的地方,例如一暂存器(未图示)或是主存储器120中。拷贝的进度可以是硬盘130中下一个要拷贝的扇区(sec tor)。而在拷贝进行的过程中,基本输入输出系统104还同时对计算机系统100中其他的元件进行初始化,以充分利用时间。举例来说,基本输入输出系统104可以同时初始化通用串行端口,音效卡,网络卡以及各式外围设备(未图示)。
[0030]当基本输入输出系统104初始化计算机系统100的程序完成后,接下来进行步骤209,在载入操作系统134之前先初始化操作系统134所需的启动环境,之后载入主存储器120中的操作系统副本124。一般从硬盘130中载入操作系统134需要40至60秒,但是本发明实施例中,从主存储器120中载入操作系统副本124只需要花5至10秒。所以效能增加十分显著。
[0031]在其它实施方式中,当基本输入输出系统104初始化计算机系统100的程序完成后,处理器102还可以执行开机载入器132,该开机载入器132可以供用户在几种不同的操作系统选择载入哪一个操作系统,并初始化操作系统所需的启动环境。此时如果操作系统134拷贝至主存储器120的程序还没结束,会继续由开机载入器132在背景执行拷贝动作而不冲突,在背景执行,举例而言是指开机载入器132在执行前述的供用户选择载入哪个操作系统以及初始化操作系统所需的启动环境的同时,执行将操作系统134剩余未拷贝完的部分拷贝至主存储器120。
[0032]在其它实施方式中,该处理器102不需要等到操作系统134完全拷贝至主存储器120才开始执行该操作系统副本124,而是可以同时进行。举例来说,当基本输入输出系统104和开机载入器132皆完成初始化步骤时,操作系统134的拷贝进度可能只到一半。此时处理器102就可以先执行位于操作系统副本124中的前半段程序码。而后半段程序码可以运用数据串流的概念,一边拷贝一边执行。
[0033]更进一步地说,如果操作系统134的大小超过该主存储器120所能提供的范围,该预留区块122可以当成是一种先进先出(FIFO)的快取存储器,将操作系统134以数据串流的方式分批次读入与执行。
[0034]图3为本发明实施例的在主存储器120中划分出一预留区块122的流程图。在步骤301中,进入步骤203所述的划分预留区块的步骤,包括下列子程序:在步骤303中,该基本输入输出系统104读取一设定文件,以判断该操作系统134是不是第一次用来开机。该设定文件可储存在储存基本输入输出系统104的非易失性存储器110或硬盘130中,记录着上一次开机记录,上次开机所用的操作系统版本、操作系统映像文件大小以及预留区块122的大小和起始地址。如果判断这次开机所用的操作系统134在前一次开机已经设定过预留区块,就不需再重复进行,而是直接跳至步骤309。相对地,如果这次开机所用的操作系统134并没有前次开机记录或者前次开机并未设定预留区块,则进行步骤305,根据操作系统134的映像文件大小来设定预留区块122的大小及起始地址。举例来说,预留区块122的起始地址可以是该主存储器120的最前端OxOOOOH,而预留区块122的大小可以是大于等于该操作系统134映像文件大小的值。在设定了预留区块122之后,进行步骤307,将该预留区块122的起始地址和大小以及该操作系统134的映像文件的大小储存在上述设定文件中。之后进行步骤309,该基本输入输出系统104读取上述设定文件中所存储的该预留区块的设定,包括其起始地址和大小等,以划分出该预留区块。最后在步骤311中结束预留区块的子程序。接下来返回图2的流程,执行步骤203以后的步骤。前述在该主存储器120中设定预留区块122(步骤305)可以是由存储器管理程序(memory management)在计算机系统100—次正常开机时完成,后续计算机系统100再次上电时,该基本输入输出系统104通过读取该设定文件就可以得知该预留区块的起始地址和大小,从而可以在对元件进行初始化的同时,进行拷贝操作系统的动作。
[0035]图4为本发明实施例中载入操作系统的流程图。图2的步骤209,从主存储器120载入操作系统的过程,包括下列子步骤。步骤401中,当基本输入输出系统104和开机载入器132皆就绪时,就准备启动操作系统。在步骤403中,该开机载入器132选择操作系统并初始化操作系统的启动环境,如前所述,这个步骤也可以是由基本输入输出系统104来执行,例如由基本输入输出系统104中的服务程序的第13号中断服务程序(INT 13)来执行。初始化操作系统的启动环境,举例而言包括:载入该操作系统副本124的一内核程序(kernel),以启动包括处理器管理程序,存储器管理程序(memory management)等在内的核心抽象程序。其中该存储器管理程序启动时,由于该预留区块122事先已被分配来存放该操作系统副本124,则所有硬件驱动程序或其它应用软件等向该存储器管理程序申请存储器空间时,就会避开该预留区块122。接着执行步骤405,通过驱动程序的方式将预留区块122标记为一虚拟硬盘,或在该预留区块122上建立一虚拟硬盘,其中该虚拟硬盘的大小与该操作系统副本124的映像文件的大小有关,指定从该虚拟硬盘启动该操作系统副本。接着在步骤407中,处理器102便将该预留区块122视为一虚拟硬盘,并启动储存在其中的操作系统副本124。对操作系统而言,会将自身所在的预留区块122辨识为有别于硬盘130的另一硬盘。在另一做法中,由于操作系统副本124和操作系统134的内容是一致的,因此可将该预留区块122和硬盘130中的对应磁区结合成一镜像磁盘阵列(RAID-1)。举例来说,在步骤405中,由基本输入输出系统104或开机载入器132提供驱动程序,将操作系统副本124和操作系统134的结合体标记为镜像磁盘阵列,使处理器102在步骤407中启动储存于该镜像磁盘阵列中的该操作系统。之后进入步骤409,进入操作系统正常运作阶段。由于主存储器120的该预留区块122与硬盘130中对应磁区(sector)建立了同步镜像关系,因此在操作系统正常运作阶段,都是直接对主存储器120中的该预留区块122进行读写,由于主存储器120存取比硬盘130的存取快速,因此在实际运作的时候,可仰赖主存储器120进行主要的读写工作,直到累积一定的变化之后再同步(sync)至硬盘130中,因此操作系统正常运作的效率也得以提升。
[0036]图5为本发明实施例中各项启动阶段的时序图。其中11代表基本输入输出系统启动阶段,t2代表开机载入器的执行阶段,而t3代表操作系统的载入阶段。在tl阶段中,t0代表初始化存储器和硬盘所耗费的时间,即图2中完成步骤205所耗费的时间。而接续t0阶段之后的tl’阶段,即代表拷贝阶段,即是图2中完成步骤207的从硬盘拷贝操作系统到存储器所耗费的时间。综上所述,本发明利用基本输入输出系统启动阶段的同时将操作系统拷至存储器中,借此加速了启动操作。为了达成本发明的功效,基本输入输出系统中加入了同时拷贝操作系统的功能。而操作系统中也加入了特殊的存储器管理机制,可以通过该基本输入输出系统的设定文件而得知该预留区块的位置和大小,而使操作系统中的驱动程序避开该预留区块的存取。
[0037]在本发明其他实施方式中,除了由基本输入输出系统来实现拷贝以外,还可以由硬件,例如是图1所示的芯片组140来实现。开机以后,硬件例如是芯片组140可以自动检测该设定文件中的记录,以获得该预留区块的起始地址和大小并启动拷贝动作,将操作系统内容拷贝到主存储器的该预留区块中。
[0038]本发明实施例所述的操作系统,尤其适用Linux、FreeBSD、Solaris或嵌入式系统的核心(Kernel)。储存操作系统的介质不限定为硬盘,也可以是其他大容量但是速度比存储器慢的储存装置,例如存储卡或者光盘。
[0039]以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。
【主权项】
1.一种启动方法,其特征在于,用于包括一处理器、一主存储器以及一硬盘的计算机,其中该硬盘包括一操作系统,该启动方法包括: 启动一基本输入输出系统; 依据一设定文件的设定在该主存储器中划分一段固定地址的存储器空间作为一预留区块; 将该操作系统从该硬盘中拷贝至该主存储器的该预留区块,构成一操作系统副本;以及 启动被拷贝至该预留区块的该操作系统副本, 其中,该预留区块的该段固定地址由该操作系统所包括的一存储器管理程序在计算机系统之前的一次正常开机时设定,并存储于该设定文件中,当该计算机再次上电时,该基本输入输出系统通过读取该设定文件以获得该预留区块的该段固定地址。2.根据权利要求1所述的启动方法,其特征在于,进一步包括,在该操作系统被拷贝至该预留区块的同时,该基本输入输出系统初始化该计算机的元件,其中将该操作系统从该硬盘拷贝至该预留区块的步骤由该基本输入输出系统完成。3.根据权利要求1所述的启动方法,其特征在于,其中将该操作系统从该硬盘拷贝至该预留区块的步骤由一芯片组完成。4.根据权利要求1所述的启动方法,其特征在于,其中划分该预留区块的步骤进一步包括: 读取该设定文件以判断是否在前次开机已设定该预留区块; 如果未设定该预留区块,则根据该操作系统的映像文件大小设定该预留区块;以及 将该预留区块的设定以及该操作系统的映像文件大小储存在该设定文件中。5.根据权利要求4所述的启动方法,其特征在于,其中设定该预留区块的步骤由该存储器管理程序完成。6.根据权利要求1所述的启动方法,其特征在于,还包括:于启动被拷贝至该预留区块的该操作系统副本之前,初始化该操作系统的启动环境,其中该初始化该操作系统的启动环境由一开机载入器或该基本输入输出系统完成。7.根据权利要求6所述的启动方法,其特征在于,还包括: 在该主存储器的该预留区块上建立一虚拟硬盘,其中该虚拟硬盘的大小与该操作系统副本的映像文件的大小有关;以及指定从该虚拟硬盘启动该操作系统副本。8.根据权利要求6所述的启动方法,其特征在于,该开机载入器进一步将该操作系统从该硬盘拷贝至该预留区块。9.根据权利要求6所述的启动方法,其特征在于,还包括:记录一拷贝进度,其中该基本输入输出系统、该开机载入器及该操作系统都能读取该拷贝进度。10.一种计算机系统,其特征在于,包括: 一处理器、一主存储器、一硬盘以及一基本输入输出系统;其中, 该硬盘中包括一操作系统,其中该操作系统包括一存储器管理程序; 该计算机系统在开机后,该处理器执行该基本输入输出系统,依据一设定文件的设定在该主存储器中划分一段固定地址的存储器空间作为一预留区块,并将该操作系统从该硬盘中拷贝至该主存储器的该预留区块以构成一操作系统副本,接着该处理器启动被拷贝至该预留区块的该操作系统副本,其中,该预留区块的该段固定地址由该存储器管理程序在计算机系统之前的一次正常开机时设定,并存储于该设定文件中,当该计算机系统再次上电时,该基本输入输出系统通过读取该设定文件以获得该预留区块的该段固定地址。11.根据权利要求10所述的计算机系统,其特征在于,该存储器管理程序根据该操作系统的映像文件大小设定该预留区块,并将该预留区块的设定以及该操作系统的映像文件大小储存在该设定文件中。
【文档编号】G06F9/445GK105955780SQ201610292756
【公开日】2016年9月21日
【申请日】2009年7月23日
【发明人】李勇
【申请人】威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1