Интервью с Майком Хиббеттом

Интервью с Майком Хиббеттом, главным программистом MenuetOS - операционной системы, написанной полностью на ассемблере. Вопросы задавал SPTH (www.spth.de.vu) для немецкого "журнала LowLevel", август 2004

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

- Прежде всего, пожалуйста, представьтесь (где Вы живете, возраст, работа, семья, хобби...)

Я живу на юго-востоке Англии (* Chatham, United Kingdom) с моей супругой и нашими двумя маленькими детьми. Мне 39 лет (* родился 8 марта 1965) и в настоящее время работаю как инженер программного обеспечения встраиваемых систем для изготовителя телекоммуникационного оборудования (* Telspec http://www.telspec.co.uk/). С молодым семейством дома мое свободное время ограничено, и большинство из него уходит на Менуэт. Иногда занимаюсь скалолазанием, когда я могу найти время!

- Когда и как Вы начинали программировать?

Я начал программировать в 14 лет, когда я купил мой первый компьютер - Acorn System 1 (http://www.cary.demon.co.uk/acorn/ ) (* Распространенное в Англии семейство компьютеров, разные модели производились почти 20 лет до конца 1990-х, последняя ОС для них вышла в 1999). Он всё еще у меня. Я программировал на ассемблере и ощущение вызова и удовольствия, получаемое мной от совершения чего-то полезного осталось со мной до сих пор и причинами, из-за которых я все ещё получаю удовольствие от вызова программирования на низком уровне.

- Какие языки вы знаете и почему вы учили их, какой из них вам больше всего нравится и почему?

Ассемблер 6502 был первым языком, который я выучил для программирования на Acorn system 1. Потом я взялся за Кобол просто потому, что это была единственная книга по программированию в библиотеке. Я начал использовать Бейсик на TRS80, но он мне не нравился – далек от «железа» и слишком медленен. Это ощущение все еще доминирует в моем взгляде на Бейсик и я никогда ничего серьёзного на нем не писал.
Моим первым настоящим опытом с языком высокого уровня был Паскаль, который я учил в университете вместе с Фортраном. Я никогда не любил их, даже несмотря на то, что программировал на Паскале несколько лет в 80-е годы. Но затем я нашел Си и никогда не оглядывался назад.
Я считаю Си скорее облагороженным ассемблером, чем языком высокого уровня. Он дает мне возможность представить мои проекты быстрее, чем ассемблер, но все еще дает мне прямой доступ к лежащему в основе железу и это легкий интерфейс для ассемблера, когда я захочу. Даже в этом случае, я часто обнаруживаю себя исследующим ассемблерный выход компилятора для проверки того, что он не сделал ошибок!
Я думаю, что я могу сказать, что ассемблер и Си вместе являются моими любимцами – я нуждаюсь в них обоих. Я люблю выразительное проектирование понятий в Си, но я люблю и вызов ассемблера.

- Как вы учились разработке операционных систем и, кроме MenuetOS, создавали или содействовали какой-то другой ОС?

Menuet это на самом деле первая «собственная» ОС, для которой я когда-либо программировал; до прошлого года (это более 25 лет программирования), я полагался на основной «главный цикл» (*программы) и обработку прерываний, чтобы сделать работу. И это был широкий диапазон продуктов: телефоны, пейджеры, роботы, счетчики электричества и телекоммуникационное оборудование.

- Как и когда вы обнаружили MenuetOS?

Я сейчас забыл, как я впервые попробовал её. Это было примерно 3 года назад, и я подозреваю, что меня в ней привлекло то, что она не имела поддержки TCP/IP. Я имел тогда только что написанный TCP/IP стек на Си и всегда интересовался сетями, поэтому я подумал, что я могу дать ему применение. И меня привлек её (*Menuet) маленький размер. Даже когда я игрался с Linux в 1993, я все еще находил Linux слишком большим чтобы овладеть им. Мне нравится полностью понимать окружение, в котором я работаю.

- Почему вы решили начать программировать для MenuetOS и что вы уже сделали?

Я полагаю, что уже ответил на это – MenuetOS имел недостаточные сетевые возможности, что подтолкнуло меня создать простой стек. Я начал с IP, UDP и SLIP, потом перешел к TCP, Ethernet и главным сетевым программам. Моя любимая программа для сети – IRC- клиент, написанный Вилле, он весит всего 8 Кб.

- После четырех успешных лет MenuetOS получил нового лидера - вас. Почему Вилле Турьянмаа (основатель) выбрал вас?

Я на самом деле не знаю, я никогда его не спрашивал. Вилле и я всегда хорошо работали вместе, я понимал его взгляды на Menuet и уважал их. И я думаю реализовать их. Возможно, он доверил мне хранить исходные идеалы Menuet: маленькая ОС на ассемблере. Когда он спросил меня о переходе Menuet в мои руки, я был и восхищен и расстроен: восхищен тем, что я смогу больше содействовать, управляя Menuet, но был опечален, так как любил работать с Вилле, разделяя его идеалы.

- Похоже, главной целью MenuetOS является размещение на одной дискете. В будущем, если в сумме программы и исходники будут слишком большими для одной дискеты, что вы сделаете?

Я не думаю, что размещение на дискете – это цель Menuet, и это, конечно, не одна из моих целей. Но это вопрос размера: Menuet – это маленькая ОС, и она не перерастет размеры дискеты в ближайшее время! Мы уже имеем много мегабайтов программ и Jarek Pelczar (* http://menuetlibc.sourceforge.net/, польский программист (28.12.1984), создатель SpiderOS и ряда программ для MenuetOS) сделал большую работу над библиотеками Cи, что увеличивает размеры значительно! Я стремлюсь держать главный дистрибутив маленьким, чтобы он совпадал с общей философией проекта, но в то же время я хочу поощрять людей стремиться к той вершине для Menuet, которую они устанавливают сами. ОС – это прежде всего лишь часть завершенной работающей системы. Я надеюсь скоро улучшить инсталляцию на ЖД. Это может означать второй официальный дистрибутив рядом с главной «дискетной» версией, но «дискетная» версия всегда будет главной версией.

- Какова целевая группа MenuetOS, кто использует её?

Целевая группа ясна из баннера на веб-сайте - «ОС программистов на ассемблере». И, кажется, есть ядро (hardcore group) из высокотехничных программистов, в основном в Европе. В последнее время наша пользовательская база в США увеличилась и сейчас мы имеет несколько групп с различными интересами. Мы движемся в фазу "Пользователи против разработчиков ", что является очень интересным актом жонглирования (*обмена идеями).

- Что более важно для вас: программы для большей целевой группы (более дружелюбные) или более сложные (техничные) приложения?

Ни то, ни другое. Для меня важнее двинуть Menuet вперед в стадию, когда она будет реальным кандидатом на мой рабочий стол. Я сейчас пишу эту статью дома в Windows, но я предпочитаю использовать Menuet. Она (*Menuet) отправляется в интересное путешествие, и я надеюсь, что сообщество Menuet сможет его проделать вместе без разделения или потери интереса. Часть из этого путешествия будет включать большую дружелюбность к пользователям, другая часть – это технические улучшения типа поддержки шрифтов (* Unicode), веб-браузера и т.п.

- Теперь давайте поговорим о будущем Menuet: что будет (на что вы надеетесь) в ближайшем будущем (например, 6 месяцев - 2 года)?

В ближайшее время надо сделать загрузку c ЖД, управление шрифтами и веб-браузер. Все они продвигаются, но прогресс медленный. Это маленькие цели на пути развития, но это то, о чем я думаю, перед тем как заснуть!

- И что вы думаете о далеком будущем (5-10 лет)?

О, вопрос предвидения. Я никогда не смотрю больше, чем на 5 лет, так как это слишком далеко. Но я надеюсь, что через пять лет Menuet будет моей главной ОС дома. Что это означает в терминах развития трудно сказать, спросите меня снова через год!

- Какой совет дадите вы разработчикам новых ОС? Как начать? Какие учебники читать?

Лучший учебник, который я нашел, – это книга Энди Таненбаума о проектировании ОС (Операционные системы: Проектирование и Реализация). Хотя книга описывает микроядро (которое мне не нравится) я люблю его (*Э.Т.) принципы и это отличная книга. Проблема хороших книг в том, что они могут остановить тебя от включения в лучший способ изучения как программировать ОС: программирование. И причина? Поскольку программировать трудно и временами ты вынужден выбрасывать результаты месяцев работы. Что сработало со мной – нахождение проекта с пропущенной жизненно важной частью и остановка для обеспечения этой части. Вот как я включился – я любил вещи, связанные с сетями, и Menuet не имел сетевого стека. Я тогда научился гораздо большему об операционных системах и TCP/IP, чем просто читая книги. Конечно, Интернет сейчас– большой источник учебников, и множество людей и организаций, публикующих хорошо документированные примеры в Интернете.

- Большое спасибо за интервью! Я надеюсь, что вопросы не были слишком глупыми :)!

Они не были глупыми и они заставили сделать меня на шаг назад и подумать, что важно делать время от времени! Спасибо за интерес.

Пока,
Майк.



Hosted by uCoz