- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF85:Interview
Материал из Linuxformat.
- Интервью LXF Кристиан Ван Дер Влиет
Новый старт
- Еще одна настольная ОС, но не являющаяся очередным дистрибутивом Linux? Linux Format беседует с Кристианом Ван Дер Влиетом – человеком, который стоит за интригующим проектом по продвижению свободного ПО в массы...
Syllable – это попытка привести ОС с открытым исходным кодом на домашние компьютеры, не используя ядро Linux. Его разработчики с самого начала поставили целью обойтись без останков Unix’а семидесятых и структуры, центром которой является разработчик и которая, возможно, тормозит развитие Linux. Команда Syllable (http://www.syllable.org) работает над созданием собственного ядра, интерфейса пользователя и приложений, стараясь, чтобы они летали с быстротой молнии даже на старом оборудовании.
Проживающий в Бристоле Кристиан Ван Дер Влиет отвечает за разработку Syllable, координацию работы программистов по всему миру и общее направление проекта. Он не ленив критиковать Linux, но и не считает, что Syllable уже завтра изменит мир: у него свои взгляды на программы с открытым исходным кодом для настольных ПК и свой план реализации этих взглядов. Майк Сондерс [Mike Saunders] пригласил его в Бат: пусть почувствует старомодное сомерсетское гостеприимство.
Linux Format: Расскажите, что такое Syllable, что в нем особенного?
Кристиан Ван Дер Влиет (КвдВ): Это ОС для настольных ПК, и мы особо подчеркиваем, что она рассчитана на малые предприятия и на домашнего пользователя. С самого начала все делалось так, чтобы подходить этому домашнему пользователю. У Syllable собственное ядро, собственная архитектура драйверов, собственный графический пользовательский интерфейс и библиотеки. Кроме того, у нее собственные приложения – вы сможете прочитать файл через HTTP так, как будто он хранится у вас на жестком диске.
LXF: Как с ioslaves от KDE?
КвдВ: Да. Мы стараемся сделать API как можно более ортогональным для разработчиков программ; у нас есть штука под названием ‘streamable I/O classes’ – это абстрактный класс, который можно читать и куда можно писать вне зависимости от того, соединен ли он с файлом, потоком HTTP или с FTP. Он прозрачен для приложения.
LXF: Многие могут сказать, что Linux начинает играть роль ОС для дома и малого офиса. В чем отличие Syllable?
КвдВ: Нет такой операционной системы – Linux: есть разные дистрибутивы, использующие Linux в качестве ядра. Это коллекции разных компонентов, надерганных отовсюду: ядро Linux, программы GNU, glibc, X.org, разнообразные наборы инструментов, GTK, Qt, а поверх – рабочий стол. А потом еще со всех сторон появляются сторонние компоненты и приложения.
В Syllable все появляется вместе, и поскольку это – цельная ОС, у нас есть все, от приложений до ядра. Если мы решаем что-то сделать, мы не спрашиваемся у множества разных групп. Например, в самом последнем релизе Арно Кленке [Arno Klenke, плодовитый разработчик Syllable] реализовал новую систему отрисовки – очень похожую на EXA, горячую новинку в X.org. Добавление подобной функции в Linux означало бы необходимость переписать всю архитектуру драйверов и особую работу с Х-сервером. А в Syllable мы ее просто добавили.
LXF: Влияет ли этот стиль разработки на конечного пользователя?
КвдВ: Так проще достичь консенсуса среди разработчиков. Не требуется обращаться к разным группам разработчиков и умолять их разрешить нам изменить работу ядра. Если нам нужно, чтобы новая система обращалась к ядру, мы просто делаем это. И проще узнать, кто чем занимается, и никто не наступает друг другу на ногу.
LXF: Вы считаете, что даже с FreeDesktop.org и иконками Tango Linux навсегда останется сборищем разбросанных проектов?
КвдВ: Да, такова ментальность, ее не изменишь. Над всей ОС нет главной фигуры, и если кто-то пытается принять решение, всегда найдется и тот, кому оно не понравится. А если кому-то не нравится то, что вы делаете – ответвляйтесь!
LXF: А если бы Syllable пришлось разветвиться?
КвдВ: В Syllable ситуация отличается тем, что это – цельная ОС, а не составленная из отдельных модулей. Если вы решите сделать ответвление Syllable, вы все равно будете использовать тот же сервер приложений [GUI] и ту же файловую систему. Это не Linux, где вы можете ответвить дистрибутив и заменить рабочий стол на что попало; Syllable – вертикально интегрированная платформа. Мы не пытаемся спрятать низкоуровневые библиотеки за другими библиотеками. В Linux ввели HAL-уровень, пытаясь развязать оборудование и рабочий стол, но Syllable этого не надо, потому что в Syllable вы работаете на рабочем столе Syllable. Нам не надо беспокоиться о версиях библиотек C, версиях ядра и т.п.
LXF: Тогда как вы объясните, что Syllable пользуется «сторонними» проектами, типа glibc и линейки инструментов GNU?
КвдВ: Давайте возьмем последний пример с CUPS, когда я пытался реализовать печать в Syllable. Я портировал CUPS, драйвера Gutenprint и Ghostscript. Оказалось, что все это слиплось с Foomatic, то есть с большим скриптом Perl, который прячет спулер, будь то CUPS или более старый LPD. В Syllable это совершенно излишне – нам этого не надо. Но нам нужен файл конфигурации PPD, чтобы заставить работать принтер, а все эти файлы заточены под Foomatic.
Так что периодически мы сталкиваемся с проблемой: предполагается, что все работает так же, как Linux, и это – препятствие. Другие проекты [неявно] подразумевают вещи, выглядящие в отличных от Linux системах (том же Syllable) несколько по-другому.
LXF: С точки зрения структуры системы, почему в ядре Syllable установка драйверов проще, чем в Linux?
КвдВ: Ядро Syllable обладает очень специфичной функцией: в нем есть ELF-загрузчик в ядре, соответствующий ld.so в Linux. То есть нам не нужен специальный загрузчик в пространстве пользователя для исполняемых программ – это делает само ядро! Драйвера в Syllable – это разделяемые ELF-объекты, которые загружаются напрямую, и у нас стабильный ABI [application binary interface].
LXF: В Linux, если вы используете драйвера третьей стороны и обновляете ядро, вам надо пересобирать эти драйвера – и это сложно.
КвдВ: Мы несколько более прагматичны. Линус сказал, что ему не нужен стабильный ABI для драйверов, потому что он не хочет поощрять драйвера с закрытым исходным кодом. Цель благородная, и в этой точке зрения есть смысл. Однако для пользователей и для разработчиков это создает проблему: разработчики оборудования не всегда хотят создавать драйвера с открытым кодом, особенно для видеокарт и беспроводного оборудования, потому что тем самым они раздают свою интеллектуальную собственность. Если пользователь должен выбирать между на 90% закрытым Windows, но с набором полезных открытых приложений, и Linux, где с открытым кодом почти все, но оборудование не работает, то выберет он решение с закрытым кодом, и это не здорово. Вот и выходит, что, имея целью привести людей к использованию открытого ПО, многие разработчики Linux фактически толкают пользователей к ОС с закрытым кодом, а хуже и быть не может. Но я не стану – никогда! – поставлять с Syllable драйвера с закрытым кодом. А если когда-нибудь Syllable станет настолько солидной, что компании типа Nvidia или Broadcom решат создать для нее закрытый драйвер, я не против. У нас есть стабильный ABI, а драйвер – всего лишь файл, его надо скопировать в нужное место, возможно, перегрузиться – и все. Это – часть курса на простоту использования.
LXF: А как насчет приложений?
КвдВ: Распаковываете архив в папку Applications – и все. Это цель дизайна системы. Хакеры любят играть с компьютерами, а пользователю просто надо, чтобы все получалось. Им не надо мучиться по поводу какой-то там установки и тратить часы на то, чтобы заставить какую-то программу работать. Зачем им обновлять половину системы, чтобы установить, допустим, новую версию GnuCash?
LXF: А если появятся программы для Syllable, зависящие не от библиотек Syllable, а от какой-нибудь другой ерунды? Не получите ли вы тогда тот же ад зависимостей, что и Linux?
КвдВ: Мы практикуем совершенно иной взгляд на зависимости. Мы вообще не занимаемся их управлением. Узнав об этом, люди холодеют от ужаса; но у нас в ходу такие вещи, как статическая компоновка. Слишком часто бывает, что разработчик открытого ПО берет небольшой кусочек кода и создает из него разделяемую библиотеку, но на самом деле это никому не нужно, пока библиотека не начнет использоваться проектах в пяти, а то и больше. Так что в Syllable мы спрашиваем разработчика: вы действительно будете обновлять эту библиотеку независимо от приложений? А еще в Syllable такие ресурсы, как значки, упакованы в само приложение, а не разбросаны по всем директориям.
LXF: Как вы занялись программированием?
КвдВ: Я начинал на Commodore 16, который многие в глаза не видели, или даже и не слышали о нем. Он был бедным родственником C64, только интерпретатор Basic у него, как ни странно, был получше. Потом у меня появился Spectrum +2A, я на нем программировал в Basic (плохо), а потом у меня был Amiga 500, на котором я вообще не программировал. Сейчас, оглядываясь на то время, я сожалею, что не изучил тогда Ассемблер, что не начал все делать быстрее. Мне было не меньше 18 лет, когда я начал ваять в C. Я начал учиться в колледже, и понял, что мне нужен ПК. Это разбило мое сердце! Помню, я стоял в Waterstones, смотрел на все эти книги, и понимал, что мне надо иметь ПК. Этот ПК у меня до сих пор сохранился – ну, материнская плата и процессор.
LXF: Как вы думаете, то, что вы работали в разных ОС, повлияло на стиль вашей работы в Syllable?
КвдВ: Да – когда у меня появился тот самый ПК, на нем была Windows 95, и я раньше работал в Windows 3.1, NT, и со всем прочим. Любой, кто работал с Amiga, или какой-нибудь другой ОС, не Windows, скажет вам, что Windows 95 была дрянной. К журналу Amiga Format как-то прилагался диск NetBSD 0.9 вместе с руководством, и я установил ее на своем A1200. Впечатление она на меня произвела хорошее, но поскольку я тогда не разбирался в Unix, я не знал, как ею пользоваться! А потом у меня появился Amiga 4000, и я установил на него Red Hat 5.1. Так что еще до того, как у меня появился ПК, я уже пользовался Linux, и был весьма впечатлен, а на мой ПК я установил Red Hat 5.2 – это стало естественным шагом к изучению С.
LXF: AtheOS была, так сказать, исходной кодовой базой Syllable, но основной разработчик ее забросил, и Syllable выросла из нее. Когда вы заинтересовались AtheOS?
КвдВ: Я установил Windows 95, меня это не порадовало, и я установил Red Hat 5.2. Но она была сыровата – в те дни, чтобы выйти в Интернет, приходилось писать собственные CHAT-скрипты! Чтобы моя звуковая карта заработала, мне приходилось платить за драйвера, потому что драйвера с открытым кодом не работали. Linux определенно обладал хорошим потенциалом, но он был очень сырым, и на фоне Amiga [как я считал] явно проигрывал. То, что я говорю, многим не понравится, но в 96-м или 97-м так и было.
Я считал, что Linux все-таки лучше, чем Windows, он бесплатный, и можно программировать в нем. Однако по мере его развития в течение пары лет он стал действовать мне на нервы, просто раздражать. Пытаешься что-то обновить – ломается приложение, на которое делалась ставка. А эти зависимости RPM – ведь не было ни Yum, ни Up2date, все приходилось учитывать самому. Помню, как я пытался заставить Х работать, и что ни день имела место какая-нибудь ерунда, доводившая меня до бешенства.
LXF: Вы, видимо, уж очень обозлились. Не так много на свете людей, способных разозлиться до такой степени, чтоб написать собственную ОС!
КвдВ: Был один парень в IRC, который сказал: «Я напишу собственную операционную систему». Мне понравилось, как это звучит, и я тоже начал писать свою, с оригинальным названием FreeOS. Это был гибрид Linux и AmigaOS, и я писал планы, как мне работать с библиотеками, файловыми системами, драйверами и всем прочим. Упор был на Amiga, но бралось и лучшее из Linux. А потом этот парень из IRC спросил: «Ты видел AtheOS?» Я загрузил ее, запустил, и меня просто потрясло, насколько хорошо была увязана эта система – как далеко вперед ушел Курт Скауэн [Kurt Skauen, ведущий разработчик AtheOS]. Это была версия 0.1.3, но она была настолько близка к структуре ОС, которая уже была у меня, как будто он прочел мои мысли.
На тот момент в работу над AtheOS было вовлечено два-три человека. У Курта был странный настрой: он решил использовать GPL, но при этом сохранял контроль над всем кодом. Что ж, справедливо: операционная система его, значит, и правила устанавливать ему. Те из нас, кто был включен в список рассылки, присылали драйверы то для одного, то для другого, я написал AEdit 0.1.
LXF: А остальное – это уже история… Чем, по-вашему, Syllable отличается от других маленьких ОС, например, ReactOS или Haiku?
КвдВ: На данный момент большинство людей определенно отнесло бы Syllable к классу любительских операционных систем, но у нее уже есть свое большое сообщество. Она находится на стадии зрелости, и ее можно использовать на большинстве компьютеров. В ней реализованы ценные для реального мира функции – аппаратно-ускоренный рендеринг, драйверы для большинства устройств, печать, воспроизведение мультимедиа… Так что она уже на пути превращения из любительской в профессиональную ОС, наверное, так же, как было с Linux в 94 или 95 годах
LXF: И что нужно для этого превращения?
КвдВ: Нужна коммерческая поддержка. Нужны те, кто захочет поддерживать Syllable, стать людьми для переговоров. Сейчас, если вы при использовании Syllable натолкнулись на ошибку, я попытаюсь исправить ее. Но гарантий на это я вам не могу дать: вдруг в тот момент я буду занят чем-то еще, и найденную вами ошибку исправлять некогда. А может, у разработчиков ядра не хватит времени, чтобы реализовать нужную вам функцию. Чтобы пользователь чувствовал себя уверенно и комфортно, работая в Syllable, необходима поддержка, люди, которые гарантируют разработку в течение последующих двух лет.
В обозримом будущем у меня нет иных намерений, кроме как и дальше программировать для Syllable – я люблю ее, и намерен сделать лучшей операционной системой, насколько сумею. Но если сейчас я предложу использовать Syllable профессионально, меня просто высмеют. Нам нужна способность обеспечить безопасность и гарантию коммерческой поддержки.
LXF: Проект Haiku [см. HotPicks, LXF78], клон BeOS с открытым исходным кодом, недавно сумел на несколько месяцев нанять разработчика – Акселя Дорфлера [Axel Dorfler] – для работы над ОС полный рабочий день. У Syllable есть ресурсы, чтобы сделать то же самое?
КвдВ: Как бы я этого хотел! На данный момент это цель средней дальности: найти человека на поддержку Syllable. Я твердо убежден, что при наличии одного-двух разработчиков, скажем, меня и Арно, работающих над Syllable с полной занятостью, версия 1.0 была бы готова уже года через полтора. Сейчас у нас с Арно достаточно свободного времени для работы над Syllable, но все же мы не можем посвящать этому целый день.
LXF: И какие же приложения вы хотите увидеть в первую очередь?
КвдВ: Все! [Смеется.] Syllable – молодая ОС, и приложений для нее сейчас не так уж много. Мы концентрируем нашу деятельность в двух основных областях: Интернет – и у нас есть такие вещи, как браузер ABrowse и клиент Chat Jabber; и мульти-медиа – здесь у нас есть видео- и аудиоплейеры. Есть и пробелы, например, нехватает графического FTP-клиента, но все же именно на этих областях мы сконцентрировали наше внимание. По части офиса у нас вообще ничего нет, кроме порта XPDF. Есть порты для Vim и Emacs, но это не «родные» приложения.
LXF: Могут ли сосуществовать Syllable и Linux? Лет через пять, будут ли они обе здравствовать и набирать силу?
КвдВ: Естественно! Я всегда говорил, что сила Linux – это сервер, а Syllable будет дополнять его на настольных ПК. По-моему, тщетно пытаться заставить Linux работать в качестве настольной операционной системы, если Syllable может с этим справиться куда лучше и вернее! LXF
Читайте еще!
Мысли Вандерса о патентах, поддержке Syllable и о наказаниях за неудачные названия программ – читайте на http://www.linuxformat.co.uk/vanders.html