
Дело в том, что для компиляции модуля требуются определенные файлы из исходников ядра (содержащие описание интерфейсных функций, но не содержащие, простите за тавтологию, содержательного кода). Естественным образом возникает вопрос: являются ли такие модули производной работой (derived work) от ядра. Если да (как считают во Free Software Foundation), то на них GPL распространяется, а значит, их исходные коды тоже должны быть открыты. Подобная перспектива очень нравится многим разработчикам ядра (бинарные модули мало кто любит - как из этических соображений, так и из чисто прагматических - отлаживать работу системы с подобными вставками очень трудно), но, увы, воспринимается не слишком оптимистично производителями железа, считающими, что публикация кодов драйверов или даже подробных спецификаций раскроет их коммерческие секреты.
В конце прошлого года один из разработчиков предложил запретить проприетарные модули чисто техническими средствами. В ядро можно было бы внести код, проверяющий информацию о лицензии (что происходит и сейчас) и блокирующий не-GPL-модули. Просто и незамысловато.
Однако эта идея пришлась очень не по душе Линусу Торвальдсу, и его аргументация здесь весьма интересна. Ведь закон об авторском праве, на котором базируется GPL, вообще говоря, ограничивает распространение, но не использование программы. А технический контроль относился бы именно к использованию. К тому же вопрос о том, что является, а что не является производной работой, - достаточно тонкий. Понятно, что если драйвер разработан без использования содержательного кода ядра, то его статус как производной работы по меньшей мере неочевиден. Использование заголовочных файлов - тоже спорный критерий, поскольку это может быть классифицировано как fair use. Линус подчеркивает, что предлагаемые технические методы защиты GPL очень близки методам медиа-индустрии, по сути отрицающей fair use, продвигающей технические средства DRM и утверждающей, что переписать музыку с честно купленного компакт-диска на свой mp3-плеер - преступление.
