Привет, Хабр! Это Антон Комаров, автор команды спецпроектов в МТС Диджитал. Сейчас прекрасное время для изучения различных цифровых артефактов, оставшихся от эпохи MS-DOS. Один из ключевых факторов — доступность. В «Архиве Интернета» лежат тысячи приложений, которые уже давно не используются по назначению, при этом они интересны для исследователей. Мне нравится находить и тестировать те из них, о которых я до этого никогда даже не слышал. Недавно я писал об оболочках DOS, в комментариях вспомнили Seal GUI. Ее я и исследую сегодня.
MS-DOS, как и абсент, редко употребляли в чистом виде. Это была прекрасная основа для приложений и своеобразный холст для творчества. Ведь сделать графический интерфейс для операционной системы, которая изначально его лишена, исключительно интересная творческая задача. Так на свет появился, например, Desktop2 или DOS Navigator, о которых недавно в нашем блоге были посты. Это примеры, когда так или иначе удалось реализовать задуманное и получить внимание пользователей.
Но некоторые графические оболочки, несмотря на заложенные в них идеи, не «выстрелили» по разным причинам. Одной из таких оболочек стала Seal 2 — интересная 32-битная реализация графического интерфейса для DOS. Вышла она достаточно поздно, но это позволило ей заимствовать многие графические элементы, которые на тот момент смотрелись современными. Давайте посмотрим, как она выглядела, используя эмулятор старого ПК.
Установка
Сначала я поставил MS-DOS версии 6.22 с драйверами для мыши и поддержкой оптического привода. Для простоты просто создал новый ISO-образ через AnyBurn и закинул туда все установочные файлы Seal 2. Потом полученный образ смонтировал в виртуальный CD-привод и запустил файл install.exe. Установщик нас встречает текстом лицензии GNU GPL:
Нажатием Tab смещаем фокус с текста лицензии на кнопку продолжения и нажимаем Enter:
В этом окне по умолчанию будет сказано Nothing. Сместите фокус на раздел Binaries c помощью Tab и выберите из выпадающего меню пункт SEAL 2.00.11. Переходим к следующему экрану:
Оставляем по умолчанию директорию для установки Seal, и после непродолжительного извлечения файлов из архива seal2.bar система поздравит вас с успешным завершением установки. Теперь можно вызвать оболочку Seal одноименной командой.
Внешний вид
Первое, что видит пользователь, запускающий оболочку, вот такой экран со стилизованным статус-баром снизу. После того как все 13 элементов будут закрашены оранжевым, надо подождать несколько секунд, и откроется рабочий стол:
Такое ощущение, что я попал на бенефис Виктора Франкенштейна. Он взял фрагменты ныне умерших операционных систем, соединил их между собой и с помощью хитрого научного метода все это оживил. В Seal 2 заимствованы элементы разных операционных систем. Их даже никто минимально не переделал, а просто выдал за свои.
Иконки взяты из Windows XP. Пиктограммы приложений — из Windows 98 и также Windows XP. Цветные круглые кнопки управления, равно как и полосатая строка с названием окна, — из Mac OS 10.0 (Cheetah). Пожалуй, единственное, что вносит разнообразие, — фиолетовая кнопка для того, чтобы расширить окно на весь экран. Концепция меню Пуск, а также трея были взяты из Windows, а вот их расположение — из Mac OS. Все это кое-как слеплено вместе, создавая внешний вид Seal 2.
Стандартные приложения тут тоже очень похожи на те, которые мы привыкли видеть в Windows XP. Вот, например, Блокнот, который тут назвали SmallDit:
Я не поверил своим глазам, но разработчики даже попытались реализовать собственный редактор реестра, который служит для тонкой настройки параметров этой оболочки. Из красивых визуальных эффектов тут есть полупрозрачность меню:
Внешний вид опять же позаимствован из Windows, а кнопки напоминают таковые из старых версий MacOS. Меню окна нет, равно как и поиска по ранее созданным разделам:
Сюрреалистичности происходящему добавляет наличие Панели управления, в которой практически нет параметров для настройки. Щелчок по кнопке Hardware так и вообще приводит к полному вылету приложения:
Но не может же быть все так плохо? Наверняка авторы реализовали что-то свое — подумал я и не ошибся. Для управления файлами был написан простой двухпанельный файловый менеджер, использующий те же горячие клавиши, к которым мы привыкли со времен Norton Commander:
Приложения и многозадачность
Допустим, у нас есть «чудовище» со странным интерфейсом, которое запускается из DOS. Та, в свою очередь, была однозадачной операционной системой, не позволяя использовать одновременно несколько приложений. Такие версии Windows, как 3.11, уже поддерживали многозадачность, изучив опыт операционной системы VMS от легендарной DEC (Digital Equipment Corporation). Оболочка Seal 2 поддерживает вытесняющую многозадачность и только для приложений, созданных именно под нее. Словом, все так же, как и в Windows 3.11:
Тут нужно сразу сделать оговорку. У Seal 2 не было бинарной совместимости с приложениями, созданными под Windows. У нее была собственная, очень простая реализация API, имевшая на порядки меньше функций, чем WinAPI. Собирать приложения предполагалось при помощи gcc, причем довольно старых версий (<3.0). Таким образом, выбор программ был крайне скудным, а если запускать софт для DOS, то тут же терялась вся прелесть простенькой, но все же многозадачности.
Опять же сложно представить целевую аудиторию, которая бы стала такой оболочкой пользоваться. На момент ее выхода DOS практически исчез из поля зрения, а современная Windows XP поддерживала практически все приложения, разработанные для предыдущих версий ОС этого семейства. Конечно, можно сказать, что это давало возможность пользователям старых компьютеров использовать графический интерфейс. Но даже в этом случае Windows 3.11 была бы лучшим вариантом, обладая несравнимо большим количеством поддерживаемых приложений.
Красиво, но сомнительно
Перед тем как писать эту небольшую статью, я был воодушевлен. 32-битная оболочка для DOS, да еще и с открытым исходным кодом, — это должно было быть интересно. Но чем дольше я ковырялся в ней, тем больше она напоминала мне детскую игрушку-пустышку. Она яркая и отлично привлекает внимание, напоминая конфету. Вот только никакого вкуса в ней нет, точно так же как, и в Seal 2.
Эту оболочку, пожалуй, можно было бы сравнить с ReactOS. Но если разработчики последней прилагают массу усилий для обеспечения совместимости с уже созданными приложениями, то в Seal 2 на это просто забили. Это все равно, что если бы вам вместо ужина предложили замороженный полуфабрикат, который потребует немало времени для приготовления.
С одной стороны, такой подход вполне имеет право на жизнь: люди порой тратят безумное количество неоплачиваемых часов на то, чтобы доработать какой-либо open source продукт и сделать его лучше для каждого пользователя. Но для этого нужно, чтобы сама идея находила отклик среди разработчиков. У Seal 2 не было какой-либо особой идеи, это просто еще одна графическая оболочка под DOS.
Максимальное недоумение вызывает откровенное заимствование элементов дизайна у Microsoft и Apple. Полагаю, что любой юрист бы без труда раскрутил дело о нарушении авторских прав при создании подобного софта. Ну а разработчики, вероятно, получили бы серьезные штрафы. Такой исход событий имел бы шанс, если бы Seal 2 получила хотя бы минимальный успех.
Время все расставило по своим местам. Про DOS сейчас в основном вспоминают фанаты ретро-гейминга и любители старинного железа. Но даже те, кто в свое время активно пользовался графическими оболочками для этой операционной системы, вряд ли назвали бы Seal в первую очередь. Она родилась фактически бесполезной и не заслужила популярности.
Тем не менее кому-то такой концепт вполне может прийтись по душе, и ему захочется продолжить развитие этого проекта. Ну или почерпнуть какие-либо идеи для собственных разработок. Исходный код этой оболочки вы можете найти в репозитории на GitHub.
А вы когда-нибудь пользовались Seal 2? Жду вас в комментариях.
Комментарии (10)
CrashLogger
15.10.2024 14:01Выглядит как студенческая поделка. Если это так - то очень круто. С таким портфолио в начале 2000-х можно было двери в разные компании ногой открывать. Но если это продавалось как коммерческий продукт - то непонятно, кому и зачем.
kenomimi
15.10.2024 14:01Скорее всего, кто-то ради учебы и писал. Там явно указана GPL, но все ресурсы надраны откуда только можно - типичное дело для новичка, который и так заморочен кодом, ему еще картинки не хватало искать фришные где-то без гугла, гитхаба и прочих прелестей современности... Я тоже, когда в школе осваивал VB(A), активно выдирал ресурсы из 98 и ХР - какая к черту разница для учебы-то.
Lord9999
15.10.2024 14:01Почитал source code приложения Калькулятор - большинство имён переменных и функций это смесь английского и словацкого) https://github.com/orudge/seal/blob/master/src/apps/calc.c
bodyawm
15.10.2024 14:01Спасибо, интересно почитать) Хороший слог.
Я в 14 очень интересовался ASCII-интерфейсами, поэтому пилил свою оболочку в text-mode на паскале, собирал FPC, который благодаря смартлинкеру со всем рантаймом помещался даже в один сегмент :)
Если появился что-то диковинное на x86 (необязательно IBM-PC), то может и вернусь к идее запила самопального гуя
chernish2
15.10.2024 14:01Где-то на гитхабе есть порт Turbo Vision на Linux, я пытался пользоваться, но в итоге решил что скрещивать ужа с ежом у авторов порта не очень получилось.
kipar
15.10.2024 14:01Когда я интересовался FreeDOS, он там ставился с диска. Выглядело круто, типа вот какую штуку на досе сделали, не хуже оболочек линукса или винды. Но потом на сайте FreeDOS появился опрос "а для чего вы используете FreeDOS?" и я понял что в общем-то ни для чего.
ave369
15.10.2024 14:01Для DOS была DesqView. Нормальная многозадачность для всех программ DOS, кроме использующих экстендеры. Ну да, не красявенькая, TUI, псевдографические окна. Зато функциональность на голову выше.
chernish2
Я в те времена дальше DesqView не ходил, спасибо, интересно.