|
Интервью с Майком Хиббеттом Интервью с Майком Хиббеттом, главным программистом MenuetOS - операционной системы, написанной полностью на ассемблере. Вопросы задавал SPTH (www.spth.de.vu) для немецкого "журнала LowLevel", август 2004 Перевод – Сергей Кузьмин (http://coolthemes.narod.ru),
8 ноября 2004 |
- Прежде всего, пожалуйста, представьтесь (где Вы живете, возраст, работа, семья, хобби...) Я живу на юго-востоке Англии (* 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, но он мне не нравился – далек от «железа»
и слишком медленен. Это ощущение все еще доминирует в моем взгляде на
Бейсик и я никогда ничего серьёзного на нем не писал. - Как вы учились разработке операционных систем и, кроме 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, чем просто читая книги. Конечно, Интернет сейчас– большой источник учебников, и множество людей и организаций, публикующих хорошо документированные примеры в Интернете. - Большое спасибо за интервью! Я надеюсь, что вопросы не были слишком глупыми :)! Они не были глупыми и они заставили сделать меня на шаг назад и подумать, что важно делать время от времени! Спасибо за интерес. Пока, |