IBM PC первое знакомство

Журнал "Радио", номер 9, 1999г.
Автор:А. Ломов г. Москва

Продолжение. Начало см. в "Радио",1999,#7 "Радио",1999,#5 "Радио",1999,#3 "Радио",1999,#2 "Радио",1999,#1

    ЧАСТЬ 5. DOS - ЭТО БОСС!

    В этой части нашего повествования мы перейдем к практике, которая посвящена операционным системам класса DOS, поведаем об основах идеологии этой программной платформы, а также поделимся секретами общения с ней.

    ЗАЧЕМ ВСЕ ЭТО НУЖНО?!

    Чтобы не разбивать чьих-то надежд, позволю себе сделать небольшое отступление. "Зачем все это нужно?!" - именно такой вопрос может слететь с уст наиболее подготовленных читателей. И в самом деле - зачем? Одно дело - посвятить платформе DOS парутройку абзацев в разделе, объясняющем смысл словосочетания "операционная система", а другое - посвятить ей целую статью! Ведь эпоха DOS канула в Лету самое позднее три с половиной года назад, когда фирма Microsoft выбросила на рынок свою Windows 95. А для некоторых пользователей закат DOS случился задолго до пресловутого 1995 года - с появлением первых вариантов системы OS/2...

    В прошлый раз мы уже беседовали о том, что многие "внутренности" тех же "девяносто пятых", в особенности ядро, заимствованы из DOS. В этом нет ничего удивительного - налицо природные законы эволюции. Мораль же такова: чем лучше мы будем разбираться в DOS, тем проще нам понять законы более новых и сложных операционных систем, в том числе Windows и OS/2. DOS - это история компьютерного мира, а, как известно, знание прошлого избавляет нас от старых ошибок в будущем.

    Как бы нам того ни хотелось, стремительными компьютерами на процессорах Pentium, Pentium MMX, а тем более Pentium II наши российские пользователи не избалованы. По мере удаления от Москвы и Санкт-Петербурга число таких машин падает просто обвальными темпами. Среднестатистический компьютер - дай Бог, если это какая-нибудь "четверка", а то и того хуже... Понятно, что красочные системы типа Windows 95 для этих компьютеров будут непомерной роскошью. Итог - DOS продолжает оставаться в России чуть ли не самой популярной платформой.

    Кроме того, открою "страшную тайну". Система Windows 95 обладает большим числом недостатков: громоздкостью, недоработанностью, скрытостью от глаз пользователя, а также явными ошибками, которых даже официально (т. е. самой фирмой Microsoft) зарегистрировано более сотни. Все эти минусы, понятно, не красят ни "форточки", ни их доблестных изобретателей. У меня, например, на машине до сих пор стоят две операционные системы - DOS и Windows 95, а все потому, что я не могу безоговорочно довериться последней.

    Думаю, всех этих доводов с лихвой хватит на то, чтобы убедить вас в насущной необходимости самого серьезного разговора о DOS.

    ТРУДНЫЙ ХАРАКТЕР

    Использовать мощь своего "железа" с максимальной отдачей, работая под управлением DOS, к сожалению, невозможно, если, конечно, речь идет не о "двушке". Даже если вы - обладатель всего лишь "386-го" или "486-го" компьютера, заставить его работать с "голой" DOS иначе чем кощунством не назовешь. Участь такой машины можно сравнить, например, с судьбой акулы, заключенной в домашний аквариум.

    И дело здесь не в неудобстве работы с командной строкой. Основным "камнем преткновения" является такое абсурдное свойство DOS, как "привычка" ограничивать рабочий объем оперативной памяти машины 640 килобайтами. Так уж, видите ли, исторически сложилось, что DOS "не воспринимает" ничего, что находится выше этих самых 640 кбайт, и, даже если память вашего ПК насчитывает 4, 8, 16, 32 и более Мбайт, DOS будет упрямо твердить, что памяти у вас ровно 640 кбайт. Естественно, только эта малая часть и будет использоваться системой для полезных нужд, а весь дополнительный объем, каким бы колоссальным он ни был, будет пустовать.

    Однако проблема 640-килобайтного барьера легко преодолима. Для того, чтобы "показать" DOS, что "ума" у компьютера много больше, чем ей кажется, существуют специальные драйверы, которые нередко включаются в комплект поставки самой операционной системы. Все бы хорошо, да только создание противоядия пресловутому барьеру повлекло за собой искусственные сложности, главным образом, касающиеся терминологии.

    Так, сегодня мы вынуждены делить всю оперативную память на основную (те самые 640 килобайт, которые иногда еще называют "обычной памятью", DOS-памятью или conventional memory), расширенную (extended memory) и дополнительную (expanded memory). Расширенная память - это та часть памяти компьютера, которая начинается с ячейки, расположенной по адресу 1114096. Другими словами, она является расширением основной памяти сверх одного мегабайта, и вплоть до максимума, установленного в вашем компьютере (обычно это 4, 8, 16, 32 или 64 Мбайта, другие значения встречаются довольно редко).

    Физически расширенная память располагается в тех же микросхемах, что и основная, и в точно таких же, расположенных рядом. Дополнительная память, как правило, размещается на специальной (дополнительной) плате, вставляемой в разъем расширения. В настоящее время такие платы не выпускаются и в современных компьютерах не используются. Если же вы встретите одну из старых программ, которая потребует дополнительной памяти, то сможете ее смоделировать из расширенной с помощью одной из программ DOS, называемой EMM386.

    Что еще можно сказать о "характере" DOS, который, как вы, наверное, уже поняли, весьма и весьма сложный? Ну, например, то, что DOS является однозадачной операционной системой. Другими словами, в одно и то же время на компьютере, работающем под управлением DOS, может выполняться только одно приложение. Однако однозадачность не отрицает возможности вложения задач - одна программа может запустить другую, другая - третью и т. д., причем завершение третьей программы вернет нас обратно во вторую, а после выхода из второй продолжится выполнение первой. В данном случае, когда мы будем работать с третьим приложением, в оперативной памяти будут находиться все три программы.

    Еще более интересное явление - резидентные программы, или TSR (Terminated and Stay Resident - завершенный и оставшийся резидентным). Как вы уже знаете, большинство приложений, которые мы запускаем, загружаются в оперативную память, а после того, как их работа прекращается, занимаемый ими объем памяти очищается. Но есть программы, которые, окончив видимую часть своей работы, выгружаются из памяти не полностью, оставляя в "мозгу" компьютера своеобразные "дежурные зоны", как это происходит с человеком во время его сна. Почти все драйверы устройств, а также некоторые полезные утилиты и даже мелкие прикладные программы работают по такому принципу. Примером резидентного приложения может являться популярная некогда программа SideKick. Загрузив ее однажды, можно в любое время, нажав пару клавиш на клавиатуре, вызвать на экран календарь, калькулятор и другие полезные вещи. Выгрузить из памяти такую программу можно, лишь выключив компьютер или нажав кнопку "сброс".

    В наше время, как правило, пользователю довольно редко приходится сталкиваться с черно-белым интерфейсом командного процессора COMMAND.COM. Ядро DOS "в чистом виде" - создание весьма несовершенное, а поэтому на практике мы общаемся с ним лишь через посредников. Если ваш компьютер работает под управлением DOS, то это непременно означает, что ядро операционной системы составляет лишь ничтожную часть того, что загружается в оперативную память машины. Помимо него, в память вводятся многочисленные драйверы, резидентные утилиты, программаоболочка типа упомянутого в одной из предыдущих частей Norton Commander▓а, а нередко и графическая среда Windows. И все для того, чтобы с машиной было более-менее удобно работать.

    Ясное дело, что загружать все это в память машины каждый раз при включении - дело рутинное и нудное. DOS предоставляет одну очень хорошую возможность - автоконфигурационные файлы. Они должны называться CONFIG.SYS и AUTOEXEC.BAT и располагаться в корневом каталоге того диска, с которого загружается DOS. В них можно написать операционной системе "памятку" о том, что она должна делать каждый раз после своего пробуждения.

    Заметим, что разного рода "памятки" можно записывать, создавая любые другие файлы с расширением BAT. Такие файлы называются командными или пакетными и в среде DOS являются полноправными конкурентами файлам *.COM и *.EXE, поскольку представляют собой ничто иное, как программы, хотя их структура не имеет ничего общего с "настоящими" исполняемыми файлами. Коллекция умело написанных пакетных файлов позволяет довести комфорт работы под управлением DOS до совершенства. У опытных пользователей найдется BAT-файл на любой случай жизни. Я, например, написал их более трех десятков, и это - далеко не предел. О некоторых сферах применения пакетных файлов я говорил в статье "Долой неудобства многоблочной автоконфигурации DOS!" в "Радио", 1997, # 8, с. 28 - 30.

    КОМАНДНЫЙ РЕЖИМ

    Купив компьютер, можно, конечно, пригласить специалиста, попросив его раз и навсегда автоматизировать все что можно, и не видеть ужасного приглашения DOS (оно есть и в Windows 95) до конца дней. Но наш цикл - не для тех, кто придерживается подобной точки зрения.

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

    Именно для таких случаев каждому из вас необходимо знание командного языка DOS, хотя бы на самом элементарном уровне, чтобы, оставшись вдруг наедине с безликой командной строчкой, вы не боялись "заговорить" с ней. К тому же изучение командного языка DOS развивает логическое и аналитическое мышление. Когда вы научитесь писать сложные командные файлы, можно будет приступать к настоящему программированию, созданию собственных приложений (*.COM и *.EXE) с помощью профессиональных языков программирования. Но об этом мы будем беседовать еще нескоро.

    А пока - по порядку... Главными компонентами командного языка DOS, как, впрочем, и любого другого языка, являются лексика, т.е. множество всех слов, которые "понимает" командный процессор COMMAND.COM, и синтаксис - способы сочетания этих слов.

    Все команды можно разделить на внутренние и внешние. Внутренние команды доступны всегда и везде, где есть три основных файла, слагающих ядро DOS - ведь "толкования" этих слов находятся непосредственно внутри файла COMMAND.COM, и он поймет их в любом случае. Внешние же команды "привязаны" к другим программам и являют собой попросту имена их файлов. Так, например, имена утилит CHKDSK, MOVE или BACKUP, входящих в состав последней версии MS-DOS, представляют собой внешние команды.

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

    В командной строке DOS наши пожелания операционной системе необходимо вводить таким образом: сначала нужно набрать текст всей команды, затем проверить его и, наконец, нажать на клавишу , дав тем самым понять DOS, что ввод закончен. Какими буквами вводить команды - строчными или прописными - безразлично.

    Вот вам пример простейшей команды:

    VER

    В ответ на такой "нескромный вопрос" DOS скажет вам номер своей версии, например:

    MS-DOS Version 6.22

    Чем больше цифра слева и справа от точки, тем новее ваша система.

    Но, как правило, команда не ограничивается только одним словом. В большинстве случаев операционной системе нужно сообщить не только ЧТО она должна сделать, но и КАК ей предстоит это осуществить. В результате примерный синтаксис команд DOS выглядит вот так:

    ОПЕРАЦИЯ ОБЪЕКТ1 ОБЪЕКТ2 / КЛЮЧ1 / КЛЮЧ2 / КЛЮЧ3

    Здесь ОПЕРАЦИЯ - это название команды или имя программы, ОБЪЕКТЫ - имена файлов, каталогов или устройств, над которыми вершатся те или иные действия, КЛЮЧИ - дополнительные параметры. Разумеется, число ОБЪЕКТОВ и КЛЮЧЕЙ может быть любым. Чтобы не быть голословным, приведу пример команды, которая позволяет скопировать из текущего каталога все файлы с именами FILE и любыми расширениями в директорию RESERVE, расположенную на диске с именем E:

    COPY FILE.* E:\ RESERVE / V

    Очевидно, в этом примере операцией является команда COPY, объектом 1 - FILE.*, объектом 2 - E:\ RESERVE. Ключ / V указывает на то, что копирование должно производиться с проверкой копии на одинаковость с оригиналом - мало ли что может произойти "в пути".

    Возможности командного языка существенно расширяются благодаря применению перенаправления и конвейеризации.

    Сообщения программ во время их выполнения по умолчанию выводятся на экран монитора. Но в некоторых случаях (например, когда сообщений много и они выдаются слишком быстро, чтобы успеть их прочесть) имеет смысл использовать для вывода какое-нибудь другое устройство или просто файл на диске. Это можно сделать с помощью перенаправления вывода, применив значок ">":

    КОМАНДА > УСТРОЙСТВО

    К примеру, вот такая команда вызывает утилиту проверки диска, которая выводит отчет о "здоровье" диска C: на принтер (PRN - это ничто иное, как имя печатающего устройства в DOS).

    CHKDSK C: > PRN

    Если перенаправление осуществляется в файл, есть смысл использовать вместо одного символа ">" два таких значка (">>"). Дело в том, что в последнем случае сообщения, выводимые программами, будут добавляться в конец заданного вами файла, не мешая тому, что было в нем до ввода очередной команды. В случае применения единственного значка ">" старое содержимое файла будет попросту уничтожаться, заменяясь новым. Если же указанного вами файла еще не существует, он автоматически будет создан.

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

    Осуществляется же перенаправление ввода не сложнее, чем перенаправление вывода, с той лишь разницей, что вместо значка ">" здесь используется символ "






Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.