KR100302926B1 - Disk-based software image use from a read only memory device - Google Patents
Disk-based software image use from a read only memory device Download PDFInfo
- Publication number
- KR100302926B1 KR100302926B1 KR1019970050299A KR19970050299A KR100302926B1 KR 100302926 B1 KR100302926 B1 KR 100302926B1 KR 1019970050299 A KR1019970050299 A KR 1019970050299A KR 19970050299 A KR19970050299 A KR 19970050299A KR 100302926 B1 KR100302926 B1 KR 100302926B1
- Authority
- KR
- South Korea
- Prior art keywords
- disk
- operating system
- rom
- access
- intercepting
- Prior art date
Links
Images
Classifications
-
- 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
- G06F9/4408—Boot device selection
-
- 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/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
본 발명에서는 디스크-기반 운영 체제 시스템으로부터 발생되는 데이터에 대한 시스템 요구들을 인터셉트(intercept)하여 그러한 요구들을 ROM 메모리 액세스로 변환함으로써 ROM 장치에 저장된 디스크-기반 운영 체제(disk based operating System)에 액세스한다. 장치 드라이버(device driver)가 컴퓨터 시스템에 도입되어 인터럽트(interrupt) 또는 직접 시스템 요구(interrupt or direct systemrequests)에 의해 발생된 디스크-기반 어드레스를 인터셉트한다. 장치 드라이버는 디스크 지오메트리 기반(disk geometry based) 액세스를 ROM 메모리 기반 액세스로 다시 매핑 (remap)한다. 시스템 호출(system call)은 인터셉트되어 디스크 기반 호출(disk based call)로부터 ROM 기반 호출(ROM based call)로 변환되며, 수정 없이도 디스크 기반 운영 체제가 R0M으로부터 실행하도록 한다.The present invention accesses a disk based operating system stored in a ROM device by intercepting system requests for data originating from the disk-based operating system system and converting those requests into ROM memory access. . Device drivers are introduced into computer systems to intercept disk-based addresses generated by interrupts or direct system requests. The device driver remaps disk geometry based access to ROM memory based access. System calls are intercepted and converted from disk based calls to ROM based calls, allowing the disk based operating system to run from R0M without modification.
[색인어][Index]
운영체제, 메모리, R0M, 기억장치Operating system, memory, R0M, memory
Description
본 발명은 디스크-기반 환경을 위해 기록된 스프트웨어를 저장하고 실행하기 위해 컴퓨터 시스템으로 하여금 ROM(read only memory) 장치를 사용하도록 하는 방법 및 시스템에 관한 것이다. 좀 더 구체적으로는, 본 발명은 선형(linear) ROM에 저장된 디스크-기반 소프트웨어를 사용하는데 필요한 운영 체제 처리 및 구조와 컴퓨터 시스템에 관한 것이다.The present invention is directed to a method and system for causing a computer system to use a read only memory (ROM) device to store and execute recorded software for a disk-based environment. More specifically, the present invention relates to operating system processing and architecture and computer systems required to use disk-based software stored in linear ROM.
반도체 ROM 장치는 역사적으로 시스템 초기화 태스크(system initialization tasks) 및 운영 체제의 초기 프로그램 로드(initial program load: IPL)와 같은 실행 가능한 코드의 변하지 않는 부분을 저장하기 위해 컴퓨터 시스템에서 사용되어 왔다. ROM 코드는 불변(invariant)이어야 하는 요건(requirement)과, 다른 형태의 매체와 비교해 볼 때 ROM 장치가 상대적으로 고가라는 점이 이들 ROM 장치가 코드의 적은 부분에서만 제한적으로 사용되는 이유이다. 전통적으로 개인용 컴퓨터 운영 체제의 주요한 부분만이 분리 가능한 디스켓이나 하드 디스크 드라이브 상에 보유되어 왔다. Texas Instruments 및 Advanced Micro Devices 사(社)에 의해 제조된 메모리와 같은 반도체 ROM 장치는 선형으로 주소지정 가능한 장소에 데이터를 저장하는 컴퓨터 칩이다. 이러한 메모리는 특수한 물리적 구조를 갖는 분리 가능한 매체 상에 판독 전용 코드를 저장하기 위해 광학 기술을 사용하는 컴팩트 디스크 ROM(compact disk read only memory: COROM)과는 구별된다.Semiconductor ROM devices have historically been used in computer systems to store unaltered portions of executable code, such as system initialization tasks and initial program load (IPL) of the operating system. The requirement that the ROM code be invariant, and that the ROM devices are relatively expensive compared to other forms of media, is why these ROM devices are limited in only a small portion of the code. Traditionally, only major parts of personal computer operating systems have been held on removable diskettes or hard disk drives. Semiconductor ROM devices, such as memory manufactured by Texas Instruments and Advanced Micro Devices, are computer chips that store data in linearly addressable locations. Such memory is distinguished from compact disk read only memory (COROM), which uses optical technology to store read-only code on a removable medium having a special physical structure.
DOS, IBM OS/2, 및 Microsoft Windows와 같은 개인용 컴퓨터 운영 체제들은 운영 체제 저장용으로 하드 디스크 기억 장치 또는 디스켓을 사용하는 시스템을 위해 작성되었다. 이러한 프로그램들의 로딩 및 실행은 운영 체제가 이들 디스크들의 지오메트리(geometry)에 기초한 디스크 상에 저장된다는 것을 가정하고 있다. 초기에 운영 체제를 로딩하는 것과 애플리케이션 프로그램을 지원하여 운영 체제 기능에 액세스 하는 것은 분리 가능 디스크나 하드 디스크의 디스크 지오메트리에 의존한다. 디스크 지오메트리는 데이터를 보유하는 정해진(defined) 디스크 섹터를 포함한다. 운영 체제의 성능을 위치에 의거하여 디스크 섹터를 직접 액세싱함으로써 개선된다. 따라서, 시스템은 디시크의 물리적 구조에 좌우된다.Personal computer operating systems such as DOS, IBM OS / 2, and Microsoft Windows have been created for systems that use hard disk storage or diskettes for operating system storage. The loading and execution of such programs assumes that the operating system is stored on a disk based on the geometry of these disks. Initially loading the operating system and supporting application programs to access operating system features depends on the disk geometry of the removable disk or hard disk. Disk geometry includes defined disk sectors that hold data. The performance of the operating system is improved by directly accessing disk sectors based on location. Thus, the system depends on the physical structure of the disc.
마이크로 프로세서 및 반도체 메모리의 크기 축소 및 비용 감소로 인하여 자동차에서 가정용 전자제품에 이르는 기계에 내장된 기능을 제공하기 위해 컴퓨터의 사용이 확대되고 있다. 내장형 제어기는 더 많은 기능을 제공하며 때로는 그 자체가 하나의 독립적인 개인용 컴퓨터와 유사한 방식으로 동작한다. 개발 단계에서 프로그래머가 표준적인 개인용 컴퓨터 또는 워크스테이션 툴(tool)을 사용하여 그러한 애플리케이션 프로그램을 내장형 시스템의 일부분으로 판독 전용 장치에 간단히 로드할 수 있다면, 이 내장형 시스템용 애플리케이션 프로그램은 좀더 신속하고 좀더 효율적으로 개발될 수 있을 것이다. 역사적으로 내장형 마이크로 프로세서는 마이크로 프로세서의 기능을 지원하기 위해 전용(specialized) 운영 환경 또는 전용 운영 체제를 사용하였다. 표준 운영 체제를 사용하여 개발을 하려면 R0M 상에 내장형 시스템을 위한 표준 운영 체제 기능이 제공되어야 한다.The reduction in size and cost of microprocessors and semiconductor memories is driving the use of computers to provide embedded functions in machines ranging from automobiles to home electronics. Embedded controllers provide more functionality and sometimes operate in a manner similar to an independent personal computer. In the development stage, if a programmer can simply load such an application program into a read-only device as part of an embedded system using a standard personal computer or workstation tool, the application program for the embedded system is faster and more efficient. Can be developed as. Historically, embedded microprocessors have used specialized operating environments or dedicated operating systems to support the functionality of the microprocessor. Development using a standard operating system requires that R0M be provided with standard operating system functionality for embedded systems.
표준 디스크-기반 운영 체제의 특수한 버전들이 내장형 시스템 시장 (market)에 제공되고 있다. 예를 들어, Microsoft사는 "ROM D0S"라는 명칭의 제품을 공급하는데, 이는 ROM 장치에서 사용 가능한 DOS 운영 체제의 한 버전이다. IBM사는 내장형 제어기에서 사용하기 위한 IBM Microkernel의 버전을 공급한다. 그러나, ROM 기반 운영 체제 버전을 제작할 때 고려해야할 점은, 그러한 운영 체제가 디스크 이미지로부터 실행되는 것이 아니라 ROM 장치로부터 실행된다는 사실 때문에 운영 체제가 수정되어야 한다는 것이다. IBM 0S/2 또는 Microsoft Windows 95와 같은 복잡한 운영 체제에서 요구되는 분석 및 수정 작업은 몇 년(several persons years)씩이나 걸려 비경제적이다.Special versions of standard disk-based operating systems are available in the embedded systems market. For example, Microsoft offers a product named "ROM D0S", which is a version of the DOS operating system available on ROM devices. IBM offers a version of IBM Microkernel for use in embedded controllers. However, one thing to consider when creating a ROM-based operating system version is that the operating system must be modified because of the fact that such operating system runs from a ROM device rather than from a disk image. The analysis and remediation required for a complex operating system such as IBM 0S / 2 or Microsoft Windows 95 can take several years to be uneconomical.
따라서, 표준 디스크-기반 운영 체제가 R0M 이미지로부터 실행되도록 하는 시스템 및 방법을 발명하는 것이 기술적인 과제이다. 디스크 지오메트리(disk geometry)에 의존하는 운영 체제로 인해 부과되는 제한을 처리하는 해결책이 요구된다.Therefore, it is a technical challenge to invent a system and method for allowing a standard disk-based operating system to run from a R0M image. There is a need for a solution that addresses the limitations imposed by operating systems that rely on disk geometry.
본 발명의 하나의 목적은 ROM 장치로부터 디스크-기반 운영 체제를 로딩하는 방법을 제공하는 것이다.One object of the present invention is to provide a method of loading a disk-based operating system from a ROM device.
본 발명의 다른 목적은 ROM 이미지로 저장된 디스크-기반 운영 체제의 운영체제 서비스를 애플리케이션 프로그램이 사용하도록 하는 것이다.Another object of the present invention is to allow an application program to use an operating system service of a disk-based operating system stored as a ROM image.
본 발명의 또 다른 목적은 내장형 환경에서 디스크-기반 운영 체제를 보유하는 ROM 이미지를 생성하여 사용하는 방법을 제공하는 것이다.It is yet another object of the present invention to provide a method of creating and using a ROM image having a disk-based operating system in an embedded environment.
도 1은 운영 체제를 부트(boot) 및 로드(1oad)하는 중의 종래 컴퓨터 시스템의 처리 순서를 보여주는 도면.1 illustrates a processing sequence of a conventional computer system during booting and loading (1oad) an operating system.
도 2는 리얼 모드 및 프로텍트 모드(real mode and protect mode) 컴퓨터 시스템에서 운영 체제 기능에 대한 애플리케이션 요구 순서를 예시한 도면.FIG. 2 illustrates an application request sequence for operating system functionality in a real mode and protect mode computer system. FIG.
도 3은 통상의 하드 디스크의 디스크 섹터 지오메트리(geometry)를 예시한 도면.3 illustrates disk sector geometry of a conventional hard disk.
도 4는 본 발명의 바람직한 실시예에 따른 ROM 장치의 선형 메모리를 예시한 도면.4 illustrates a linear memory of a ROM device in accordance with a preferred embodiment of the present invention.
도 5는 본 발명에 따른 하드웨어 구성도를 예시한 블록도.5 is a block diagram illustrating a hardware configuration diagram in accordance with the present invention.
도 6은 본 발명에 따른 메모리 상호 관계를 예시하는 도면.6 illustrates a memory interrelationship in accordance with the present invention.
도 7은 본 발명에 따른 디스크-기반 운영 체제의 실행 가능한 R0M 이미지를 생성하기 위한 처리를 예시하는 순서도.7 is a flow chart illustrating a process for creating an executable R0M image of a disk-based operating system in accordance with the present invention.
도 8은 발명에 따른 컴퓨터 시스템의 IPL 및 동작 중의 제어 흐름을 예시하는 순서도.8 is a flowchart illustrating a control flow during operation and IPL of a computer system according to the invention.
도 9는 발명에 따른 ROM 이미지로부터 디스크-기반 운영 체제의 파워-온(power on), IPL 및 실행의 흐름을 예시하는 처리도.9 is a process diagram illustrating the flow of power on, IPL and execution of a disk-based operating system from a ROM image according to the invention.
* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings
104 : ROM 110 : 디스크/디스켓104: ROM 110: Disk / Diskette
112 : 운영 체제 114 : 애플리케이션112: operating system 114: applications
206 : 하드 디스크 제어기 208 : 하드 디스크206: hard disk controller 208: hard disk
302 : 디스크 섹터302: disk sector
본 발명은 컴퓨터 시스템에서 ROM 이미지로부터 디스크-기반 운영 체제 (disk-based operating system)를 로드하여 사용하도록 하는 시스템 및 방법을 제공하기 위한 것이다. 본 발명은 ROM 이미지를 생성하는 것뿐만 아니라 ROM 이미지를 사용하기 위한 수단을 제공한다.The present invention is to provide a system and method for loading and using a disk-based operating system from a ROM image in a computer system. The present invention provides a means for using a ROM image as well as creating a ROM image.
본 발명은 운영 체제 디스크 이미지로부터 발생되는 데이터에 대한 컴퓨터 시스템 요구를 인터셉트(intercept)하여 이러한 요구들을 R0M 이미지로 방향 전환 (redirect)시키는 수단을 제공한다.The present invention provides a means for intercepting computer system requests for data originating from an operating system disk image and redirecting these requests to an R0M image.
본 발명은 R0M 장치에 저장된 디스크 기반 운영 체제를 실행하는 방법에 관한 것으로, 상기 방법은 프로세서 및 메모리를 구비하는 컴퓨터 시스템에서 동작한다. 상기 방법은 디스크 기반 운영 체제를 위해 ROM 장치 어드레스로의 디스크 지오메트리 매핑(mapping)을 생성하는 단계; 디스크 기반 운영 체제에 액세스하는 시스템 요구를 인터셉트하는 단계; 디스크 기반 액세스 요구를 ROM 액세스 요구로 변환(transform)하는 단계; 및 디스크-기반 액세스 요구에 대응하는 ROM 데이터를 액세스하고 복귀(returning)하는 단계를 포함한다.The present invention relates to a method of executing a disk based operating system stored in a R0M device, the method operating on a computer system having a processor and a memory. The method includes generating disk geometry mapping to a ROM device address for a disk based operating system; Intercepting system requests for accessing the disk based operating system; Transforming the disk based access request to a ROM access request; And accessing and returning ROM data corresponding to the disk-based access request.
본 발명의 상기 언급한 목적들 및 다른 목적, 특징, 및 장점은 첨부 도면을 참조하여 예시된 이하의 본 발명의 바람직한 실시예의 구체적인 설명으로부터 명백해질 것이다.The above-mentioned objects and other objects, features, and advantages of the present invention will become apparent from the following detailed description of the preferred embodiments of the present invention illustrated with reference to the accompanying drawings.
컴퓨터 시스템이 동작하기 위해서는 프로그램된 명령어들이 요구된다. 오늘날 대부분의 컴퓨터 시스템은 사용자 기능을 수행하는 애플리케이션 프로그램의 처리를 제어하기 위해 소정 형식의 운영 체제를 채용하고 있다. 운영 체제 프로그램은 메모리, 기억 장치(storage device), 및 통신 장치와 같은 컴퓨터 자원을 관리한다. 운영 체제는 컴퓨터 시스템에 전원이 인가될 때 초기 로드되지만 시스템 하드웨어는 운영 체제를 로드하도록 해주는 프로그램된 명령어들 없이는 운영 체제의 로드를 시작할 수 없다. 따라서, 컴퓨터 하드웨어는 컴퓨터의 동작이 시작될 수 있게 하고 디스크 드라이브 또는 디스켓으로부터 운영 체제의 로딩을 시작하는데 필요한 기본적인 명령어들을 보유하는 ROM을 통상적으로 구비하고 있다.Programmed instructions are required for the computer system to operate. Most computer systems today employ some form of operating system to control the processing of application programs that perform user functions. Operating system programs manage computer resources such as memory, storage devices, and communication devices. The operating system is initially loaded when the computer system is powered up, but the system hardware cannot begin loading the operating system without the programmed instructions to load the operating system. Thus, computer hardware typically includes a ROM that allows the computer's operation to begin and holds the basic instructions necessary to initiate loading of an operating system from a disk drive or diskette.
본 발명의 바람직한 실시예는 Intel 마이크로 프로세서 및 IBM PC 같은 컴퓨터 시스템과 결합하여 동작한다. 바람직한 실시예는 개인용 컴퓨터에 통상적인 범용의 상호 작용(interaction) 없이도 한정된 애플리케이션 기능 셋트를 수행하도록 설계된 내장형 컴퓨터 시스템이다. 본 발명의 내장형 컴퓨터 시스템은 사용자가 프로그램 및 애플리케이션을 변경하는 능력을 제한하고, 대부분의 경우에 어떠한 기록 가능한 기억 장치도 시스템 사용자에게 제공하지 않을 것이다.Preferred embodiments of the present invention operate in conjunction with computer systems such as Intel microprocessors and IBM PCs. A preferred embodiment is an embedded computer system designed to perform a limited set of application functions without the general purpose interactions common to personal computers. The embedded computer system of the present invention limits the ability of a user to change programs and applications, and in most cases will not provide any recordable storage device to the system user.
바람직한 실시예에 따른 컴퓨터 시스템의 전원 스위치(100)가 켜지면(도 1), 시스템은 하드웨어 구성을 확인하기 위하여 초기 하드웨어 테스트를 수행하고 운영체제를 로딩하기 시작한다. 파워-온 셀프 테스트(power-on self test:POST) 기능 (102)은 반도체 ROM 장치(104)에 저장된다. 파워-온 셀프 테스트 처리의 마지막 단계는 운영 체제의 초기 프로그램 로드(initial program load: IPL)(106)를 개시하는 것이다. 시스템 구성은 일반적으로 운영 체제 코드를 찾기 위하여 시스템으로 하여금 디스켓과 같은 분리 가능한 매체를 첫 번째로 검사하고, 두 번째로 하드디스크를 검사하도록 한다. 운영 체제의 로딩(108)은 선택된 디스크 또는 디스켓(110)으로부터 운영 체제가 완전히 초기화될 때까지 진행된다. 초기화가 완료되면, 운영 체제는 운영 체제 서비스에 대한 애플리케이션 프로그램 요구를 서비스하는 것을 포함하는 필요한 감독자 기능(supervisory function)(112)을 수행한다.When the
디스크 드라이브에 저장된 운영 체제 기능에 애플리케이션이 액세스하는 것은 도 2에 예시된 순서에 따른다. 애플리케이션(114)은 운영 체제(112)의 요구를 발행한다. DOS와 같은 리얼 모드(real mode) 운영 체제에서, 운영 체제는 하드 디스크에 있는 데이터로의 액세스를 요구하는 인터럽트 13(202)을 발생한다. 인터럽트 13(INT13)은 하드웨어와의 상호 작용(interaction)을 책임지고 있는 기본 입/출력 시스템(basic input/output system:BIOS)으로부터의 서비스를 요구하는 시스템 API(Application Program Interface)이다.The application's access to operating system functions stored on the disk drive is in the order illustrated in FIG.
운영 체제의 INT13(202)은 특정 어드레스로부터 입/출력을 요구한다. 어드레스 RBA(relative block address)는 특정 디스크 섹터 어드레스로 번역(translate)되고, 이 특정 디시크 섹터 어드레스는 하드 디스크 자체(208)를 액세스하는 하드 디스크 제어기(206)로 전달된다. 이러한 시퀀스(sequence)에서, 하드디시크는 영구적으로 장착된 디스크(permanently mounted disk)이거나 분리 가능한 디스켓 장치이다. 운영 체제가 프로세서 프로텍트 모드(protect mode)로 작동하면, 운영 체제는 데이터를 하드 디스크 제어기(206)로부터 직접 요구할 수 있다. 리얼 모드 및 프로텍트 모드 모두에서, 입/출력 요구는 디스크 지오메트리에 따른다. 예를 들어, INT13 요구(202)는 입/출력(I/O) 어드레스 RBA 번역(204)이 특정 디스크 지오메트리에 기초한 요구(섹터 요구)를 하드 디스크 제어기(206)에 제공되도록 한다. 프로텍트 모드에서, 섹터 요구는 하드 디스크 제어기(206)로 직접 발행된다.The operating system's
하드 디스크의 레이아웃(layout)이 도3에 예시되어 있다. 하드 디스크는 데이터를 각각 보유하는 다수의 실린더 및 섹터로 분할되어 있다. 하드 디스크 제어기(206)는 검색할 섹터를 특정함으로써 디스크(302)에 액세스한다.The layout of the hard disk is illustrated in FIG. The hard disk is divided into a number of cylinders and sectors each holding data.
ROM 장치에 로드된 운영 체지는, 예를 들어 어드레스 OX로부터 어드레스 nnnX까지 계속되는 어드레스 공간에 선형으로 구성된다. 임의 접근 ROM 내의 데이터에 대한 액세스는 하드 디스크 섹터 사양(specification)을 요구하는 것이 아니라 선형 메모리 어드레스 사양을 요구한다.The operating system loaded into the ROM device is configured linearly, for example, in the address space following from address OX to address nnnX. Access to data in random access ROM does not require hard disk sector specification, but rather a linear memory address specification.
ROM 기분 운영 체제를 제공하기 위한 종래의 해결책은 INT13 API가 호출될 때마다 운영체제 코드가 분석되거나, 또는 ROM 장치의 선형 메모리에 액세스하기 위해 프로텍트 모드 하드 디스크 액세스가 위치 확인되고 변경될 것을 요구한다. 이러한 노력은 상당한 양의 개발 자원을 소모하게 하여 운영 체제가 이런 고비용을 정당화 하는 상황에만 제한적으로 사용될 수 있도록 한다.Conventional solutions for providing a ROM mood operating system require that the operating system code be analyzed each time the INT13 API is called, or that the protect mode hard disk access is located and changed to access the linear memory of the ROM device. This effort consumes a significant amount of development resources so that the operating system can only be used in a situation that justifies these high costs.
본 발명의 바람직한 실시예는 ROM 환경에서 어떠한 디스크-기반 운영 체제의 사용도 가능하게 한다. 본 발명은 시스템 환경에 디바이스 드라이버를 도입하는데, 디바이스 드라이버는 INT13 인터럽트 및 하드 디스크 제어기 액세스를 인터셉트하여 이러한 요구들을 ROM 장치의 어드레스 가능한 리드(reads)로 변환한다. 이러한 디바이스 드라이버를 도입하면 운영 체제는 ROM 장치에 로드되어 있다 할지라도 변경없이 동작할 수 있다.Preferred embodiments of the present invention enable the use of any disk-based operating system in a ROM environment. The present invention introduces a device driver into the system environment, which intercepts INT13 interrupts and hard disk controller access and translates these requests into addressable reads of the ROM device. Introducing these device drivers allows the operating system to run unchanged even when loaded into a ROM device.
본 발명의 하드웨어 환경의 도 5에 일반적으로 도시되어 있다. 내장형 시스템은 전형적으로 Intel Pentium 프로세서(Pentium은 Intel사의 상표임) 또는 IBM PowerPC 프로세서(PowerPC는 IBM사의 상표임)와 같은 하나 이상의 중앙 처리 장치(CPU)로 이루어진 처리 유닛(processing unit)을 가진다. 또한 시스템은 RAM(504) 및 ROM 기억장치(506)를 가지고 있다. 입/출력 제어기(508)는 시스템으로하여금 시스템의 작동에 필요한 외부 장치와 통신하도록 한다. 이러한 장치들은 키보드 및 디스플레이를 포함할 수 있거나 또는 지원되는 환경과 상호 작용하기 위한 특수장비에 연결될 수도 있다.5 is generally shown in the hardware environment of the present invention. Embedded systems typically have a processing unit made up of one or more central processing units (CPUs), such as an Intel Pentium processor (Pentium is a trademark of Intel Corporation) or an IBM PowerPC processor (PowerPC is a trademark of IBM Corporation). The system also has a
ROM 장치(506)는 애플리케이션의 특정 구조에 따라서 단일 ROM 칩이거나 복수의 ROM 칩일 수 있다. 단일 ROM을 사용하면, 표준 시스템 ROM을 시스템 기능 및 내장형 운영 체제를 모두 보유하는 큰 ROM으로 교체할 수 있을 것이다. 다른 접근방법으로는 시스템 ROM을 운영 체제 ROM으로부터 분리하여 두 개의 상이한 장치를 제공하는 것이다.The
본 발명은 인터럽트를 훅("hook")하는 시스템 능력을 사용하여 그 인터럽트가 발생할 때마다 특정 코드를 수행하도록 한다. 훅(hook)하여 제공된 코드를 실행하는 능력은 장치 구동 로직(device driver logic)을 구현하기 위하여 기존의 시스템에서도 사용되고 있다. 본 발명은 운영 체제 디스크 인터럽트 13 및 디스크 제어기 I/0 액세스를 훅(hook)하는, 장치 드라이버와 유사한 구조를 개시한다.The present invention uses the system ability to "hook" an interrupt so that specific code is executed whenever that interrupt occurs. The ability to hook and execute provided code is also used in existing systems to implement device driver logic. The present invention discloses a device driver-like architecture that hooks operating system disk interrupt 13 and disk controller I / 0 access.
상기에서 언급하였듯이, ROM 장치 상의 운영 체제는 컴퓨터 시스템 자체의 메모리와 매우 유사하게 선형으로 구성된다. 이러한 메모리에 대한 선형 액세스는 요구된 코드를 보유하는 메모리 섹션의 주소를 특정하는 장치 드라이버를 요구한다. 도 6은 본 발명에 따른 컴퓨터 시스템의 전형적인 메모리 레이아웃을 도시하고 있다. 메모리는 그림의 하단에서 상단으로 연장되는 즉, 영(0)부터 16M(16 메가 바이트 메모리)까지 연장되는 메모리로 도시되어 있다. 영(0)과 CO000 사이의 어드레스 영역은 프로그램 실행을 위해 예약되어 있다. 이 메모리 영역의 일부분(0000 - A0000 범위에 있는 640KB)은 프로그램이 실행되는 동안 DOS 또는 Windows 애플리케이션에 의해 사용된다. 상기 영역의 나머지 부분은 VGA 및 단색 비디오 어댑터 메모리(monochrome video adapter Memory)용으로 사용된다.As mentioned above, the operating system on the ROM device is configured linearly, much like the memory of the computer system itself. This linear access to memory requires a device driver to specify the address of the memory section holding the required code. 6 illustrates an exemplary memory layout of a computer system in accordance with the present invention. The memory is shown as a memory that extends from the bottom of the figure to the top, that is, from zero (0) to 16M (16 megabyte memory). An address area between zero (0) and CO000 is reserved for program execution. A portion of this memory area (640 KB in the range 0000-A0000) is used by DOS or Windows applications while the program is running. The remainder of the area is used for VGA and monochrome video adapter memory.
C0000과 1Mega 사이의 메모리는 장치 구동용으로 예약되어 있다. 비디오 장치 드라이버 및 어댑터 카드 등에 관련된 드라이버는 이러한 메모리 영역 내로 매핑 (map)된다. 이러한 매핑은 이러한 메모리 범위에 있는 어드례스를 액세스함으로써 운영 체제가 어댑터에 보유된 데이터에 액세스하도록 해준다. 시스템 버스를 통하여 어드레스를 액세스하면 어댑터 또는 RAM으로부터 해당 데이터가 적절하게 복귀된다.Memory between C0000 and 1Mega is reserved for device operation. Drivers associated with video device drivers, adapter cards, and the like are mapped into these memory areas. This mapping allows the operating system to access data held on the adapter by accessing the addresses in this memory range. Accessing the address through the system bus will properly return the data from the adapter or RAM.
도 6의 예는 컴퓨터 시스템이 8 메가 바이트인 물리적 크기의 RAM을 가지고 있는 것으로 가정한다. 바람직한 실시예는 ROM 기반 운영 체제를 시스템의 물리적인 메모리를 벗어난 영역 내로 매핑(map)한다. 이러한 예에서, 운영 체제 ROM은 8메가 바이트에서 시작하여 16 메가 바이트까지 연장되는 메모리 위치로 매핑(map)될 수 있다. 이러한 메모리 어드레스에 대한 액세스는 ROM에 의해 인터셉트되어 적절한 운영 체제 정보가 복귀될 것이다.The example of FIG. 6 assumes that a computer system has a physical size of RAM that is 8 megabytes. The preferred embodiment maps a ROM based operating system into an area outside of the system's physical memory. In this example, the operating system ROM may be mapped to a memory location starting at 8 megabytes and extending to 16 megabytes. Access to this memory address will be intercepted by the ROM and appropriate operating system information will be returned.
디스크-기반 운영 체제는 도 7에 도시된 프로세스를 사용하여 ROM 이미지로 변환된다. 먼저, 운영 체제를 보유하는 부팅 가능(bootable)한 디스크가 생성된다.The disk-based operating system is converted into a ROM image using the process shown in FIG. First, a bootable disk containing an operating system is created.
그 후, 코드가 블록들 사이의 사용되지 않은 디스크 영역 공간을 가진 디스크에 위치되는 것이 아니라 단일 블록으로 압축되는 것을 보장하기 위해 부팅 디스크 상의 점유된 디스크 영역은 조각 정리(defragment)된다. 통상의 디스크 기록 알고리즘은 디스크 이미지 내에서 연속적이지 않으며 사용되지 않는 공간을 어느 정도 남길 수 있는 이용 가능한 섹터에 데이터를 위치시킨다.The occupied disk area on the boot disk is then defragmented to ensure that the code is compressed into a single block rather than being located on a disk with unused disk area space between the blocks. Conventional disc writing algorithms place data in available sectors in the disc image that are not contiguous and can leave some unused space.
조각 정리(defragmented)된 이미지(704)는, 파일(file)이 빈 공간(blank space)을 가지지 않고 디스크의 시작 부분에서부터 선형적으로 배치된다는 점에서 압축된다. 다음으로, 부트 레코드(boot record)를 포함하는 디스크의 섹터 기반 복사본(sector based copy)이 생성된다(706). 이러한 섹터 기반 복사본은 디스크로부터 생성된 하나의 선형 이미지이지만, 관련된 섹터들 상의 정보를 보유한다. 그 후, 이미지는 INT13 훅 장치와 함께 ROM 장치 상에 로드된다. 이렇게 하여, ROM 장치는 내장형 시스템에서 사용 가능하다.The defragmented
컴퓨터 시스템에서 ROM 이미지를 사용할 수 있도록 하기 위해서는 하나의 추가적인 단계가 더 요구된다. 운영 체제의 IPL을 개시시켜 파워-온 셀프 테스트를 종료한다. Intel 기반 시스템에서는, IPL이 인터럽트 19(INT19)를 사용하여 발생한다. 초기 부트 ROM은 부트 시퀀스의 마지막 단계가 운영 체제를 로딩하기 전에 INT13 장치 드라이버를 로딩할 수 있도록 본 발명에 따라서 변경되어야 한다.One additional step is required to make the ROM image available to the computer system. Initiate the operating system's IPL to end the power-on self test. On Intel based systems, IPL occurs using interrupt 19 (INT19). The initial boot ROM must be modified in accordance with the present invention so that the last step of the boot sequence can load the INT13 device driver before loading the operating system.
도 8에서는, 먼저 파워-온 셀프 테스트가 수행된다(802). 다음으로,IPL 시퀀스가 INT13 장치 드라이버를 로드할 필요가 있는지를 알아보기 위하여 시스템은 인터럽트 19를 훅(hook)한다. IPL 동안에 INT13 및 하드 디스크 제어기 트랩 장치 드라이버가 로드되고 운영 체제가 IPL된다. 선형 ROM 어드레스에 대한 디스크 RBA 및 섹터 정보의 매핑은 수동으로 코드(hand coded)될 수 있거나, 또는 장치 드라이버가 R0M 이미지를 감지할 때 장치 드라이버에 의해 생성될 수 있다. 그 후, 운영체제는 표준 방식으로 수행된다(808). 전체 프로세스는 도 9에 도시되어 있는데, 도 9에는 종래의 부트 시퀀스 및 본 발명의 개선된 단계들이 도시되어 있다. R0M(104')는 개선된 시스템 파워-온 셀프 테스트 및 IPL 초기 시퀀스를 저장한다. 이는 INT19를 훅(hook)하기 위해 약간 변경된다. ROM(902)는 운영 체제의 이미지 및 INT13 장치 드라이버 코드를 보유한다.In FIG. 8, a power-on self test is first performed 802. Next, the system hooks interrupt 19 to see if the IPL sequence needs to load the INT13 device driver. During the IPL, the INT13 and hard disk controller trap device drivers are loaded and the operating system is IPLed. The mapping of disk RBA and sector information to linear ROM addresses may be hand coded or generated by the device driver when the device driver detects an R0M image. Thereafter, the operating system is performed 808 in a standard manner. The overall process is shown in Figure 9, which shows a conventional boot sequence and the improved steps of the present invention. The R0M 104 'stores the improved system power-on self test and IPL initial sequence. This is slightly changed to hook INT19.
리얼 모드(real mode)에 대한 INT13을 훅(hook)하고 프로텍트 모드(protect mode)에서 I/O 요구를 트랩(trap)하는 훅 루틴(hook routine)은 OS ROM의 위치를 찾아서 그 ROM으로부터 연관된 파일 시스템 구조를 판독한다. 시스템은 OS ROM 내의 파일 시스템으로부터 취합된 물리적인 디스크 지오메트리 정보를 사용하여 물리적인 판독 요구를 특정 RBA(데이터를 보유하고 있는 메모리 위치)에 상호 연관시키는 테이블을 생성한다. 시스템은 상기 테이블을 사용하여 ROM 장치에 액세스하여 디스크 지오메트리에 의해 참조된 운영 체제 코드 요구를 만족시킨다.A hook routine that hooks INT13 for real mode and traps I / O requests in protect mode finds the location of the OS ROM and associated files from that ROM. Read the system structure. The system uses the physical disk geometry information collected from the file system in the OS ROM to create a table that correlates the physical read request to a specific RBA (memory location holding the data). The system uses the table to access the ROM device to satisfy operating system code requirements referenced by the disk geometry.
물리적인 디스크 지오메트리는 운영 체제 및 파일 시스템에 따라 달라진다. 본 발명은 임의의 운영 체제 및 파일 시스템에서 사용하기 위해 적용(adaptable)될 수 있으며 또한 상이한 BIOS 구조를 보유한 프로세서에서도 사용될 수 있다. 상이한 지오메트리 및 BIOS 프로세스는 변경된 장치 드라이버 코드 및 디스크 요구 인터셉트 처리에 반영된다.Physical disk geometry depends on the operating system and file system. The present invention can be adapted for use in any operating system and file system and can also be used in processors with different BIOS structures. Different geometry and BIOS processes are reflected in modified device driver code and disk request intercept processing.
본 발명의 바람직한 실시예는 시스템의 ROM 스캔 영역(scan area)(602)에 장치 드라이버를 위치시킨다. 이 영역은 IBM 개인용 컴퓨터 호환 아키텍쳐를 사용하는 시스템에 의해 부팅(boot)할 때에 스캔된다. 상이한 아키텍쳐에 본 발명을 사용하기 위해서는 인터셉팅(intercepting) 장치 드라이버 코드를 그 시스템의 적당한 장소에 위치시키는 것이 필요하다.A preferred embodiment of the present invention locates the device driver in a
상기에서 개시한 내용으로부터 당업자는 본 발명의 본질로부터 벗어나지 않고 본 발명의 바람직한 실시예의 다양한 변경을 가할 수 있다는 것을 이해할 수 있을 것이다. 상기에서 기술한 내용은 단지 예시를 위한 것으로 본 발명을 한정하는 것으로 해석돼서는 안된다. 본 발명의 범위는 특허청구 범위에 의해서만 한정된다.It will be appreciated by those skilled in the art from the foregoing that various changes can be made in the preferred embodiments of the invention without departing from the spirit of the invention. The above description is for illustrative purposes only and should not be construed as limiting the invention. It is intended that the scope of the invention only be limited by the claims.
Claims (11)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US79220697A | 1997-01-31 | 1997-01-31 | |
US8/792,206 | 1997-01-31 | ||
US08/792,206 | 1997-01-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980069985A KR19980069985A (en) | 1998-10-26 |
KR100302926B1 true KR100302926B1 (en) | 2001-11-22 |
Family
ID=25156124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970050299A KR100302926B1 (en) | 1997-01-31 | 1997-09-30 | Disk-based software image use from a read only memory device |
Country Status (3)
Country | Link |
---|---|
JP (1) | JPH10232786A (en) |
KR (1) | KR100302926B1 (en) |
SG (1) | SG67466A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100776112B1 (en) * | 2006-02-15 | 2007-11-15 | 삼성전자주식회사 | Method for reducing booting time in wireless terminal |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6735666B1 (en) | 2000-02-22 | 2004-05-11 | Wind River Systems, Inc. | Method of providing direct user task access to operating system data structures |
KR100597733B1 (en) * | 2002-01-03 | 2006-07-07 | 삼성전자주식회사 | Computer system and booting method thereof |
-
1997
- 1997-09-30 KR KR1019970050299A patent/KR100302926B1/en not_active IP Right Cessation
- 1997-12-29 SG SG1997004718A patent/SG67466A1/en unknown
-
1998
- 1998-01-26 JP JP10012370A patent/JPH10232786A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100776112B1 (en) * | 2006-02-15 | 2007-11-15 | 삼성전자주식회사 | Method for reducing booting time in wireless terminal |
Also Published As
Publication number | Publication date |
---|---|
SG67466A1 (en) | 1999-09-21 |
KR19980069985A (en) | 1998-10-26 |
JPH10232786A (en) | 1998-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8407396B2 (en) | Providing block data access for an operating system using solid-state memory | |
CA2010591C (en) | Kernels, description tables and device drivers | |
US5887164A (en) | System and method for enabling a target computer to use storage resources of a host computer | |
US6321323B1 (en) | System and method for executing platform-independent code on a co-processor | |
US9817770B2 (en) | Memory address re-mapping of graphics data | |
KR100330532B1 (en) | Dynamic Boot File System Selection Methods and Devices | |
US7032107B2 (en) | Virtual partition for recording and restoring computer data files | |
US6421776B1 (en) | Data processor having BIOS packing compression/decompression architecture | |
US5761680A (en) | Coherent film system access during defragmentation operations on a storage medium | |
CA2059921C (en) | Scsi device drivers for multitasking operating system | |
US6718401B2 (en) | System and method for device support | |
US5701476A (en) | Method and apparatus for dynamically loading a driver routine in a computer memory | |
US6484309B2 (en) | Enabling software designed for one operating system to operate on another operating system | |
US5604887A (en) | Method and system using dedicated location to share information between real and protected mode device drivers | |
EP0976025B1 (en) | Implementing mass storage device functions using host processor memory | |
US6192471B1 (en) | Operating system independent system for running utility programs in a defined environment | |
US7162626B2 (en) | Use of common language infrastructure for sharing drivers and executable content across execution environments | |
JP2017045477A (en) | Virtual disk storage techniques | |
CA2102883A1 (en) | System and method for lazy loading of shared libraries | |
WO1992007319A1 (en) | System for multiple access hard disk partitioning | |
EP2017713A2 (en) | Techniques for implementing virtual storage devices | |
CN101944043A (en) | File access method of Linux virtual machine disk under Windows platform | |
KR20140018316A (en) | Virtual disk storage techniques | |
US8200938B2 (en) | Computer system and method providing a memory buffer for use with native and platform-independent software code | |
KR20080074462A (en) | Computer peripheral device implemented as optic storage device or/and removable disk by software emulation and method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |