CN1193775A - 软只读存储器 - Google Patents

软只读存储器 Download PDF

Info

Publication number
CN1193775A
CN1193775A CN98103842A CN98103842A CN1193775A CN 1193775 A CN1193775 A CN 1193775A CN 98103842 A CN98103842 A CN 98103842A CN 98103842 A CN98103842 A CN 98103842A CN 1193775 A CN1193775 A CN 1193775A
Authority
CN
China
Prior art keywords
firmware
operating system
interface
simulation code
memory device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN98103842A
Other languages
English (en)
Inventor
布鲁斯·杰勒德·米利
兰德尔·克雷格·斯旺伯格
迈克尔·斯蒂芬·威廉斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1193775A publication Critical patent/CN1193775A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Abstract

通过定义操作系统和计算机的固件之间的一种接口,为计算机提供一种操作系统的改进方法。在该操作系统执行之前,把一种可执行的文件放在引导映象中以便运行,响应该固件查找该操作系统。该软ROS包括一些确定该固件是否与该标准化接口相适应的指令,如果该固件在某些方面不适应,则软ROS执行一个仿真模块。该模块能提供固件对操作系统所缺少的相关性。这种方法把操作系统从固件相关性隔离开,使得该操作系统有更高的可移植性。

Description

软只读存储器
本发明一般涉及计算机系统,尤其涉及一种操作系统,这种操作系统更容易适应于在具有不同固件设计的计算机上运行。
图1是一个常规的计算机系统10的基本结构。计算机系统10的核心是一个中央处理器(CPU)或处理器12,它与一些外围设备连接,这些外围设备包括输入/输出(I/O)设备14(例如,显示器和键盘),它用于用户接口,一个永久性存储设备(例如,一个硬盘或软盘),用于存储计算机的操作系统和用户程序,以及暂时存储器18(例如,随机存取存储器或RAM),它被处理器12使用以执行程序指令。处理器12通过各种装置,其中包括总线20或直接通道20,与外围设备进行通信,计算机系统10可能还有许多附加的部件并未表示出来,例如,用于连接如调制解调器或打印机的串行和并行端口。熟练的技术人员可能更能理解可以把其它一些部件与图1框图中所示的部件一起使用。例如,一个连接到处理器12的显示适配器以控制视频图像显示器。
计算机系统10还包括固件24,它的主要用途在于当计算机第一次启动时,在一种外围设备中(通常是永久性存储设备16)查找出并且装入操作系统。查找和装入操作系统的过程称为“引导”计算机。计算机系统10如此设计以使得固件24初始化(或重新初始化)一种操作系统,而不必关闭计算机并再一次接通(一种“软”引导)。固件24实质上是一系列机器指令,它们一般存储在只读存储(ROS)装置中,例如,只读存储器(ROM)中。如图2流程图中所述,当计算机系统10被开机(或接收一条软引导命令)之后,处理器12开始执行固件指令并查找一种操作系统(26)。如果一种操作系统被找到,则它被装入(28)到暂时存储器18。此后,操作系统允许加入其它应用层,即用户软件程序(30)。这样,一台给定的计算机硬件结构能适合运行各种操作系统和用户应用程序。
以上所述通常适合于任何种类的操作系统,其中包括两种流行的称为MSDOS和UNIX的操作系统(MSDOS是微软公司的注册商标,UNIX是UNIX系统实验室注册商标),但是本发明对UNIX具有特殊的应用。UNIX是多用户,多任务操作系统,它可以从具有不同的版本的各种来源获得,其中包括System V(美国电话电报公司),AIX(国际商业机器公司),以及Mach(NeXT计算机)。图3示出了一个以作为一种UNIX操作系统装入的引导映象32,引导映象32包括一个基本核心部分34以及一个引导文件系统部分36,核心34充当用户程序和硬设备之间的媒介,还包括设备驱动程序等其它内容。引导文件系统36是基于RAM的文件系统,它提供各种用户命令以操纵、如文件、目录和符号连接等计算机对象。当固件发现引导映象32时(例如,在软盘、硬盘或光盘上),在装入引导文件系统36之后,它将控制传送给那个操作系统(核心34)。
一个给定的操作系统可在各种硬件平台上运行,就一些操作系统来说,例如MSDOS,一份该操作系统的拷贝可以用来引导许多厂家制造的计算机,这是由于厂商间对于硬件结构和BIOS(基本输入和输出系统)功能彼此保持一致。其它的操作系统,如UNIX,由于已设计运行UNIX的各种各样的硬件之间的巨大差异,必须具有更强的可移植性。关于这一点,引导文件系统36包含有硬件相关信息,例如PAL(可移植性辅助层或平台抽象层),包括有用来与一个已知厂商的特定硬件设备进行通信的特殊指令。
与硬件相关性类似,另一个使得操作系统可移植降低的因素是它的固件相关性。大多数操作系统都有很多固件相关性,影响操作系统可移植性的两个具体的方面是硬件的始化和一种用于描述计算机系统能力的机制。由系统固件所执行的这些功能千差万别,操作系统必须进行修正以支持这些分散于整个软件当中变化所造成的差异,即对于一台UNIX类型工作站,差异并没有由PLA加以说明,以至于该核心必须重建。当操作系统与新的硬件通信时,这可能是主要的问题。当一个系统的硬件/固件不能正确工作时,或当特定的硬件状态或功能已留给固件时,但该固件与操作系统不兼容,也会出现问题。例如,该核心不能清除由固件留下的热中断。有时,该核心还需要一些特定信息,该信息由固件中的控制块所传递。例如,在一个计算机系统中处理器的类型、总线结构、时间和日期等信息。因而,需要提供一种方法以使操作系统从固件相关性隔离开,如果该方法能使固件功能性得以校正或修改,则将更进一步受益。
本发明的一个目的在于为计算机提供一种改进的操作系统。
本发明另外的目的在于提供这样一种操作系统,通过降低固件相关性实现更强的可移植性。
本发明其它的目的在于提供一种校正固件中任何的缺陷,或者改变固件功能性的方法,以确保该操作系统的正确安装。
用一种装入操作系统的方法来实现上述目的,这种方法通常包括以下步骤:确定该固件是否与一种预定义操作系统接口相一致,如果该固件与该预定义接口不一致,则执行固件仿真代码,然后装入一种使用该预定义接口OS/固体接口的操作系统。用于确定是否一致的指令被包括在引导映象中,引导映象是响应固件查找出操作系统而装入的,该引导映象还有固件仿真代码以及操作系统(例如,用于UNIX类型工作站的核心和引导文件系统)。该固件仿真代码能提供该固件对该操作系统缺乏的相关性、修复固件中的缺陷,或甚至为预定义接口解释该固件的功能。该引导映象由与计算机处理器连接的输入设备装入的媒介上提供,该媒介是可拆卸的(例如,一张软盘,或一张光盘)。
这种方法把操作系统从固件相关性中隔离开,以使得操作系统可移性更好,还有其它的优点,例如,简化测试或修复有缺陷的固件。因为它把所有对固件的相关性都放在一个模块中了。
本发明上述的以及其它的目的、特征和优点在下面详细的书面说明中将是显而易见的。
本发明新颖的令人信服的特征如附带的权利要求书中所述。然而,通过参考附图对示范性实施例的具体说明,本发明本身以及一种最佳使用模式、更进一步的目的以及其中的优点,将会更深入的理解。
图1是传统计算机系统框图;
图2是说明本发明操作系统基本引导顺序的流程图;
图3是现有技术UNIX引导映象的表示法;
图4是根据本发明,描述使用软固件后,该基本引导序列的流程图;以及
图5是根据本发明适合于UNIX类型工作站的一种引导映象表示。
本发明是对一台计算机上装入一种操作系统的方法的修正,该计算机在各种可能的固件设计中采用一种特定的固件。该计算机系统的硬件可能包括如图1所示的各个组成部分,但该计算机系统不必是传统的,即它可能包括一些新的硬件部分或包括现有部件新颖的互联结构。
现在参看图4,它是根据本发明描述一种操作系统是如何安装的流程图。正如现有技术操作系统一样,以该固件在某一种存储设备,例如一张软盘(40)开始(当计算机第一次启动或响应软引导命令时),作为装入本发明操作系统的引导序列的一个步骤。然而,在本发明中还提供了引导映象,它不但包括操作系统,进而还有新颖的组成部分。例如,一个充当该固件和该操作系统的接口的可运行的文件,这个组成部分可称为“软ROS”(soft ROS)或“软固件”(soft firmware),因为它具有与该固件ROS相似的功能,但它也在包括操作系统的介质上以软件形式提供。该引导映象如此设计以便在固件的控制转移该引导映象(42)后立即执行软ROS,然后,该软ROS判定该固件和硬件是否与操作系统的预定义接口相适应,以及初始状态要求是否与那个操作系统相适应。如果相一致,则不必修改固件功能性,然后,软ROS把控制传递给操作系统,并执行操作系统(46),但是,如果该固件与那个接口并不相适应,则在操作系统运行之前(48)运行固件仿真模块(包括在软ROS中)。这种固件仿真代码给操作系统提供该系统固件缺少的任何相关性,然后运行操作系统(46),以后,操作系统允许加入其它应用层,即用户软件程序(50)。
这种方法把操作系统与固件的相关性隔离开,并且简化了操作系统与新型号机器通信的工作。销售商可以把他自己的软ROS放在该引导映象中,以使该配置的数据能改进成为标准化接口。该固件的接口定义包括系统硬件的初始状态,以及由固件所提供信息的格式。这些参数是事先知道的,由于该特殊硬件平台的销售商提供一个软ROS以使得它的固件适应于该操作系统的技术特性。换句话说,该软ROS测试该系统以便检查在预定的存储单元所装入的所期望的数据串或特定值。这种方法简化了测试工作,由于该软ROS的模块化特性,以致于只有新的平台才需要测试。它也有助于对现存固件问题的修复,由于通过该软ROS可以采用校正的办法,该软ROS甚至能把一个固件接口从一种系统结构转换成该操作系统已知的接口。
图5示出关于一种UNIX类型操作系统是如何实现的。提供一种新的引导映象52,在它的前部是该软ROS(即,为了使它首先运行),它还有一个核心56和引导文件系统58。核心56是为预定义固件接口所配置,若该机器的固件不适合,则由软ROS提供。这种方法具有许多优点:首先把对固体所有的相关性都限定在一个模块之中,简化了对新固件模块的转换;其次,它易于支持一个模块而不必修改操作系统源代码(核心56),因为该OS/固件接口是明确定义地,并且该软固件是一个可独立运行的,本发明的这一特征,使得第三方开发人员能把一个操作系统接入他们的平台,而不必要特许获取操作系统源代码,或操作系统内部的开发知识;最后,它便于说明固件/硬件问题的修复,随着软件升级,它比维护该固件还要简单得多(并且花费不大)。
尽管本发明关于特定实施例已进行了描述,但这种描述并不意味着限定在有限的概念范围内,对所公开的实施例的各种修改,以及本发明的各种可选择的方案,对于熟练的技术人员参照本发明的描述将是显而易见的。在不脱离本发明的精神实质和范围可以进行修改,它所考虑的范围是在随后的权利要求书所定义的内容。

Claims (17)

1.一种为具有存储设备、固件和处理器的计算机装入操作系统的方法,由该处理器执行的该方法包括如下步骤:
确定该固件是否与预定义的操作系统接口相适应:
如果该固件与该预定义接口不相适应,则执行固件仿真代码;以及
把使用该预定义接口的操作系统装入到存储设备。
2.权利要求1的方法,其特征在于:进一步包括把引导映象装入该存储设备的更早的步骤,该引导映象具有用于确定该固件是否与该预定义接口相适应的指令。
3.权利要求1的方法,其特征在于:该固件仿真代码提供该固件对该操作系统所缺少的相关性。
4.权利要求1的方法,其特征在于:该固件仿真代码为该固件对该操作系统的缺陷提供修改。
5.权利要求1的方法,其特征在于:该固件仿真代码对该预定义接口解释该固件的功能。
6.权利要求1的方法,其特征在于:
该计算机是一台UNIX类型工作站:
该操作系统包括一个核心和一个引导文件系统,以及;
该操作系统通过将该核心存储到该存储设备的主存部分中来装入。
7.权利要求1的方法,其特征在于:所述的确定步骤包括测试由该固件所提供信息的格式的步骤。
8.权利要求2的方法,其特征在于:装入该引导映象以响应处理器执行来自固件的指令及查找一种操作系统。
9.权利要求6的方法,其特征在于:进一步包括把引导映象装入到存储设备的较早的步骤,该引导映象具有用于确定该固件是否适应于该预定义接口的指令,而且还具有核心和引导文件系统。
10.权利要求8的方法,其特征在于:该计算机还有输入设备并且所述查找步骤是通过扫描输入设备中的介质来实现的,该介质包括该引导映象。
11.一种计算机系统,包括:
一个处理器;
一个连到所述处理器的存储设备;
一个连到所述处理器的输入设备;
连到所述处理器的固件,所述固件具有从所述输入设备查找一种操作系统的指令,以及
一种位于所述输入设备的介质,所述介质具有引导映象,它包括一种操作系统、固件仿真代码和用于(i)确定所述固件是否适应于一种预定义操作系统接口,(ii)如果所述固件与该预定义接口不相适应,则运行所述固件仿真代码,以及(iii)把使用预定义接口的操作系统装入到所述的存储设备。
12.权利要求11的计算机系统,其特征在于:所述固件仿真代码提供所述固体对所述操作系统所缺少的相关性。
13.权利要求11的计算机系统,其特征在于:所述固件仿真代码为所述固件对所述操作系统的缺陷提供一种修正。
14.权利要求11的计算机系统,其特征在于:所述固件仿真代码对所述预定义接口解释该固件的功能。
15.权利要求11的计算机系统,其特征在于:
该计算机是一个UNIX类型工作站;以及
所述操作系统包括一个核心和一个引导文件系统。
16.权利要求11的计算机系统,其特征在于:该存储设备是随机存取存储器。
17.权利要求11的计算机系统,其特征在于:所述介质是一种相对于所述输入设备可拆卸的介质。
CN98103842A 1997-03-17 1998-02-16 软只读存储器 Pending CN1193775A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US818,985 1997-03-17
US08/818,985 US5918048A (en) 1997-03-17 1997-03-17 Booting an operating system using soft read-only storage (ROS) for firmware emulation

Publications (1)

Publication Number Publication Date
CN1193775A true CN1193775A (zh) 1998-09-23

Family

ID=25226936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN98103842A Pending CN1193775A (zh) 1997-03-17 1998-02-16 软只读存储器

Country Status (4)

Country Link
US (1) US5918048A (zh)
JP (1) JP3024094B2 (zh)
KR (1) KR100311582B1 (zh)
CN (1) CN1193775A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100353320C (zh) * 2001-12-20 2007-12-05 英特尔公司 引导过程

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11265289A (ja) * 1998-03-16 1999-09-28 Mitsubishi Electric Corp 情報処理装置および情報処理装置の高速初期起動方法
US6397242B1 (en) 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US8631066B2 (en) 1998-09-10 2014-01-14 Vmware, Inc. Mechanism for providing virtual machines for use by multiple users
US6357003B1 (en) * 1998-10-21 2002-03-12 Silicon Graphics, Inc. Advanced firmware boot sequence x86 computer system that maintains legacy hardware and software compatibility
US7516453B1 (en) 1998-10-26 2009-04-07 Vmware, Inc. Binary translator with precise exception synchronization mechanism
US6279109B1 (en) * 1999-01-07 2001-08-21 Dell U.S.A., L.P. Computing system and operating method for booting and running a graphical user interface (GUI) with r/w hard drive partition unavailable
US6751658B1 (en) 1999-10-18 2004-06-15 Apple Computer, Inc. Providing a reliable operating system for clients of a net-booted environment
US7089300B1 (en) * 1999-10-18 2006-08-08 Apple Computer, Inc. Method and apparatus for administering the operating system of a net-booted environment
US6886111B1 (en) 2000-03-08 2005-04-26 International Business Machines Corporation Method and data processing system for software testing of a device driver
US6604195B1 (en) 2000-06-28 2003-08-05 Cisco Technology, Inc. Method and apparatus to use non-volatile read/write memory for bootstrap code and processes
US6957328B2 (en) * 2001-01-05 2005-10-18 International Business Machines Corporation System and method using a first counter and a second counter to select a code image during a reboot routine
US7730155B1 (en) 2002-10-01 2010-06-01 Apple Inc. Method and apparatus for dynamically locating resources
US7043664B1 (en) 2002-10-31 2006-05-09 Microsoft Corporation Firmware recovery
US7231512B2 (en) * 2002-12-18 2007-06-12 Intel Corporation Technique for reconstituting a pre-boot firmware environment after launch of an operating system
US20040205776A1 (en) * 2003-04-10 2004-10-14 International Business Machines Corporation Method and apparatus for concurrent update and activation of partition firmware on a logical partitioned data processing system
US7774774B1 (en) * 2003-10-22 2010-08-10 Apple Inc. Software setup system
US20060031425A1 (en) * 2004-06-07 2006-02-09 Northrop Grumman Corporation Method for imaging computer systems
US7606973B2 (en) * 2004-09-08 2009-10-20 International Business Machines Corporation System and method for pervasive computing with a portable non-volatile memory device
US7779305B2 (en) * 2007-12-28 2010-08-17 Intel Corporation Method and system for recovery from an error in a computing device by transferring control from a virtual machine monitor to separate firmware instructions
US8386618B2 (en) 2010-09-24 2013-02-26 Intel Corporation System and method for facilitating wireless communication during a pre-boot phase of a computing device
US9542172B2 (en) 2013-02-05 2017-01-10 Apple Inc. Automatic updating of applications
US10360051B2 (en) * 2014-12-22 2019-07-23 International Business Machines Corporation Emulated device firmware testable by native operating system tools
CN111124700B (zh) * 2018-10-31 2023-07-18 百度在线网络技术(北京)有限公司 仿真软件模型的接入方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3955180A (en) * 1974-01-02 1976-05-04 Honeywell Information Systems Inc. Table driven emulation system
US5394547A (en) * 1991-12-24 1995-02-28 International Business Machines Corporation Data processing system and method having selectable scheduler
US5386561A (en) * 1992-03-31 1995-01-31 International Business Machines Corporation Method of integrated system load control through dynamic time-slicing in a virtual storage environment

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100353320C (zh) * 2001-12-20 2007-12-05 英特尔公司 引导过程

Also Published As

Publication number Publication date
KR100311582B1 (ko) 2001-11-22
KR19980079672A (ko) 1998-11-25
US5918048A (en) 1999-06-29
JPH10260843A (ja) 1998-09-29
JP3024094B2 (ja) 2000-03-21

Similar Documents

Publication Publication Date Title
CN1193775A (zh) 软只读存储器
CN1091276C (zh) 静态设备驱动程序的动态扩展
US7356816B2 (en) Method and apparatus for multiplatform migration
KR100345460B1 (ko) 컴퓨터 네트워크상의 스토리지 최적 제어 및 컴퓨터프로그램 전송을 위한 시스템 및 그 방법
US6370646B1 (en) Method and apparatus for multiplatform migration
CN1168001C (zh) 根据各版本将更新应用于程序和数据文件集合的方法和系统
US7536294B1 (en) Method and apparatus for translating computer programs
US6920631B2 (en) Software installation and validation using custom actions
Ivie The programmer's workbench—a machine for software development
EP0938050A2 (en) Modular storage method and apparatus for use with software applications
EP0814403B1 (en) Computer system with context switch and program development therefor
US5564003A (en) Batch registration of object classes
CN1221150A (zh) 模拟计算机存储装置的方法
US6592628B1 (en) Modular storage method and apparatus for use with software applications
US8549545B2 (en) Abstraction of computer disk image cloning capabilities from bootable media
EP0398647A2 (en) Installing software on an information processing system
US7188062B1 (en) Configuration management for an emulator operating system
US5724559A (en) Method for displaying ISPF panels in a VM non-ISPF environment
US20030028868A1 (en) Information processor, method for processing information and computer-readable recording medium recorded with program code for controlling a computer to process information
EP0732649A2 (en) Computer files for multi-vendor and multi-architecture execution
Bell et al. Application of a multipurpose simulation design
Cooper Using MS-DOS 6.22
CN117033079A (zh) 一种基于国产化平台的备份还原方法
JP2001265572A (ja) ソースプログラム管理装置、方法、及びそのプログラムを記録した記録媒体
JPS62281031A (ja) 機器更新システム編集方式

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication