Вилле Турьянмаа и MenuetOS -объяснения создателя

Эта статья составлена на основании двух интервью В.Т., материалов его персонального сайта и электронной переписки. Некоторые устаревшие ответы из интервью OSNews выкинуты, так как за 3 года в официальном дистрибутиве так и не появилась поддержка SMP, векторных шрифтов, а сетевой стек уже есть.

Автор: Сергей Кузьмин
http://coolthemes.narod.ru 16 декабря 2004
* - мои комментарии
При копировании ссылка на сайт
http://coolthemes.narod.ru обязательна!

 

О себе

- Могли бы вы немного рассказать о себе?

Меня зовут Ville Mikael Turjanmaa и я разрабатываю MenuetOS. Я родился в марте 1970 в Хельсинки, Финляндия.
Большую часть моей жизни я увлекался двумя вещами - программированием и игрой на музыкальных инструментах. Это отразилось на названии моей ОС.
Я закончил Хельсинский Университет, где половина моих занятий была связана с информатикой (technology/computer science), а вторая половина - с музыкой.

- Как и когда вы заинтересовались компьютерами и программированием на асме?

Я интересуюсь программированием с 1980х. Я начинал с компьютеров Abc80, MikroMikko 1 и 2 фирмы Nokia, а потом был 386. Мои первые эксперименты с ассемблером были примерно в 1990 с 386-м процессором. Сейчас я расматриваю ассемблер как такой же язык программирования, что и любой другой.
Для программиста всегда есть необходимость что-то изучить, и MenuetOS значительно увеличил мои познания. Я надеюсь, что он сделает тоже самое для других людей.


О Менуэт

- Когда вы начали разрабатывать MenuetOS?

Первая версия вышла в середине 2000 года, но первые строчки ОС я начал писать за полгода до этого (* декабрь 1999/февраль 2000?).

- Почему вы дали такое название своей ОС? Что означает Menuet?

В молодости я играл на фортепиано и скрипке, а слово ''Menuet'' обычно используется для классических песен 18 века. Слово Menuet образовано от слов Menu, поскольку использование ОС связано с постоянным выбором чего-то, и от слова Menuet, который означает танец в анлийском и французском языках, так как использование компьютера должно быть простым (* как работа с меню) и забавным(* как танец).

- Что послужило толчком к написанию Menuet? Расскажите вкратце об истории ОС и о ее будущем.

Мне было просто интересно сделать все целиком на ассемблере. Я не видел многозадачных ОС с графическим интерфейсом для x86 до Menuet. Так что это был своего рода вызов. Я хотел просто получить ответ, возможно ли это. Теперь вижу, что возможно :) Основной дистрибутив будет полностью ассемблерным. Есть некоторые планы по переносу основных приложений с С. Планируется также сделать Menuet еще более легким в использовании и развить все преимущества 16М цветового дизайна.

- Что могли бы вы рассказать о своей ОС?

Лично я очень доволен таймингами в планировщике вытесняющей многозадачности Menuet, который в принципе своей работы не изменился с первого дня. Есть некоторые добавления, но основа неизменна. Другой вещью, кроме ассемблера, которая меня побудила начать Menuet, была сложность менеджеров окон (* в Linux ?), тогда как с Menuet очень просто программировать оконные приложения. Просто посмотрите example.asm.

- Вы написали на ассемблере целую ОС. Как Вы думаете, какой выигрыш в скорости Вы получили по сравнению с С или С++?

Когда части Линукса переписываются на ассемблере, скорость возрастает на 10-40%. Отсюда и возникла эта идея.

- Говоря о UNIX''е, есть ли планы по добавлению Posix для облегчения переноса приложений?

Вопрос, конечно, интересный. Если заходит речь о реализации какого-то стандарта, то лучше его реализовывать не внутри ОС, а снаружи. Как это делает, например, Wine с функциями Win32 API.

- То, что Menuet написан на ассемблере, возможно, хорошо для пользователей, но большинство программистов наверняка захотят иметь язык высокого уровня - С или (предпочтительно) С++, чтобы портировать свои программы в эту ОС. Предпринимаются ли какие-то шаги в этом направлении, возможно, порт GCC?

Это дело принципа(* в официальный дистрибутив входят программы только на асме). Портирование программ на Си в Menuet может быть решением проблемы только в краткосрочной перспективе. Но я совсем не уверен, что в долгосрочной перспективе это будет полезно. Тем не менее, тесты мы проводили, программы на Си переносятся и работают. (* порт GCC сделал Jarek Pelczar)

- Оптимизирован ли Menuet под Pentium/PII, MMX и включены ли MTRRs?

Мы сейчас сосредоточены на совместимости. Поэтому, добавление специфичных для того или иного процессора команд не является первостепенной задачей. Но, поскольку Menuet распространяется на условиях GPL, программисты могут делать с кодом все, что им заблагорассудится.

- Как много времени вы работаете на этой ОС?

Первые два года я программировал каждый день, тогда было необходимо закончить много базовых элементов типа оконного интерфейса, управления процессами, поточности, системных фукций и т.п. Потом я слегка отстранился и моя роль заключалась в помощи другим разбираться в Menuet. Я все еще программирую для неё, но теперь я имею больше гибкости.

- Сколько часов в неделю вы работаете?

Программирование как таковое занимает примерно один час в день, но оно сильно зависит от значимости проблем, над которыми я работаю.

-Как много людей вовлечено в этот проект?

Количество меняется, но в последнее время оно растет. В целом, больше 40 людей содействуют тем или иным способом (* интервью было в начале 2003 года).

- Можно ли установить Menuet на жесткий диск? Ведется ли какая-то работа в этом направлении?

Текущий дистрибутив помещается на одной дискете и я планирую в этом смысле базовую систему оставить как есть. При таком подходе практически кто угодно может легко попробовать Menuet, не занимаясь переразбиением жесткого диска. Но сама по себе загрузка с жесткого диска при желании может быть сделана. И это не слишком большая работа.

- Какие устройства Вы планируете поддерживать в первую очередь?

Сеть, TV/радио и т.д. Menuet сейчас поддерживает функции драйверов в адресном пространстве пользователя, это может ускорить разработку драйверов для любых устройств. Вам не обязательно даже трогать ядро, чтобы подключить Ваше любимое устройство. Вся разработка драйверов может делаться внутри самого Menuet с помощью FASM, который очень эффективен.

- Какие у вас планы на будущее MenuetOS?

Пока нет глобальных планов, хотя мне нравится обратная связь (* может кто подскажет :-) ? ).
Написание планировщика для архитектуры x86-64 является единственной неизбежной задачей. Я сконцентрирован на том, как написать хорошо структурированное ПО. Всегда можно улучшить какие-то вещи в коде. Но настоящая красота в структуре программы.

Разное

- Можете дать какой-нибудь совет стремящимся стать программистами?

Да, просто "не становитесь" (смеется). Но серьезно, избегайте однобокого мышления, фанатизма и оставайтесь свободными в выборе(keep your options open).



Hosted by uCoz