Core


   Каталог php скриптов

Онлайн Микс:


Комментировать

07.05.2009 22:43:15

FAT и каталог (часть 3)

by Core @ 07.05.2009 22:43:15

Структура каталога

ОписаниеРазмер (байт)
Имя файла8
Расширение файла3
Атрибуты1
Не используется — оставлено для будущих расширений10
Дата последнего обновления2
Время последнего обновления2
Начальный кластер2
Размер файла4

Имя и расширение говорят сами за себя. Об атрибутах, однако, вы можете ничего не знать. Байт атрибутов состоит из 8 бит, шесть из которых используются следующим образом:

¦ архив: если файл не упакован — установлен в 1, в противном случае — равен 0;


¦ скрытый файл: если установлен в 1, файл не виден большинством функций DOS;

...

07.05.2009 22:38:22

FAT и каталог (часть 2)

by Core @ 07.05.2009 22:38:22

Возвратимся к нашему примеру с 10 М винчестером; табл. соотносит цилиндры, головки, сектора, DOS-сектора и кластеры с областями DOS на диске.

Вхождение каталога содержит 32 байта информации о файле, как указано в табл.


География винчестера емкостью 10 M

ЦилиндрГоловка /СекторЭквивалентный DOS секторНомер кластераОписание
00/1Не доступен (лежит за пределами секторов DOS)Не доступенЗапись раздела
00/17Не доступенНе доступенНе используется
01/10Не доступенЗагрузочная запись DOS
01/11Не доступенFAT сектор 1
01/1716Не доступенFAT сектор 16
02/117Не доступенСектор 1 корневого каталога
02/1733Не доступенСектор 17 корневого каталога
03/134Не доступенСектор 18 корневого каталога
03/1548Не доступенПоследний сектор корневого каталога
03/16492Первый сектор данных
03/17502Второй сектора данных
10/1512Третий сектор данных
10/2522Четвертый сектор данных
10/6562Восьмой сектор данных
10/7573Девятый сектор данных

...

07.05.2009 22:34:06

FAT и каталог

by Core @ 07.05.2009 22:34:06

Как уже говорилось ранее, каталог и FAT вместе определяют местонахождение файлов. Каталог сообщает вам имена файлов, a FAT указывает, где они находятся. Взгляните на картинку.

Область данных DOS

Каждый файл имеет свое вхождение, сообщающее DOS имя файла, размер, дату последнего обновления и т. п.


Вхождение включает указатель, который точно сообщает DOS, в каких секторах находится файл.

FAT непосредственно следует за DBR на диске — она всегда начинается с DOS сектора номер 1. DOS хранит две копии FAT — первичную и резервную — непосредственно друг за другом. Размер FAT будет зависеть от того, насколько велик раздел.

За FAT непосредственно следует корневой каталог. Вхождения каталога имеют длину 32 байта, а корневое пространство позволяет разместить на жестком диске 512 вхождений. Точное число корневых вхождений хранится в DBR. Каждое вхождение корневого каталога занимает 32 байта. Данные следуют за корневым каталогом на диске.

...

07.05.2009 22:32:37

Загрузочная запись DOS

by Core @ 07.05.2009 22:32:37

Точкой отсчета в разделе DOS является первый сектор, называемый, как вы помните, О сектором DOS. Этот сектор всегда содержит важную часть программного кода, называемого загрузочной записью DOS (DBR - DOS boot record). Этот код используется для загрузки системы в сочетании с записью разделов и, так называемыми, "скрытыми" файлами. Чуть позже я подробно расскажу, как работает DBR, а для начала достаточно знать, что она постоянно находится в первом секторе DOS.


По мере развития различных версий DOS, DBR приобрел и другую важную роль. В начале DBR есть таблица, которая содержит определенный набор информации, идентифицирующей диск. Ранние версии DOS игнорировали эту таблицу, но более поздние в ней нуждаются. Один байт из этой таблицы действительно жизненно важен — если он установлен в определенное значение, он предохраняет систему от загрузки с жесткого диска или дисковода. Чуть дальше в этой статье мы воспользуемся этой информацией, чтобы заставить работать не отвечающий диск.

...

07.05.2009 22:31:47

Кластеры (часть 2)

by Core @ 07.05.2009 22:31:47


Задумаемся над следующей аналогией. Из Вашингтона каждый час вылетает самолет DC-9 рейсом на Нью-Йорк. Сколько человек может улететь этим рейсом, если DC-9 рассчитан на 100 человек? Если пассажиров от 1 до 100, то они улетят одним самолетом. Если их больше 100, потребуется второй самолет. Не может быть "полтора" рейса.

В зависимости от того, какие именно средства используются DOS для хранения информации, изменяется размер "самолета". Сначала DOS поддерживала только дисководы, потом 10 М жесткие диски, потом 1,2 М дисководы, а потом и жесткие диски емкостью свыше 16 М. DOS 4.x и последующие поддерживают устройства размером до 512 М — они используют 16-битную FAT (65536 включений) и кластеры размером 8192 байт.

Вы уже видели, что отсчет цилиндров и головок начинается с 0, а секторов — с 1, но вам было бы удивительно услышать, что отсчет кластеров начинается с 2. Это объясняется тем, что их отсчет начинается после FAT и каталога.

В DOS доступны дисковые устройства размером до 4 Г. Это объясняется тем, что DOS создана с учетом архитектуры процессора, который может манипулировать объектами размером до 64 К, а устройству объемом 4 Г требуются 64 К сектора. Сектора большего размера DOS обслуживать не может.

...

07.05.2009 22:30:27

Кластеры

by Core @ 07.05.2009 22:30:27

Как уже указывалось выше, сектора DOS группируются в кластеры.


Кластер — это минимальное пространство, отводимое DOS под файл. Например, если вы создаете файл, который имеет длину 1 байт, вы не сможете занять на диске 1 байт, а займете минимальную область — кластер. Размер кластера меняется в зависимости от типа диска и его емкости, что можно заметить из табл.. Односторонняя дискета использует кластеры длиной в один сектор, но уже 10 М жесткий диск использует кластеры длиной по 8 секторов -4096 К (4К). Это значит, что однобайтный файл займет на односторонней дискете 512 байт, точно так же, как и 500-байтный файл. С другой стороны, 1-байтный файл займет на 10 M жестком диске 4096 байт.

Размеры кластера

Тип дискаРазмер кластера (байт)Секторов на кластер
Односторонняя дискета5121
Двусторонняя дискета10242
3,5 дюймовая дискета 720 K10242
3,5 дюймовая дискета 1,44 M5121
5,25 дюймовая дискета 1,2 M10242
0—15 M логическое устройство40968
16—127 M логическое устройство20484
128—255 M логическое устройство40968
256—512 M логическое устройство819216
512—1024 M логическое устройство1638432
1024—2048 M логическое устройство3276864
2048—4095 M логическое устройство65536128
Сжатое логическое устройство819216

...

07.05.2009 22:29:04

Абсолютные сектора и DOS сектора (часть 5)

by Core @ 07.05.2009 22:29:04

Некоторые абсолютные и DOS-сектора для четырехголовочного диска

ЦилиндрГоловкаСекторЭквивалентный DOS-сектор
001Нет
0017Нет
0110
011716
02117


Некоторые абсолютные и DOS-сектора для четырехголовочного диска (продолжение)

ЦилиндрГоловкаСекторЭквивалентный DOS-сектор
021733
03134
031750
10151

...

07.05.2009 22:24:55

Абсолютные сектора и DOS сектора (часть 4)

by Core @ 07.05.2009 22:24:55

Итак, сектор с относительным адресом 2757 находится на цилиндре 140, головке 3, секторе 4.

Запись нумерации секторов так же известна, как линейный адрес сектора. Почему DOS использует в первую очередь относительный номер сектора? Главным образом потому, что он аппаратно независим. Все DOS устройства состоят из набора секторов, в каждом из которых, в свою очередь, содержится 512 байт. Другая возможная причина заключается в том, что каждые 4 или 8 секторов группируются в кластеры, а это позволяет легче делить на привычные одномерные номера, наподобие DOS-секторов, чем постоянно представлять, что кластер 200 находится в цилиндре 40, головке 2, секторах 15—17 и цилиндре 40, головке 3, секторе 1.


Рассмотрим несколько примеров абсолютных/относительных адресов. Предположим у нас есть XT с 10 М жестким диском, описанным в статье. В табл. приведены две записи секторов. Первая дорожка — цилиндр 0, головка 0 — содержит запись разделов. Теперь предположим, что раздел DOS — первый раздел, и мы начнем со следующей дорожки — по прежнему цилиндр 0, но головка теперь уже 1. Предположим, что у нас MFM устройство, где на дорожке расположено 17 секторов, и что они пронумерованы как сектора DOS с 0 по 16. Следующая дорожка — цилиндр 0, головка 2 — имеет 17 секторов DOS, пронумерованных с 17 по 33. Затем мы переходим к головке 3, цилиндру 0 для последующих 17 секторов, потом к головке 0, цилиндру 1 и т. д.

...

07.05.2009 22:19:41

Абсолютные сектора и DOS сектора (часть 3)

by Core @ 07.05.2009 22:19:41

Относительный адрес сектора - 4х17х(14-100)+17х(3-1)+(4-1)=2757


А как вычислить абсолютный адрес по относительному? Прежде, чем заняться этим, давайте определим два действия: DIV и MOD. DIV означает деление: но при этом делении отбрасывается остаток: 7DIV3 равно 2. MOD означает вычисление остатка от деления нацело.

Используем те же самые определения для RS, DC, DH, NS, NH. Отметим, что мы уже знаем RS, NS, NH, DH, DC, DS, но нам надо найти С (цилиндр), Н (головка) и S (сектор).

S=(RS MOD NS)+DS Temp=RS DIV NS

Temp — это временная переменная, необходимая нам для хранения промежуточных результатов.

H=(Temp MOD NH)+DH

C=(Temp DIV NH)+DC

Попробуем применить эти формулы к нашему примеру. Относительный номер сектора 2757 на диске с 4 головками и 17 секторами на дорожку. DBR расположена на цилиндре 100, головке 1, секторе 1. Представим всю известную нам информацию следующим образом:

DC=100 DH=1 DS=1 NH=4 NS=17 RS=2757 И начнем вычисления

S=(2757 MOD 17)+1=3+1 = 4 Temp=2757 DIV 17=162 H=(162 MOD 4)+l= 2+1=3

C=(162 DIV 4)+100=140

...

07.05.2009 22:14:10

Абсолютные сектора и DOS сектора (часть 2)

by Core @ 07.05.2009 22:14:10

Вы можете связать абсолютные адреса секторов с относительными адресами секторов, если вам известна следующая информация:

DH= дорожка, в которой расположена DBR, для отсчета с 1; DC= цилиндр, в котором расположена DBR; DS= сектор, в котором расположена DBR, для отсчета с 1; NS= число секторов на дорожку на этом диске;


NH= число головок на этом диске.

Предположим, что у вас есть C (цилиндр), H (головка) и S (сектор), а вам требуется найти относительный адрес (RS) этого же сектора:

RS=NHxNSx(C-DC)+NSx(H-DH)+(S-DS)

Например, предположим, что у вас есть логическое устройство D:, DBR которого расположена в 100 цилиндре, головке 1, секторе 1. Диск имеет 4 головки и 17 секторов на дорожку. Каков будет относительный адрес сектора в цилиндре 140, головке 3, секторе 4?

DH=1

DC=100

DS=1

NS=17

NH=4

...

Pages: Start 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279

Tag:

Page copy protected against web site content infringement by Copyscape Rambler's Top100