Андрей Маркелов
Когда говорят об операционной системе, обозначаемой аббревиатурой DOS,
мало кто задумывается – о какой же Дисковой Операционной Системе (Disk Operation
System) идет речь. Обозначение целого класса операционных систем для
большинства людей стало синонимом лишь одного-единственного его представителя –
MS DOS фирмы Microsoft. Кто-то, может быть, вспомнит PC DOS, отличающуюся в
основном лишь названием и именами некоторых файлов. Может, кому-то придет в
голову и DR-DOS от компании Digital Research – создателя предшественницы DOS от
Microsoft, операционной системы CP/M. Но в целом почти для всех DOS – это
MS-DOS, последняя версия которой вышла вот уже десять лет назад, и которая давно
завершила свое развитие.
Однако до сих пор в эксплуатации остается огромное число программ,
работающих в среде и написанных под эту нетребовательную к ресурсам ОС, и не
меньшее число морально устаревших компьютеров, прекрасно работающих под ней.
Как же быть? Ведь MS-DOS давно не поддерживается и не продается. Я бы
посоветовал обратить внимание на FreeDOS, изначально написанную Джимом Холлом,
а сейчас развивающуюся при участии целой команды разработчиков из разных концов
света.
Свободная ОС FreeDOS была анонсирована ее
создателем Джимом Холлом (Jim Hall) 28 июня 1994 года первоначально под именем
PD-DOS. Уже в июле приставка «PD-» была заменена на «Free-». Знак «дефис» между
двумя составляющими названия операционная система потеряла в 1996 году при
достаточно курьезных обстоятельствах. В этом году издательство «R+D Books»
выпускало книгу под названием «Free-DOS Kernel», и редактор издательства
выбросил знак «дефис» в названии исключительно из дизайнерских соображений.
Основной причиной, вызвавшей появление проекта,
Джим называет прекращение компанией Microsoft поддержки операционной системы
MS-DOS. Итак, вот уже 10 лет мы имеем реальную альтернативу операционной
системе MS-DOS, но под лицензией GNU. «FreeDOS Project» не использует код,
созданный Microsoft. Согласно открытым спецификациям команда пишет свой код,
обладающий аналогичным функционалом.
Ядром FreeDOS является DOS-C, изначально написанное
Pat Villani как DOS-ядро для встраиваемых систем. Первоначальное название –
DOS/NT. DOS/NT содержала 32 000 строк кода, была написана на Cи и ассемблере и
распространялась как shareware.
FreeDOS работает на устаревшем железе (начиная от
5 МГц IBM PC XT с 640 Кб оперативной памяти), встроенных системах, различных
виртуальных машинах, в том числе DOSEmu, VMWare и Bochs. FreeDOS – идеальное,
лицензионно чистое решение для создания «спасательной» загрузочной дискеты.
Другое применение – среда для исполнения ваших программ или обновлений. Клиенту
достаточно загрузиться с полученной от вас дискеты или компакт-диска, и вот вам
(или вашей службе поддержки) уже не приходится часами висеть на телефоне,
объясняя бухгалтеру, находящемуся за несколько сотен километров, как найти диск
C:\.
FreeDOS обладает отличной совместимостью с
DOS-программами, в том числе со старыми добрыми играми: DOOM, Quake, Warcraft
2. А небезызвестная фирма Dell даже продает свои десктопы, с предустанавливаемой
на них одной из версий этой операционной системы.
Из особенностей FreeDOS я хочу отметить:
поддержку FAT-32 дисков объемом до 128 Гб, поддержку сети (вы можете поставить
на FreeDOS ftp- и HTTP-сервер), но отсутствие встроенной поддержки NTFS и USB.
Однако FreeDOS вполне нормально работает и с USB-клавиатурами, USB-мышами,
Serial-ATA-дисками, если их поддерживает BIOS компьютера.
При помощи дополнительных драйверов возможна
работа с длинными именами.
Установка
Итак, вы решили познакомиться с новой для себя операционной системой.
Прекрасно! Пятидесятимегабайтный дистрибутив «FreeDOS Beta9 pre-release 3»
(последний на момент написания статьи) скачан в виде ISO-образа с сайта http://www.freedos.org и записан на
«болванку». Вставляем полученный загрузочный CD в лоток вашего CD-ROM, и
перезагружаем компьютер. Не забудьте попутно в качестве устройства для загрузки
выбрать привод компакт-дисков.

Я буду описывать установку FreeDOS на «чистую»
машину, однако никто не мешает использовать так называемую «двойную загрузку».
Я успешно ставил на один компьютер одновременно MS-DOS, FreeDOS, Linux и Windows
2000. Причем в качестве загрузчика использовал штатный Boot Loader из Windows
2000. При помощи отличной утилиты BootPart 2.50 вы можете сохранить образ
512-байтного загрузочного сектора с загрузчиком FreeDOS, Lilo или GRUB в файл,
а далее просто прописать на него ссылку в C:\BOOT.INI.
За подробностями отсылаю вас на домашнюю
страничку программы – http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm.
Кроме того, всегда можно попробовать запустить FreeDOS в среде виртуальной
машины. Нужно заметить, что для DOSEmu рассматриваемая операционная система и
так является «официальной» и рекомендуемой к использованию.
Загрузившись с дистрибутивного диска, мы попадаем
в меню инсталлятора. Нажимаем «1» для старта. Далее выбираем установку с
использованием драйвера CD-ROM и XMS – «2». На машинах с процессорами 8086 –
80286 нужно выбрать «1».
В следующем меню имеется
несколько вариантов:
n «1» – установка;
n «2» – переход в командную строку;
n «3» – создать загрузочную дискету.
Выбираем «1» и еще раз «1», чтобы подтвердить
установки по умолчанию.
Теперь мы попадаем в меню «FreeDOS Partition Management».
Eсли жесткий диск не был разбит на логические диски, то сейчас имеется
возможность разбить его аналогом MS-DOS-утилиты FDISK. Кроме того, можно
запустить известную всем линуксоидам утилиту для изменения размеров партиций –
FIPS, а также отформатировать диск. Замечу, что утилита FORMAT дистрибутива
содержит ошибки (которые исправлены в более поздней версии, не вошедшей в
ISO-образ), и при наличии ошибок во время форматирования лучше выполнить данную
операцию из другой ОС, а FORMAT после инсталляции заменить более свежей версией
с сайта проекта. Еще один вариант решения этой проблемы – выполнить «быстрое»
форматирование FORMAT из FreeDOS.
Если уже имеется отформатированный диск, то
просто выбираем его клавишами со стрелками и нажимаем «Enter». После
инсталлятор предлагает выбрать вариант установки – графический или текстовый.
Выбрав, жмем «Enter» и в случае с графикой оказываемся в интерфейсе,
напоминающем интерфейс установки обычного Windows-приложения. Принимаем
лицензионное соглашение GNU GPL, указываем путь для установки (C:\FDOS\) и
набор устанавливаемых пакетов. Теперь остается только следить за ходом инсталляции.
После завершения копирования файлов будут запущены несколько конфигурационных скриптов,
а затем мы попадаем в командную строку, получив напоминание о необходимости
записать загрузочный сектор командой BOOT. Набираем «boot», жмем «Enter».
Теперь можно перезагрузить машину, удалив при этом CD из дисковода.
Настраиваем среду обитания
Вначале кратко о структуре каталогов и файлах, входящих в
дистрибутив. После установки FreeDOS в корне диска C:\ мы имеем:
n autoexec.bat, config.sys – расширенные по
синтаксису аналоги конфигурационных файлов MS-DOS;
n fdosboot.bin – загрузочный сектор FreeDOS в
виде файла;
n command.com – интерфейс командной строки;
n kernel.sys – ядро операционной системы (аналог msdos.sys).
Сами служебные файлы и утилиты по
умолчанию устанавливаются в C:\FDOS. Внутри каталога существуют следующие
подкаталоги:
n APPINFO – файлы формата lsm с кратким описанием
утилит дистрибутива;
n BIN – утилиты и драйверы;
n DOC, HELP – документация ;
n INSTBASE – логи инсталляции всех пакетов;
n NLS – файлы локализации для нескольких языков.
Первым делом я бы рекомендовал обновить файлы
операционной системы. Главные кандидаты на обновление (из тех, что были
доработаны по сравнению с «FreeDOS Beta9 pre-release 3») – это новая версия
ядра под номером 2033, FreeCOM shell – интерфейс командной строки, EMM386, Format,
Shsucdx, Undelete, Edit. Ссылки на утилиты и файлы для скачивания можно найти
на сайте проекта. Для обновления, как правило, достаточно просто заменить
старые файлы новыми из скачанного zip-архива. Когда будете обновлять файлы
ядра, заметьте, что бинарники ядра распространяются в двух вариантах:
keXXXX_32.zip – с поддержкой FAT-32 и keXXXX_16.zip – только с поддержкой
FAT-16.
Затем убедимся, что доступен привод
компакт-дисков. Файл config.sys должен содержать строку:
DEVICE=C:\FDOS\bin\atapicdd.sys
/D:FDCD0001
А autoexec.bat команду:
C:\FDOS\bin\Shsucdx
/D:FDCD0001
Как видно, синтаксис этих команд не отличается от
синтаксиса команд Microsoft DOS. Отличия только в именах файлов.
Drugim vagnjm voprosom jvljaetsja russifikazcija.
В текущей версии отсутствует поддержка COUNTRY, но для поддержки 866 кодовой
страницы можно воспользоваться GRAFTABL. С другой стороны, самым простым
решением будет использование (до появления полноценной поддержки русского языка
«из коробки») одного из русификаторов: Keyrus или rc. Они прекрасно служили нам
в MS-DOS, с таким же успехом послужат и во FreeDOS.
Следующая часто возникающая задача – доступ к
томам NTFS. В ядре FreeDOS отсутствует поддержка NTFS, но по ссылке http://www.sysinternals.com/ntw2k/freeware/ntfs-dos.shtml
можно скачать бесплатную версию NTFSDOS – драйверов, работающих под FreeDOS и
предоставляющих доступ к томам NTFS в режиме «только для чтения». Существует
также платная Professional-версия с возможностью записи.
Использовать программу крайне просто. Добавьте
вызов файла ntfsdos.exe в файл autuexec.bat и утилита сама просканирует
доступные диски и, если на них будут найдены тома NTFS, подключит их без вашего
вмешательства.
Теперь перейдем к «длинным», выходящим за рамки
формулы 8+3 именам файлов, которые впервые появились в ОС Windows 95 SR2.
Существует несколько утилит, созданных для поддержки длинных имен. Например,
пакет DOSLFN, который можно скачать по адресу http://www-user.tu-chemnitz.de/~heha/hs_freeware/freew.html.
Прописываем в autoexec.bat вызов TSR-модуля doslfn.com, который занимает 16 Кб
в оперативной памяти, и на этом вся установка закончена. Потенциальной
проблемой может стать то, что поддерживаются длинные имена не на всех приводах
CD-ROM. В случае возникновения таких проблем можно попробовать еще один пакет,
выполняющий аналогичные функции, – LFN Tools (http://www.odi.ch).
Графические оболочки
Любые задачи в FreeDOS можно выполнить, не выходя за рамки командной строки.
Но, конечно, намного удобнее использовать одну из многих так называемых
«оболочек» – shells. Хочу напомнить, что та же MS Windows вплоть до версии Windows
3.11 for Workgroups являлась ничем иным, как оболочкой для MS-DOS. И лишь Windows
95 присвоила себе гордое имя операционной системы.
Говоря об оболочках, в первую очередь упомяну
оболочку – бессмертный файловый менеджер Norton Commander и его многочисленные
клоны, например, миниатюрный Volkov Commander и менеджер с открытым исходным
кодом Dos Navigator (http://www.ritlabs.com/dn).
Вышеперечисленные программы имеют текстовый
интерфейс на основе псевдографики. Гораздо интереснее познакомиться с
по-настоящему графическими оболочками. Часть из тех оболочек, что работают в
среде FreeDOS, перечислена в таблице.
Очень кратко рассмотрим некоторые из них.
SEAL – тридцатидвухразрядная оболочка, напоминающая
по интерфейсу MS Windows. В составе пакета имеется некий минимальный набор
приложений, включая текстовый редактор, среду разработки, графический редактор,
файловый менеджер, CD-плейер, программу снятия образа с дискет, более десятка
игр. Для инсталляции достаточно разархивировать скачанный с сайта http://sealsystem.sourceforge.net
архив и запустить install.exe. Оболочка запускается командой C:\seal2\seal.exe.

OpenGEM – развитие Digital Research GEM под
открытой лицензией GPL. OpenGEM достаточно большой пакет – на жестком диске
требуется почти 10 Мб. Есть версия, помещающаяся на дискете – GEMini.
Кратко по установке. После того как дистрибутив
скачан и разархивирован, запускаем install.bat. Программа установщика задаст
несколько вопросов: куда ставить пакет и имеется ли на компьютере установленная
Windows. После отработки «батника» добавляем строки из файла C:\fgconfig.sys в config.sys.
Запускается оболочка командой C:\gem.bat. Интерфейс OpenGEM изображен на
следующем рисунке:

В состав пакета входит более 30 приложений. В том
числе текстовый процессор, электронные таблицы, HTML-браузер, игры.
На этом все. Остались нераскрытыми многие темы,
относящиеся к FreeDOS, в том числе создание своего дистрибутива и поддержка
сетевых служб. Но это уже материал отдельной статьи.