интерфейс с прерыванием INT13h BIOS
Таким образом, на адресацию цилиндров BIOS отводит всего 10 бит и потому максимальное количество цилиндров на диске ограничено всего 1024, что при четырех битной адресации головок, дает предельно достижимый объем диска в 512 * 210 * 26 * 24 == 536870912 байт или 512 Мб. Ха! Производители винчестеров перешагнули этот барьер уже много лет назад и с той поры, кстати говоря, очень многое изменилось. MS-DOS ушла небытие, а пришедшая ей на смену Windows работает с диском через собственный драйвер и ограничения BIOS ее никак не касаются. Ну почти не касаются… Ведь первичную загрузку операционной системы осуществляет никто иной как BIOS и если системные компоненты расположены в секторах, находящихся за пределами 1024 сектора, операционная система попросту не будет загружена! Причем, это относиться ко всем операционным системам, а не только к критикуемой Windows!
Для преодоления этого ограничения BIOS вводит дополнительный уровень трансляции (режим LARGE), увеличивая количество головок (благо, BIOS выделяет для их адресации аж 8 бит, против 4 бит, выделяемых контроллером диска). К следствие, предельно допустимый объем диска теперь составляет 512 210 26 * 28 == 8.589.934.592 байт или 8 Гбайт. Это в теории. На практике же большинство BIOS'ов содержали грубые ошибки и при работе с дисками свыше 2 Гб они либо банально зависали, либо теряли старшие разряды цилиндра, обращаясь к началу диска и необратимо гробя все служебные структуры. До сих пор многие вполне современные BIOS'ы не позволяют адресовать более 64 головок (виртуальных), что ограничивает предельно допустимый объем диска все тем же 2 Гбайтами. Поэтому, при переустановке Windows поверх старой версии на логический диск емкостью свыше 2 Гбайт, она может перестать загружаться. Все очень просто! Когда система ставится на только что отформатированный диск, она располагает все свои файлы в самом начале, но по мере же заполнения диска, область свободного пространства отодвигается все дальше к концу… Кстати говоря, отодвинуть файлы первичной загрузки может и дефрагментатор (или установка пакета обновления). Короче говоря, владельцем больших винчестеров настоятельно рекомендуется разбить свое хозяйство на несколько дисков, установив размер первого (загрузочного) раздела не более, чем в 8 Гбайт, а лучше даже в 2 Гбайта.
SCSI-устройства от рождения поддерживают прозрачный механизм логической адресации, или сокращенно LBA (Linear Block Address), последовательно нумерующий все сектора от 0 до последнего сектора диска. В IDE-накопителях LBA-адресация появилась только начиная с ATA-3, но быстро завоевала всеобщее признание. Разрядность адресации определяется устройством. В SCSI она от рождения 32-битная, а IDE-устройства вплоть до принятия спецификации ATA-6 были ограничены 28 битами, которые распределялись следующим образом:
порт значение
0172/01F2 кол-во секторов
0173/01F3 номер сектора (биты 0-7)
0174/01F4 номер сектора (биты 8-15)
0175/01F5 номер сектора (биты 16-24)
0176/01F6 номер сектора (биты 24-28), привод на шине (бит 4), режим CHS/LBA (бит 6)