Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!helps!bigtex!james From: james@bigtex.cactus.org (James Van Artsdalen) Newsgroups: comp.unix.sysv386 Subject: Re: Why don't they use INT 13h throughout boot? Message-ID: <49608@bigtex.cactus.org> Date: 11 Nov 90 19:00:51 GMT References: <35811@cup.portal.com> Reply-To: james@bigtex.cactus.org (James Van Artsdalen) Organization: Institute of Applied Cosmology, Austin TX Lines: 32 In <35811@cup.portal.com>, ts@cup.portal.com (Tim W Smith) wrote: > The third, which is used by SCO Unix 3.2, [...] > At some point before the OS is loaded, the boot programs start > manipulating the disk hardware directly. > Assume that the disk controller is also meant to work with DOS, so > it contains a BIOS ROM that installs an INT 13h handler at power up > time before the boot sequence begins. The reason has to do with disk drives that have more than 1024 cylinders. The BIOS interface cannot support such a configuration. Many controllers spoof the drive geometry by claiming to have more heads, or more sectors per track, and then claiming to have fewer cylinders. Even this won't work if a drive is bigger than 512meg, because the BIOS only supports 20 bits of sector number per drive. The problem is how to support large ESDI or SCSI drives, which can be much bigger than 512meg. If you call the BIOS, you can read from devices that hook INT 13h, but if you do that, then you can't read the entire drive. Worse, when the kernel is up and talking to the WD-1010 interface of the controller, any translation that the INT 13h hook was doing is lost, and the kernel might not see things in the same place that the boot code saw it. As a practical matter, this is why it's a bad idea to have one big partition on a boot drive. If you do, it is very possible that any given kernel rebuild will yield a kernel that's partly beyond the 512meg mark on the drive, and the next reboot will fail. -- James R. Van Artsdalen james@bigtex.cactus.org "Live Free or Die" Dell Computer Co 9505 Arboretum Blvd Austin TX 78759 512-338-8789