Привет, Хабр! Это Антон Комаров, автор команды спецпроектов в МТС Диджитал. Сейчас прекрасное время для изучения различных цифровых артефактов, оставшихся от эпохи 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:

Текст лицензии GNU GPL
Текст лицензии GNU GPL

Нажатием Tab смещаем фокус с текста лицензии на кнопку продолжения и нажимаем Enter:

Выбор бинарных файлов для установки
Выбор бинарных файлов для установки

В этом окне по умолчанию будет сказано Nothing. Сместите фокус на раздел Binaries c помощью Tab и выберите из выпадающего меню пункт SEAL 2.00.11. Переходим к следующему экрану:

Выбор директории для установки
Выбор директории для установки

Оставляем по умолчанию директорию для установки Seal, и после непродолжительного извлечения файлов из архива seal2.bar система поздравит вас с успешным завершением установки. Теперь можно вызвать оболочку Seal одноименной командой.

Внешний вид

Загрузочный экран Seal
Загрузочный экран Seal

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

Окно About в оболочке Seal 2
Окно About в оболочке Seal 2

Такое ощущение, что я попал на бенефис Виктора Франкенштейна. Он взял фрагменты ныне умерших операционных систем, соединил их между собой и с помощью хитрого научного метода все это оживил. В Seal 2 заимствованы элементы разных операционных систем. Их даже никто минимально не переделал, а просто выдал за свои.

Иконки взяты из Windows XP. Пиктограммы приложений — из Windows 98 и также Windows XP. Цветные круглые кнопки управления, равно как и полосатая строка с названием окна, — из Mac OS 10.0 (Cheetah). Пожалуй, единственное, что вносит разнообразие, — фиолетовая кнопка для того, чтобы расширить окно на весь экран. Концепция меню Пуск, а также трея были взяты из Windows, а вот их расположение — из Mac OS. Все это кое-как слеплено вместе, создавая внешний вид Seal 2.

Стандартные приложения тут тоже очень похожи на те, которые мы привыкли видеть в Windows XP. Вот, например, Блокнот, который тут назвали SmallDit:

Текстовый редактор SmallDit
Текстовый редактор SmallDit

Я не поверил своим глазам, но разработчики даже попытались реализовать собственный редактор реестра, который служит для тонкой настройки параметров этой оболочки. Из красивых визуальных эффектов тут есть полупрозрачность меню:

Запуск редактора реестра из главного меню
Запуск редактора реестра из главного меню

Внешний вид опять же позаимствован из Windows, а кнопки напоминают таковые из старых версий MacOS. Меню окна нет, равно как и поиска по ранее созданным разделам:

Редактор реестра Seal 2
Редактор реестра Seal 2

Сюрреалистичности происходящему добавляет наличие Панели управления, в которой практически нет параметров для настройки. Щелчок по кнопке Hardware так и вообще приводит к полному вылету приложения:

Панель управления в Seal 2
Панель управления в Seal 2

Но не может же быть все так плохо? Наверняка авторы реализовали что-то свое — подумал я и не ошибся. Для управления файлами был написан простой двухпанельный файловый менеджер, использующий те же горячие клавиши, к которым мы привыкли со времен Norton Commander:

Файловый менеджер Disk Commander в Seal 2
Файловый менеджер Disk Commander в Seal 2

Приложения и многозадачность

Допустим, у нас есть «чудовище» со странным интерфейсом, которое запускается из DOS. Та, в свою очередь, была однозадачной операционной системой, не позволяя использовать одновременно несколько приложений. Такие версии Windows, как 3.11, уже поддерживали многозадачность, изучив опыт операционной системы VMS от легендарной DEC (Digital Equipment Corporation). Оболочка Seal 2 поддерживает вытесняющую многозадачность и только для приложений, созданных именно под нее. Словом, все так же, как и в Windows 3.11:

Несколько нативных приложений для Seal 2 работают одновременно
Несколько нативных приложений для Seal 2 работают одновременно

Тут нужно сразу сделать оговорку. У 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? Жду вас в комментариях.

Комментарии (1)


  1. chernish2
    15.10.2024 14:01

    Я в те времена дальше DesqView не ходил, спасибо, интересно.