背景技术
窗口系统(Windowing system)为操作系统中构成桌面环境的主要软件组件之一,用以处理基本绘图作业,以于屏幕显示预定的图像。窗口系统完成初始化过程之后,显示硬件(graphicshardware)及指向装置(pointing devices)等输出、输入装置才能透过操作系统与窗口系统通讯连接。如此一来,窗口管理程序(Window Manager)所提供的图形化接口(GraphicUser Interface)才能于显示硬件显示,并接收指向装置的指令,以供使用者透过窗口系统操作具备该操作系统的电脑主机。亦即,透过窗口系统运行,显示硬件、指向装置才能与窗口管理程序互动,完成操作系统的输出/输入作业。
参阅图1及图2所示,以应用于具备X窗口系统(X-window)的Linux操作系统为例,装载Linux的电脑主机启动之后,电脑主机会先加载基本输入输出系统(BIOS)。BIOS加载硬件信息后,启动位于固定储存媒介(FixedStorage Medium,例如硬盘)主开机区(MBR)的开机管理程序(Boot Loader)(S11)。接着开机管理程序依据纪录文件使电脑主机加载位于指定扇区的核心模块(kernel module),启动指定操作系统(S12)。电脑主机完成核心模块的初始化,以使核心模块加载驱动程序,以驱动各项硬件(S13)。接着操作系统加载窗口系统(S14),例如X11。窗口系统必须完成基本组件的加载之后,才能进一步启动UI及相关AP,以完成窗口系统的初始化(S17)。窗口系统必须分别完成输入装置的初始化(S15)及输出装置的初始化(S16),才能分别与输入装置及输出装置通讯连结。以X11系统为例,必须先完成XServer及XClient的启动。其中,X Server负责操控输出装置,例如显示硬件的驱动及显示,及将输入装置所触发的事件传送给X Client,例如鼠标移动指针及点选的作动。X Client控制窗口系统内部的动作,以供窗口系统与操作系统核心沟通。
由于窗口系统对于Linux操作系统而言,仅属于应用软件,因此虽于加载操作系统时已对周边硬件完成设定,然此时仅完成提供核心与硬件装置之间的沟通,在欲使用窗口系统进行操作时,仍需对周边硬件在窗口系统里作设定并使之驱动。窗口系统完成初始化(S17),以达成硬件沟通及驱动作业之后,才能进一步加载窗口管理程序(Window Manager)(S18)等图形化使用者接口(GraphicUser Interface)及各项应用程序,完成窗口系统的启动。XServer及X Client的启动过程中,各项电脑外设硬件的驱动程序都必须先被操作系统加载并驱动之后,窗口系统才能进一步透过操作系统的连结,完成输出装置、输入装置初始化及启动,才能完成窗口系统的启动,以进一步加载窗口管理程序及应用程序。
随着电脑主机的复杂化及外围硬件型态的增加,因此窗口系统启动过程中,电脑主机需花费更多时间搜寻周边硬设备并加载各种驱动软件以检测其装载是否正常。完成前述作业之后,才将GUI输出并呈现于使用者面前。如此以来,在可以操作电脑之前,得需花费相当时间等待此开机的前程序,使用者也常因等待而感到不便与不耐。
为让使用者降低等待开机的不耐,常见的作法是将不常使用的常驻程序关闭或删除,以缩短开机时间。前述作法虽然缩短整体开机时间,但仍无法解决窗口系统加载时间过长的问题,且窗口系统加载过程中出现的障碍,仍然需要等待周边硬件就绪后,进入使用者接口后才能予以处理。
发明内容
有鉴于此,本发明提供一种加速窗口系统初始化的开机方法,利用开机程序的调整,提早进入使用者接口,让使用者产生降低等待开机时间之感。
本发明提供一种加速窗口系统初始化开机方法,应用于电脑主机。电脑主机至少包含中央处理器、系统芯片组、系统内存、基本输入输出系统、键盘控制器、固定储存媒介、显示接口及输入装置。电脑主机装载操作系统,储存于固定储存媒介,操作系统下安装窗口系统。
依据此开机方法,中央处理器先加载基本输入输出系统至系统内存并执行之。接着中央处理器加载开机管理程序至系统内存并执行之,以自固定储存媒介选择操作系统,决定预定加载的操作系统的核心模块。电脑主机略过核心模块,而执行对应核心模块的窗口系统的初始化作业,提供包含多个具名管线的虚拟接口档,其中各具名管线分别对应至输出装置及输入装置。电脑主机初始化对应输出装置及输入装置的具名管线,提供窗口系统与显示接口或输入装置的沟通连接路径。最后电脑主机加载并初始化核心模块,以加载驱动显示接口、及输入装置的驱动程序,以驱动显示接口及该输入装置连接对应的命名管线。藉以使窗口系统透过虚拟接口文件连接操作系统的核心模块、显示接口及输入装置。因此,窗口系统不需要再直接初始化显示接口及输入装置,不需等待核心模块加载即可启动并初始化窗口系统,省去等待时间。
本发明功效在于,电脑主机跳过核心模块的初始化及驱动程序的加载,而先行执行并初始化窗口系统,因此窗口系统可以提早被初始化完成,缩短使用者等待开机时间。
有关本发明的较佳实施例及其功效,兹配合附图说明如后。
具体实施方式
请参照图3及图4所示,为本发明实施例提供的一种加速窗口系统初始化开机方法,应用于电脑主机100。电脑主机100至少包含中央处理器110、系统芯片组120、系统内存130、基本输入输出系统140(BasicInput/Output System,BIOS)、键盘控制器150、固定储存媒介160(FixedStorage Media)、显示接口170、输入装置180。该电脑主机装载操作系统(Operation System,OS),储存于固定储存媒介160,且于操作系统之下安装窗口系统(WindowSystem),以提供使用者图形化接口(UserGraphic Interface,GUI)。前述系统芯片组120包含南桥芯片及北桥芯片,用以提供总线使系统内存130、BIOS 140、键盘控制器150、固定储存媒介160及显示接口170连接至中央处理器110,以进行数据传输。且输入装置180连接于键盘控制器150。
依据本发明的开机方法,电脑主机100于启动或重置(reset)之后,开始进行电脑主机100开机。电脑主机100的中央处理器110先自CMOS、Flash或EPROM中加载BIOS 140至系统内存130中进行执行。BIOS 140执行后中央处理器110会加载电脑主机100的各项硬件信息,并加载及启动位于固定储存媒介160(例如硬盘)主开机区(MBR)的开机管理程序(BootLoader)(S21)
BIOS 140为程序代码,储存于电脑主机100的CMOS、Flash或EPROM中。电脑主机100的中央处理器加载BIOS 140的程序代码后,解压缩到电脑主机的系统内存130的特定区段,并开始执行,以初始化电脑主机100的各项组件及内存。组成BIOS 140的程序代码包含硬件诊断功能(hardware diagnose),以保证各项硬件组件,例如键盘http://zh.wikipedia.org/w/index.pl等,可以正常地被初始化后,被驱动并进行运作。
透过BIOS 140的引导,电脑主机100的中央处理器110自固定储存媒介160的开机扇区加载开机管理程序至系统内存130并启动开机管理程序。固定储存媒介160的类型依据电脑主机100而定,若电脑主机100为笔记本电脑或台式电脑,固定储存媒介130可为硬盘。若电脑主机100为可携式装置(例如移动上网装置、可携式导航装置、多媒体电子装置),固定储存媒介130可为快闪记忆卡、内建的闪存、或内建的固态硬盘(Solid State Disk,SSD)。
中央处理器110执行开机管理程序后,由固定储存媒介160的开机扇区读取开机信息,选择操作系统及其所对应的指定扇区,以决定预定加载的操作系统的核心模块,但不进行核心模块的加载(S22)。
请同时参阅图5所示,接着中央处理器110所执行的开机管理程序略过操作系统的核心模块加载程序,预先执行对应的窗口系统的初始化,准备读取启动窗口系统所需的档案。窗口系统的初始化的过程,由中央处理器110产生虚拟接口档,储存于固定储存媒介160,包含多个具名管线(named pipe),分别对应不同的输出装置或输入装置(S23)。
接着中央处理器110所执行的窗口系统初始化对应显示接口170的具名管线(S24),提供窗口系统与显示接口170的沟通连接路径。于此,窗口系统并非直接与显示接口170进行沟通而达成初始化过程,而是初始化对应显示接口170的具名管线。将来对于显示接口170的数据输出,都是先传送到此具名管线,再传送至操作系统,由操作系统驱动显示接口170。因此,此步骤不需要等待操作系统的核心模块完成显示接口170的驱动即可执行完成。除了初始化对应显示接口170的具名管线之外,亦可初始化对应音效接口的具名管线。
同样地,接着电脑主机100所执行的窗口系统初始化对应输入装置180的具名管线(S25),提供窗口系统与输入装置180的沟通连接路径。同前一步骤,窗口系统并非直接通过操作系统初始化输入装置180,而是初始化输入装置180的对应具名管线进行。将来输入装置180的发出指令输入,先透过键盘控制器150传送至系统芯片组120,再传送至此具名管线,再由操作系统传送至窗口系统。因此,此步骤不需要等待核心模块完成输入装置180的驱动即可完成。前述的输出装置150主要包含指针装置(鼠标或触控板)及按键装置(键盘或按键组)。
再参阅图5所示,虚拟接口档为先进先出档案(First-in-first-outfile,File档),用以解决多个程序同时存取一个档案所造成的错误问题。虚拟接口档的具名管线可将一个指令或数据的输出由一个端口连结到另一个端口,不需要两个端口直接连接。因此具名管线两端的组件可以各自进行初始化过程,使二组件的初始化过程不再相依,不需要依据相依性逐步进行初始化。于本发明中,虚拟接口文件就是用以连接窗口系统以及需要由操作系统提供驱动程序驱动的显示接口170、输入装置180。虚拟接口文件可提供窗口系统先行执行初始化显示接口170、输入装置180的过程,但并非初始化显示接口170、输入装置180,因此不需要等待显示接口170、输入装置180或其它硬件被操作系统的核心模块驱动完成。该虚拟接口档预先建立存在于固定储存媒介160之中,而在??主机中建立的永久管道,并依据显示接口170、输入装置180的变更,更新具名管线参数设定及数量。
以Unix-Like操作系统为例,所采用的窗口系统为X11。而窗口系统通常包含X Server及XClient。其中,X Server用以初始化输入装置180及显示接口170所对应的具名管线,以负责操控硬件,及将输入装置180所触发的事件则透过具名管线传送给X Client,例如输入装置180的鼠标移动指针及点选的作动,控制窗口系统内部的动作,以供窗口系统与核心模块沟通。然而,此时操作系统的核心模块尚未被加载,且硬件尚未被操作系统的核心模块加载的驱动程序驱动。因此,窗口系统的XServer及X Client先连接于具名管线,并对具名管线进行初始化。
窗口系统完成对应显示接口170及输入装置180的初始化后,窗口系统便进一步启动窗口管理程序(S26),以提供图形接口的工作环境。而当窗口管理程序加载后,便完成窗口系统的初始化(S27)工作。
最后加载位于指定扇区的操作系统的核心模块(S28),以启动指定操作系统。接着核心模块进行初始化(S29),加载驱动各项硬件、显示接口170及输入装置180的驱动程序,并连接各命名管线,以将显示接口170、输入装置180的指令、数据传输路径,分别导向对应的命名管线。当显示接口170、输入装置180需要与窗口系统进行沟通时,操作系统的核心模块加载虚拟端口文件以连接对应的具名管线,使显示接口170、输入装置180能与窗口系统沟通。
经由以上的实施例可得知,应用本发明的电脑主机100将窗口系统先行加载,而后再加载操作系统的核心模块,让使用者可提早进入窗口管理接口后。之后再逐渐驱动各项硬件,消除习知的开机必须等待硬件驱动完成,才开始启动窗口系统所要等待的时间。
针对特定用途设计的电脑主机100,其功能主要限定于特定应用软件的执行,因此需要于开机完成后,直接执行该应用软件并显示该软件的操作接口。以可携式导航装置(PortableNavigation Device,PND)为例,PND于完成开机之后,必须要再执行导航程式,而直接显示导航程式的接口。若为多功能的PND,则必须加载快捷启动程序,以提供各项功能的快捷键。
参阅图6所示,为本发明实施例的另一应用。为了让电脑主机100快速地显示应用软件的操作接口,于窗口管理程序启动之后,可再加入一步骤,启动应用程序(S30),使应用程序接口提早显示或是提早执行预设功能,不需要再等待操作系统完成初始化。
虽本发明的技术内容已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟习此技艺者,在不脱离本发明的精神所作些许的更动与润饰,皆应涵盖于本发明的范畴内,因此本发明的保护范围当视后附的权利要求书所界定者为准。