CN1193775A - 软只读存储器 - Google Patents
软只读存储器 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
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的计算机系统,其特征在于:所述介质是一种相对于所述输入设备可拆卸的介质。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100353320C (zh) * | 2001-12-20 | 2007-12-05 | 英特尔公司 | 引导过程 |
Families Citing this family (23)
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 |
US7089300B1 (en) * | 1999-10-18 | 2006-08-08 | Apple Computer, Inc. | Method and apparatus for administering the operating system of a net-booted environment |
US6751658B1 (en) | 1999-10-18 | 2004-06-15 | Apple Computer, Inc. | Providing a reliable operating system for clients 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)
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 |
-
1997
- 1997-03-17 US US08/818,985 patent/US5918048A/en not_active Expired - Lifetime
-
1998
- 1998-02-06 KR KR1019980003420A patent/KR100311582B1/ko not_active IP Right Cessation
- 1998-02-16 CN CN98103842A patent/CN1193775A/zh active Pending
- 1998-03-03 JP JP10051160A patent/JP3024094B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100353320C (zh) * | 2001-12-20 | 2007-12-05 | 英特尔公司 | 引导过程 |
Also Published As
Publication number | Publication date |
---|---|
JP3024094B2 (ja) | 2000-03-21 |
KR100311582B1 (ko) | 2001-11-22 |
JPH10260843A (ja) | 1998-09-29 |
KR19980079672A (ko) | 1998-11-25 |
US5918048A (en) | 1999-06-29 |
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 | |
WO1999004346A1 (en) | Method and apparatus for enforcement of behavior of application processing systems without modifying application processing systems | |
US20020083216A1 (en) | Multi-platform command line interpretation | |
EP0814403B1 (en) | Computer system with context switch and program development therefor | |
US5564003A (en) | Batch registration of object classes | |
CN1142494C (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 | |
CN117033079A (zh) | 一种基于国产化平台的备份还原方法 | |
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 |
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 |