bootstrap process, such as a USB flash drive, or other bootable media such as a floppy disk, CD or DVD. However, the firmware in many modern computers can be configured to locate a server and begin the bootup process automatically, without the need to insert bootable media. For network auto-booting, the Preboot Execution Environment (PXE) or Bootstrap Protocol (BOOTP) network protocols are commonly used to find a server with files for booting the device. Standard full-size desktop PCs are able to be network-booted in this manner with an add-on network card that includes a UNDI boot ROM. Diskless network booting is commonly a built-in feature of desktop and laptop PCs intended for business use, since it can be used on an otherwise disk-booted standard desktop computer to remotely run diagnostics, to install software, or to apply a disk image to the local hard drive. After the bootstrapping process has been initiated, as described above, bootstrapping will take place according to one of three main approaches. In the first approach (used, for example, by the Linux Terminal Server Project), the kernel is loaded into memory and then the rest of the operating system is accessed via a network filesystem connection to the server. (A small RAM disk may be created to store temporary files locally.) This approach is sometimes called the "NFS root" technique when used with Linux or Unix client operating systems. In the second approach, the kernel of the OS is loaded, and part of the system's memory is configured as a large RAM disk, and then the remainder of the OS image is fetched and loaded into the RAM disk. This is the implementation that Microsoft has chosen for its Windows XP Embedded remote boot feature. In the third approach, disk operations are virtualized and are actually translated into a network protocol. The data that is usually stored in a disk drive are then stored in virtual disks files homed on a server. The disk operations such as requests to read/write disk sectors are translated into corresponding network requests and processed by a service or daemon running on the server side. This is the implementation that is used by Neoware Image Manager, Ardence, VHD Central Management System and various "boot over iSCSI" products. This third approach differs from the first approach because what is remote is not a file system but actually a disk device (or raw device)