US20040049560A1 - Method and apparatus for configuring a computer system to operate with perhiperal devices - Google Patents

Method and apparatus for configuring a computer system to operate with perhiperal devices Download PDF

Info

Publication number
US20040049560A1
US20040049560A1 US10/237,942 US23794202A US2004049560A1 US 20040049560 A1 US20040049560 A1 US 20040049560A1 US 23794202 A US23794202 A US 23794202A US 2004049560 A1 US2004049560 A1 US 2004049560A1
Authority
US
United States
Prior art keywords
driver
path
data structure
instance
computer
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.)
Abandoned
Application number
US10/237,942
Inventor
Shudong Zhou
John Danielson
Jerry Gilliam
Christopher Horne
Jan Setje-Eilers
Vikram Hegde
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Priority to US10/237,942 priority Critical patent/US20040049560A1/en
Assigned to SUN MICROSYSTEMS, INC. reassignment SUN MICROSYSTEMS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SETJE-EILERS, JAN, HORNE, CHRISTOPHER T., DANIELSON, JOHN H., GILLIAM, JERRY A., ZHOU, SHUDONG
Publication of US20040049560A1 publication Critical patent/US20040049560A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Definitions

  • the present invention relates to the process of configuring a computer system to operate with peripheral devices. More specifically, the present invention relates to a method and an apparatus for using file system operations to drive the process of configuring a computer system to operate with peripheral devices.
  • peripheral devices coupled to a computer network.
  • These peripheral devices may reside at different physical locations. For example, some of them may be located within the same room as the computer system, while other devices are located at different geographical locations.
  • the computer system in order to access these peripheral devices, the computer system must first be configured to operate with each different type of peripheral device.
  • One embodiment of the present invention provides a system that uses a file system operation to drive the process of configuring a computer system to operate with a device.
  • the system receives an access request for the device. If a driver for the device has not been previously loaded, the system loads the driver for the device. Next, the system creates an instance of the driver for the device and attaches the instance so that the computer system is able to access the device. Finally, the system accesses the device to satisfy the request.
  • the access request specifies a path for the device, wherein the path includes one or more path components.
  • the system Before loading the driver, the system first parses the path to identify the driver for the device as well as an address for the device from a path component. The system uses this address to identify the device prior to creating the instance of the driver for the device.
  • the system generates a data structure for the device and returns a reference to the data structure.
  • the system repeats the steps of parsing the path, loading the driver, identifying the device, creating the instance of the driver, attaching the instance, and creating the data structure for each component of the path.
  • the path includes multiple path components.
  • the device is coupled to a local computer system.
  • the device is coupled to a network accessible by a local computer system.
  • the network includes the Internet.
  • the device is coupled to a switched fabric.
  • the system deletes the data structure when the data structure is no longer needed.
  • FIG. 1 illustrates a computer system in accordance with an embodiment of the present invention.
  • FIG. 2 illustrates components of a system associated with peripheral devices in accordance with an embodiment of the present invention.
  • FIG. 3 illustrates devices coupled together in accordance with an embodiment of the present invention.
  • FIG. 4 illustrates the structure of device driver configuration information in accordance with an embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating loading and configuring device drivers in accordance with an embodiment of the present invention.
  • a computer readable storage medium which may be any device or medium that can store code and/or data for use by a computer system.
  • the transmission medium may include a communications network, such as the Internet.
  • FIG. 1 illustrates a computer system 102 in accordance with an embodiment of the present invention.
  • Computer system 102 can generally include any type of computer system, including, but not limited to, a computer system based on a microprocessor, a mainframe computer, a digital signal processor, a portable computing device, a personal organizer, a device controller, and a computational engine within an appliance.
  • Computer system 102 includes computer 102 , keyboard 106 , mouse 108 , and disk storage 104 .
  • Computer 102 is additionally coupled to desktop computer 112 , disk 114 , tape 116 , and peripheral device 118 through network 110 .
  • Keyboard 106 and mouse 108 are data entry devices that are coupled to computer 102 .
  • Disk storage 104 provides persistent storage for computer 102 .
  • Network 110 can generally include any type of wire or wireless communication channel capable of coupling together computing nodes. This includes, but is not limited to, a local area network, a wide area network, or a combination of networks. In one embodiment of the present invention, network 110 includes the Internet. In another embodiment of the present invention, network 110 includes a switched fabric.
  • Desktop computer 112 can be coupled to computer 102 across network 110 and can serve as a data entry or a data display device.
  • Disk 114 and tape 116 provide persistent storage for computer 102 . Note that disk 114 and/or tape 116 can represent zero or more of these peripheral devices.
  • Peripheral device 118 represents other peripheral devices that can be coupled to computer 102 across network 110 . These other peripheral devices include scanners, plotters, and the like. Note that peripheral device 118 also represents zero or more of these peripheral devices.
  • FIG. 2 illustrates data structures associated with peripheral devices in accordance with an embodiment of the present invention.
  • the system illustrated in FIG. 2 is separated into user area 214 and kernel area 216 .
  • User area 214 includes applications 208 , device name translator 210 , device commands 212 , and portions of user file system 202 , device module 204 , and system calls 206 .
  • Kernel area 216 include the remaining portions of user file system 202 , device module 204 , and system calls 206 as well as data structure tree 226 , device drivers 218 , network interface 222 , network 110 , and hardware devices 220 and 224 .
  • Applications 208 include computer programs executing on computer 102 and needing access to peripheral devices. During operation, applications 208 issue commands such as read, write, open, and close to the peripheral devices to control the operation of these devices.
  • applications 208 address the peripheral devices using device paths such as “/devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:a.”
  • This device path addresses a disk coupled to computer 102 .
  • Device name translator 210 translates this device path into the required information for device module 204 to locate the device and to couple the proper driver to device module 204 and to access the device.
  • Device commands 212 are direct commands issued by applications 208 , which communicate with device drivers 218 to control the devices.
  • Device commands 212 include commands known as input/output control (ioctl) commands.
  • Device drivers 218 provide software links between device module 204 and the various hardware devices, such as hardware devices 220 and 224 . During operation, if a device driver has not been loaded for a particular hardware device, device module 204 dynamically loads the device driver for the device. Device module 204 can also remove the device driver for any devices that are no longer required by applications 208 or that have become unavailable to applications 208 .
  • Data structure tree 226 organizes the data structures related to device drivers 218 and provides the necessary data to access these devices. Data structure tree 226 is maintained as described below.
  • Hardware devices 220 includes peripheral devices that are directly coupled to computer 102 while hardware devices 224 include peripheral devices that are accessible across network 110 .
  • the location of a hardware device is transparent to applications 208 .
  • Device drivers 218 are responsible for locating and communicating with a hardware device whether it is located within hardware devices 220 or hardware devices 224 .
  • Network interface 222 couples network 110 to device drivers 218 .
  • FIG. 3 illustrates devices coupled together in accordance with an embodiment of the present invention.
  • central processing unit (CPU) 302 is coupled to memory 304 and bus bridge 306 by processor bus 321 .
  • processor bus 321 Note that other devices can be coupled to processor bus 321 .
  • Bus bridge 306 couples processor bus 321 to peripheral component interconnect (PCI) bus 320 .
  • PCI bus 320 couples bus bridges 308 and 310 to bus bridge 306 .
  • PCI bus 320 can also couple to peripheral devices and to additional bus bridges for coupling to other bus structures such as an IDE bus.
  • Bus bridge 308 couples PCI bus 320 to SCSI bus 322
  • bus bridge 310 couples PCI bus 320 to USB 324
  • Individual peripheral devices such as disk 312 , tape 314 , keyboard 316 , and mouse 318 are coupled to the system through these various buses. Note that these peripherals are representative of the peripherals that can be coupled to the system. There can be more types of peripherals and more of each type than shown. The peripherals can also be coupled to the system across a network.
  • FIG. 4 illustrates device driver configuration in accordance with an embodiment of the present invention.
  • This device driver configuration is stored in data structure tree 226 and is referenced by device module 204 when adding and deleting drivers for specific hardware devices.
  • Data structure tree 226 has its root at root nexus 402 . As new devices are added, the tree is built to reflect the hierarchical architecture of the various drivers, buses, and adaptors.
  • PCI bus nexus 404 is coupled to root nexus 402 .
  • PCI bus nexus 404 can couple to multiple PCI buses such as PCI buses 406 and 408 . Each PCI bus can, in turn, be coupled to peripherals or to other buses.
  • PCI bus 408 is coupled to network adaptor 410 and IDE bus nexus 412 .
  • Network adaptor 410 can couple devices located on network 110 to the system while IDE bus nexus 412 can couple IDE devices such as disk instance 414 to the system.
  • the structure of data structure tree 226 is dynamic and changes as peripherals are needed by the system or as the peripherals are no longer needed or available to the system.
  • the present invention is not meant to be limited to a tree structure as is illustrated in FIG. 4. In general, the present invention can be applied to any topology for interconnecting system components.
  • FIG. 5 is a flowchart illustrating loading and configuring device drivers in accordance with an embodiment of the present invention.
  • the system starts when an access request is received to access a device (step 502 ).
  • This request includes a path for the device.
  • an IDE disk drive in the form of: “/devices/pci@1f,0/pci1,1/ide@3/dad@0,0:a.”
  • the system parses the path to identify a driver and address for a path component (step 504 ).
  • a component of the path for example “pci@1f,0”, includes a driver name and an address.
  • the driver name is “pci”
  • the address is “1f0” indicating that the device can be found coupled to a PCI bus with an address of 1f,0.
  • the system determines whether the driver has been previously loaded (step 506 ). If not, the system loads the driver before proceeding (step 508 ). Once the driver is available, the system identifies the device using the address (step 510 ). Next, the system creates an instance of the driver for the device (step 512 ) and attaches the instance (step 514 ). The system then creates a data structure entry for the device (step 516 ).
  • the system determines if the last path component has been parsed (step 518 ). If not, the process returns to step 504 to continue parsing the path and installing drivers until the last path component has been parsed. Finally, after the last path component has been parsed, the system returns a reference for the final data structure to the application (step 520 ). At this point, the path for the device is complete and application is able to access the device.

Abstract

One embodiment of the present invention provides a system that uses a file system operation to drive the process of configuring a computer system to operate with a device. During operation, the system receives an access request for the device. If a driver for the device has not been previously loaded, the system loads the driver for the device. Next, the system creates an instance of the driver for the device and attaches the instance so that the computer system is able to access the device. Finally, the system accesses the device to satisfy the request. In a variation of this embodiment, the access request specifies a path for the device, wherein the path includes one or more path components. Before loading the driver, the system first parses the path to identify the driver for the device as well as an address for the device from a path component. The system uses this address to identify the device prior to creating the instance of the driver for the device.

Description

    BACKGROUND
  • 1. Field of the Invention [0001]
  • The present invention relates to the process of configuring a computer system to operate with peripheral devices. More specifically, the present invention relates to a method and an apparatus for using file system operations to drive the process of configuring a computer system to operate with peripheral devices. [0002]
  • 2. Related Art [0003]
  • Advances in computer networking technology presently make it possible for a computer system to access numerous peripheral devices coupled to a computer network. These peripheral devices may reside at different physical locations. For example, some of them may be located within the same room as the computer system, while other devices are located at different geographical locations. However, in order to access these peripheral devices, the computer system must first be configured to operate with each different type of peripheral device. [0004]
  • In existing systems, the process of configuring a computer system to operate with different peripheral devices takes place during system boot time. During system boot time, the computer system first discovers all of the available peripheral devices, and then loads device drivers for the devices. The system also creates an instance of the driver for each device. If a new device is subsequently added to the computer system after boot time, the computer system is typically rebooted to load the appropriate driver and to create an instance of the driver for the device. [0005]
  • While this method of configuration is effective for stand-alone computer systems with dedicated peripheral devices, it is less effective for distributed computing systems that can access many different types of networked peripheral devices. Note that the availability of these networked devices can change from time to time as available portions of the network change and when peripherals are added to or removed from the network. Hence, the process of discovering all of the devices on the network can consume an inordinate amount of time, thereby causing the computer system to be slow to boot. Also, the process of reconfiguring the computer system to reflect the ever-changing status of the network is a difficult task. Moreover, maintaining the data structures required to access devices that have been removed from the network, or that may not be required for a particular system, can waste resources that can be used for other purposes. For example, a system that has one thousand disks on the network maintains the configuration for all of these disks although only a few may actually be used by the system. [0006]
  • What is needed is a method and an apparatus that allows peripheral devices to be configured without the problems described above. [0007]
  • SUMMARY
  • One embodiment of the present invention provides a system that uses a file system operation to drive the process of configuring a computer system to operate with a device. During operation, the system receives an access request for the device. If a driver for the device has not been previously loaded, the system loads the driver for the device. Next, the system creates an instance of the driver for the device and attaches the instance so that the computer system is able to access the device. Finally, the system accesses the device to satisfy the request. [0008]
  • In a variation of this embodiment, the access request specifies a path for the device, wherein the path includes one or more path components. Before loading the driver, the system first parses the path to identify the driver for the device as well as an address for the device from a path component. The system uses this address to identify the device prior to creating the instance of the driver for the device. [0009]
  • In a further variation, the system generates a data structure for the device and returns a reference to the data structure. [0010]
  • In a further variation, the system repeats the steps of parsing the path, loading the driver, identifying the device, creating the instance of the driver, attaching the instance, and creating the data structure for each component of the path. [0011]
  • In a further variation, the path includes multiple path components. [0012]
  • In a further variation, the device is coupled to a local computer system. [0013]
  • In a further variation, the device is coupled to a network accessible by a local computer system. [0014]
  • In a further variation, the network includes the Internet. [0015]
  • In a further variation, the device is coupled to a switched fabric. [0016]
  • In a further variation, the system deletes the data structure when the data structure is no longer needed.[0017]
  • BRIEF DESCRIPTION OF THE FIGURES
  • FIG. 1 illustrates a computer system in accordance with an embodiment of the present invention. [0018]
  • FIG. 2 illustrates components of a system associated with peripheral devices in accordance with an embodiment of the present invention. [0019]
  • FIG. 3 illustrates devices coupled together in accordance with an embodiment of the present invention. [0020]
  • FIG. 4 illustrates the structure of device driver configuration information in accordance with an embodiment of the present invention. [0021]
  • FIG. 5 is a flowchart illustrating loading and configuring device drivers in accordance with an embodiment of the present invention.[0022]
  • DETAILED DESCRIPTION
  • The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein. [0023]
  • The data structures and code described in this detailed description are typically stored on a computer readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. This includes, but is not limited to, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs) and DVDs (digital versatile discs or digital video discs), and computer instruction signals embodied in a transmission medium (with or without a carrier wave upon which the signals are modulated). For example, the transmission medium may include a communications network, such as the Internet. [0024]
  • Computer System [0025]
  • FIG. 1 illustrates a [0026] computer system 102 in accordance with an embodiment of the present invention. Computer system 102 can generally include any type of computer system, including, but not limited to, a computer system based on a microprocessor, a mainframe computer, a digital signal processor, a portable computing device, a personal organizer, a device controller, and a computational engine within an appliance. Computer system 102 includes computer 102, keyboard 106, mouse 108, and disk storage 104. Computer 102 is additionally coupled to desktop computer 112, disk 114, tape 116, and peripheral device 118 through network 110.
  • [0027] Keyboard 106 and mouse 108 are data entry devices that are coupled to computer 102. Disk storage 104 provides persistent storage for computer 102.
  • [0028] Network 110 can generally include any type of wire or wireless communication channel capable of coupling together computing nodes. This includes, but is not limited to, a local area network, a wide area network, or a combination of networks. In one embodiment of the present invention, network 110 includes the Internet. In another embodiment of the present invention, network 110 includes a switched fabric.
  • [0029] Desktop computer 112 can be coupled to computer 102 across network 110 and can serve as a data entry or a data display device. Disk 114 and tape 116 provide persistent storage for computer 102. Note that disk 114 and/or tape 116 can represent zero or more of these peripheral devices.
  • [0030] Peripheral device 118 represents other peripheral devices that can be coupled to computer 102 across network 110. These other peripheral devices include scanners, plotters, and the like. Note that peripheral device 118 also represents zero or more of these peripheral devices.
  • Coupling to Hardware Devices [0031]
  • FIG. 2 illustrates data structures associated with peripheral devices in accordance with an embodiment of the present invention. The system illustrated in FIG. 2 is separated into user area [0032] 214 and kernel area 216. User area 214 includes applications 208, device name translator 210, device commands 212, and portions of user file system 202, device module 204, and system calls 206.
  • [0033] Kernel area 216 include the remaining portions of user file system 202, device module 204, and system calls 206 as well as data structure tree 226, device drivers 218, network interface 222, network 110, and hardware devices 220 and 224.
  • [0034] Applications 208 include computer programs executing on computer 102 and needing access to peripheral devices. During operation, applications 208 issue commands such as read, write, open, and close to the peripheral devices to control the operation of these devices.
  • For example, [0035] applications 208 address the peripheral devices using device paths such as “/devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:a.” This device path addresses a disk coupled to computer 102. Device name translator 210 translates this device path into the required information for device module 204 to locate the device and to couple the proper driver to device module 204 and to access the device.
  • Device commands [0036] 212 are direct commands issued by applications 208, which communicate with device drivers 218 to control the devices. Device commands 212 include commands known as input/output control (ioctl) commands.
  • [0037] Device drivers 218 provide software links between device module 204 and the various hardware devices, such as hardware devices 220 and 224. During operation, if a device driver has not been loaded for a particular hardware device, device module 204 dynamically loads the device driver for the device. Device module 204 can also remove the device driver for any devices that are no longer required by applications 208 or that have become unavailable to applications 208.
  • [0038] Data structure tree 226 organizes the data structures related to device drivers 218 and provides the necessary data to access these devices. Data structure tree 226 is maintained as described below.
  • [0039] Hardware devices 220 includes peripheral devices that are directly coupled to computer 102 while hardware devices 224 include peripheral devices that are accessible across network 110. The location of a hardware device is transparent to applications 208. Device drivers 218 are responsible for locating and communicating with a hardware device whether it is located within hardware devices 220 or hardware devices 224. Network interface 222 couples network 110 to device drivers 218.
  • Device Coupling [0040]
  • FIG. 3 illustrates devices coupled together in accordance with an embodiment of the present invention. As illustrated in FIG. 3, central processing unit (CPU) [0041] 302 is coupled to memory 304 and bus bridge 306 by processor bus 321. Note that other devices can be coupled to processor bus 321.
  • Bus bridge [0042] 306 couples processor bus 321 to peripheral component interconnect (PCI) bus 320. PCI bus 320 couples bus bridges 308 and 310 to bus bridge 306. PCI bus 320 can also couple to peripheral devices and to additional bus bridges for coupling to other bus structures such as an IDE bus.
  • Bus bridge [0043] 308 couples PCI bus 320 to SCSI bus 322, while bus bridge 310 couples PCI bus 320 to USB 324. Individual peripheral devices such as disk 312, tape 314, keyboard 316, and mouse 318 are coupled to the system through these various buses. Note that these peripherals are representative of the peripherals that can be coupled to the system. There can be more types of peripherals and more of each type than shown. The peripherals can also be coupled to the system across a network.
  • Device Driver Configuration [0044]
  • FIG. 4 illustrates device driver configuration in accordance with an embodiment of the present invention. This device driver configuration is stored in [0045] data structure tree 226 and is referenced by device module 204 when adding and deleting drivers for specific hardware devices. Data structure tree 226 has its root at root nexus 402. As new devices are added, the tree is built to reflect the hierarchical architecture of the various drivers, buses, and adaptors.
  • As shown in FIG. 4, PCI bus nexus [0046] 404 is coupled to root nexus 402. PCI bus nexus 404 can couple to multiple PCI buses such as PCI buses 406 and 408. Each PCI bus can, in turn, be coupled to peripherals or to other buses. In FIG. 4, PCI bus 408 is coupled to network adaptor 410 and IDE bus nexus 412. Network adaptor 410 can couple devices located on network 110 to the system while IDE bus nexus 412 can couple IDE devices such as disk instance 414 to the system. Note that the structure of data structure tree 226 is dynamic and changes as peripherals are needed by the system or as the peripherals are no longer needed or available to the system.
  • Also note that the present invention is not meant to be limited to a tree structure as is illustrated in FIG. 4. In general, the present invention can be applied to any topology for interconnecting system components. [0047]
  • Loading and Configuring Device Drivers [0048]
  • FIG. 5 is a flowchart illustrating loading and configuring device drivers in accordance with an embodiment of the present invention. Unlike in conventional systems that load and configure device drivers at system initialization time, the system starts when an access request is received to access a device (step [0049] 502). This request includes a path for the device. For example, an IDE disk drive, in the form of: “/devices/pci@1f,0/pci1,1/ide@3/dad@0,0:a.”
  • Next, the system parses the path to identify a driver and address for a path component (step [0050] 504). A component of the path, for example “pci@1f,0”, includes a driver name and an address. In the example, the driver name is “pci” and the address is “1f0” indicating that the device can be found coupled to a PCI bus with an address of 1f,0.
  • The system then determines whether the driver has been previously loaded (step [0051] 506). If not, the system loads the driver before proceeding (step 508). Once the driver is available, the system identifies the device using the address (step 510). Next, the system creates an instance of the driver for the device (step 512) and attaches the instance (step 514). The system then creates a data structure entry for the device (step 516).
  • After the data structure for the device has been created, the system determines if the last path component has been parsed (step [0052] 518). If not, the process returns to step 504 to continue parsing the path and installing drivers until the last path component has been parsed. Finally, after the last path component has been parsed, the system returns a reference for the final data structure to the application (step 520). At this point, the path for the device is complete and application is able to access the device.
  • Note that the process of configuring device drivers in this way speeds up the system initialization process because device drivers do not have to be configured during system initialization. However, waiting until a device is accessed by the application to configure the device driver requires extra time when the device is first accessed by the application. [0053]
  • The foregoing descriptions of embodiments of the present invention have been presented for purposes of illustration and description only. They are not intended to be exhaustive or to limit the present invention to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present invention. The scope of the present invention is defined by the appended claims. [0054]

Claims (30)

What is claimed is:
1. A method for configuring a computer system to operate with a device, comprising:
receiving an access request for the device;
if a driver for the device has not been previously loaded, loading the driver for the device;
creating an instance of the driver for the device;
attaching the instance so that the computer system is able to access the device; and
accessing the device to satisfy the request.
2. The method of claim 1,
wherein the access request specifies a path for the device, wherein the path including one or more path components;
wherein loading the driver involves first parsing the path to identify the driver and an address from a path component; and
wherein creating the instance of the driver for the device involves first identifying the device using the address.
3. The method of claim 2, further comprising:
generating a data structure for the device; and
returning a reference to the data structure.
4. The method of claim 3, further comprising repeating the steps of parsing the path, loading the driver, identifying the device, creating the instance of the driver, attaching the instance, and creating the data structure for each component of the path.
5. The method of claim 3, wherein the path includes multiple path components.
6. The method of claim 3, wherein the device is coupled to a local computer system.
7. The method of claim 3, wherein the device is coupled to a network accessible by a local computer system.
8. The method of claim 7, wherein the network includes the Internet.
9. The method of claim 3, wherein the device is coupled to a switched fabric.
10. The method of claim 3, further comprising deleting the data structure when the data structure is no longer needed.
11. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method to facilitate device configuration on-the-fly, the method comprising:
receiving an access request for the device;
if a driver for the device has not been previously loaded, loading the driver for the device;
creating an instance of the driver for the device;
attaching the instance so that the computer system is able to access the device; and
accessing the device to satisfy the request.
12. The computer-readable storage medium of claim 11,
wherein the access request specifies a path for the device, wherein the path including one or more path components;
wherein loading the driver involves first parsing the path to identify the driver and an address from a path component; and
wherein creating the instance of the driver for the device involves first identifying the device using the address.
13. The computer-readable storage medium of claim 12, the method further comprising:
generating a data structure for the device; and
returning a reference to the data structure.
14. The computer-readable storage medium of claim 13, the method further comprising repeating the steps of parsing the path, loading the driver, identifying the device, creating the instance of the driver, attaching the instance, and creating the data structure for each component of the path.
15. The computer-readable storage medium of claim 13, wherein the path includes multiple path components.
16. The computer-readable storage medium of claim 13, wherein the device is coupled to a local computer system.
17. The computer-readable storage medium of claim 13, wherein the device is coupled to a network accessible by a local computer system.
18. The computer-readable storage medium of claim 17, wherein the network includes the Internet.
19. The computer-readable storage medium of claim 13, wherein the device is coupled to a switched fabric.
20. The computer-readable storage medium of claim 13, the method further comprising deleting the data structure when the data structure is no longer needed.
21. An apparatus to facilitate device configuration on-the-fly, comprising:
a receiving mechanism that is configured to receive an access request for a device;
a loading mechanism that is configured to load a driver for the device;
a creating mechanism that is configured to create an instance of the driver for the device;
an attaching mechanism that is configured to attach the instance.
receiving an access request for the device so that the computer system is able to access the device; and
an accessing mechanism that is configured to access the device to satisfy the request.
22. The apparatus of claim 21,
wherein the access request specifies a path for the device, wherein the path including one or more path components; and
wherein the apparatus further comprises:
a parsing mechanism that is configured to parse the path to identify the driver and an address from a path component, and
an identifying mechanism that is configured to identify the device using the address.
23. The apparatus of claim 22, further comprising a data structure mechanism that is configured to:
generate a data structure for the device; and to
return a reference to the data structure.
24. The apparatus of claim 23, further comprising a repeating mechanism that is configured to repeat the steps of parsing the path, loading the driver, identifying the device, creating the instance of the driver, attaching the instance, and creating the data structure for each component of the path.
25. The apparatus of claim 23, wherein the path includes multiple path components.
26. The apparatus of claim 23, wherein the device is coupled to a local computer system.
27. The apparatus of claim 23, wherein the device is coupled to a network accessible by a local computer system.
28. The apparatus of claim 27, wherein the network includes the Internet.
29. The apparatus of claim 23, wherein the device is coupled to a switched fabric.
30. The apparatus of claim 23, further comprising a deleting mechanism that is configured to delete the data structure when the data structure is no longer needed.
US10/237,942 2002-09-09 2002-09-09 Method and apparatus for configuring a computer system to operate with perhiperal devices Abandoned US20040049560A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/237,942 US20040049560A1 (en) 2002-09-09 2002-09-09 Method and apparatus for configuring a computer system to operate with perhiperal devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/237,942 US20040049560A1 (en) 2002-09-09 2002-09-09 Method and apparatus for configuring a computer system to operate with perhiperal devices

Publications (1)

Publication Number Publication Date
US20040049560A1 true US20040049560A1 (en) 2004-03-11

Family

ID=31990872

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/237,942 Abandoned US20040049560A1 (en) 2002-09-09 2002-09-09 Method and apparatus for configuring a computer system to operate with perhiperal devices

Country Status (1)

Country Link
US (1) US20040049560A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060227366A1 (en) * 2005-03-29 2006-10-12 International Business Machines Corporation Method and apparatus for controlling radio frequency identification device apparatus in a printer
US20110004514A1 (en) * 2000-11-06 2011-01-06 Consumer And Merchant Awareness Foundation Pay yourself first with revenue generation
WO2013116073A1 (en) 2012-01-30 2013-08-08 Intel Corporation Method for reducing platform boot times by providing lazy input/output abstractions

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4750136A (en) * 1986-01-10 1988-06-07 American Telephone And Telegraph, At&T Information Systems Inc. Communication system having automatic circuit board initialization capability
US5580177A (en) * 1994-03-29 1996-12-03 Hewlett-Packard Company Printer/client network with centrally updated printer drivers and printer status monitoring
US5815731A (en) * 1996-10-31 1998-09-29 International Business Machines Corporation Method and system for providing device driver configurations on demand
US6008805A (en) * 1996-07-19 1999-12-28 Cisco Technology, Inc. Method and apparatus for providing multiple management interfaces to a network device
US6016466A (en) * 1996-08-27 2000-01-18 Compuware Corporation Accurate profile and timing information for multitasking systems
US6154836A (en) * 1998-08-17 2000-11-28 International Business Machines Corporation Method and system for configuring plug and play devices for a computer operating system
US20030014468A1 (en) * 1998-01-30 2003-01-16 E. U. Sudhakaran Object-oriented resource lock and entry register
US6671744B1 (en) * 1999-07-05 2003-12-30 Fujitsu Limited Access control method for drive units, and a drive unit using the method
US6789111B1 (en) * 1999-12-09 2004-09-07 Microsoft Corporation Automatic detection and installation of client peripheral devices by a server
US6792452B1 (en) * 1998-09-11 2004-09-14 L.V. Partners, L.P. Method for configuring a piece of equipment with the use of an associated machine resolvable code
US6814510B1 (en) * 2000-08-02 2004-11-09 Xerox Corporation Method and apparatus for automatic update of a printer driver configuration and status
US6842766B2 (en) * 1999-12-09 2005-01-11 Microsoft Corporation Client side caching of printer configuration
US6876652B1 (en) * 2000-05-20 2005-04-05 Ciena Corporation Network device with a distributed switch fabric timing system
US20060064596A1 (en) * 2000-05-09 2006-03-23 Microsoft Corporation Restricted software and hardware usage on a computer

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4750136A (en) * 1986-01-10 1988-06-07 American Telephone And Telegraph, At&T Information Systems Inc. Communication system having automatic circuit board initialization capability
US5580177A (en) * 1994-03-29 1996-12-03 Hewlett-Packard Company Printer/client network with centrally updated printer drivers and printer status monitoring
US6008805A (en) * 1996-07-19 1999-12-28 Cisco Technology, Inc. Method and apparatus for providing multiple management interfaces to a network device
US6016466A (en) * 1996-08-27 2000-01-18 Compuware Corporation Accurate profile and timing information for multitasking systems
US5815731A (en) * 1996-10-31 1998-09-29 International Business Machines Corporation Method and system for providing device driver configurations on demand
US20030014468A1 (en) * 1998-01-30 2003-01-16 E. U. Sudhakaran Object-oriented resource lock and entry register
US6154836A (en) * 1998-08-17 2000-11-28 International Business Machines Corporation Method and system for configuring plug and play devices for a computer operating system
US6792452B1 (en) * 1998-09-11 2004-09-14 L.V. Partners, L.P. Method for configuring a piece of equipment with the use of an associated machine resolvable code
US20050114468A1 (en) * 1998-09-11 2005-05-26 Philyaw Jeffry J. Method for configuring a piece of equipment with the use of an associated machine resolvable code
US6671744B1 (en) * 1999-07-05 2003-12-30 Fujitsu Limited Access control method for drive units, and a drive unit using the method
US6789111B1 (en) * 1999-12-09 2004-09-07 Microsoft Corporation Automatic detection and installation of client peripheral devices by a server
US6842766B2 (en) * 1999-12-09 2005-01-11 Microsoft Corporation Client side caching of printer configuration
US20060064596A1 (en) * 2000-05-09 2006-03-23 Microsoft Corporation Restricted software and hardware usage on a computer
US6876652B1 (en) * 2000-05-20 2005-04-05 Ciena Corporation Network device with a distributed switch fabric timing system
US6814510B1 (en) * 2000-08-02 2004-11-09 Xerox Corporation Method and apparatus for automatic update of a printer driver configuration and status

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110004514A1 (en) * 2000-11-06 2011-01-06 Consumer And Merchant Awareness Foundation Pay yourself first with revenue generation
US20060227366A1 (en) * 2005-03-29 2006-10-12 International Business Machines Corporation Method and apparatus for controlling radio frequency identification device apparatus in a printer
WO2013116073A1 (en) 2012-01-30 2013-08-08 Intel Corporation Method for reducing platform boot times by providing lazy input/output abstractions
EP2810158A4 (en) * 2012-01-30 2015-09-16 Intel Corp Method for reducing platform boot times by providing lazy input/output abstractions
US9262178B2 (en) 2012-01-30 2016-02-16 Intel Corporation Method for reducing platform boot times by providing lazy input/output abstractions

Similar Documents

Publication Publication Date Title
CN101650660B (en) Booting a computer system from central storage
US7203774B1 (en) Bus specific device enumeration system and method
US7992139B2 (en) Method, system and program product for transforming a single language program into multiple language programs
US6336152B1 (en) Method for automatically configuring devices including a network adapter without manual intervention and without prior configuration information
US7502865B2 (en) Addresses assignment for adaptor interfaces
KR100942894B1 (en) Software-aided storage device emulation in a physical storage device
US7979525B2 (en) Method and apparatus for configuring and modeling server information in an enterprise tooling environment
US6971090B1 (en) Common Information Model (CIM) translation to and from Windows Management Interface (WMI) in client server environment
CN103412769A (en) External card parameter configuration method, equipment and system
JP2007172586A (en) Method, apparatus and computer program for sharing computer data among computers
US7895376B2 (en) Hardware configuration information system, method, and computer program product
JP3327827B2 (en) Method and system for dynamically translating bus addresses in a computer system
US11182347B2 (en) File sharing among virtual containers with fast recovery and self-consistency
US7130929B2 (en) Method for configuring system adapters
JP2010134911A (en) Method, device, and program for administering blade server in blade center
US20040049560A1 (en) Method and apparatus for configuring a computer system to operate with perhiperal devices
US7493626B2 (en) Method and apparatus for communicating between device drivers in a computer system
US6401151B1 (en) Method for configuring bus architecture through software control
US6425029B1 (en) Apparatus for configuring bus architecture through software control
JPH09128277A (en) File management system for plural os-mounted system
US7299344B2 (en) Setup support system, physical access driver, and setup support method
US11675680B2 (en) Computing system initialization system
CN114726719B (en) Network element operating system deployment method and device, electronic equipment and storage medium
CN116243994B (en) Driving loading method of storage device, operating system starting method and system
US20050091433A1 (en) System and method for discovering I/O bus capabilities on a computer system via ACPI

Legal Events

Date Code Title Description
AS Assignment

Owner name: SUN MICROSYSTEMS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ZHOU, SHUDONG;DANIELSON, JOHN H.;GILLIAM, JERRY A.;AND OTHERS;REEL/FRAME:013281/0140;SIGNING DATES FROM 20020731 TO 20020812

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION