+

WO1996007136A1 - Production automatique de modules de gestion de peripheriques de systemes d'exploitation - Google Patents

Production automatique de modules de gestion de peripheriques de systemes d'exploitation Download PDF

Info

Publication number
WO1996007136A1
WO1996007136A1 PCT/US1995/011123 US9511123W WO9607136A1 WO 1996007136 A1 WO1996007136 A1 WO 1996007136A1 US 9511123 W US9511123 W US 9511123W WO 9607136 A1 WO9607136 A1 WO 9607136A1
Authority
WO
WIPO (PCT)
Prior art keywords
initialize
device driver
operating system
tailoring
recited
Prior art date
Application number
PCT/US1995/011123
Other languages
English (en)
Inventor
Michael A. Pogue
Original Assignee
Taligent, Inc.
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 Taligent, Inc. filed Critical Taligent, Inc.
Publication of WO1996007136A1 publication Critical patent/WO1996007136A1/fr
Priority to US08/955,386 priority Critical patent/US6149781A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Definitions

  • CP/M and S-100 based systems in their infancy, were very simple systems However, even with these simple systems, it was hard to get an isolated system operational. Since the software required the BIOS to be provided by the board manufacturer, it generally had to be properly placed on the floppy disk and incorporated into the boot loading process. But if the code was necessary for bootin the system, then this was a problem, unless another system was available. Therefore it was relatively hard to develop and configure an isolated system.
  • UNIX became a standard operating system with the advantage that the application programs were freely transportable between various hardware platforms.
  • this transportability was not true of the core UNIX operating system because the core or kernel also included certain system board or system related hardware code. The kernal varied between hardware platforms. Therefore, the UNIX kernel had to be re-written and re-developed for each particular computer system by each particular manufacturer and was not readily transportable. This limited the widespread use of UNIX.
  • the operating system of a preferred embodiment of this invention must have an automated mechanism for generating device drivers and integrating them into the operating system to support diverse hardware platforms.
  • I/O Input/Output
  • IN and OUT instructions There are two forms of IN and OUT instructions. The first operates on a single byte, while the second operated on a two-byte word. The two forms are usually distinguished by a trailing "B" or "W" in the operation instruction code (opcode). This results in four instruction opcodes: INB, INW, OUTB and OUTW.
  • Other processors distinguish I/O addresses from memory addresses by the instruction used to access them, or alternatively, by bits in the address.
  • a trace facility is utilized to initiate an interrupt call to a particular BIOS routine requesting initialization of a target hardware device.
  • the BIOS contains appropriate setup instructions for the device, instructions which are non-obvious and not well documented.
  • the trace facility is piped through a simple filter, which extracts all OUT instructions, and the contents of the DX and AX registers at the time of the OUT instruction. By capturing this sequence of OUT instructions, the state of the device is stored at the end of the initialization.
  • the resultant OUT instructions are converted to "C" code, and the resulting "C" code is compiled utilizing a compiler for the target computer system to generate a device driver for the target hardware device which is compatible with the target operating system support for the target computer system.
  • additional filters can be used to capture sequences of IN instructions. Some boards actually use IN instructions to trigger certain controller state changes. As a further check, additional filters can be utilized to capture MEMORY READ/WRITE instructions for memory mapped controllers.
  • Figure 1 is a block diagram of an exemplary computer system in accordance with a preferred embodiment
  • FIG. 2 is a block diagram of a prior art operating system
  • Figure 3 is a block diagram of the operating system in accordance with a preferred embodiment
  • the computer system is an exemplary computer system on which an operating system organized and configured according to the present invention operates. As such, none of the specific hardware details or organizations are considered critical but are provided merely for explanatory purposes. Many additional elements can be added and certain elements illustrated can be removed.
  • the computer system includes a series of slots 48 for use by interchangeable circuit boards or adapters.
  • the slots 48 preferably conform to certain standards, for instance the Extended Industry Standard Architecture (EISA) or MicroChannel Architecture (MCA).
  • EISA Extended Industry Standard Architecture
  • MCA MicroChannel Architecture
  • the bus 20 may actually be two or more separate buses so that CPU performance and adapter performance can be separately maximized with appropriate control and conversion circuits connecting the various buses.
  • One exemplary adapter is a second hard disk controller 50.
  • the hard disk controller 50 also includes a ROM 52.
  • the hard disk controller 50 is connected to a hard disk 54.
  • the hard disk controller 50 may, for example, be a high performance hard disk controller such as a SCSI controller, while the hard disk 40 may be a low to medium performance hard disk provided for minimum functionality of the computer system.
  • the computer system is controlled by an operating system.
  • Organizations of operating systems according to the prior art are generally shown in Figure 2. Exemplary operating systems are MS /DOS by Microsoft Corporation and UNIX by a number of vendors.
  • the operating system is partitioned so that there is main operating code 100 and a device driver area 102.
  • the device driver area 102 addresses certain generally changeable aspects of the computer system, such as the disk drives, the video or terminal units and the various serial and parallel ports.
  • the main operating system code 100 includes the basic operating system kernel itself and certain code relating to interrupt processing, direct memory access control, timing functions and similar system control oriented functions.
  • the particular problem as noted in the background is that the operating system of a preferred embodiment of this invention must have an automated mechanism for generating device drivers and integrating them into the operating system to support diverse hardware platforms.
  • an operating system is configured as shown in Figure 3.
  • the operating system is shown in block 101 with the interrupts, Direct Memory Access (DMA), timer and access control 102 resident in the RAM of the computer system.
  • the DOS device drivers 100 and 110 normally resident in the ROM of a computer system, cannot be used with the operating system 100 because the Operating System is not DOS compatible.
  • a preferred embodiment of the invention facilitates the construction of a compatible device driver initialization 103 and access and control function 104. These compatible device driver portions are extracted from the incompatible, original DOS device drivers 100 and 110.
  • the memory map is presented in a traditional bottom up mapping of memory addresses from 0 to 100000+. Memory is organized on a word boundary with the Interrupt Vectors stored in low memory commencing at address 00000 as shown at label 490. BIOS data is stored in memory address 00400 as indicated at label 480. Graphic display adapter memory spans the region indicated by label 470, while the graphic BIOS extension is located at label 460. The Disk BIOS extension 450, Network BIOS extension 440 and the System BIOS 430 are located just below the high memory commencing at 420.
  • the interrupt vectors 480 trap interrupts from the various hardware devices and pass control to the device specific BIOS routine, such as the graphics BIOS extension 460 to support a graphic hardware device.
  • the device specific BIOS routine such as the graphics BIOS extension 460 to support a graphic hardware device.
  • a preferred embodiment of the invention would use the existing device-specific BIOS routine 460 to create a new device support module, providing support in a new operating system environment for an existing DOS or other operating system supported graphics device.
  • processing commences at terminal 500 and immediately proceeds to function block 502 where a trace program is initiated. This is accomplished on an Intel platform utilizing a hardware trace facility. Then, at function block 504, an INT 10 call is initiated to a BIOS device driver.
  • the BIOS device driver is a Video BIOS.
  • the Video BIOS contains appropriate setup instructions for the video controller. These instructions are often not well documented and sometimes are even not published.
  • Function block 506 refers to trapping the setup instructions. This is accomplished when the trace facility is piped through a software enabled filter, which extracts all OUT instructions, and the contents of the DX and AX registers at the time of the OUT instruction. By capturing this sequence of OUT instructions, the state of the -8-
  • controller at the end of the INT 10 (Initialize Graphics Board) command can be obtained.
  • additional filters can be used to capture sequences of IN instructions, for complete correctness. Some boards actually use IN instructions to trigger certain controller state changes. Alternatively, this method could be utilized to capture MEMORY READ /WRITE instructions, for memory mapped controllers. Additional processing of the OUT/IN instructions can occur to eliminate certain redundant or unnecessary instructions. For example, the sequences of OUT instructions at known addresses that initialize the Video CLUT (DAC). This technique saves space and instructions.
  • DAC Video CLUT
  • boot sequence can be used to automatically generate a device driver for a target operating system.
  • the target OS boot process reads the results of the trace results, and constructs a device driver for the graphics controller.
  • This method should work for all known VGA and SVGA and VESA compliant controllers. This method also works for initialization code of ANY device with startup code in ROM at known addresses, and an interface for normal operation at known fixed addresses. The code presented below is utilized in a preferred embodiment to query a device driver in ROM and obtain the information necessary to generate a function device driver for another operating system environment.
  • An example of a debug manual for use in debugging applications in accordance with a preferred embodiment is the MacsBug Reference and Debugging Guide, Apple Computer Corp., 1990.
  • Sample 'C code file 'video_init.c' produced by this method in accordance with function blocks 508 . and 5 O of Figure 5.
  • a compiler reference manual utilized in accordance with a preferred embodiment of the invention is AIX Version 3.2 for RISC System /6000. XL C User's GUIDE, SC09-1259-02 (1992).
  • the autogeneration of a device driver for other devices such as disk drives, diskette drives, modems, and other peripherals would require including the step of tailoring the initialize device command to initialize the particular peripheral.
  • the initialization call would be initiated from the DEBUG process and be documented in the technical reference or the processor handbook for the target peripheral device.
  • the video device call is an INT 10 as shown above with reference to Figure 5, function block 504.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Abstract

Système et procédé nouveaux constituant un support dans un système d'exploitation cible pour de nouveaux périphériques à la base de modules de gestion de périphériques provenant d'un système d'exploitation existant. La création d'une image initialisable d'un système d'exploitation particulier se déroule en plusieurs étapes. On utilise d'abord une fonction d'analyse, afin de déclencher un appel d'interruption dirigé vers un programme particulier BIOS demandant l'initialisation d'un dispositif câblé cible. Le BIOS contient des instructions appropriées d'installation du dispositif, instructions non évidentes et documentées de façon imprécise. La fonction d'analyse est canalisée à travers un filtre unique qui extrait toutes les instructions de sortie (OUT) et le contenu des registres DX et AX au moment de l'instruction OUT. La saisie de la séquence d'instructions OUT permet de mémoriser l'état du dispositif à la fin de l'initialisation. Les instructions OUT obtenues sont converties en code 'C' et le code 'C' obtenu est compilé au moyen d'un compilateur du système informatique cible, afin de produire un module de gestion de périphérique pour le dispositif câblé cible compatible avec le support du système d'exploitation cible du système informatique cible.
PCT/US1995/011123 1994-01-10 1995-08-30 Production automatique de modules de gestion de peripheriques de systemes d'exploitation WO1996007136A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08/955,386 US6149781A (en) 1994-01-10 1997-10-21 Method and apparatus for electrochemical processing

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US29982794A 1994-09-01 1994-09-01
US08/299,827 1994-09-01

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US08/316,530 Continuation-In-Part US5476578A (en) 1994-01-10 1994-09-30 Apparatus for electroplating

Publications (1)

Publication Number Publication Date
WO1996007136A1 true WO1996007136A1 (fr) 1996-03-07

Family

ID=23156464

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1995/011123 WO1996007136A1 (fr) 1994-01-10 1995-08-30 Production automatique de modules de gestion de peripheriques de systemes d'exploitation

Country Status (1)

Country Link
WO (1) WO1996007136A1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0805399A1 (fr) * 1996-05-01 1997-11-05 Sun Microsystems, Inc. Procédé pour générer un module d'interfaçage unique de périphérique virtuel pour un système d'exploitation à fenêtres
US8370711B2 (en) 2008-06-23 2013-02-05 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Captured Data Flow Systems Network Architecture Sequence Program Generator", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 37, no. 1, NEW YORK, US, pages 459 - 460 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0805399A1 (fr) * 1996-05-01 1997-11-05 Sun Microsystems, Inc. Procédé pour générer un module d'interfaçage unique de périphérique virtuel pour un système d'exploitation à fenêtres
US5940613A (en) * 1996-05-01 1999-08-17 Sun Microsystems, Inc. Method for creating a single binary virtual device driver for a windowing operating system
US8370711B2 (en) 2008-06-23 2013-02-05 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding
US8806307B2 (en) 2008-06-23 2014-08-12 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding

Similar Documents

Publication Publication Date Title
US6009480A (en) Integrated device driver wherein the peripheral downloads the device driver via an I/O device after it is determined that the I/O device has the resources to support the peripheral device
US7308511B2 (en) System for allocating resources in a computer system
US5394544A (en) Software system debugger with distinct interrupt vector maps for debugging and application programs
US5325532A (en) Automatic development of operating system boot image
US8407396B2 (en) Providing block data access for an operating system using solid-state memory
US7873821B2 (en) BIOS configuration and management
US5918048A (en) Booting an operating system using soft read-only storage (ROS) for firmware emulation
KR100764921B1 (ko) 장치 이뉴머레이션을 위한 가상 rom
US20040268113A1 (en) Virtual out-of-band management controller
US20050198487A1 (en) Method and apparatus to support remote configuration code
JP3230005B2 (ja) オプション・ボードprom
JP2008509483A (ja) 予期せず/変化するハードウェア環境へのソフトウェアとファームウェアの適応
JP2008509483A5 (fr)
US7500094B2 (en) BIOS identification, initialization and management
GB2393537A (en) In a computer system, a firmware interface table associated with a table which describes at least one system component.
US7017034B2 (en) System and method for using a firmware interface table to dynamically load multiple ACPI SSDT tables
JP2004070953A (ja) 複数のオペレーティングシステムをサポートする方法
WO1996007136A1 (fr) Production automatique de modules de gestion de peripheriques de systemes d'exploitation
US5754852A (en) Apparatus for combining cellular telephone ring signals and PSTN ring signals
US7103767B2 (en) Method and apparatus to support legacy master boot record (MBR) partitions
CN114489865A (zh) 一种os级实现bios配置修改的方法
US7596685B2 (en) Apparatus and method for building, storing, uploading, relocating and executing DOS based software module during system startup time
US7240187B2 (en) Method and apparatus to support legacy master boot record (MBR) partitions
Banik et al. Payload
US7434201B2 (en) Method and apparatus providing for extendable interaction between firmware and operating systems on digital devices

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CA CN JP

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref country code: US

Ref document number: 1997 955386

Date of ref document: 19971021

Kind code of ref document: A

Format of ref document f/p: F

122 Ep: pct application non-entry in european phase
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载