Бумажная Компьютерра №7 (675)
Выпускающий редактор: Владимир Гуриев
Дата выхода:
13-Я КОМНАТА: Социальные вопросы из глубин ядра
Порой кажется, что крестьянин в эпоху крепостного права был свободнее, чем современный человек, даже живущий в самой демократичной из всех демократий. Окружающий нас мир, созданный за многие годы развития цивилизации, слишком сложен, чтобы отдельный индивид мог полностью разобраться в его устройстве. А без понимания этого устройства мы не можем принимать собственных обоснованных решений. Мы вынуждены доверять другим людям и полагаться на их мнение - а значит, попадать в зависимость от них. Мы зависим от СМИ, от рекламы, от юристов, от врачей, от учителей, от программистов…
Но если мы все-таки хотим стать чуточку свободнее, нам приходится разбираться в этом безумно сложном мире. Так разработчики свободного софта погружаются в тонкости законов об авторском праве, а обсуждение вроде бы чисто технического вопроса об использовании бинарных модулей в ядре Linux затрагивает гораздо более широкие социальные сферы.
Надо сказать, что бинарные модули - весьма болезненная тема в Linux-сообществе, консенсуса по которой нет. Речь вот о чем. Ядро Linux поддерживает систему подгружаемых модулей - в частности, драйверов разнообразных устройств, не включенных в ядро напрямую. Технически при подключении модуля он динамически линкуется с самим ядром, при этом для такой линковки исходный код модуля не требуется. Тем самым появляется возможность создавать проприетарные бинарные драйверы для Linux, чем с успехом пользуются многие поставщики железа. Однако существует мнение, что такие драйверы нарушают лицензию GPL.
Дело в том, что для компиляции модуля требуются определенные файлы из исходников ядра (содержащие описание интерфейсных функций, но не содержащие, простите за тавтологию, содержательного кода). Естественным образом возникает вопрос: являются ли такие модули производной работой (derived work) от ядра. Если да (как считают во Free Software Foundation), то на них GPL распространяется, а значит, их исходные коды тоже должны быть открыты. Подобная перспектива очень нравится многим разработчикам ядра (бинарные модули мало кто любит - как из этических соображений, так и из чисто прагматических - отлаживать работу системы с подобными вставками очень трудно), но, увы, воспринимается не слишком оптимистично производителями железа, считающими, что публикация кодов драйверов или даже подробных спецификаций раскроет их коммерческие секреты.
В конце прошлого года один из разработчиков предложил запретить проприетарные модули чисто техническими средствами. В ядро можно было бы внести код, проверяющий информацию о лицензии (что происходит и сейчас) и блокирующий не-GPL-модули. Просто и незамысловато.
Однако эта идея пришлась очень не по душе Линусу Торвальдсу, и его аргументация здесь весьма интересна. Ведь закон об