[Перевод] Old School: один день работы в DOS

bfc5-i-0v7o9jukrvsvckl-etgq.png

Обновление от 5 июля, 2021 года: по случаю празднования 4 июля у нас в США сегодня выходной, и у сотрудников Ars есть возможность успеть на летнюю распродажу Steam (или просто отдохнуть). В связи с этим мы достали из архивов редакции Ars несколько старых проектов, включая и этот в некотором смысле мазохистский эксперимент.

Еще в 2014 году почетный редактор Ars Шон Галлахер решил отметить 20 лет с момента окончания жизни MS-DOS и поработать в этой операционной системе в современных условиях. Получилось это…почти так же гладко, как можно было предположить.

Сегодня, спустя 27 лет после того, как в Microsoft объявили о завершении поддержки MS-DOS, мы решили освежить в памяти его опыт (и очень ценим современные возможности, поскольку теперь все работаем из дома немного больше). Датируется эта история 3 июля 2014 года и ниже передана в своем исходном виде.

Двадцать лет назад, когда в Microsoft сообщили, что заканчивают поддержку MS-DOS, Джеймс Холл заявил миру, что намерен создать версию этой ОС, которая станет всеобщим достоянием, с целью сохранить вселенную символьно-ориентированного программного обеспечения DOS. В конечном итоге проект Холла, изначально названный «PD-DOS», получил имя FreeDOS и на сегодня поддерживает экосистему разработчиков, ретро-геймеров и приверженных консерваторов, которые откажутся от WordStar только, когда вы вырвете дискеты из их мертвых окоченелых пальцев.

В честь двадцатилетия проекта (а также тех храбрых душ, которые и по сей день поддерживают очаг жизни DOS) я решил провести день во FreeDOS. Я настроил машину на работу с последним дистрибутивом этой ОС и программным обеспечением из репозиториев FreeDOS Package Manager. После я добавил и другое ПО, которое смог собрать из разных уголков сети — программы с открытым исходным кодом, бесплатные программы и те, которые больше не поддерживаются разработчиками, а также кое-что, любезно предоставленное Ли Хатчинсоном из его личной коллекции ПО для DOS. Мне хотелось узнать, возможно ли выполнять современную завязанную на интернете работу в DOS, и насколько болезненным это может оказаться.

Вскоре мой ПК стал словно из 1994 — в нем не было Twitter, Google и всего, что бы использовало SSL, но при этом присутствовали инструменты командной строки TCP/IP, функциональный по остальным возможностям браузер и…Gopher. Помимо этого, я установил WordPerfect 5, Microsoft Word 5, WordStar, Lotus 123 и dBase III — все, о чем можно было мечтать, не так ли?

Почему FreeDOS?


Linux тоже бесплатен, и я бы предпочел провести день за стареньким ноутбуком с Debian или Ubuntu, чем работать из командной строки DOS. Но в аскетичности и строгости DOS есть некая безумная красота — к тому, же это операционная система, которая способна загружаться с дискеты и не потея работать на 640Кб памяти (хотя она может и выходить за эти рамки при использовании одного из расширителей «верхней памяти» с открытым исходным кодом).

FreeDOS в некоторой степени изменила старую среду DOS. К примеру, в связи с добавлением поддержки FAT32 эта ОС может работать с дисками объемом до 8ТБ. Модуль расширения LFNDOS привносит поддержку длинных имен файлов, появившуюся в Windows 95. При этом благодаря стараниям небольшой армии разработчиков, а также объектам интеллектуальной собственности, созданным на протяжении двадцати лет коммерческой и академической разработки DOS, FreeDOS содержит компиляторы для десятков языков программирования (хотя, насколько я знаю, Java к ним не относится).

В определенный момент FreeDOS стала единственной DOS, поставляемой с ведущими брендами ПК, но заказывать это нужно было отдельно. Dell и Hewlett Packard поставляли FreeDOS с машинам «без операционной системы» в качестве альтернативы предварительно настроенной Windows, что стало популярной опцией для дешевых ПК, особенно в Азии в конце последнего десятилетия. Эта ОС по-прежнему числится на сайтах Dell и HP, хотя варианта заказать с ней новенький ПК через онлайн-магазины этих компаний больше нет.

Но несмотря на то, что FreeDOS уходит в забытие, у нее до сих пор есть активное сообщество пользователей. Ее все еще используют в качестве легковесной ОС для «загрузочных дискет», необходимых для запусков сети, установки или исправления других ОС, а также обновления прошивок. Помимо этого, в связи с низким потреблением оперативной памяти и памяти хранилища, FreeDOS активно применяют в мире виртуальных машин (VM), где существуют готовые образы для различных десктопных и серверных VM-сред.

Однако, как это было всегда, для правильного функционирования DOS требуется самостоятельная настройка.

ymce_5soyrljenyuitmpnh5xaoy.png
Веб-браузер под DOS

Настройка DOSтупа в интернет


Официальная текущая версия FreeDOS 1.1 от 2011 года доступна в виде образа Live CD, но в установке по умолчанию недостает многих компонентов, которые вам понадобятся для подключения к интернету 21 века, в том числе сетевых драйверов. К счастью, в доступе имеется еще один CD-образ, содержащий все пакеты репозитория, в том числе пару вариантов сетевых драйверов, которые можно установить с помощью FreeDOS Package Manager (FDNPKG).

Я предпочел установить большую часть библиотек, начиная с Crynwr — бесплатного набора сетевых драйверов, работающего почти со всеми стандартными сетевыми картами из эпохи DOS. Многие приложения DOS, использующие TCP/IP, вместо системного драйвера используют TCP библиотеку. Во FreeDOS есть две таких библиотеки, совместимые с Crynwr: mTCP, до сих пор поддерживаемая и сопровождаемая набором утилит (включая клиента IRC), а также почтенная Waterloo TCP (WATTCP), выпущенная в начале 90-х. mTCP даже использовалась для создания веб-сервера — ее домашняя страница размещалась на IBM PCjr.

Также можно найти драйвера формата «terminate and stay resident» (завершиться и остаться резидентной) для TCP и других сетей, которые потребуются для предоставления общего сетевого доступа к файлам. Но для того, чтобы заставить их работать, придется раздобыть все составляющие компоненты, так как большинство их них были коммерческими и теперь не поддерживаются. К счастью, некоторые пользователи с форумов VirtualBox уже проделали в этом направлении немало работы. Я же выбрал альтернативный путь: запустил FTP на своем хосте с Mac OS X и использовал FTP-клиента для передачи файлов клиенту DOS. Это позволило достаточно быстро пополнить свой инструментарий на день работы с DOS.

Территория «заброшенного» ПО


Еще мне потребовалось программное обеспечение для создания контента. Будь я настолько заинтересован, то мог бы отказаться от роскоши текстового процессора и просто использовать утилиту EDIT.EXE или один из многих портированных открытых инструментов для работы с текстом. Если же вы ищете нечто более напоминающее опыт работы в современном Office, то можно воспользоваться бесплатным Microsoft Word 5.5 для DOS.

Еще до того, как Microsoft победила в битвах за десктоп, у текстовых процессоров были свои приверженцы. По некоторым данным, Джордж Р.Р. Мартин до сих пор использует WordStar, с которым я недолго поработал в середине 80-х — он шел в комплекте с моим Kaypro PC. Однако меня не интересовало ничего, кроме гармоничного предустановленного темно-синего цвета WordPerfect 5. На моей сетчатке до сих пор остался выжженый некогда шаблон его функциональных клавиш. Хорошо, что у Ли Хатчинсона осталась копия этой программы.

Следующим шел выбор электронной таблицы. Использовать Lotus 1–2–3 или VisiCalc? Оба варианта бесплатно доступны в сети. Исполняемая версия VisiCalc, которую ее разработчик, Дэн Бриклин, разместил онлайн, представляет оригинальную версию с IBM PC, разработанную еще в 1981 году. Ее пользовательский интерфейс несколько упрощен, но с учетом того, что весит файл всего 27.5 Кб — то есть меньше, чем документ Word, который я создал для написания данной статьи — это можно счесть за образец элегантности. Распечаткой документов я больше практически не занимаюсь, поэтому поиском драйверов для принтера озадачиваться не стал.

К сожалению, отправить кому-нибудь документ в родном формате этих электронных таблиц — все равно, что отправить свитки Мертвого моря, если только у получателя не установлен Apache OpenOffice, в случае чего можно послать ему файл .WK1 из Lotus 1–2–3.

В завершении комплектации своего набора ПО я нашел .ZIP файл dBase III Эштона Тэйта и собрал быструю базу данных контактов. Мой внутренний Clipper-программист снова был счастлив.

nt0nsbgvogbj91o24jhuk-4knjq.png
WordStar, любимый текстовый процессор Джорджа Р.Р. Мартина, также отлично работает во FreeDOS. Однако предустановленные цвета экрана заставляют мои глаза плакать кровью

Интернет 1994 года


Но суть в том, что я работаю на сайте, в связи с чем оставался вопрос относительно использования интернета из DOS.

Да, существует веб-браузер на базе DOS, который все еще разрабатывается и при этом является открытым. Речь об Arachne. Последний раз он обновлялся год назад и находится под лицензией GPL. Arachne представляет собой графический браузер с собственным встроенным TCP/IP стеком и поддержкой SLIP/PPP (для тех, кто до сих пор живет в мире телефонных соединений). В нем даже есть встроенный почтовый клиент POP/SMTP, пусть даже весьма примитивный.

Arachne стабилен, но его трудно настроить в соответствии с требованиями современного веб-пространства. Например, в нем нет поддержки HTTPS, в следствии чего Google, Twitter, Yahoo и все сайты, перешедшие после скандала со Сноуденом на SSL-шифрование, оказываются недоступны. (Спасибо Биллу, что все еще есть Bing, не так ли?) Кроме того, он поддерживает только самые базовые таблицы стилей CSS, из-за чего современные сайты выглядят не столь современно. И несмотря на то, что почтовый клиент работает, прикрепление к письмам файлов требует некоторых стараний.

Я также попробовал Dillo, еще один открытый браузер, основанный на кроссплатформенной библиотеке GUI под названием FLTK, и функционирующий подобно Mozilla 4.0. Взаимодействие с FLTK напоминает взаимодействие с Windows 2.0. Мне удалось заставить его работать с Google (после отключения скачивания изображений), но поддержка мыши оказалась неустойчивой. При этом во время загрузки страниц он несколько раз падал и давал сбой.

Помучившись с Arachne, я нашел более надежного почтового клиента FlMail, основанного на той же библиотеке FLTK. FlMail поддерживает SSL, а также работает с Gmail и другими службами сетевой почты, поддерживающими POP и SMTP. Однако, находясь в почтовом ящике, я по ошибке кликнул сообщение в формате HTML, и FlMail вошел в цикл «предварительного форматирования страницы», что дало мне повод пойти заварить очередную порцию кофе.

Попробовав позднее отправить сообщение с прикрепленным черновиком этой статьи, я столкнулся с тем же самым, после чего обнаружилось, что отправка провалилась. В итоге я решил вернуться к Arachne.

Игры, написание кода и радость возвращения в «сегодня»


Я попытался поделиться своими мучениями в Twitter. Печально, но клиента Twitter для DOS не существует. Когда я попробовал отправить твит из командной строки при помощи WGET, Twitter.com не смог разрешиться — мне не удалось выяснить, какой сетевой стек он должен использовать, поэтому я просто написал себе напоминание в заметке Post-It.

Вскоре я уже испытывал синдром отмены копипаста, и настало время передохнуть. Тогда я начал разбирать скачанные заранее игры. Одно из предлагаемых FreeDOS развлечений для геймеров — это его коллекция эмуляторов. Существуют десятки DOS-версий классических консолей, включая NES, Gameboy и Atari 800.

У меня также был бесплатный мод DOOM под названием FREEDOOM, и некоторое время я провел за исследованием пиксельного ада, расстреливая монстров. Еще было две версии Тетриса и сайд-скроллинг в стиле Марио под именем HappyLand, в котором я…честно говоря, не знал, что делать. Клон Space Invaders под DOS вел к сбою системы при каждой моей попытке его загрузить.

Напрудив лужу VGA-крови, я переключился на инструменты разработчика. GNU Compiler Collection была портирована на FreeDOS в виде платформы DJGPP. Она позволяет создавать 32-битные программы, запускаемые из DOS, а в марте 2012 претерпела обновление, получив в дополнение к C, C++ и Fortran язык программирования Go. Эта платформа также включает интегрированную среду разработки RHIDE. Есть еще пара десятков других бесплатных компиляторов и сред выполнения, включая выпущенные в начале этого года для языка FORTH.

Конечно же, разработчикам доступно много разного ПО, поддержка которого давно прекратилась. Чисто из чувства ностальгии я скачал Turbo Pascal и Harbour, открытый компилятор для Clipper. Как только я отлажу свое приложение менеджера контактов DOS, так сразу же выложу ссылку на него.

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

Только не просите меня использовать ее каждый день. Пожалуйста.

oug5kh6sjydt9llengsiebnp40w.png

© Habrahabr.ru