История MenuetOS |
|||
Часть первая: Предшественник MenuetOS -MrOS. |
|||
Предшественник MenuetOS -MrOSПредыдущим проектом Вилле Турьянмаа (Ville Mikael Turjanmaa ) была MrFloppyOS (25 тысяч строк на Turbo Pascal 6 и 7, а также использовался NASM для некоторых программ). Её сокращенное название MrOS, причем Mr - сокращение MultiRun, точнее MultiRun Program for IBM-PC. Есть подозрение, что сначала была написана оболочка для ДОСа типа Polit-OS (с названием MRDOS), которая затем превратилась в ОС. Первое основание для подозрения - в начале каждого исполнимого файла *.exe (после небольшого смещения из-за магических чисел) есть надпись This program requires MultiRun(C) -program. http://www.helsinki.fi/~turjanma/mr.html (кстати, в конце файлов есть строчка Curiosity killed the cat - финский юмор). Второе основание - в файле desk.exe из пакета разработчика написано This program requires MultiRun(C) -program. Forget the 'real' world and type MR - N O W ! - это означает, что предлагается перейти в защищенный режим (из ДОСА?). ОС распространялась с исходниками (как обычно, Вилле мало что комментировал, причем значительная часть коментариев и названий переменных на финском). Стандартные *.exe переводились в формат, который понимал MrOS. Начало программы, которая была аналогом example.asm для MrOS Начиналось создание оболочки для DOS где-то в 1993, перерастание в ОС скорее всего в 1997 году. В любом случае, любителям низкоуровневого программирования на Паскале следует взглянуть на нее (заодно и финский выучите). Отрывок кода из программы, создающей инсталлятор MrOS (mrse.pas) В интернете Вилле рекламировал её так: "MrOS. An operating system written as a hobby in Turbo Pascal. Fits on a single floppy disk, runs on most IBM-compatible computers. http://www.jyu.fi/~villemt/mr.html". Начало странички MrOS на сайте Вилле MrOS имел 69 системных функций, причем некоторые из них довольно необычны. Некоторая техническая информация есть на страничке http://www.cc.jyu.fi/~villemt/mrtech.html (ищите в archive.org). Начало странички mrtech.html В последних версиях (c 0.8.6х) была добавлена экспериментальная поддержка формата elf. Примеры приведены на NASM. Одна из страничек этой ОС - http://web.archive.org/web/20010810054655/www.cc.jyu.fi/~villemt/mr.html (кстати, на этой страничке www.cc.jyu.fi/~villemt/mr.html впервые упоминается и Menuet как AsmOS, поэтому она очень важна для истории). MrOS в действии! (полноразмерный скриншот) Кстати, одна из любопытных особенностей GUI приложений - наличие этой кнопки MENU в правом верхнем углу каждого окна - это в самом деле кнопка вызова меню (как правило состоит из одной строчки типа "Close название_программы ", но иногда бывает и до 3 строчек). Необычное интерфейсное решение, которое тем не менее имеет смысл - резко снижается риск случайно закрыть приложение. Вторая необычная вещь в MrOS - это этап загрузки: нет традиционного для MenuetOS синего окна, есть просто строчка, в которой определяется инициализация системы (типа ПАРАМЕТР Ok), затем появляется экран с фоновым рисунком, а внизу экрана идут красивые переливы (Виндозе отдыхает) во время загрузки содержимого дискеты на RAM-диск. С MrOS распространялось довольно много программ, причем некоторые из них не имеют аналогов в Menuet - типа синтезатора пианино и еще нескольких инструментов. Перешли из MrOS в Меnuet логотип (готическая M) и рисунок розы на экране завершения работы. Что меня удивило - это то, что Вилле хотел переименовать MrOS в MenuetOS! В дистрибутиве есть два файла mrhelp.doc и mrhelp.bak. Отличаются они тем, что в mrhelp.bak MrOS заменена на MenuetOS. Содержимое файла mrhelp.bak Хотя есть еще один маловероятный вариант - Вилле переименовал MenuetOS в MrOS. Основание - комментарий с OSNews: Curious about a much earlier Menuet project В марте 2000 года Вилле оставил команду разработчиков MrOS и занялся новым проектом - операционной системой, написанной полностью на ассемблере. Один из активных разработчиков MrOS и ранних версий MenuetOS Jan-Michael Brummer впоследствии решил создать свою ОС - TabOS, которая не подает признаков жизни с 2004 года. |