Математика Курс лекций по информатике Машиностроительное черчение Решение задач по физике Теоретические основы электротехники Сопротивление материалов История искусства Ядерные реакторы
Сбои в персональных компьютерах Программа инициализации Управление файлами Программы низкоуровневого форматирования Загрузочные секторы разделов Корневой каталог Таблицы размещения  файлов (FAT) Потери дискового пространства

Аппаратные средства — это низший уровень в системной иерархии. Направляя различные байты команд в адреса определенных портов или размещая их в конкретных ячейках системной памяти, вы можете управлять практически любыми подсоединенными к процессору устройствами. Управление на аппаратном уровне является сложной задачей — для этого нужно очень хорошо знать структуру и принципы работы системы. Степень детализации, необходимая при написании программ на этом уровне, наиболее высока. Команды записываются в машинных кодах (двоичных посылках, передаваемых непосредственно процессору). Функциональные возможности машинных команд очень ограничены, и для выполнения даже простейшей операции их понадобится довольно много. Правда, строгих ограничений на их количество обычно не накладывается, поскольку каждая из этих команд выполняется чрезвычайно быстро, используя при этом лишь небольшой объем системных ресурсов.

Хороший программист, в принципе, может написать программу непосредственно в машинных кодах, но обычно, в целях облегчения процесса программирования, используется язык чуть более высокого уровня — ассемблер. Программы пишутся с использованием простейшего текстового редактора, а затем с помощью программы-транслятора преобразуются в последовательность машинных кодов. Язык ассемблера, тем не менее, является средством программирования низкого уровня, и эффективно пользоваться им умеют только высококвалифицированные программисты. Непосредственно в машинных кодах программы не пишет никто; язык ассемблера в настоящее время — это тот элементарный уровень программирования, ниже которого работать просто бессмысленно. Однако и ассемблер постепенно теряет привлекательность даже среди программистов-профессионалов, поскольку требует очень серьезной подготовки, а для программирования даже простых операций приходится затрачивать много сил и времени. Кроме того, программы, написанные на ассемблере, очень часто невозможно перенести с системы одного типа на другую.

Когда вы включаете персональный компьютер, управление передается набору программ, написанных в машинных кодах и хранящихся в ПЗУ системной BIOS. Именно эти программы, всегда присутствующие в системе, "общаются" с компонентами компьютера. BIOS воспринимает и интерпретирует команды, формируемые программами, находящимися на более высокой ступени иерархии системы, и преобразует их в машинные коды, передаваемые процессору. Команды этого уровня, передаваемые в BIOS, обычно называются прерываниями или служебными командами (services). Программист может воспользоваться практически любым языком для их формирования. Полный список служебных команд можно найти в справочнике BIOS Interface Technical Reference Manual, выпускаемом фирмой IBM.

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

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

Еще одной функцией DOS первостепенной важности является запуск на исполнение других программ. Поэтому DOS можно считать оболочкой (shell), формирующей необходимое окружение и обеспечивающей функционирование других программ, в том числе таких вторичных оболочек как Windows 3.x. В Windows 95 произошло окончательное сращивание DOS и Windows в единую операционную систему. Работая в этой среде, вы по-прежнему можете перейти в режим командной строки DOS, но графический интерфейс уже является стандартным.

Запись на диски и в файлы в персональных компьютерах