Как программа понимает оборудование ?

В статье приводится описание того, как программа понимает оборудование, как«железо» и программа работают вместе, зачем в некоторые устройства встраиваются контроллеры и причём здесь драйверы.

Итак, когда вы выбираете команду, например, приказываете текстовому редактору сохранить документ, приложению совершенно необязательно знать, как при этом контролировать сам жёсткий диск. Текстовый редактор вместо этого просто обращается к операционной системе. Т.е. Windows.

Если диск, где вы собираетесь сохранить данные, привязан к BIOS – т.е. является в прямом смысле слова постоянным запоминающим устройством для материнской платы – BIOS сама посылает необходимые инструкции и данные на контроллер диска. Контроллер современных жёстких дисков уже вмонтирован в диск. Если же записи о ПЗУ, на которое вы сохраняете файл или папку, нет в BIOS (вы только что вставили флешку), то системе необходимо будет найти или устанвоить со стороны (или, выражаясь научно, осуществить выборку) драйвер этого устройства. Затем система прописывает с драйвера размер носителя, файловую систему, информацию о производителе и т.д. Ядро операционной системы использует именно пресловутые драйверы для того, чтобы разговаривать с каждым из установленных устройств. Если коротко, то драйвером можно назвать маленькую программу-«переводчик», хранимую на диске и объясняющую Windows как с конкретным устройством работать.

Пару слов про контроллеры

Контроллер диска предназначен для того, чтобы переводить инструкции, полученные от BIOS или драйверов, на язык электрических сигналов, которые, в свою очередь, приказывают пишущей (или читающей) головке диска создать электромагнитный импульс в той или иной области поверхности диска для сохранения записи (или для её считывания). Вот почему малейшая неисправность контроллера устройства означает неисправность самого устройства. с которым простому пользователю справиться просто не по силам. Подробнее о контроллерах мы ещё поговорим.

Как программа понимает оборудование: идём дальше

На операционную систему возлагается обязанность проверить, что с командой на сохранение данных не происходит ничего непредвиденного. Ну, например, Windows не понимает, зачем нужно сохранять файлы, содержащие в название большое количество символов, и предупредит вас об этом. А из рутинных операций по отслеживанию можно выделить также запрет на сохранение файла под именем, которое уже существует или изменить запись в документе, предназначенном только для чтения.

программа понимает оборудованиеЕсли всё в порядке, и система убедилась в правильности имени и структуры файла, Windows решает, требуется ли операции сохранения обратиться к драйверу нашего устройства или BIOS материнской платы справится сама. Если в чипе информации об устройстве не было, то Windows временно расширяет память BIOS на кусок кода, который и представляет собой драйвер устройства, т.е. предоставляет чипу некоторое расширение на время сеанса. Если бы драйверов не было, то BIOS было бы необходимо содержать в себе всю информацию обо всех существовавших, настоящих и потенциальных устройствах, которые можно было бы подключить. Это нереально, как вы сами догадываетесь, по многим причинам. Стоит только подумать о возможных размерах микросхемы с такой памятью или о возможности подключить какой-то новый гаджет (или просто обновлённый, где исправлены ошибки) к ПК, как всё становится ясно.

как windows работает с программами

Некоторые из драйверов автоматически загружаются вместе с системой. Иногда это необходимо (вы часто пользуетесь одними и теми же флэшками или картами памяти), иногда мешает (драйвер давно потерянной флэшки постоянно в памяти системы «съедает», пусть крохи, но кровных ресурсов). Если необходимый для операции сохранения отсутствует в оперативной памяти, система считывает его с папки жёсткого диска и выгружает в память. Выполняется рутинная, но необходимая для производительности работа.

Успехов.

Запись опубликована в рубрике Железяка. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

один + 12 =