Торвальдс: "Мне не о чем беспокоиться"

Stephen Shankland, 10.07.2003, ZDNet.ru

Недавние юридические осложнения привлекли внимание к процессу создания приложений с открытым исходным кодом. В частности, SCO обвиняет основателя и руководителя движения Линуса Торвальдса в том, что он не создал механизма контроля за возможными нарушениями прав интеллектуальной собственности (ИС), такой как патенты и авторские права.

Но 33-летний Торвальдс сохраняет невозмутимость и даже еще активнее стал заниматься Linux — теперь полный рабочий день. На прошлой неделе он ушел из Transmeta на штатную работу в Open Source Development Lab, где сможет отдавать Linux всю свою энергию.

В OSDL он будет обдумывать такие проблемы программирования, как алгоритм связи block input-output с устройствами типа жестких дисков, виртуальная память для работы крупных баз данных, "масштабирование" Linux для больших многопроцессорных серверов и многопоточность, которая позволит операционной системе решать больше задач одновременно.

Недавно Линус Торвальдс в интервью по e-mail рассказал CNET News.com о своей новой должности и о будущем Linux.

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

Ответ: Мы ввели такой процесс очень давно, но для решения проблем с ИС нет ничего полезнее, чем возможность для всех публично комментировать новые функции и т.п.

Не связано ли возложение ответственности за поиск нарушений ИС на патентодержателей с риском, что они объявятся после того, как кто-то уже включил запатентованный материал в Linux, и его будет чрезвычайно трудно оттуда удалить?

Ответственность за патентный поиск всегда возлагалась на держателей патентов. Не я это придумал... Конечно, я не буду заставлять инженеров заниматься патентоведением. Спросите любого юриста, и он скажет вам, что я прав. Искать чужие патенты — не дело инженера. Это только утомляет его, а кому это нужно?

Считаете ли вы, что обвинение, выдвинутое SCO, приведет к каким-либо изменениям в процессе приемки кода ядра Linux?

Думаю, что нет. Обвинения SCO вообще не имеют никакого отношения к правам ИС; они касаются контрактов между IBM и SCO. Вся болтовня SCO о правах ИС — это именно болтовня, лицемерие, при помощи которого они пытаются создать впечатление какой-то высокой моральной опоры. Все то, о чем они упоминают (RCU и т.п.), является интеллектуальной собственностью IBM.

Заглядывая вперед, не следует ли разработчикам аппаратуры и ПО подумать о том, чтобы предложить компенсацию заказчикам, которым могут быть предъявлены иски за использование кода open-source, если окажется, что он содержит ИС?

Что ж, если заказчики платят за это, почему бы и нет? Это просто расширение контракта на поддержку. Честно говоря, я уже устал от этой "проприетарной ИС". Сколько раз повторять, что дело SCO вообще не касается ИС и что, развернув свою FUD-кампанию по поводу ИС, SCO просто извергает нечистоты. (FUD означает fear, uncertainty and doubt [страх, неопределенность и сомнения]. — Прим. ред.)

Теперь, когда Linux так важна для IBM, Oracle, Dell, HP, SAP и других, не испытываете ли вы повышенное давление в части соблюдения планов и добавления определенных функций?

Лично я не чувствую никакого такого давления. Но это не означает, что его не может быть; возможно также, что просто "Линус не очень хорошо воспринимает прозрачные намеки" ;)

Какую часть своего времени вы уделяли Linux, работая в Transmeta, и какую часть времени собираетесь уделять в OSDL?

В Transmeta это зависело от обстоятельств, но в последние месяцы я занимался почти исключительно Linux (кроме тех периодов, когда выходили новые чипы Transmeta, что всегда захватывает).

Вы будете работать дистанционно из Санта-Клары или переедете в Бивертон, где находится штаб-квартира OSDL?

Дистанционно. Но иногда буду приезжать туда.

Не изменятся ли в OSDL ваши пристрастия? Например, не воспользуетесь ли вы преимуществом их больших мультипроцессорных серверов? Я полагаю, вы, как всегда, останетесь самоопределяющимся.

Да, "самоопределяющийся" — хорошее слово. В нем нет никаких негативных ассоциаций со "строптивым" или "неуправляемым". Не то, чтобы я не хотел пользоваться преимуществом их больших машин, но мне всегда больше нравилось разнообразие маленьких (но мощных).

Вы довольны тем, что Linux коммерчески используется главным образом на серверах? Или вы предпочли бы видеть больше массовых Linux-десктопов? Одно не исключает другого, но мне интересно, каким вы предпочитаете видеть будущее.

Конечно, мне хотелось бы видеть Linux и на десктопах, но до этого далеко, и я не думаю, что это должно произойти завтра. Linux сильна на серверах потому, что для этого требуется гораздо меньше маркетинговых усилий, и я очень доволен тем местом, какое Linux занимает в этой сфере сегодня. Я абсолютно не считаю серверы и десктопы взаимоисключающими. Лично я думаю, что техническое "качество" ОС в большой мере определяется тем, насколько хорошо она соответствует требованиям пользователей разного типа, и узко специализированные операционные системы представляют собой эволюционный тупик.

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

Я и сегодня большую часть своего времени занимаюсь не кодированием как таковым. Я соединяю фрагменты кода и сообщаю людям о проблемах. Может быть, на "отбраковку" уходит и не самая большая часть времени, но в какой-то мере это самая важная часть — то есть я считаю себя не просто всеобщим хранилищем кода, но также и арбитром "хорошего вкуса". Конечно, я далеко не единственный такой арбитр; каждый мейнтейнер подсистемы тоже. Но иногда (должен сказать, очень редко) мне приходится быть окончательным судьей.

Существуют ли другие сообщества open-source, которые вам особенно по душе?

Если бы нужно было указать два таких сообщества, я выбрал бы KDE и группу GCC. Мне часто приходится сталкиваться с разработчиками компилятора, так как ядро нуждается в нем довольно остро, и мне ужасно не нравится, что GCC с годами стал гораздо медленнее. Но это не оттого, что они что-то делают плохо. И мне очень нравится группа KDE — как чутко она реагирует на мои проблемы. (KDE — создатель графического интерфейса для Linux. GCC разрабатывает компилятор, используемый для преобразования исходного кода в машинный. — Прим. ред.).

Я говорил с Майклом Тиманном (это главный технолог Red Hat и участник GCC) по поводу его заявления, что хорошо написанные универсальные компиляторы будут содержать средства широкой оптимизации и производить лучший код по сравнению с компиляторами, оптимизированными для конкретной платформы. Но пока, как я слышал, компилятор С от Intel создает гораздо более быстродействующее ПО, чем GCC. Вы не пробовали компилировать Linux компиляторами Intel, благо такая возможность теперь есть?

На самом деле я даже не думал об использовании компиляторов Intel, но мне нравится то, что существует конкуренция и есть с чем сравнивать.

И лично я не согласен с Майклом по поводу универсальных компиляторов. Да, универсального кода много, но компиляторы для большинства современных процессоров генерируют достаточно хороший компактный код, и заниматься оптимизациями универсального не так интересно. Но это мое личное мнение. Я не такой уж специалист по компиляторам; мне просто не нравится, что высокоуровневые оптимизации современных версий GCC замедляют работу, не создавая больших выгод при генерации кода С.

Вы никогда не жалели, что не выбрали лицензию типа BSD вместо лицензии General Public License (GPL)? (В отличие от GPL, лицензии BSD-типа вроде тех, что используются для веб-сервера Apache Software Foundation и версии Unix от FreeBSD, допускают превращение кода open-source в проприетарный.)

Абсолютно нет. Лично я думаю, что лицензия BSD — это тупиковый путь для серьезных проектов, так как она неизбежно приводит к ветвлению без возможности воссоединения в том случае, если проект становится коммерчески выгодным. (Под ветвлением понимается разделение программного проекта на два разных, пересекающихся проекта. —Прим. ред.)

Ветвление проекта мне представляется очень важным, так как все реальные разработки ветвятся, и способность к ветвлению заставляет всех работать честно (например, если вы сработали плохо и ваши пользователи недовольны, они всегда могут отпочковаться от проекта и пойти своим путем). Но не менее важна и возможность воссоединить ветви, когда какая-то группа находит правильное решение проблемы. Именно в этом преимущество GPL: всю эту лицензию можно считать не более чем требованием возможности воссоединения разветвившегося проекта с любой стороны.

Какая часть участников проекта Linux сегодня работает на платной основе?

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

Кто ваши главные заместители?

Со временем они меняются, и обычно это зависит от подсистемы. Например, за последний год это были Эндрю Мортон (виртуальная память, взаимодействие с файловой системой, "родовой" код), Дэвид Миллер (сетевые дела), Грег Кроу-Хартман (USB, горячее подключение к PCI), Джефф Гарзик (драйверы сетевых устройств), Дженс Эксбоу (block device layer), Дейв Джонс (AGP и clean-ups), Кай Гермашевски (build infrastructure и ISDN), Пэт Мочел (инфраструктура менеджера устройств и sysfs), Расселл Кинг (PCMCIA и ARM), Расти Расселл (cleanups и управление модулями) и Эл Вайроу (файловые системы).

И это не считая мейнтейнеров архитектуры, управляющих своими собственными архитектурами (Itanium, PowerPC и AMD64), и других, кого я, возможно, просто упустил. А есть еще люди, занимающиеся очень специфическими системами: Роланд Макграт и Инго Молнар, которые работают над кодом управления сигналами и потоками.

Но со временем состав меняется. Люди приходят и уходят — первые месяцы некоторые бывают очень активны, потом на какое-то время исчезают, затем возвращаются.

Не страдает ли Linux от того, что экспериментировать с новыми идеями и новыми модулями интереснее, чем заниматься довольно рутинной работой, такой как модернизация драйвера для каких-нибудь устаревших ленточных накопителей или проверка старого кода на наличие пробелов в защите?

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

Конечно, рутинную работу тоже нужно выполнять, но люди не отказываются от нее. Иногда просто потому, что им за нее платят, но чаще (по-моему) из-за того, что те, кто участвуют в проекте, гордятся своей работой, а расстановка точек над i и перечеркивание t — это часть процесса создания качественного продукта.

Некоторые драйверы и другие подобные вещи отмирают, но обычно это вызвано тем, что они просто больше никому не нужны. Они либо так устарели, что уже не используются (это часто случается с некоторыми старыми платами ISA — никто, наверное, уже не помнит, как много было всяких причудливых контроллеров CD-ROM), либо не обновляются потому, что те, кто не обновляет своей аппаратуры, как правило, не обновляет и ядра. Последнее случается, например, в сфере встроенных систем: пока она работает, ее стараются не трогать.

В чем самая замечательная особенность 2.5? (Ядро 2.5, которое курирует Торвальдс, представляет собой рабочую версию, которая будет заменена "промышленной" версией 2.6 для практического применения.)

Это зависит от наблюдателя. Я сомневаюсь, что большинство людей посчитает очень интересным то, что я считаю "замечательной особенностью". Для меня важнейшей частью разработки 2.5.x стала новая инфраструктура слоя блокировки ввода-вывода и средства управления потоками POSIX (которые обратно портированы и на версию 2.4). И то, и другое в какой-то мере просто внутренние подчистки, которые скорее облегчают работу внутренних механизмов, чем вносят видимые пользователю важные усовершенствования.

Но есть много чего другого. VM (виртуальная память) стала гораздо эффективнее, да и все стало намного лучше. Улучшилось интерактивное взаимодействие (главным образом благодаря VM, но свой вклад внесли планировщик и проч.).

Вы уже думаете о том, какие важные изменения должны произойти в версии 2.7?

Задайте этот вопрос после kernel summit. Это будет одним из главных предметов дискуссий. (Kernel summit — совещание корифеев, которое состоится в конце этого месяца в преддверии Ottawa Linux Symposium. — Прим. ред.)