US6934956B1 - Method and apparatus for installing an operating system - Google Patents
Method and apparatus for installing an operating system Download PDFInfo
- Publication number
- US6934956B1 US6934956B1 US08/925,703 US92570397A US6934956B1 US 6934956 B1 US6934956 B1 US 6934956B1 US 92570397 A US92570397 A US 92570397A US 6934956 B1 US6934956 B1 US 6934956B1
- Authority
- US
- United States
- Prior art keywords
- computer
- configuration file
- operating system
- driver
- information
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 238000009434 installation Methods 0.000 claims description 20
- 230000015654 memory Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000008676 import Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 241000006416 Notata Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011900 installation process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
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/4411—Configuring for operating with peripheral devices; Loading of device drivers
- G06F9/4413—Plug-and-play [PnP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- 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
Definitions
- This invention pertains to operating systems generally and, more particularly, a method and apparatus for installing an operating system.
- Personal computers are assembled from a number of discrete components known as “devices.”
- the central processing unit (“CPU”), monitor, keyboard, and memory are commonly recognized devices used in desktop computers. These parts are integrated more closely in other types of personal computers, such as laptop and hand-held computers, to meet size and weight constraints. Still, these discrete parts can be separately identified. In recent years, however, it has become standard for personal computers to include “add-on” devices.
- a new personal computer might therefore further include a modem, a mouse, and an optical disk (“CD-ROM”) drive and may also be connected to a printer.
- CD-ROM optical disk
- I/O input/output
- DMA direct memory access
- System resources therefore have to be allocated to each device. Historically, this was done by setting dual, in-line package (“DIP”) switches or jumpers on the hardware interface that hardwired these allocations. This is sometimes called “configuring” the system.
- DIP dual, in-line package
- a driver contains information needed to send output to and/or receive input from the device. Thus, for example, when a computer sends a print job to the printer, the computer could do so through the printer driver using the correct parameters.
- Each driver typically is unique. The drivers must therefore be changed whenever the system is reconfigured. If a new device is installed or if a device is moved to a new address location, then a new driver must be installed and, if an obsolete driver exits, the old one must be deleted.
- PnP plug and play
- a plug and play system permits a user to “plug in” a new device and “play” it without having to manually reconfigure the computer system. Instead, software examines the hardware and dynamically allocates system resources according to each device's needs. Typically, the information for each device is stored in a configuration file along with many types of devices that potentially may be associated with the computer system either by installation or connection. The software locates each device, identifies the device, determines the device's needs from the configuration file and the device's identity, and then allocates the system resources. The software then also typically installs whatever drivers the device needs according to the information in the configuration file.
- the plug and play dynamic allocation can be performed by an operating system (“OS”).
- OS operating system
- An operating system is a software package through which the user and the computer interface. Not all operating systems have plug and play capabilities. Exemplary plug and play operating systems include Windows® 95 and Windows® NT.
- the operating system must at some point be installed on the personal computer.
- the OS is installed by the manufacturer of the personal computer before shipping or by the user after reconfiguring the system. Installation is generally performed using installation software provided on a CD-ROM under license by the owner of the operating system.
- the installation software for a plug and play operating system includes a configuration file for installing the drivers for devices that potentially might be associated with the computer.
- the operating system must be installed on the computer using installation software and it is during installation that the operating system dynamically allocates system resources and installs device drivers.
- Plug and play operating systems are, however, fraught with many problems. For instance, the configuration file frequently has no information for new devices first marketed after the operating system is released. Also, plug and play operating systems frequently mistake a device for a device of another type. The operating system in these situations installs the wrong driver or fails to install any driver at all. Either way, the computer's full capabilities cannot be exercised until the errors are corrected. These problems are compounded in that OS installation software is typically provided to the installer on a CD-ROM, making updates and corrections to the installation software virtually impossible. Plug and play capabilities have consequently failed to realize their full potential.
- the present invention is directed to overcoming, or at least reducing the effects of, one or more of the problems set forth above.
- One embodiment of the invention is a method for installing an operating system on a computer.
- the method includes generating an external configuration file containing information about a plurality of devices that might be associated with the computer; identifying a particular device associated with the computer, the particular device being one of the plurality of devices; installing a driver on the computer according to the information stored in the external configuration file and the particular device's identity; and installing the operating system according to information stored in the external configuration file and the particular device's identity.
- FIG. 1 illustrates a personal computer system upon which the invention in one embodiment may be practiced
- FIG. 2 is illustrates one embodiment of the method of the invention
- FIG. 3 illustrates one particular variation of the embodiment in FIG. 2 ;
- FIGS. 4A–4C detail the embodiment in FIG. 3 ;
- FIG. 5 illustrated one particular variation of the embodiment in FIG. 2 alternative to that in FIGS. 3 and 4 A– 4 C;
- FIGS. 6A–6H detail the embodiment of FIG. 5 .
- FIG. 1 illustrates a computer system 10 upon which the invention in one embodiment may be practiced.
- a personal computer 12 includes a monitor 14 , a floppy disk drive 16 , an optical disk drive 18 , a hard disk drive 20 , and a keyboard 22 .
- the computer 12 illustrated is a desktop computer manufactured by Micron Electronics, Inc. of Nampa, Id. However, the invention is not so limited as computers by other manufacturers and other types of personal computers, such as laptop and hand-held computers, might also be employed.
- the computer 12 of FIG. 1 also includes several add-on devices. More particularly, computer 12 is connected to a modem 24 , a mouse 26 , and a laser printer 28 .
- the computer system 10 might, in other embodiments, omit such add-on devices or employ still other add-on devices, those illustrated merely being exemplary of add-on devices generally considered standard. There may be many variations on this theme.
- the modem 24 is shown internal to computer 12 , but in other embodiments may be external.
- the printer 28 may be a type of printer other than a laser printer and may even be some other form of input/output (“I/O”) device such as a plotter or magnetic tape drive.
- I/O input/output
- the term “device” shall refer to any such add-on device or component needing such a driver.
- a device shall also be referred to as being “associated” with the computer 12 to encompass the myriad ways in which devices may interface at the hardware level with the computer 12 and its processor.
- FIG. 2 illustrates a method for installing an operating system on a computer such as computer 12 .
- an operating system must be installed for a user to interface with the computer.
- drivers must be installed for the computer 12 to communicate with each device.
- a computer is programmed with an operating system and drivers are typically installed with the operating system.
- the method of FIG. 2 begins by generating an external configuration file containing information about a plurality of devices that might be associated with the computer 12 .
- the plurality of devices will typically include those interfacing with the computer 12 through a variety of protocols such as industry standard architecture (“ISA”), peripheral component interconnect (“PCI”), small computer serial interface (“SCSI”), and integrated drive electronics (“IDE”) protocols.
- ISA industry standard architecture
- PCI peripheral component interconnect
- SCSI small computer serial interface
- IDE integrated drive electronics
- the plurality of devices may include all manner of types, such as monitors, sound cards, and modems from a variety of manufacturers.
- the external configuration file need not necessarily be so implemented, it may be conceptualized as a lengthy list of devices and associated information regarding their manufacturer, their type, and the protocol they employ.
- the OS installation software also contains a configuration file, which shall be referred to as an “internal” configuration file.
- the term “external” is used here to distinguish the configuration file of the invention from the internal configuration file of the OS installation software.
- the external configuration file is generated in much the same way as the internal configuration file as will be recognized by those in the art having the benefit of this disclosure. However, because the external configuration file is not part of the OS installation software, it can be frequently updated or modified as new devices are released or errors are identified in the internal configuration file.
- the method proceeds by next identifying a particular device associated with the computer, the particular device being one of the plurality of devices set forth in the external configuration file.
- This identification may be either automated or manual. If manual, the installer might be queried as to the identity of the various devices, which might introduce human error into the installation process. Because the external configuration file can be readily updated, it is envisioned that a device not included in the external configuration file will rarely be encountered, although this is possible.
- the method next proceeds by installing a driver for the device and the operating system on the computer according to the information stored in the external configuration file and the particular device's identity. This may be done either by replacing erroneous drivers installed by the OS installation software, replacing the erroneous drivers to be installed by the OS software so that the OS installation software will install the correct drivers, or by patching the drivers installed by the OS installation software to correct the errors they contain.
- driver installation may be performed prior to, contemporaneous with, or after installing the operating system.
- the embodiment of FIG. 2 is finished once the OS is fully installed. However, in alternative embodiments, additional tasks may be performed if desired. For instance, various type of applications software might be loaded.
- FIGS. 3 and 4 A– 4 C illustrate one particular variation of the embodiment in FIG. 2 .
- this embodiment involves:
- the computer 12 is a desktop personal computer such as is commercially available from Micron Electronics, Inc., of Nampa, Id., and the operating system is Windows® 95 available from Microsoft Corporation of Seattle, Wash.
- the instructions for performing the method in this particular embodiment are encoded on a removable, portable program storage medium such as floppy diskette 30 in FIG. 1 inserted into the floppy disk drive 16 or a CD-ROM optical disk such as disk 32 inserted into the optical disk drive 18 . Note that these instructions may be obtained already encoded on the program storage medium or, in some embodiments, downloaded to the same from the World Wide Web.
- This particular embodiment also employs a form-type, graphical user interface frequently called a “wizard” to interface with the installer. While the interaction between with the installer is reflected in FIGS. 4A–4C , references to such activities are sometimes omitted from the following discussion for the sake of clarity and brevity. Accordingly, while perhaps preferable in some embodiments, the use of a wizard is not necessary to the practice of the invention. Some embodiments may actually be entirely automated and thus eliminate the need for intermediate installer interaction.
- the computer 12 in this particular embodiment first presents an introduction screen to the installer requesting the selection of one of four installation options.
- the four options in this particular embodiment are: (1) install Windows® 95 while keeping the existing configuration; (2) install Windows® 95 keeping the existing internal configuration files only, (3) install Windows® 95 after removing all EXISTING Windows® files; and (4) install Windows® 95 after formatting the hard disk 20 .
- Options (2)–(4) require intermediate preparation.
- the computer removes the internal configuration files previously installed in C: ⁇ WINDOWS; removes all the Windows® 95 files, including the internal configuration file, and then deletes the C: ⁇ WINDOWS directory; or formats the hard disk, respectively.
- Windows® configuration files end with the extension .INI, such that the configuration files can be readily deleted by deleting C: ⁇ WINDOWS ⁇ *.INI.
- the computer 12 copies all necessary files from the D: ⁇ OSI directory of the portable program storage medium to a newly created C: ⁇ WIN95 directory on the hard disk 20 .
- “Necessary files” in this case are those files of all types necessary to install Windows® 95.
- the computer 12 then reads the configuration information from the external configuration file C: ⁇ WIN95 ⁇ OSI.INI containing the configuration information for Windows® 95. Note that OSI.INI is stored in C: ⁇ WIN95 at this point.
- the computer 12 then prompts the installer to select the display, sound, modem, and SCSI device type. This may be done by asking the installer to select from a list of presented options or the installer may simply enter the information when prompted.
- the computer 12 Utilizing the information from the external configuration file OSI.INI and from the device selection, the computer 12 then generates two temporary batch files (OSI 1 .BAT and OSI 6 .BAT) and a registry file (OSIREG.INI) as set forth in FIG. 4A .
- the registry file (OSIREG.INI) will subsequently be used to write correct configuration information to the registry file for the Windows® 95 operating system.
- Four other temporary batch files (OSI 2 .BAT, OSI 3 .BAT, OSI 4 .BAT, and OSI 5 .BAT), whose functions are later discussed, are previously generated and stored on the portable program storage medium (not shown). Batch files are simply files containing a series of commands for a computer to execute. Thus, the contents of the temporary batch files will depend on their functions disclosed below and may vary depending on the particular embodiment implemented.
- the computer 12 then begins installing the operating system.
- the computer 12 starts the installation by executing the first temporary batch file OSI 1 .BAT.
- the Windows® 95 files are copied from the CD-ROM installation disk(s) to the C: ⁇ WIN95 directory on the hard disk 20 .
- the drivers for each device are copied from a respective installation disk to a C: ⁇ WIN95 ⁇ INF subdirectory on the hard disk 20 .
- the first temporary batch file is copied over the AUTOEXEC.BAT file on the hard disk 20 and renamed AUTOEXEC.BAT.
- the AUTOEXEC.BAT file is the first file executed by the computer 12 when it is turned on or rebooted.
- the next time the computer 12 is booted it will execute the first temporary batch file OSI 1 .BAT.
- the computer 12 then begins the Windows® setup using the parameters that force hardware detection, bypass the license screen, bypass ScanDisk, bypass the disk space check.
- OSI.INF is specified as the information setup file for the setup.
- the information setup file contains some of the information necessary to install the driver for each device previously selected. Such information includes the memory location reserved for the device and any necessary registry changes.
- the installer inputs the appropriate Windows® 95 product identification number and the computer is rebooted.
- the computer 12 executes AUTOEXEC.BAT as it always does, and thus executes the first temporary batch file (OSI 1 .BAT) that was generated earlier and copied over the original AUTOEXEC.BAT.
- the AUTOEXEC.BAT calls the second temporary batch file (OSI 2 .BAT) from the C: ⁇ WIN95 directory of the hard disk 20 and executes it.
- OSI 2 .BAT copies the information files (*.INF) from the C: ⁇ WIN95 ⁇ INF subdirectory to the C: ⁇ WINDOWS ⁇ INF subdirectory. After copying, the C: ⁇ WINDOWS ⁇ INF subdirectory provides the information needed by Windows® 95 to install the newer drivers Windows® 95 otherwise would omit or install erroneously.
- OSI 2 .BAT copies the third temporary batch file (OSI 3 .BAT) to AUTOEXEC.BAT and setup proceeds automatically from the information in OSI.INF. Then, the installer selects their time zone and Setup reboots the computer 12 .
- AUTOEXEC.BAT which is now what formerly was the third temporary batch file OSI 3 .BAT.
- AUTOEXEC.BAT imports the correct information into the registry to run when Windows® 95 starts.
- AUTOEXEC.BAT runs the fourth temporary batch file (OSI 4 .BAT) from the C: ⁇ WIN95 directory, which copies the fifth temporary batch file (OSI 5 .BAT) over AUTOEXEC.BAT.
- OSI 4 .BAT then proceeds by starting Windows® 95 by starting OSIREG.EXE in the C: ⁇ WIN95 directory.
- OSIREG.EXE then reads the necessary information from OSIREG.INI, removes erroneous entries in the registry as defined by OSIREG.INI. If an internal modem is configured, the external COM 2 I/O port is disabled in the registry. The computer 12 is then rebooted.
- FIGS. 5 and 6 A– 6 H illustrate one particular variation of the embodiment in FIG. 2 alternative to that in FIGS. 4A–4C .
- this particular embodiment comprises:
- this particular embodiment begins by reading configuration information from the external configuration file OSI.INI.
- the computer 12 operating in accordance with the installation software of the present invention then enumerates the devices for which system resources must be dynamically allocated.
- This particular embodiment enumerates devices operating in accordance with numerous protocols such as ISA, PCI, IDE, and SCSI. These protocols are presented in FIG. 6A in a particular order, but the invention is not so limited. Likewise, the invention is not limited to particular types of protocol employed by various devices as shown in this particular embodiment.
- FIGS. 6B–6E detail the enumeration of the devices.
- the computer 12 enumerates ISA plug and play devices by first finding the plug and play signatures in the basic input/output system (“BIOS”), which includes:
- the computer 12 For each PCI device, as shown in FIG. 6C , the computer 12 reads the next device ID from the BIOS and, if it is a valid device ID, adds to the detection list. The computer 12 determines whether a device ID is valid by, for each function 0 – 7 for each device ID 0 – 31 :
- FIG. 6D details the enumeration of IDE devices, such as AT attachment (“ATA”) and AT attachment packet interface (“ATAPI”) devices.
- IDE devices such as AT attachment (“ATA”) and AT attachment packet interface (“ATAPI”) devices.
- ATA AT attachment
- ATAPI AT attachment packet interface
- IRQ controller interrupt request
- computer 12 For each SCSI device, as shown in FIG. 6E , computer 12 reads the next device ID from the ASPI driver and, if it is a valid device ID, adds it to the detection list.
- the SCSI device ID is read by:
- the computer 12 displays an introduction screen upon enumerating all of the devices associated with the computer 12 .
- the installer is then asked to select an installation option defined in the external configuration file OSI.INI.
- the installation options may be the same as those presented for the previous embodiment of FIGS. 4A–4C or may be one of several alternatives.
- computer 12 displays lists of the detected devices to the installer and installation begins.
- Installation begins by executing the selected install option commands in the external configuration file OSI.INI. This creates a temporary directory OSITEMP on the hard drive 20 of the computer 12 , transfers an executable file OSIBOOT.EXE and an executable file OSI 32 .EXE to that directory.
- Computer 12 next generates an information file OSI.INF from a temporary information file OSITEMP.INF and information in the external configuration file OSI.INI.
- the computer 12 then generates OSIBOOT.INI from the information in the external configuration file OSI.INI.
- the computer 12 then accesses the detection list and obtains the information regarding the first detected device in the list.
- the computer 12 then copies a number of files from the C: ⁇ WINDOWS ⁇ ID subdirectory to the C: ⁇ OSITEMP directory. Namely, the computer 12 copies all files in the DeviceID ⁇ INF subdirectory to the OSITEMP ⁇ INF subdirectory, all files from the device ID ⁇ COPYLIST subdirectory to the OSITEMP ⁇ COPYLIST directory, from the device ID ⁇ PATCHES subdirectory to the OSITEMP ⁇ PATCHES ⁇ DeviceID subdirectory.
- the computer 12 then appends all of the files in the device ID ⁇ REGISTRY directory to the OSI ⁇ TEMP ⁇ OSI.REG file, adds the registry delete entries in the device ID section of OSI.INI to the OSI 32 .INI file, and adds the run patch entries in the device ID section of OSI.INI to the OSI 32 .INI. This is repeated for each device in the detection list.
- the external installation software then prompts the user to insert the Windows® 95 CD, and then copies all files from the WIN95 directory on the CD to OSITEMP on the hard drive 20 .
- the external software installation then deletes the CONFIG.SYS and overwrites AUTOEXEC.BAT to run OSIBOOT.EXE with one as a parameter.
- the external installation software program then exists and starts the Windows® 95 setup program using the /P, /F, /IW, /IS, /ID, OSI.INF parameters as shown. These parameters specify that Setup force hardware redetection, bypass the license screen, bypass the ScanDisk function, bypass the disk space check, and obtain the install information from the external configuration file OSI.INF.
- the Setup then proceeds automatically from the information in OSI.INF.
- the user inputs the Windows® 95 product ID number and the setup reboots the computer.
- AUTOEXEC.BAT runs on startup of the computer and runs OSIBOOT.EXE with 1 as a parameter, wherein 1 signifies the first pass.
- the computer 12 then, in accordance with AUTOEXEC.BAT commands, executes the commands defined in the boot pass one section of the OSIBOOT.INI file, which normally copies the INF files.
- the computer 12 next overwrites AUTOEXEC.BAT to run OSIBOOT.EXE with 2 as a parameter, wherein 2 signifies the second pass.
- the setup once again proceeds automatically from the information in OSI.INF.
- the user selects their time zone and setup then reboots the computer.
- the AUTOEXEC.BAT file runs OSIBOOT.EXE 2 .
- the computer 12 then in accordance with the commands of AUTOEXEC.BAT, executes the commands defined in this section boot pass two and OSIBOOT.INI, which will normally import into the registry of value to run OSI 32 .EXE.
- Computer 12 then overwrites AUTOEXEC.BAT to run OSIBOOT.EXE with three as a parameter. Windows® 95 then starts and displays the Windows® screen until the user selects the “close” button.
- Windows® then executes OSI 32 .EXE, which reads information from OSI 32 .INI, removes entries from the registry as defined in OSI 32 .INI.
- the computer 12 determines whether there are any patches to be made and, if so, runs the patch program as defined in OSI 32 .INI.
- the computer 12 then reboots the computer.
- AUTOEXEC.BAT runs OSIBOOT.EXE 3 and executes the commands defined in boot pass three section of OSIBOOT.INI. This will typically import into the registry file OSI.REG.
- the computer 12 then deletes AUTOEXEC.BAT and Windows®95 is installed.
- the acts comprising the methods disclosed above are typically performed by a computer according to instructions encoded in some type of program storage medium.
- the computer may be a specially programmed, general purpose computer or a particular computer dedicated to a particular task.
- the instructions may be encoded on any type of computer readable medium acting as a program storage medium.
- Typical program storage mediums include, but are not limited to: random access memory (“RAM”), such as a floppy diskette, a hard disk, or a magnetic tape; read only memory (“ROM”), such as an optical disk; and variations thereon, such as a write once, read many (“WORM”) disk.
- RAM random access memory
- ROM read only memory
- WORM write once, read many
Abstract
Description
-
- (a) booting the
computer 12 from a CD-ROM boot disk containing the software embodying the present invention; - (b) selecting a type of installation;
- (c) selecting video sound, modem, and controller types;
- (d) copying a WIN95 directory from a
Windows® 95 compact disk to thehard drive 20 of thecomputer 12; - (e) copying the files needed to install the drivers for each device as defined in the external configuration file OSI.INI;
- (f) running the setup with a custom install file OSI.INF generated from the external configuration file OSI.INI; and
- (g) modifying the registry for each device to correct the configuration information therein as defined in the external configuration file OSI.INI.
FIGS. 4A–4C and the discussion below flesh out this process.
- (a) booting the
-
- (a) booting the
computer 12 from a bootable medium such as a CD-ROM boot disk or a Micron Customer Resource Center (“MCRC”) CD-ROM boot disk; - (b) obtaining from the PnP BIOS and PnP cards the devices installed in the
computer 12; - (c) selecting a type of installation;
- (d) copying files needed to install the driver for each device as defined in the external configuration file OSI.INI;
- (e) copying a WIN95 directory from a
Windows® 95 CD to thehard drive 20 of thecomputer 12; - (f) running Setup with a custom install file OSI.INF generated from the external configuration file; and
- (g) modifying the registry for each device for the correct configuration as defined in the external configuration file OSI.INI.
- (a) booting the
-
- (a) scanning the BIOS segment 0F:0000 for $PnP;
- (b) getting the PnP BIOS Entry Point from the structure at an offset of 13 bytes; and
- (c) getting the BIOS Data segment from the structure at an offset of 27 bytes.
Thecomputer 12 then calls theBIOS PnP function 40 to get the ISA PnP device count by: - (a) pushing the BIOS Data segment, a pointer to a memory location and 40H, onto a stack;
- (b) calling the PnP BIOS Entry Point;
- (c) getting the ISA PnP card count from the structure at an offset of 1 byte; and
- (d) getting the ReadDataPort address from the structure at an offset of 2 bytes.
Thecomputer 12 next initializes the ISA PnP bus and sets the ReadDataPort by: - (a) initializing the ISA PnP bus by sending the following sequences of bytes in hexadecimal representation to port 279H: 00,00, 6A, B5, DA, ED, F6, FB, 7D, BE, DF, 6F, 37, 1B, 0D, 86, C3, 61,B0, 58,
2C 16, 8B, 45, A2, D1, E8, 74, 3A, 9D, CE, E7, 73, 39; and - (b) setting the ReadDataPort by sending 00 to port 279H and the low order byte of the ReadDataPort address retrieved above shifted right 2 bits to port A79H.
Thecomputer 12 then reads from the next device ID from the ReadDataPort and adds it to the detection list by: - (a) sending 03H to port 279H and the device number to port A79H to select the device;
- (b) sending 05H to port 279H and reading the ReadDataPort until
bit 1 is set (wait for status OK); - (c) sending 04H to port 279H and reading a byte of the device ID from the ReadDataPort;
- (d) repeating steps (b)–(c) above until all 8 bytes of the device ID are read; and (e) sending 30H to port 279H and 01H to port A79H to activate the device.
-
- (a) loading register AX with B109H, register BL with the device ID shifted left 3 bits plus the device function, register BH with 0, and register DI with 0, and then calling interrupt 1AH, whereupon return register CX contains the vendor ID;
- (b) loading register AX with B109H, register BL with the device ID shifter left 3 bits plus the device function, register BH with 0, and register DI with 0, and then calling interrupt 1AH, whereupon the return register CX contains the device ID; and
- (c) if the vendor ID is not FFFFH and the vendor ID and the device ID are not the same as the last iteration, it is valid.
-
- (a)
remapping IRQ 14 for primary (15 for secondary) controller to procedure that reads the device ID block from the controller; - (b) sending A0H(master) or B0H(slave) to port 1F6H(176H);
- (c) sending ECH(ATA) to port 1F7H(177H); and
- (d) if not ATA device is detected, then sending 1AH(ATAPI) to port 1F7H(177H).
If a device is detected,computer 12 then reads the device identification from the controller and adds it to the detection list by: - (a) reading from port 1F0(170) 256 byes into the device ID block; and
- (b) extracting the model from the device ID block(offset 27).
This is done for each IDE device.
- (a)
-
- (a) opening the ASPI driver (filename is SCSIMGR$);
- (b) if the driver is not available, exiting;
- (c) otherwise, issuing INT 21 (AX:4402H, BX:ASPI handle, CX:4, DX:offset, DS:segment of pointer for ASPIProc.);
- (d) closing the ASPI handle; and
Claims (16)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/925,703 US6934956B1 (en) | 1997-09-09 | 1997-09-09 | Method and apparatus for installing an operating system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/925,703 US6934956B1 (en) | 1997-09-09 | 1997-09-09 | Method and apparatus for installing an operating system |
Publications (1)
Publication Number | Publication Date |
---|---|
US6934956B1 true US6934956B1 (en) | 2005-08-23 |
Family
ID=34839119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/925,703 Expired - Lifetime US6934956B1 (en) | 1997-09-09 | 1997-09-09 | Method and apparatus for installing an operating system |
Country Status (1)
Country | Link |
---|---|
US (1) | US6934956B1 (en) |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040025006A1 (en) * | 1999-09-02 | 2004-02-05 | Babka James Joseph | Status display for parallel activities |
US20040177361A1 (en) * | 2002-11-25 | 2004-09-09 | Sven Bernhard | Generic application program interface for native drivers |
US20040210891A1 (en) * | 2003-04-17 | 2004-10-21 | Ntt Docomo, Inc. | Update system and method for updating a scanning subsystem in a mobile communication framework |
US20050096133A1 (en) * | 2003-11-04 | 2005-05-05 | Hoefelmeyer Ralph S. | Systems and methods for providing self-compiling, peer-to-peer on-line gaming |
US20050132355A1 (en) * | 2003-12-16 | 2005-06-16 | Rob Greenberg | Displaying a vendor provided information screen in response to a log-in experience |
US20050235281A1 (en) * | 2004-04-19 | 2005-10-20 | Telefonaktiebolaget L M Ericsson (Publ) | Combined software installation package |
US20060150167A1 (en) * | 2004-12-21 | 2006-07-06 | Ziegler Jeremy R | System and method for integrating non-native storage devices in an information handling system image |
US20060277340A1 (en) * | 2005-06-03 | 2006-12-07 | Mar David B | System and method for providing layered profiles |
US20070050750A1 (en) * | 2005-08-31 | 2007-03-01 | Microsoft Corporation | Extensible data-driven setup application for operating system |
US20070061818A1 (en) * | 2005-09-12 | 2007-03-15 | Microsoft Corporation | Detection of devices during operating system setup |
US20070097964A1 (en) * | 2005-11-01 | 2007-05-03 | Shinichi Kashimoto | Communication device and communication system |
US20070168478A1 (en) * | 2006-01-17 | 2007-07-19 | Crosbie David B | System and method for transferring a computing environment between computers of dissimilar configurations |
US20070198664A1 (en) * | 2006-02-22 | 2007-08-23 | Microsoft Corporation | Multi-server automated redundant service configuration |
US20070234346A1 (en) * | 2006-02-22 | 2007-10-04 | Microsoft Corporation | Integrated computer server imaging |
US20070234345A1 (en) * | 2006-02-22 | 2007-10-04 | Microsoft Corporation | Integrated multi-server installation |
US20080059782A1 (en) * | 2006-08-31 | 2008-03-06 | Mike Kruse | Methods and systems to dynamically configure computing apparatuses |
US20080127167A1 (en) * | 2006-08-15 | 2008-05-29 | Elliott Ian A | Package compatibility |
CN102053846A (en) * | 2009-11-03 | 2011-05-11 | 技嘉科技股份有限公司 | Operating system and operating method |
US8464238B1 (en) * | 2006-01-31 | 2013-06-11 | Qlogic, Corporation | Method and system for managing storage area networks |
EP2648092A1 (en) * | 2012-04-04 | 2013-10-09 | Harman Becker Automotive Systems GmbH | Updating method and multi-domain embedded system |
US9058230B1 (en) * | 2008-05-27 | 2015-06-16 | Symantec Operating Corporation | Online expert system guided application installation |
US10031736B2 (en) * | 2015-09-29 | 2018-07-24 | Quanta Computer Inc. | Automatic system software installation on boot |
US20190278584A1 (en) * | 2011-11-17 | 2019-09-12 | Samsung Electronics Co., Ltd. | Method and apparatus for auto installing application into different terminals |
US10459734B1 (en) * | 2016-03-28 | 2019-10-29 | EMC IP Holding Company LLC | Registry management system and method |
CN113064607A (en) * | 2021-06-02 | 2021-07-02 | 统信软件技术有限公司 | Installation method of operating system, computing equipment and storage medium |
US11446484B2 (en) | 2019-04-05 | 2022-09-20 | Wise Srl | Device for electrotherapy and/or electrophysiology, kit and assembly |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5613125A (en) * | 1994-06-17 | 1997-03-18 | Motorola, Inc. | Method and system for selectively defining hardware parameters in an executable operating system program |
US5640562A (en) * | 1995-02-27 | 1997-06-17 | Sun Microsystems, Inc. | Layering hardware support code on top of an existing operating system |
US5713009A (en) * | 1995-09-08 | 1998-01-27 | Digital Equipment Corporation | Method and apparatus for configuring a computer system |
US5717930A (en) * | 1994-09-19 | 1998-02-10 | Seiko Epson Corporation | Installation system |
US5748980A (en) * | 1994-05-27 | 1998-05-05 | Microsoft Corporation | System for configuring a computer system |
US5794032A (en) * | 1996-04-15 | 1998-08-11 | Micron Electronics, Inc. | System for the identification and configuration of computer hardware peripherals |
US5794052A (en) * | 1995-02-27 | 1998-08-11 | Ast Research, Inc. | Method of software installation and setup |
US6094531A (en) * | 1997-08-25 | 2000-07-25 | Hewlett-Packard Company | Method and apparatus for automatically installing operating systems machines |
-
1997
- 1997-09-09 US US08/925,703 patent/US6934956B1/en not_active Expired - Lifetime
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5748980A (en) * | 1994-05-27 | 1998-05-05 | Microsoft Corporation | System for configuring a computer system |
US5613125A (en) * | 1994-06-17 | 1997-03-18 | Motorola, Inc. | Method and system for selectively defining hardware parameters in an executable operating system program |
US5717930A (en) * | 1994-09-19 | 1998-02-10 | Seiko Epson Corporation | Installation system |
US5640562A (en) * | 1995-02-27 | 1997-06-17 | Sun Microsystems, Inc. | Layering hardware support code on top of an existing operating system |
US5794052A (en) * | 1995-02-27 | 1998-08-11 | Ast Research, Inc. | Method of software installation and setup |
US5713009A (en) * | 1995-09-08 | 1998-01-27 | Digital Equipment Corporation | Method and apparatus for configuring a computer system |
US5794032A (en) * | 1996-04-15 | 1998-08-11 | Micron Electronics, Inc. | System for the identification and configuration of computer hardware peripherals |
US6094531A (en) * | 1997-08-25 | 2000-07-25 | Hewlett-Packard Company | Method and apparatus for automatically installing operating systems machines |
Non-Patent Citations (1)
Title |
---|
Microsoft News Letter: Microsoft Releases Windows 95 Service Pack, Feb. 14, 1996. * |
Cited By (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040025006A1 (en) * | 1999-09-02 | 2004-02-05 | Babka James Joseph | Status display for parallel activities |
US7334055B2 (en) * | 1999-09-02 | 2008-02-19 | International Business Machines Corporation | Status display for parallel activities |
US20040177361A1 (en) * | 2002-11-25 | 2004-09-09 | Sven Bernhard | Generic application program interface for native drivers |
US7739693B2 (en) * | 2002-11-25 | 2010-06-15 | Sap Ag | Generic application program interface for native drivers |
US7254811B2 (en) * | 2003-04-17 | 2007-08-07 | Ntt Docomo, Inc. | Update system and method for updating a scanning subsystem in a mobile communication framework |
US20040210891A1 (en) * | 2003-04-17 | 2004-10-21 | Ntt Docomo, Inc. | Update system and method for updating a scanning subsystem in a mobile communication framework |
US20050096133A1 (en) * | 2003-11-04 | 2005-05-05 | Hoefelmeyer Ralph S. | Systems and methods for providing self-compiling, peer-to-peer on-line gaming |
US8589517B2 (en) * | 2003-11-04 | 2013-11-19 | Verizon Business Global Llc | Systems and methods for providing self-compiling, peer-to-peer on-line gaming |
US7694295B2 (en) * | 2003-12-16 | 2010-04-06 | Hewlett-Packard Development Company, L.P. | Displaying a vendor provided information screen in response to a log-in experience |
US20050132355A1 (en) * | 2003-12-16 | 2005-06-16 | Rob Greenberg | Displaying a vendor provided information screen in response to a log-in experience |
US20050235281A1 (en) * | 2004-04-19 | 2005-10-20 | Telefonaktiebolaget L M Ericsson (Publ) | Combined software installation package |
US20060150167A1 (en) * | 2004-12-21 | 2006-07-06 | Ziegler Jeremy R | System and method for integrating non-native storage devices in an information handling system image |
US20060277340A1 (en) * | 2005-06-03 | 2006-12-07 | Mar David B | System and method for providing layered profiles |
US20070050750A1 (en) * | 2005-08-31 | 2007-03-01 | Microsoft Corporation | Extensible data-driven setup application for operating system |
US20070061818A1 (en) * | 2005-09-12 | 2007-03-15 | Microsoft Corporation | Detection of devices during operating system setup |
US20070097964A1 (en) * | 2005-11-01 | 2007-05-03 | Shinichi Kashimoto | Communication device and communication system |
US8417796B2 (en) | 2006-01-17 | 2013-04-09 | Leostream Corporation | System and method for transferring a computing environment between computers of dissimilar configurations |
US20070168478A1 (en) * | 2006-01-17 | 2007-07-19 | Crosbie David B | System and method for transferring a computing environment between computers of dissimilar configurations |
US8464238B1 (en) * | 2006-01-31 | 2013-06-11 | Qlogic, Corporation | Method and system for managing storage area networks |
US20070234345A1 (en) * | 2006-02-22 | 2007-10-04 | Microsoft Corporation | Integrated multi-server installation |
US20070234346A1 (en) * | 2006-02-22 | 2007-10-04 | Microsoft Corporation | Integrated computer server imaging |
US7596615B2 (en) | 2006-02-22 | 2009-09-29 | Microsoft Corporation | Multi-server automated redundant service configuration |
US20070198664A1 (en) * | 2006-02-22 | 2007-08-23 | Microsoft Corporation | Multi-server automated redundant service configuration |
US7853945B2 (en) | 2006-02-22 | 2010-12-14 | Michael Kramer | Integrated computer server imaging |
US20080127167A1 (en) * | 2006-08-15 | 2008-05-29 | Elliott Ian A | Package compatibility |
US8171469B2 (en) * | 2006-08-15 | 2012-05-01 | Hewlett-Packard Development Company, L.P. | Package compatibility |
US20080059782A1 (en) * | 2006-08-31 | 2008-03-06 | Mike Kruse | Methods and systems to dynamically configure computing apparatuses |
US7802082B2 (en) * | 2006-08-31 | 2010-09-21 | Intel Corporation | Methods and systems to dynamically configure computing apparatuses |
US9058230B1 (en) * | 2008-05-27 | 2015-06-16 | Symantec Operating Corporation | Online expert system guided application installation |
CN102053846A (en) * | 2009-11-03 | 2011-05-11 | 技嘉科技股份有限公司 | Operating system and operating method |
US20190278584A1 (en) * | 2011-11-17 | 2019-09-12 | Samsung Electronics Co., Ltd. | Method and apparatus for auto installing application into different terminals |
US11301234B2 (en) | 2011-11-17 | 2022-04-12 | Samsung Electronics Co., Ltd. | Method and apparatus for auto installing application into different terminals |
US10579365B2 (en) * | 2011-11-17 | 2020-03-03 | Samsung Electronics Co., Ltd. | Method and apparatus for auto installing application into different terminals |
US10481892B2 (en) | 2012-04-04 | 2019-11-19 | Harman Becker Automotive Systems Gmbh | Multiple domain embedded system |
CN103365684B (en) * | 2012-04-04 | 2017-04-12 | 哈曼贝克自动系统股份有限公司 | Updating method and multi-domain embedded system |
CN103365684A (en) * | 2012-04-04 | 2013-10-23 | 哈曼贝克自动系统股份有限公司 | Updating method and multi-domain embedded system |
EP2648092A1 (en) * | 2012-04-04 | 2013-10-09 | Harman Becker Automotive Systems GmbH | Updating method and multi-domain embedded system |
US10031736B2 (en) * | 2015-09-29 | 2018-07-24 | Quanta Computer Inc. | Automatic system software installation on boot |
US10459734B1 (en) * | 2016-03-28 | 2019-10-29 | EMC IP Holding Company LLC | Registry management system and method |
US11446484B2 (en) | 2019-04-05 | 2022-09-20 | Wise Srl | Device for electrotherapy and/or electrophysiology, kit and assembly |
CN113064607A (en) * | 2021-06-02 | 2021-07-02 | 统信软件技术有限公司 | Installation method of operating system, computing equipment and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6934956B1 (en) | Method and apparatus for installing an operating system | |
US6725178B2 (en) | Use of hidden partitions in a storage device for storing BIOS extension files | |
US7334227B2 (en) | Device driver installing method | |
US7308511B2 (en) | System for allocating resources in a computer system | |
US5748980A (en) | System for configuring a computer system | |
US6944867B2 (en) | Method for providing a single preloaded software image with an ability to support multiple hardware configurations and multiple types of computer systems | |
US5701477A (en) | Method and apparatus for master boot record shadowing | |
US6804774B1 (en) | Software image transition aid comprising building a disk image based on identified hardware | |
US5854905A (en) | Extensible bios for boot support of devices on multiple hierarchical buses | |
US5768568A (en) | System and method for initializing an information processing system | |
AU773635B2 (en) | Method, system and computer readable storage medium for automatic device driver configuration | |
US7017039B2 (en) | Method of booting a computer operating system to run from a normally unsupported system device | |
US5958049A (en) | Operating system debugger using kernel and dynamic extension with debugger drivers to support different output devices | |
US20040230963A1 (en) | Method for updating firmware in an operating system agnostic manner | |
US7873960B2 (en) | Generic packaging tool for packaging application and component therefor to be installed on computing device | |
US20040267708A1 (en) | Device information collection and error detection in a pre-boot environment of a computer system | |
US20050246478A1 (en) | Information processing apparatus and a method and a program of loading a device driver | |
US8539214B1 (en) | Execution of a program module within both a PEI phase and a DXE phase of an EFI firmware | |
KR20000009369A (en) | Computer system capable of installation of pc card and booting method thereof | |
US7886095B2 (en) | I/O space request suppressing method for PCI device | |
JP2004070953A (en) | Method for supporting multiple operating systems | |
US7103767B2 (en) | Method and apparatus to support legacy master boot record (MBR) partitions | |
US5909593A (en) | System for assigning snoop levels to snooper modules and selectively invoking snooper modules having specified relation to a selected snoop level for hardware detection | |
US7240187B2 (en) | Method and apparatus to support legacy master boot record (MBR) partitions | |
CN111273946A (en) | Method and system for automatic device driver configuration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICRON ELECTRONICS, INC., IDAHO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LE ALLEN, DUANE;REEL/FRAME:009080/0067 Effective date: 19980325 |
|
AS | Assignment |
Owner name: MEI CALIFORNIA, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICRON ELECTRONICS, INC.;REEL/FRAME:011658/0956 Effective date: 20010322 |
|
AS | Assignment |
Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MEI CALIFORNIA, INC.;REEL/FRAME:012391/0370 Effective date: 20010322 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
AS | Assignment |
Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT, CALIFORNIA Free format text: SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038669/0001 Effective date: 20160426 Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGEN Free format text: SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038669/0001 Effective date: 20160426 |
|
AS | Assignment |
Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT, MARYLAND Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038954/0001 Effective date: 20160426 Owner name: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:038954/0001 Effective date: 20160426 |
|
FPAY | Fee payment |
Year of fee payment: 12 |
|
AS | Assignment |
Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT, CALIFORNIA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:043079/0001 Effective date: 20160426 Owner name: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGEN Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REPLACE ERRONEOUSLY FILED PATENT #7358718 WITH THE CORRECT PATENT #7358178 PREVIOUSLY RECORDED ON REEL 038669 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST;ASSIGNOR:MICRON TECHNOLOGY, INC.;REEL/FRAME:043079/0001 Effective date: 20160426 |
|
AS | Assignment |
Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, ILLINOIS Free format text: SECURITY INTEREST;ASSIGNORS:MICRON TECHNOLOGY, INC.;MICRON SEMICONDUCTOR PRODUCTS, INC.;REEL/FRAME:047540/0001 Effective date: 20180703 Owner name: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT, IL Free format text: SECURITY INTEREST;ASSIGNORS:MICRON TECHNOLOGY, INC.;MICRON SEMICONDUCTOR PRODUCTS, INC.;REEL/FRAME:047540/0001 Effective date: 20180703 |
|
AS | Assignment |
Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT;REEL/FRAME:047243/0001 Effective date: 20180629 |
|
AS | Assignment |
Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT;REEL/FRAME:050937/0001 Effective date: 20190731 |
|
AS | Assignment |
Owner name: MICRON TECHNOLOGY, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:051028/0001 Effective date: 20190731 Owner name: MICRON SEMICONDUCTOR PRODUCTS, INC., IDAHO Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT;REEL/FRAME:051028/0001 Effective date: 20190731 |