В полку компактных операционных систем прибыло. Команда Mean Hamster решила сделать полноценную 32-битную ОС с нормальной графической оболочкой, кучей софта и поддержкой запуска многих DOS-приложений — и все это влезло на обычную дискету объемом 1,44 МБ. Ориентирована она на 386-е и 486-е машины, ОС уже почти готова и должна выйти в ноябре 2026 года. На днях разработчики раскрыли новые подробности проекта. Давайте посмотрим, что у них получилось.
Что это за ОС и как работает
Старт сделан через урезанный FreeDOS. Это сразу дает совместимость с кучей старых инструментов и упрощает создание загрузочной дискеты. Потом в дело вступает свой загрузчик HAMLOAD.EXE — он переключает процессор в защищенный режим и отдает управление ядру HamsterOS. По сути, FreeDOS помогает на первых секундах, а потом система уходит в свой мир.
После загрузки открывается привычный графический рабочий стол. Есть иконки дисков, верхнее меню, нижняя панель запуска и обычные окна, с которыми можно работать мышью. Поддерживаются как PS/2-, так и COM-манипуляторы, поэтому система без проблем запускается на большинстве совместимых компьютеров 80-х и 90-х. По современным меркам интерфейс очень минималистичный, но выглядит на удивление функционально.
В комплекте куча приложений. Текстовый редактор с отменой, поиском и статистикой. Простой Paint для 16 цветов. Калькулятор, часы, календарь. Даже пианино — либо через Sound Blaster 16 с FM-синтезом, либо через пищалку. Игры — FreeCell, Сапёр, Змейка и еще пара штук. Файловый менеджер с несколькими окнами, иконками, корзиной и возможностью таскать значки по столу.
Есть еще утилиты для посекторного копирования дискет, быстрого форматирования и даже диагностики SCSI-контроллеров на ISA. На практике это очень удобно, когда работаешь с парком винтажных машин и USB или сеть — не всегда вариант.
Оконный менеджер обычный: окна двигаются, меняют размер, перекрывают друг друга, но при этом перерисовывается только то, что реально изменилось. Когда окно выходит вперед или закрывает другое, система обновляет только модифицированную область. На 386-м это дает заметный выигрыш — меньше нагрузка на процессор и видеокарту.
Шрифтов мало — несколько растровых гарнитур в паре размеров. Зато они общие для всей системы и приложений. Меню классическое, с клавиатурными сокращениями. Есть диалог запуска, где можно вбить путь и к своей программе. Заставки простые, но приятные — звезды или летающие хомяки. Это и понятно, вы же не ожидали в ОС с таким названием увидеть кошек или там драконов?
Чтобы система не расстраивала пользователя при сбоях, разработчики добавили несколько защитных механизмов. Если она три раза подряд не загрузится, в CMOS запишется счетчик, и при следующем запуске HamsterOS автоматически перейдет в безопасный VGA-режим. Если система зависнет больше чем на восемь секунд — появится предупреждение. Для старого железа такие мелочи оказываются очень полезными.
В HamsterOS встроена среда для запуска DOS-программ. Многие старые .COM и .EXE можно открыть прямо из графической оболочки, не выходя в DOS и не перезагружая компьютер. Если какая-то программа окажется несовместимой, ее можно запустить через FreeDOS. Получается удобный гибрид: современная графическая оболочка с возможностью пользоваться привычным DOS-софтом.
Установка на жесткий диск тоже есть. Из меню можно разметить чистый ATA-диск, отформатировать первый раздел в FAT16, скопировать файлы и сделать винт загрузочным. После этого C остается обычным DOS-томом, но его можно настроить так, чтобы при включении сразу стартовала HamsterOS.
Как и почему все влезло в 1,44 МБ
Главный прием — кооперативная многозадачность. Разработчики не стали делать полноценный вытесняющий планировщик со стеками на каждую задачу. Вместо этого программы сами время от времени отдают управление главному циклу событий. Получается меньше памяти тратится, код проще, а во время чтения с медленной дискеты интерфейс не виснет.
Про графику мы уже говорили выше. Плюс по умолчанию стоит 16-цветный VGA-режим — он быстрый, универсальный и ему не нужно много ресурсов. Такой подход заметно снижает нагрузку на процессор и видеопамять, поэтому даже несколько открытых окон не создают серьезных проблем для 386-х и 486-х машин.
С файловой системой все тоже довольно просто. Драйвер FAT умеет читать и писать с проверкой, но экономно — за счет ограниченных просмотров каталогов. При достаточном объеме памяти сразу поднимается RAM-диск, чтобы меньше дергать флоппик.
Драйверы писали под конкретное железо. Sound Blaster 16 проверяет короткий список портов, мышь — PS/2 или COM. Внешние драйверы можно будет подкидывать позже при необходимости, базовый образ уже содержит нужное для типичной машины тех лет. Это избавляет от огромного слоя универсального кода, который обычно и раздувает систему.
Формат приложений свой и простой — .APP. Загружается быстро, без лишних прослоек. Данные — справка, картинки — тоже в компактных форматах. Общий буфер обмена и шрифты уменьшают дублирование. В результате ядро + оболочка + куча программ + игры + драйверы + все ресурсы реально уложились в объем дискеты.
Зачем такие проекты нужны в 2026 году
Сейчас многие собирают и ремонтируют 386-е и 486-е машины, чтобы запускать старые игры и программы, но использовать чистый DOS неудобно — нет нормального файлового менеджера, многозадачности, крайне урезанная поддержка оборудования. В HamsterOS есть графическая оболочка, которая при этом остается легкой и совместимой. Загружается с одной дискеты, можно даже на машине без рабочего жесткого диска.
Еще один момент — образовательный и ностальгический. Можно показать человеку, который вырос на Windows 10 или там Ubuntu, что на железе тридцатилетней давности реально работал полноценный стол со звуком, мышкой и несколькими окнами — грамотные инженерные решения позволяют выжимать максимум из существующих ресурсов. В современных проектах такого уже почти не встретишь, ОС сегодня — это монстры, в которых порой сложно разобраться целой команде. Загрузка за несколько секунд, работа на машине с 4–8 МБ памяти кажется сегодня магией. Но нет, все вполне реально.
Не все решения HamsterOS остались в девяностых. Выборочную перерисовку экрана до сих пор используют в современных графических оболочках. Кооперативная многозадачность выглядит устаревшей, но в небольших системах она все еще позволяет обойтись без сложного планировщика и дополнительных затрат. Поэтому подобные идеи продолжают жить. Например, в прошивках сетевого оборудования, медицинской и промышленной электронике, а также в компактных загрузочных и диагностических системах.
А еще за счет небольшой и самодостаточной кодовой базы можно проследить, как все работает — от загрузчика до графической оболочки.
Другие компактные ОС
KolibriOS — форк MenuetOS, который вышел в начале двухтысячных. На чистом ассемблере x86 сделали полноценный десктоп и уместили его на дискету. После форка в 2004-м проект пошел своим путем: добавили сеть, больше драйверов, веб-браузер, десятки игр. Система 32-битная, требует i586 и минимум около 8 МБ памяти, загружается очень быстро даже с физической дискеты.
В отличие от HamsterOS, KolibriOS использует вытесняющую многозадачность и сильнее заточена под сеть. Код открытый, поэтому можно посмотреть, как там устроен планировщик и графическая часть. Сообщество до сих пор развивается — выходят новые пакеты и исправления, а образ все так же влезает на дискету, хотя многие уже предпочитают запуск с USB или CD.
MenuetOS был первым в этом направлении. Ville Turjanmaa еще в конце девяностых–начале нулевых сделал оконную систему на ассемблере, которая реально работала на слабом железе. Позже появилась 64-битная версия, но именно ранние 32-битные сборки вдохновили на целую волну компактных проектов.
Еще есть Tiny Core Linux, где тоже стараются держать размер маленьким, но уже не в пределах дискеты и на более современном железе. Но это уже совсем другой подход — Linux, который максимально обрезали.
В целом, полностью самописные системы вроде HamsterOS или KolibriOS дают больше свободы в архитектуре и позволяют свести к минимуму накладные расходы. Если у вас есть опыт работы с подобными ОС — пишите в комментариях!
ссылка на оригинал статьи https://habr.com/ru/articles/1056360/