История удивительной операционной системы MenuetOS
![](https://habrastorage.org/webt/35/_i/ge/35_igegn1teqchtzmhpnqpykpsi.jpeg)
Идея разработки миниатюрной ОС с оконным графическим интерфейсом, построенной по принципу «вся система на одной дискете», появилась, наверное, одновременно с этими самыми дискетами. Попытки запихнуть компактную операционнку c GUI на съемные носители предпринимались и в девяностые, и в двухтысячные. Одной из таких попыток, со временем превратившихся в серьезный проект, который дожил до наших дней, стала созданная фактически на голом энтузиазме MenuetOS. Эта система отличается от других подобных «стартапов» и замыслом, и используемыми технологиями, и архитектурой.
Немного истории
Большинство «миниатюрных операционок», появившихся на свет в последние два десятилетия, изначально позиционировались, как любительские или учебные проекты, и потому многие из них оказывались свернутыми прежде, чем успевали «набрать обороты». Другие же со временем перерастали в серьезные разработки, поддерживающие широчайший спектр оборудования и предлагающие пользователям богатый ассортимент прикладного программного обеспечения. Однако практически все подобные продукты имели, пожалуй, одну характерную общую черту: их архитектура в той или иной степени разрабатывалась на основе исходного кода уже существующих операционных систем, поставляемых на условиях универсальной лицензии GPL, то есть, как правило, на ядре GNU/Linux.
Подобный подход, в общем-то, вполне оправдан: зачем изобретать велосипед и пытаться создать нечто принципиально новое с нуля, когда можно просто переработать под собственные потребности готовые компоненты ОС, самостоятельно дописав лишь те элементы системы, которые жизненно необходимы именно для данной ее реализации? В этом случае не только заметно экономится личное время разработчика, но и сохраняется привычное для конечного потребителя окружение, что позволяет ему быстро освоиться с новой системой без необходимости долго и мучительно переучиваться.
Тем не менее, слава талантливого финна Линуса Торвальдса, похоже, все еще не дает покоя многим и многим одаренным программистам. Возможно, именно эта слава подвигла земляка Торвальдса, гражданина Финляндии Вилле Турьянмаа (Ville Turjanmaa) заняться на рубеже тысячелетий разработкой собственной ОС с оконным графическим интерфейсом, исходный код которой он решил написать на 32-битном ассемблере для x86.
![image](https://habrastorage.org/webt/kl/n4/da/kln4dahomgj0lfhl0vuwjjpmy60.jpeg)
Одна из первых версий MenuetOS
По словам самого Турьянмаа, идея родилась в тот момент, когда он заметил, что изначально созданные на C или C++ компоненты Linux, будучи переписаны на ассемблере, приводят к увеличению быстродействия системы в среднем на 10 — 40 процентов. Решив построить принципиально новую платформу, основными критериями для которой являлись бы компактность и быстродействие, Турьянмаа взялся за дело, и уже 16 мая 2000 года он успешно провел «полевые испытания» операционной системы MenuetOS (сокращенно — MeOS), которая тогда была полностью совместима лишь с его собственным домашним компьютером.
Я впервые услышал о разработке «горячего финского парня» Вилле в 2002 году. Без долгих раздумий я скачал с русскоязычной странички проекта http://menuet.narod.ru дистрибутив MeOS, протестировал его, и тут же написал о новинке развернутую статью в журнал «Магия ПК», где в те времена работал заместителем главного редактора. А ОС и впрямь была примечательная, так что рассказать читателям было о чем.
![image](https://habrastorage.org/webt/ca/ym/wx/caymwxsfysubc6zois-dxbicz7c.jpeg)
Так когда-то выглядела MenuetOS — картинка из 2002 года
Несмотря на свои скромные размеры, MeOS оказалась вполне современной 32-битной многозадачной операционной системой с простым и удобным оконным интерфейсом. Она использовала низкоуровневый API, вытесняющую многозадачность, многопоточность и поддерживала файловую систему FAT32. Последнее обстоятельство показалось мне важным достоинством MeOS, поскольку, во-первых, не вынуждало пользователя возиться с какой-либо диковинной разметкой дисковых разделов, а во-вторых, позволяло работать с файлами на компьютерах, где в те времена помимо новомодной Windows XP все еще царили Windows 98 и ME, для которых файловая система FAT32 была роднее некуда.
Скромными оказались и аппаратные требования. Для запуска MeOS был необходим компьютер с процессором не ниже Intel 80386, рекомендовалось наличие 32 Мбайт оперативной памяти (нижний предел — 4 Мбайта), также годилась любая EGA, VGA или SVGA-видеокарта. В случае использования SVGA-адаптера требовалась плата, оснащенная минимум 1 Мбайт видеопамяти и поддерживающая стандарт VESA 1.2, VESA 2.0, или VESA 3, что принципиально позволяло получить на экране изображение разрешением 1280x1024 пиксела. MenuetOS умела работать с жесткими дисками, использующими протокол LBA, распознавала любую модель мыши, совместимой с Microsoft или Logitech Mouse, и подключаемой к COM-порту, либо порту PS/2. А вот с поддержкой USB у MeOS в те времена были сложности. Кроме того, система позволяла слушать музыку, если на машине установлена звуковая карта, совместимая с Sound Blaster 16, и даже позволяла подключить сетевую плату, правда, одного-единственного типа: Realtek 8029 PCI Ethernet Adapter. Неплохо для 2002 года, не так ли?
![image](https://habrastorage.org/webt/iu/6z/-d/iu6z-dbafd8gg4szhb16dyppwlu.jpeg)
Еще один скриншот MenuetOS образца 2002 года
Но, наверное, самым главным достоинством MenuetOS было то, что сам дистрибутив этой чудо-операционки вместе с оконным интерфейсом и базовым набором прикладных программ занимал всего-навсего 1,44 Мбайта. Будучи установлен на дискету 3,5 дюйма, он позволял загружать MeOS непосредственно с дисковода, что автоматически исключало какую бы то ни было необходимость инсталлировать систему на жесткий диск с сопутствующим созданием для нее собственного раздела и настройкой многовариантной загрузки, с чем я в те времена регулярно
![image](https://habrastorage.org/webt/gl/g6/ju/glg6juogkk3hut7h6e7prtubqfa.jpeg)
MenuetOS образца 2002 года — вполне современная по меркам того времени система
Установка
Удивительно, но факт: за минувшие 18 лет процедура установки MeOS не то чтобы кардинально изменилась. Тогда дистрибутив под винду поставлялся в виде исполняемого файла MSETUP.EXE, в котором содержался образ операционной системы. Сейчас файл называется MDW64-1.36.20.EXE (для 64-разрядной версии ОС). Установщик все так же при запуске предлагает вставить чистую дискету в дисковод А:, запустить инсталлятор,
![image](https://habrastorage.org/webt/wx/0h/lh/wx0hlhvc3mibrusxmoyloye7x0q.png)
Так Menuet OS выглядит сейчас
Раньше при первом запуске машины с дискеты MenuetOS предлагала выбрать графический адаптер (начиная с EGA) и подходящий графический режим (начиная с 16 цветов), а для видеокарточек с поддержкой VESA 2.0 требовалось еще вручную указать тип обращения к линейному буферу адаптера (LFB) и тип кеширования MTRR. Сейчас система обходится без всех этих нудных формальностей и просто запускается с наиболее подходящим экранным разрешением. Также раньше операционка заставляла юзера вручную указывать порт, к которому подключена мышь (на выбор предлагался COM1, COM2 или PS/2), но с 2008 года MenuetOS научилась работать с USB и подхватывать мышь «на лету». Прогресс!
Сам образ операционной системы хранился в файле ramdisk, по умолчанию располагающийся на той же дискете, где размещался загрузчик. В качестве небольшого лирического отступления можно заметить, что функционально MeOS позволяла читать ramdisk и с винчестера, однако это никоим образом не избавляло юзера от необходимости использовать загрузочную дискету. Образ виртуального диска считывался либо с самого гибкого диска, либо из раздела FAT32, определяемого в текущей аппаратной конфигурации компьютера в качестве root, то есть из первого раздела нулевого жесткого диска, куда следовало предварительно поместить файл MSETUP.EXE — для этого в процессе загрузки MeOS следовало выбрать режим «Load ramdisk from hd/msetup.exe». В данном случае процесс запуска системы протекал в несколько раз быстрее, а для еще большего удобства умельцы мутили различные варианты загрузчиков, позволявшие запускать MeOS прямо с винта. Некоторые из них вроде бы до сих пор можно найти на menuet.narod.ru. Сейчас опции загрузки образа системы с диска я в настройках MeOS почему-то не нашел.
![image](https://habrastorage.org/webt/fa/vb/ea/favbeas0525qcaybsva5bngzxig.png)
Зато в MenuetOS можно смотреть футбол
Первые версии MenuetOS не умели самостоятельно определять подключенное к компьютеру оборудование, потому после окончания загрузки системы требовалось открыть окно настройки устройств (System → Device Setup) и вручную указать некоторые параметры аппаратной конфигурации персоналки, в частности, тип подключения жестких дисков и привода CD-ROM (master/slave), характеристики звуковой карты (каналы DMA и запрос на прерывание), а также ряд других данных. Сейчас ситуация не сильно изменилась в лучшую сторону: в VirtualBox система не смогла распознать сетевую карту и на машине отсутствовал звук, выставить разрешение выше 800х600 мне тоже не удалось. Впрочем, я не особо и пытался — для тестирования мне вполне хватило дефолтных настроек.
Юзабилити
А вот интерфейс системы за 18 лет сделал огромный шаг вперед
Раньше в MeOS ощущался явный дефицит прикладных программ. Сейчас в комплекте поставки системы имеется браузер, почтовый клиент, простенький текстовый редактор, telnet-клиент, проигрыватель аудио видео-файлов, файловый менеджер, калькулятор, компилятор Ассемблера, графический редактор, просмотрщик картинок и даже TV-тюнер. Под MeOS есть серверы FTP/HTTP/SMTP и клиенты IRC/HTTP/NNTP/TFTP.
![image](https://habrastorage.org/webt/8b/44/bd/8b44bduri5macq8hjuwpbrcgqvo.png)
Штатный текстовый редактор MenuetOS
Еще имеется текстовый редактор, очень похожий на старый добрый Edit в MS-DOS, и крайне простой файловый менеджер, интерфейс которого напоминает плод греховной любви Windows Commander и стандартного File Manager из Windows 3.1.
![image](https://habrastorage.org/webt/lv/fi/7i/lvfi7isqqsp2mk5oam6hoy2hhd0.png)
А это — файловый менеджер
О, еще есть игры! В стандартном комплекте поставки можно найти целых 15 игр, включая шахматы, «Сапера» и «Косынку», а с сайта разработчика можно скачать образ компакт-диска с дополнительным софтом, где есть портированные под MeOS Doom и Quake!
![image](https://habrastorage.org/webt/6q/d0/v4/6qd0v4jqyqi0kevzhqubn0yzf-a.png)
Куда же без игр?
Достоинства и недостатки
Несмотря на внешнюю простоту, MenuetOS есть, чем гордиться. Самые важные достоинства данной ос — ее бесплатность, компактность, быстродействие и нетребовательность к системным ресурсам. Фактически, MeOS можно развернуть на любом ископаемом железе, которое на сайтах объявлений часто отдают «за самовывоз». При этом архитектура ОС не требует даже наличия на компьютере жесткого диска. А при помощи имеющегося в MeOS компилятора Ассемблера можно превратить компьютер в незаменимый «полигон» для обучения детей основам программирования.
Все остальное можно, пожалуй, отнести к недостаткам. Список железа, гарантированно поддерживаемого MenuetOS, пока еще относительно невелик, выбор софта по сравнению с тем же линуксом — скуден, а интерфейс придется по вкусу разве что аскету. Но вместе с тем, этот проект активно развивается — последняя (но не последняя в истории) версия MenuetOS увидела свет 4 октября 2020 года.
Вместо заключения
На основе исходников MenuetOS была разработана операционная система KolibriOS, появившаяся на свет, как форк 32-разрядной версии MeOS. Но со временем она выросла в самостоятельный, независимый и крайне интересный проект. Колибри также написана на fasm, и активно поддерживается комьюнити, благодаря чему имеет собственных поклонников. О данном проекте уже неоднократно писали на Хабре . Но это, как говорят в сказках, уже совсем другая история.
![](https://habrastorage.org/webt/ou/g5/kh/oug5kh6sjydt9llengsiebnp40w.png)
![](https://habrastorage.org/webt/3p/iw/1j/3piw1j3wd_cgmzq9sefgferaumu.png)