Жизнь после жизни.(или как похоронили дос)
В середине 90-х Билл Гейтс заявил: "DOS is dead". Хотя после выхода MS Windows 95 и первых версий Linux было очевидно, что дни DOS как массовой ОС сочтены, заявление главы Microsoft не выглядело как техническая констатация сложившейся ситуации - за ним угадывалась новая концепция развития, требующая радикальной смены психологической атмосферы в IT.
Действительно, после появления в 1981 году IBM PC и MS-DOS их дальнейший успех был почти на 100% обеспечен приоритетом преемственности в развитии: можно сказать, что лозунгом следующих тринадцати лет был "Совместимость прежде всего". Однако к 1994 году IBM утратила контроль за развитием архитектуры PC, а Microsoft получила почти полную монополию на свою продукцию - в целом по-честному, добившись преимуществ над продукцией своих основных конкурентов, сначала над Digital Research DOS, а затем и над IBM OS/2. Это позволило изменить правила игры. На смену эпохе романтики с ее легендарными молодыми мультимиллионерами, сделавшими состояния всего за несколько лет несколькими правильно выбранными решениями, пришла, как не раз случалось в истории, необходимость, превращающая саму веру в наличие выбора в наивность, несовместимую с успехом. Здесь уместен анекдот. Вопрос: "Сколько сотрудников Microsoft нужно для смены перегоревшей лампы?" Ответ: "Ни одного, Microsoft стандартизирует темноту в таких случаях!"
Но диалектика истории не терпит окончательных ответов. DOS все же имеет ряд привлекательных особенностей - пусть и для небольшой категории пользователей PC.
Главная сила DOS - в ее тесном переплетении с аппаратурой. MS Windows и (в меньшей степени) различные вариации Unix возвышаются над "железом" и часто препятствуют прямой работе с ним, что неудобно, скажем, для радиолюбителя, не желающего при подключении своего устройства к компьютеру разбираться в тонкостях многоэтажных и меняющихся от версии к версии программных интерфейсов. DOS же провоцирует взаимодействие с аппаратными средствами напрямую, что создает своеобразную и неповторимую атмосферу программирования, особенно при использовании ассемблера. В Windows и Linux программировать на ассемблере практически невозможно, как по психологическим, так и по практическим причинам (в Linux, например, стандартный ассемблер имеет ни на что не похожий синтаксис AT&T; кроме того, существует проблема отладки).
Легкий доступ к "железу" позволяет запросто работать с дисками на секторном уровне - а значит, единообразно организовывать резервное копирование разделов независимо от типов их форматирования. Посекторная технология сможет "общаться" даже с форматами, которые появятся когда-нибудь в будущем.
Кроме того, теоретически DOS еще долго будет находить применение в дешевых решениях при создании электронных микропроцессорных систем - ее варианты, DR-DOS и PTS-DOS, имеют ROM-версии.
Требования к аппаратуре для запуска DOS минимальны, эта система работает на любом PC. Что дает любопытную возможность: если распространять какую-то программу на диске вместе с DOS, то эту программу можно использовать на любом компьютере с дисководом, независимо от установленной ОС.
Для DOS существуют десятки (если не сотни) тысяч программ. Полных аналогов некоторых из них в других ОС нет и, возможно, никогда не будет. В последние годы стали свободно доступны некоторые превосходные программы, среди которых компиляторы Watcom C/C++/Fortran, известные высоким качеством генерируемых кодов, Borland Turbo C, Free Pascal, полностью совместимый с Borland Pascal и частично с Delphi, отличный быстро развивающийся макроассемблер FASM (качество генерируемых им кодов выше, чем у некоторых известных коммерческих ассемблеров), интернет-браузер Arachne. А благодаря системе DJ Delorie для DOS доступны практически все базовые средства Linux (gcc, g++, gdb, bash, grep и др.).
DOS является весьма любопытным "артефактом" - с нею работали сотни миллионов людей. И в этом качестве ее ценность для "цифровых археологов" с каждым годом будет расти.
Наконец, DOS можно использовать как базовую платформу для разработки еще одной системы, альтернативной Microsoft Windows!
Все перечисленные сферы применения весьма узки и вряд ли могут обеспечить этой ОС окупаемое существование: коммерческие проекты второй половины 90-х c упомянутыми DR- и PTS-DOS, как и с другими, менее значимыми альтернативами MS-DOS, провалились. Остается лишь гадать, а окупалась бы DOS, если б Microsoft так демонстративно не отказалась от ее поддержки?
Хотя IBM до недавнего времени продолжала распространять PC-DOS 2000 на коммерческих условиях (за $60), очевидно, что только бесплатная или условно бесплатная DOS имеет шанс быть востребованной еще некоторое время небольшими сообществами пользователей. Сегодня DR-DOS и PTS-DOS распространяются на условиях, близких к shareware, а FreeDOS - по лицензии GNU, - и эти операционки заслуживают того, чтобы рассказать о них подробнее.
Судьбы Гарри Килдолла (Gary Kildall) и Билла Гейтса таинственным образом связаны. Килдолл написал в 1973 году первую "ДОС" для ПК - CP/M. А Гейтс в 1974-м - для первого массового ПК Altair - написал Бэйсик, который до конца 80-х для многих компьютеров являлся также и ОС. В дальнейшем CP/M стала широко использоваться на всех компьютерах, построенных на совместимых с Intel 8080 процессорах. После появления персоналок на базе Intel 8088 версия CP/M была создана и для него, однако в результате странного стечения обстоятельств IBM для своего компьютера выбрала клон CP/M - MS-DOS. Следующие десять лет компания Digital Research безуспешно пыталась превзойти Microsoft: был предложен многозадачный вариант DOS и графическая оболочка GEM. Массовые PC середины 80-х аппаратно позволяли иметь только жалкое подобие многозадачности, а весьма удачная оболочка GEM, появившись годом раньше первой версии Windows, на несколько лет стала предметом тяжбы с Apple, желавшей иметь монопольные права на использование любых графических интерфейсов. Позже Microsoft, ставшая к тому времени мощной корпорацией, столкнется с аналогичной тяжбой - и здесь Apple уже не сможет задержать развитие потенциально опасного для нее продукта.
После неудачи с MS-DOS 4 в конце 80-х почти все силы Microsoft ушли на Windows, и у Digital Research появился шанс. Система DR-DOS 5 с поддержкой HMA, UMB и 80386 на короткое время смогла стать лидером. Однако выход новой версии Windows, с которой DR-DOS оказалась плохо совместимой, а затем появление MS-DOS 5 все вернули на свои места. Продолжать борьбу дальше Гарри Килдолл не смог - вскоре его компания стала собственностью Novell.
Сетевые технологии Novell были слабее основанных на протоколах TCP/IP Internet, и с 1996 года Novell DOS получила нового хозяина, известную ныне своей скандальной позицией по поводу лицензии GNU фирму Caldera (с 2002-го - SCO Group), а также продержавшееся некоторое время название Open DOS. Caldera безуспешно пыталась судиться с Microsoft, якобы использовавшей в MS-DOS коды CP/M. Сам Килдолл никогда бы не начал подобное дело, поскольку верил, что в рыночных условиях только лучшее качество программирования дарует победу. В 1998 году очередным владельцем DR-DOS стала Lineo, она же Canopy. В 1999 была выпущена версия 7.03 DR-DOS, позволяющая в конфигурационных и командных файлах использовать подпрограммы при помощи команд GOSUB и RETURN. Другими ее особенностями являются система парольной защиты дисков, файлов и каталогов, доступная не только на сетевом уровне, а также поддержка многозадачности. Также эта версия снабжена подробным электронным руководством. В 2004 году уже новый хозин, DeviceLogics, обещал выпустить версию 8 с поддержкой FAT32 и длинных имен файлов. Фирма сдержала обещание: эта версия DR-DOS распространяется с апреля по цене $40. Доступны и ее исходники.
PTS-DOS (Paragon Technology GmbH System Programming DOS) - отечественная разработка. Как и все качественные российские хайтек-продукты, она была создана в околовоенных ведомствах (на нее есть даже сертификат Министерства обороны) и использовалась, в частности, в спутниках серии "Ураган". Первые сведения о ней как о коммерческом продукте появились в середине 90-х, тогда же в ФРГ была создана упомянутая фирма для реализации ОС. В России PTS-DOS занимается организация "Физтех-софт". Это единственная DOS, целиком написанная на ассемблере, что делает ее несколько более быстрой. В ней используется уникальный расширенный синтаксис для аргументов команд, кое в чем превосходящий даже возможности оболочек Linux. Например, команда copy ((*.c,*.h),(*.asm,*.inc)) (a:,b:) копирует все файлы с расширениями C и H на диск A:, а все файлы с расширениями ASM и INC - на диск B:, а команда copy *.txt (a:, d:\temp) копирует все TXT-файлы одновременно и на диск A:, и в каталог TEMP диска D:. Нельзя также не упомянуть об отличной, встроенной в саму DOS системе для загрузки других ОС. PTS-DOS позволяет проводить глубокую оптимизацию системы, предлагая балансировать между наилучшей совместимостью с MS-DOS и максимумом свободных ресурсов. В комплект PTS-DOS входят также полноэкранный отладчик и оригинальный менеджер файлов, слегка похожий на Norton/Volkov Commander. Но во второй половине 90-х, когда коммерческий интерес к любым DOS практически иссяк, все эти достоинства уже мало кого могли заинтересовать. В 2000 году вышла последняя полная версия PTS-DOS. В версии, вышедшей в 2002 году появилась поддержка FAT32 и работы с большими объемами памяти, зато исчезли некоторые полезные утилиты, не приспособленные к упомянутой поддержке.
В июле исполняется десять лет проекту FreeDOS - первому и единственному бесплатному, с открытыми исходниками варианту DOS. Целью FreeDOS изначально была полная совместимость с MS-DOS. Джим Холл (Jim Hall), организатор проекта, среди его достоинств выделяет открытость для разработчиков, совместимость со старой аппаратурой и возможность использования в эмуляторах без проблем, связанных с правами копирования. Этот проект вызвал определенный интерес общественности, что косвенно подтвердило издание в 1996 году книги "The FreeDOS Kernel" о ядре этой системы. Однако до 2001 года работать с FreeDOS могли только разработчики и очень большие энтузиасты - до практической совместимости было далеко.
Последняя версия этой ОС появилась осенью прошлого года. Части FreeDOS (ядро, командный процессор, отдельные драйверы и утилиты) разрабатываются независимо, используя разные трансляторы, и некоторые из них частично дублируют друг друга - что вкупе с отсутствием единого справочного руководства по системе не позволяет назвать инсталляцию этой DOS простой операцией. FreeDOS некоторыми деталями - например, системой подсказок для команд - напоминает Linux.
Все рассмотренные DOS включают в себя стандартный набор средств для работы с файлами и каталогами, менеджеры памяти XMS и HMA, неплохой текстовый редактор, средства локализации, драйверы для CD-ROM- и RAM-дисков, мышки и т. п. Остальные их особенности приведены в таблице1.
Конечно же, рассмотренные системы имеют ряд серьезных недостатков, и вот некоторые из них.
Особая тема - многозадачность. Фактически Microsoft, под видом реализации многозадачности в DOS, изначально создавала совершенно новую ОС, сравнимую с Unix. Работа шла по двум направлениям. Одно, в сотрудничестве с IBM, привело к созданию OS/2, а затем, уже без IBM, - к Windows NT/2000/XP (здесь совместимость с DOS считалась второстепенной задачей). Второе, тупиковое направление начинается с Windows 1 и заканчивается Windows 98/Me. Появление неудобной оболочки DOSSHELL в 1989 году было вызвано, скорее всего, желанием противопоставить что-то соответствующему средству из DR-DOS. В версии MS-DOS, последовавшие за шестой (в то время как раз подешевел 386-й процессор, позволяющий запускать Windows 3.1x), эту оболочку уже не включали. Некоторые программы, например Quarterdeck DESQview, позволяют довольно качественно вносить многозадачность в любые DOS.
MS-DOS | DR-DOS | PTS-DOS | FreeDOS | |
FAT32 | + | - | + | + |
Драйвер EMS, UMB | ++ | ++ | - | + |
Драйвер DPMI, DPMS | - | + | - | - |
Дисковый кэш | + | + | - | - |
Дефрагментатор диска | + | + | - | + |
Драйвер сжатия диска | + | + | - | - |
Сетевые драйверы | - | + | - | - |
Отладчик для... | i8086 | Pentium | i80286 | Pentium |
Информация о системе | + | - | - | - |
Имя файла конфигурации | config.sys | dconfig.sys | config.pts | fdconfig.sys |
Меню выбора конфигурации | +++ | + | ++ | + |
Стандартное имя файла автозапуска | autoexec.bat | autodos7.bat | autopts.bat | fdauto.bat |
Системные файлы | io.sys msdos.sys |
ibmbio.sys ibmdos.sys security.bin |
ptsdos.sys | kernel.sys |
(В таблице приводятся данные по MS-DOS 7.1 для Windows 98/Me. Официально последней версией этой ОС стала версия 6.22 от 1994 г., но MS-DOS версий 7.x существует вместе с Windows 95/98/Me - ее можно отделять от GUI и использовать самостоятельно).
Итак, получается, что лучшей DOS в целом по-прежнему остается "умертвляемая" MS-DOS (хотя, возможно, "параллельная" PC-DOS и не хуже). В 1994 году Мич Капор (Mitch Kapor), основатель Lotus, сказал: "Microsoft победила, и теперь индустрия программирования превратилась в царство мертвых". Билл Гейтс на это эмоциональное замечание политкорректно ответил, что эти слова, видимо, были вырваны из контекста, а Мича, который был весьма полезен Microsoft, он уважает и дружит с ним не один год, несмотря на некоторые разногласия. Конечно, трудно представить современный мир без лучших в своем роде Windows XP, Word, Excel и пр., но в этом же мире появилась и такая вот шутка: "In a world without walls and fences - who needs windows and gates?"
Кстати, хотя существующие графические интерфейсы идеальны для большинства новичков и тех, кто использует компьютер лишь от случая к случаю, однако для людей, интенсивно работающих с компьютерными средствами, они обладают очевидной медлительностью реакции и избыточностью. Выполнять то или иное действие с помощью меню удобно до тех пор, пока его не придется делать часто. Клавиши-акселераторы смягчают, но не снимают проблемы в ситуации, когда возможностей выбора больше, нежели допустимых комбинаций клавиш; кроме того, для этих комбинаций встает проблема стандартизованности и мнемоничности. Что касается избыточности - представьте себе телевизор, до четверти экрана которого постоянно занимает информация о громкости, о текущей программе, о том, как переключиться на другую программу, и т. п. В общем, для сложных взаимодействий интерфейс с командной строкой почти оптимален.
В современных, чем-то похожих на предкризисные, реалиях, когда быстродействие и надежность компьютера во многом зависят от мощности и количества вентиляторов, когда разница между новой и старой версиями программы зачастую понятна только специалистам, когда потребителям навязываются весьма спорные технологии, когда законы о правах копирования доводятся почти до абсурда, когда предлагают отказаться от законов логики, чтобы слушать сказки о "квантовых вычислителях", возникает риторический вопрос: "И стоило так спешить?" На который веками и народом был выкован ответ: "А куда деваться?!" Переходя на французский - C’est la vie.