The BIOS must then know how to communicate with that type of device, which is inserted somewhere in that search path for a valid boot device. If none of these exist, the boot will typically fail and the system will be halted after the printing an error. Some devices connected to the standard PC may create exceptions to the above process. This technique is used by SCSI cards to allow booting a system from a SCSI disk, and by a few ethernet cards to allow booting a diskless workstation from a remote disk. There are other ways of accomplishing these same goals.
Different platforms use different techniques.
In addition to some other basic hardware configuration and verification that can be done at the boot console level, the user can issue a command to set the boot device to whatever device is desired. This allows greater flexibility, but makes the booting component of the system architecture larger and more complex. Of course, the bootstrapping performed by the hardware system and ROM is not a choice available in operating system design or implementation, except when the operating system designer has control over the lower level system design as well. This discussion is only included as an introduction so that the reader will be familiar with the way the operating system code itself is reached. Once a boot device is chosen, the BIOS will read the beginning of the disk, which is set aside explicitly for this purpose, and will jump to that code to start up the operating system.