DOS - долгожитель среди операционных систем. Часть 3

Автор: Михаил Федотов aka $ky$pe@R

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

Итак, DOS - это шестнадцатиразрядная операционная система, т.е. она была разработана для 16-разрядных процессоров (если кто не в курсе, сегодня в обращении в основном 32-разрядные CPU, а в ближайшее время планируется плавный переход на 64-разрядные). Кроме того, важно осознавать такую особенность этой операционной системы, как однозадачность. Это значит, что, кроме системных и резидентных (висящих в оперативной памяти и работающих, как правило, автономно - к таким относятся, например, драйверы устройств или программы для включения русской раскладки клавиатуры) программ, в ОЗУ компьютера может быть загружено только одно приложение. Однозадачность DOS - один из главных его недостатков.

Первоначально максимальное количество памяти, доступной DOS, ограничивалось 640 килобайтами, чего, впрочем, хватало всем программам. Однако позже, с появлением программ с графическим интерфейсом, а также сложных игрушек для DOS (яркий пример - 3D-action Tomb Raider, первые несколько частей которого созданы именно для этой ОС), потребовалось большее количество памяти. Не желая принципиально менять интерфейс системы, разработчики ввели такие понятия, как базовая память (conventional memory), которая по-прежнему ограничивалась 640 килобайтами, расширенная и дополнительная память (известные в народе как EMS и XMS соответственно), четкого лимита у которых не было, однако ни одна программа для DOS не требовала более 16 "метров" этих величин.
Вот, собственно, и все главные особенности DOS'а. Теперь немного о его структуре.

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

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

Компонент DOS, обеспечивающий его дальнейший запуск, называется блоком начальной загрузки. Суть в том, что программа, выполняющая дальнейшую загрузку ОС, прописывает данные о себе в файле boot.ini. Если ОС на компьютере установлено несколько, то появляется список, из которого можно выбрать нужную; правда, если на машине стоит хотя бы одна операционная система, отличная от DOS, то он в меню выбора появляться не будет:(.
В работе DOS весьма важную роль играет модуль расширения BIOS, обеспечивающий работу драйверов и обработку низших (аппаратных) прерываний.

Далее идет модуль обработки прерываний, только он, в отличие от модуля расширения BIOS, обрабатывает высшие (программные) прерывания, такие, например, как создание или удаление папки (прерывания 39 и 3A соответственно - в шестнадцатеричном виде, разумеется), завершение программы, после которого она остается резидентной в ОЗУ (31), и т.п. Если тема будет востребована, то, может быть, в следующий раз опишу прерывания DOS поподробней.

Наконец, четвертый компонент DOS, который многие считают собственно DOS'ом, - командный процессор, он же легендарный command.com;-). Функция этой части DOS - обработка команд, вводимых с клавиатуры: dir, cd и т.п. (см. предыдущие статьи). Еще одно назначение command'а - выполнять программы и BAT-файлы.

Есть еще такая относительная часть DOS, как его утилиты - скажем, программа форматирования дисков format (которая, по сути, является внешней командой) и др.
Ну, и в конце статьи приведу маленький FAQ. Писем мне пришло много, ответить на все не могу из-за жуткой нехватки времени, но на некоторые, наиболее, на мой взгляд, интересные, дать ответ постараюсь. Я, правда, не отношу к этой группе вопросы типа "где мне искать DOS на материнской плате?" - я так и не понял, был ли это прикол, или автор вопроса на полном серьезе хотел дождаться подробных объяснений8-). Впрочем, ближе к делу.

Насколько я знаю, в DOS есть два текстовых режима: 80 символов в строке и 40 символов в строке. Не могли бы Вы подсказать, как между ними переключаться, и меняется ли при этом стандартное разрешение в 640х480?
Текстовых режима в DOS три - 80х25, 40х25 и 80х50 символов. Последний включается только на VGA-видеоадаптере (на EGA его аналог - 80x43 символа), и то только из каких-либо вспомогательных программ. А первые два можно переключать командами MODE 80 и MODE 40 соответственно. Для того, чтобы указать, цветной или черно-белый режим используется, нужно перед этими цифрами поставить префикс CO для цветного режима и BW - для режима подавления цвета. К примеру, команда mode co80 включит цветной режим с восьмьюдесятью символами в строке. Для перехода же в режим 80х50 можно написать собственную программу. Если у вас есть, скажем, компилятор Borland C++/Turbo C++/какой-нибудь другой полноценный компилятор С++ с поддержкой создания DOS-программ, то воспользуйтесь функцией textmode(C4350); из заголовочного файла conio.h в коде программы и сделайте ее приложением DOS. Если вы не прописали в коде эту же функцию с другим параметром для перехода в предыдущий/другой режим экрана, то после выхода программа оставит этот режим.
А насчет разрешения, то в режимах 80х25 и 40х25 оно составляет 720х400 пикселей.

Что нужно написать в bat-файле, чтобы все файлы из папки D:\Bogy\History скопировались в папку C:\Windows\History?
Я так понял, что вы не знаете, как запустить цикл FOR, чтобы выполнить копирование. Так вот, здесь вовсе не нужно использовать никаких циклов; все намного проще:
copy d:\bogy\history\*.* c:\windows\history
Прежде чем комбинировать сложные инструкции, подумайте, нельзя ли решить задачу более простыми способами;-).

Гружусь с дискеты в "голом" DOS, чтобы поиграть в старую игрушку. Запускаю, а мне вылезает ошибка: "No such file or directory: dos4gw.exe". Все издевательство в том, что этот файл ЕСТЬ в папке с игрой!!! И что мне с этой фигней делать?..
Этот вопрос в разных вариантах задавался мне неоднократно. Есть, если помните, такая команда - chdir - для смены текущей папки. Когда вы грузитесь с дискеты, ваша текущая папка - a:\>, и именно в ней DOS пытается найти нужный файл. Смените текущую папку на папку с игрой, и все будет тип-топ.

Где можно достать какой-нибудь софт для моего старого, как мир, "двести восемьдесят шестого"?
Много полезного можно добыть на сайте Романа Карпача - www.fdd5-25.narod.ru.  Понимаю, что владельцу "металлолома" - ровесника Ноеву ковчегу ссылка на сайт в Интернете особенно полезна не будет, но, во всяком случае, если никто из знакомых или коллег не располагает нужным софтом, это - единственный, исключая разве что кражу из музея, способ достать его:). А скачать и записать на подходящий носитель можно попросить того же знакомого, или проделать эту операцию внутри собственного учебного заведения/места работы. Зачастую, кстати, там же, на компьютерах, которые давно пора бы списать (но на новые бюджет не потратился, а старые - и то лучше, чем калькуляторы:-() можно найти и некоторые программки на пятидюймовых дискетах.

Вы вот говорите, в DOS можно нормально работать без Windows. А можно ли в нем пользоваться CD-ROM'ом? Не знаю, как там и что должно быть, но у меня при загрузке DOS с boot-дискеты (вообще у меня Windows Millennium) привод не видится вообще. Это частный глюк, или в DOS'е совсем нельзя пользоваться CD-ROM?
Почему же нельзя, уважаемый? Пользуйтесь на здоровье - при загрузке с дискеты выберите в меню пункт Start computer with CD-ROM support. Лоадится чуть подольше, а так - все в порядке. Только буква CD-ROM'а получается следующей за той, которая соответствует ему в Винде. Например, если обычно у вас "жеватель компактов" идет как диск E:, то при такой загрузке он будет обнаружен как F:. DOS - не такая убогая система, как многие привыкли считать. В нем вполне можно послушать музыку или поиграть в полноцветную игрушку с разрешением 640x480, 800x600 или даже 1024x768 - была бы игра да "дровишки", сам-то DOS сможет:

Да и вообще DOS умеет намного больше, чем большинство думает - поверьте человеку, довольно долго работавшему на старом добром 286-м процессоре (кстати говоря, его название - тоже отдельная история, которую мы с вами, возможно, еще обсудим) и теперь все еще довольно часто использующему DOS: для удовольствия!

Источник: http://www.nestor.minsk.by/kg/

вернуться назад

Рейтинг www.nvkz.net