可装入硬件支持的制作方法

文档序号:6413762阅读:161来源:国知局
专利名称:可装入硬件支持的制作方法
技术领域
本发明一般涉及计算机系统,特别涉及为不同的硬件平台提供软件支持的方法,包括不同的总线配置。


图1所示为常规计算机系统10的基本结构。计算机系统10的核心是一个中央处理单元(CPU)或处理器12,它联接在几个外围装置上,包括用户接口的输入/输出(I/O)装置14(如显示器和键盘)、存储计算机操作系统和用户程序的永久性存储装置16(如硬盘或软盘)以及处理器12用来执行程序指令的暂时存储装置18(如随机存取存储器或RAM)。处理器12通过几种方法与外围装置进行通信,其中包括总线20或直接通道22。计算机系统10还包括固件24,其主要目的是每当计算机被初次打开时,从某个外围装置(通常是永久性存储装置16)查找并装入操作系统。计算机系统10还可能有许多图中没有给出的附加部件,例如联接调制解调器或打印机的串行和并行端口。熟练的技术人员还会欣赏可把其它部件与图1的框图中所示的部件结合使用;例如联接在处理器12上的一个显示适配器可用来控制视频显示器。
在现今的计算机结构中,硬件设计者有很大的灵活性可用,它允许在符合工业定义结构(标准)的情况下,不同销售商的计算机平台之间可以有差异。计算机平台的这些差异必须能够由在它们上面运行的操作系统所适应。在软件OEM(原始设备生产商)环境下,这意味着硬件销售商必须访问在系统上运行的每个操作系统所用源代码。这些硬件销售商然后修改操作系统源代码以便在他们的计算机平台上运行。这种方法有几个问题,首先,需要操作系统源代码许可,而这非常昂贵。第二,许多操作系统与不同的硬件并不相关。第三,销售商必须拿出一定的资产来建立操作系统并为目标平台对其进行重新封装。最后,由于操作系统的新版本是由OEM发布的,因此为了使它能在目标平台上运行,销售商必须对新版本重复做所有对前一版本做过的修改。
解决这个问题的一种方法是在操作系统的一个版本中包含多个硬件平台的支持,例如微软公司的硬件抽象层(“HAL”)提供的操作系统。利用HAL,代码被写入到抽象接口,然后装入到主存储器(核心)产生单一的可装入映象。这一映象是面对单个平台或一组平台的,其中微小的硬件差别可以由运行时间检查来进行处理。但是,硬件平台的显著改变则需要无法在旧平台上运行的全新映象。这种解决方法也增加了实现时间、由于加入多个不同安装媒体使媒体创建变复杂并增加了测试时间。
硬件平台可能不同的方式与总线20可用的许多不同输入/输出总线类型有关。例如,常规的总线设计包括由IBM创建的PCI(外围部件接口)和ISA(工业标准结构)。一台机器可以使用多个总线结构,例如,具有来自处理器的系统总线通过桥联接到I/O总线。由于新的计算机系统是对不同的I/O总线开发的,因此操作系统必须修改并重新发布以便支持每一新的总线或每一新的组合。由于要对每一系统进行封装和测试,使得这种需求变得非常昂贵。而且,由于支持总线的代码是操作系统的一个完整部分,即便系统上没有总线,它也要占用宝贵的存储器资源。换句话说,当操作系统运行时,在任何具体机器上即便只需一种总线运行,系统也包含支持多个不同总线设计的软件部件。
现有技术一般可应用于所有操作系统类型,但本发明可特殊应用于UNIX(UNIX是UNIX系统实验室的一个商标)。UNIX是对不同版本在不同资源中可用的一个多用户、多任务操作系统。这些版本包括System V(美国电报电话)、AIX(国际商用机器)和Mach(NeXT计算机)。对UNIX类型工作站的生产者(和销售商)来说,增加此生产者不支持的总线的总线支持是一个问题。例如,摩托罗拉生产了具有它的VME总线的计算机,因此必须增加对AIX的VME总线(由IBM授权)的支持,以便在它们的平台上可以使用AIX。对每一生产者来说,这一过程变得非常昂贵,因为它必须对每一操作系统的每一发布版本进行此过程。因此,需要提供允许特定硬件支持的不需操作系统包含多个硬件平台支持的操作系统。如果操作系统是为可以在所有平台上工作的一个发布媒体设计的,并且仍然可以很容易地适应新的硬件平台,这将更加有利。
因此本发明的一个目的是提供具有专用硬件支持的改进计算机操作系统。
本发明的另一个目的是这样一个操作系统,它包含正在运行操作系统的具体机器上不具备的硬件平台的支持,它不需不必要地使用资源。
本发明的另一个目的是提供一种装入这种操作系统的方法,它可以简化对新硬件平台媒体的再封装。
前述目的是通过为计算机提供操作系统的一种方法来完成的,它一般包括下列步骤,向计算机的存储器中装入操作系统的基本部分,基本部分具有检测硬件部分的指令,利用这些指令来检测硬件部分,并且一旦检测到硬件部分则装入与硬件部分特别相关的软件部件。硬件部分可以通过在存储器装置中保留一个与软件部件相关的跟踪(trace)并随后检索跟踪或通过测试计算机的硬件部分来检测出来。硬件部分可以是从一组总线结构中选择的一种总线结构,而检测步骤则定义了一组变换为核心中的地址的总线独立接口。另外,软件部件可以包括一个程序抽象层(PAL),它包含与硬件部分通信的专用指令。PAL是从多个文件创建的,其中每一个文件都与硬件部分相关。
在下面的详细书面描述中,将会明显地了解本发明的上述目的以及附加目的、特性和优点。
在附加的权利要求中提出了相信为本发明的特点的新颖特性。但是,结合附图并参考下面说明实施方式的详细描述可以最好地理解发明本身以及最佳使用模式、进一步目的以及优点。
其中图1是描述常规计算机系统的典型硬件的一个框图;图2是一个流程图,它描述的是根据本发明,在引导序列中专用硬件部分是如何被装入到操作系统中的。
本发明涉及一种向具有需要操作系统提供专用软件支持的具体硬件平台的计算机上装入操作系统的方法。计算机硬件可以包含图1所示的各种部件,但计算机系统不必是常规的,即它可以包含新的硬件部分或具有已有部件的新颖交互联接结构。
参考图2,相对于现有技术的操作系统,本发明的操作系统是作为以在软盘、磁性硬驱动器或CD-ROM盘(30)等存储装置上固件查找操作系统为开始(当计算机初次打开或响应“软”引导命令时)的“引导”序列的一部分装入的。但在本发明中,操作系统并不以非中断方式装入。而是,操作系统首先通过只装入软件部件(32)的基本部分来初始化的。这些基本部件提供允许操作系统确定当前的具体硬件平台(34)和装入适当的专用硬件部分(36)来完成引导序列的功能。例如,这些基本功能可以构造自由缓冲区和内节点、散列队列、范围结构等的联接列表。在操作系统与专用硬件部分被完全装入之后,用户应用程序可以被执行(38),或者可以装入其它软件部件,如动态设备确定程序等。
前述方法可以用不同方法实施,下面将描述其中的两种方法。在第一种实施方式中,每一平台销售商提供在计算机上初始运行的特别固件或ROS代码。这一代码不仅初始化硬件和装入操作系统,而且还为操作系统以后的检索保留有关硬件配置的各种信息(例如在计算机的RAM中)。有些这种信息对硬件销售商或计算机平台来说是独一无二的。利用这一信息,可以为每个计算机系统创建独一无二的名字。这些名字随后可以作为文件名使用,并且文件名与可以装入提供不同硬件支持的不同模块相关。尽管名字可以根据一个表被预指定,但最好根据已知公式和固件跟踪动态地生成名字;通过简单地产生加入到发布媒体上的新文件的文件名,除了支持操作系统的旧版本发布时已存在的平台之外,这种解决方法允许操作系统更简单地适应全新的硬件平台。
例如,UNIX工作站的一个操作系统包含PAL(轻便帮助层或平台抽象层),它包含与具体生产商的具体硬件装置进行通信的专用指令。装入到工作站核心的PAL是根据固件跟踪从安装媒体上的多个可用PAL中选择的。如果操作系统装入的具体机器是一台RISC系统个人机,生产商可能在固件跟踪中具有已编码信息,它等效于字母“rspc”。操作系统在检测到这条信息之后将寻找包含文件“planar_pal_rspc”、“librarycfg_rspc”、“mkboot_rspc”、“bootinfo_rspc”等的PAL。这些文件一起构成了为不同的硬件平台提供的多组PAL文件中的一组。专用硬件部分并不仅仅是核心扩展,而且还可以进一步提供专用机器指令。
用这种方法,销售商不必装入定制的操作系统,因此也不需要操作系统源许可。这种解决方法使销售商容易为符合已知结构的所有计算机平台建立一个媒体,而且可以为建立发布媒体保留小得多的资产。在操作系统的新版本发布时,不需进行新的修改,因为可以用新的系统和PAL模块再建发布媒体。由于没有装入无用代码,所以这种解决方法还节省了RAM空间。本发明与现有技术的HAL的最大不同之处在于本发明提供在引导时动态装入一组接口的能力。对于本发明,在每一发布媒体上不需新的核心,而仅仅需要增加可装入映象来支持新的平台。一旦新映象被加入到媒体中,配置代码将装入配置的平台的正确PAL模块,这样可以节省安装时间、媒体创建、不同安装媒体的数量以及测试时间。
在第二种实施方式中,向UNIX工作站提供可装入总线支持。支持具体输入/输出(I/O)总线所需的代码是作为可装入扩展产生的。代码模块可以封装到安装媒体上的引导RAM文件系统中。早在系统配置时,机器上所带的每个I/O总线都被测试,并且对每一被标识的总线,其总线支持代码都被装入并设置。这种解决方法还允许销售商把他们的总线支持代码加入到随后由操作系统装入的媒体上,因此不需要任何源许可。计算机系统上不存在的总线代码并不被装入,因而节省了存储器资源。
现有总线类型的检测可以通过定义一组公用(并且总线独立)接口来完成。对系统中可见的每一总线,软件的装入支持具有相对于核心的地址映射的这些接口,例如,通过新的“bus_register/unregister”接口。直接存储器访问(DMA)服务可以通过“d_map_init()”接口等很好定义的接口加入。这些服务是由最近装入的总线扩展在配置时间加入的。另外,每一不同的总线类型都被指定了一个单一的标识符,并且每一总线在系统配置期间被检测时,都被指定了类型中的一个单一数字。这些指定允许在系统中为每一总线动态创建唯一的总线标识符(BID)。BID允许总线从设备驱动程序(它是配置期间提供给设备驱动程序的配置信息的一部分)中提取。这一BID接着可以传送给由设备驱动程序使用的核心服务,象“iomen_att()”或“iomem_det()”以及DMA支持函数。BID标识总线号、类型、范围、I/O空间或MEM空间;这一信息可以用于查询当通过bus_register()登记总线时提供的总线的地址信息。现在可以在设备驱动程序不知道系统地址映象是怎样为I/O总线访问分区的情况下为设备驱动程序设置各种总线硬件的映象。
由于本发明提供现有技术方法无法完成的抽象和装入系统水平支持代码的能力,因此前述的两种实施方式与常规的设备驱动程序有所不同。
尽管已参考具体的实施方式对本发明进行了描述,但这种描述并不意味着仅在有限意义上进行解释。熟练的技术人员参考本发明的描述可以明显了解公开的实施方式的各种改变以及本发明的不同实施方式。因此在不偏离在附加的权利要求中定义的本发明的思想或范围的情况下,可以考虑进行这种改变。
权利要求
1.为计算机提供操作系统的一种方法,该计算机具有可以执行程序指令的处理器,联接到处理器的一个存储器装置,以及联接到处理器的硬件部分,该方法包括以下步骤在存储器装置中装入操作系统的基本部分,基本部分具有检测硬件部分的指令;检测硬件部分;以及装入与硬件部分特别相关的软件部件。
2.权利要求1的方法,其特征在于所述检测步骤包括以下步骤在存储器装置中保留一个跟踪,跟踪与软件部件相关;以及基本部分检索跟踪。
3.权利要求1的方法,其特征在于所述检测步骤包括基本部分测试计算机的硬件部分的步骤。
4.权利要求1的方法,其特征在于硬件部分是从一组总线结构中选择的总线结构;以及所述检测步骤包括定义一组总线独立接口的步骤。
5.权利要求1的方法,其特征在于计算机是一UNIX工作站;以及软件部件包括包含与硬件部分进行通信的专用指令的PAL。
6.权利要求2的方法,其特征在于计算机具有寻找和装入操作系统的固件;并且跟踪是由固件保留的。
7.权利要求2的方法,其特征在于计算机是一UNIX工作站;以及软件部件包括包含与硬件部分进行通信的专用指令的PAL。
8.权利要求3的方法,其特征在于硬件部分是从一组总线结构中选择的总线结构;以及所述检测步骤包括定义一组总线独立接口的步骤。
9.权利要求7的方法,其特征在于PAL是从每个文件都与硬件部分相关的多个文件中创建的。
10.权利要求8的方法,其特征在于计算机是一具有核心的UNIX工作站;以及接口映射核心中的地址。
11.一种为联接到计算机系统的硬件部分的提供支持的方法,该计算机具有一个存储器装置及用于查询和装入操作系统的固件,该方法包括以下步骤由固件在存储器装置中保留一个跟踪,跟踪与硬件部分相关;在计算机系统的存储器装置中装入操作系统的基本部分,基本部分具有检索跟踪的指令;检索跟踪;以及装入与跟踪特别相关的软件部件。
12.权利要求11的方法,其特征在于计算机系统是UNIX工作站;以及软件部件包括包含与硬件部分进行通信的具体指令的PAL。
13.权利要求12的方法,其特征在于PAL是从每个文件都与硬件部分相关的多个文件中创建的。
14.为具有一个或多个总线结构的计算机系统提供支持的方法,该计算机系统具有存储器装置和用于查询和装入操作系统的固件,该方法包括以下步骤在计算机系统的存储器装置中装入操作系统的基本部分,基本部分具有测试现有硬件部分的指令;用一组总线独立接口测试硬件部分;以及装入与硬件部分特别相关的软件部件。
15.权利要求14的方法,其特征在于计算机系统是UNIX工作站;以及软件部件包括包含与硬件部分进行通信的具体指令的PAL。
16.权利要求14的方法,其特征在于计算机是一具有核心的UNIX工作站;以及接口映射核心中的地址。
全文摘要
一种为特殊硬件部分提供支持的改进计算机操作系统。操作系统是通过首先装入初始化操作系统以及确定现有硬件部分具体类型的基本部分而装入的。随后,与硬件部分特别相关的适当的软件部件被装入。硬件部分可以通过在存储器装置中保留与软件部件相关的一个跟踪并随后检索跟踪来检测。硬件部分可以是从一组总线结构中选择的总线结构,并且总线独立接口是映射核心中的地址定义的。另外,软件部件可以包括包含与硬件部分进行通信的具体指令的PAL。
文档编号G06F9/445GK1193772SQ9810384
公开日1998年9月23日 申请日期1998年2月16日 优先权日1997年3月17日
发明者布鲁斯·杰勒德·米利, 兰德尔·克雷格·斯旺伯格, 迈克尔·斯蒂芬·威廉斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1