Движение за свободное программное обеспечение и УИД
Ричард СтолменЦелью проекта, называемого УИД (унифицированный интерфейс драйверов) является определение единого интерфейса между ядрами операционных систем и драйверами устройств. Какую пользу движение за свободное программное обеспечение должно извлечь из этой идеи?
Если мы представим себе некоторое число операционных систем и разработчиков аппаратуры, которые все сотрудничают на равных, то УИД (если такое технически осуществимо) был бы очень хорошей идеей. Это позволило бы разрабатывать только один драйвер для любого заданного аппаратного устройства, а потом им могли бы пользоваться все. Это открыло бы возможность сотрудничества на более высоком уровне.
Когда мы применяем эту мысль к реальному миру, в котором есть как разработчики свободных программ, стремящиеся к сотрудничеству, так и разработчики несвободных программ, стремящиеся к господству, то мы получаем совсем другие последствия. УИД никоим образом не может быть полезен движению за свободное программное обеспечение. Это разделит и ослабит нас, если вообще приведет к каким-нибудь результатам.
Если бы со стороны Linux была поддержка УИД и если бы мы начали разрабатывать новые драйверы, которые связывались с Linux по УИД, каковы были бы последствия?
- Люди могли бы использовать свободные драйверы Linux, распространяемые по
GPL, на системах Windows.
Это помогло бы только пользователям Windows; это ничего не сделало бы для нас, пользователей свободных операционных систем. Это и не повредило бы нам напрямую; но разработчики свободных драйверов, распространяемых по GPL, могли бы разочароваться, видя, что их применяют таким образом, а это было бы очень плохо. Кроме того, соединение драйверов с несвободным ядром было бы нарушением GNU GPL. Увеличивать соблазн сделать это — значит напрашиваться на неприятности.
- Люди могли бы выполнять несвободные драйверы Windows на системах GNU/Linux
Напрямую это не сказалось бы на спектре аппаратуры, поддерживаемой свободными программами. Но косвенно это привело бы к снижению спектра за счет того, что поставило бы перед искушением миллионы пользователей GNU/Linux, которые не приучились настаивать на свободе ради собственного блага. В той степени, в какой общество начало бы поддаваться искушению, мы стали бы двигаться к применению несвободных драйверов вместо написания свободных.
Сам по себе УИД не мешал бы разработчикам свободных драйверов. Так что если достаточное число из нас устояло бы перед искушением, мы по-прежнему могли бы разрабатывать свободные драйверы, несмотря на УИД, точно так же, как мы делаем это без УИД.
Но для чего призывать сообщество быть слабее, чем необходимо? Зачем создавать ненужные затруднения для будущего свободного программного обеспечения? Поскольку УИД ничем нам не полезен, лучше от него отказаться.
При таких последствиях неудивительно, что компания Intel, поддерживающая УИД, начала “искать в сообществе Linux помощи по УИД”. Как богатая и эгоистичная компания подходит к сотрудничеству в сообществе? Конечно, она просит подачки. Попросив, она ничего не потеряет, а мы можем обмануться и сказать “да”.
Сотрудничество по УИД не исключено. Нам не следует предавать анафеме УИД, Intel или кого бы то ни было. Но перед тем, как мы примем участие в любом предложенном деле, мы должны это тщательно взвесить, чтобы убедиться, что оно выгодно для сообщества свободного программного обеспечения, а не только для разработчиков несвободных систем. В данном конкретном случае это означает, что сотрудничество должно продвигать нас на шаг вперед по пути, ведущему к конечной цели свободных ядер и драйверов: поддержке всей важной аппаратуры свободными драйверами.
Сделать эти работы полезными можно было бы, например, внеся поправку в сам проект по УИД. Эрик Реймонд предложил, чтобы соответствие УИД подразумевало, что драйвер является свободной программой. Это было бы идеально, но могли бы быть и другие альтернативы. Могло бы быть достаточным, если бы от исходных текстов драйвера требовалось, чтобы они были опубликованы и не были коммерческой тайной — потому что даже если этот драйвер не свободен, это, по крайней мере, предоставило бы нам сведения, необходимые для написания свободного драйвера.
Компания Intel могла бы также сделать что-нибудь вне работ по УИД, чтобы помочь сообществу свободного программного обеспечения решить эту проблему. Например, Intel может выдавать того или иного рода сертификаты, которые стремятся получить разработчики аппаратуры. В этом случае компания Intel могла бы согласиться затруднить сертификацию, если спецификации аппаратуры секретны. Это не могло бы решить проблему полностью, но это могло бы заметно помочь.
Одна из трудностей в любом сотрудничестве с Intel по УИД состоит в том, что сначала мы сделали бы свою работу, а отдача со стороны Intel растянулась бы на долгий срок. Фактически мы предоставили бы Intel долгосрочный кредит. Но пожелала бы ли компания продолжать выплачивать свой долг? Возможно — если у нас будет письменный договор, который нельзя обойти; в противном случае мы не можем на это рассчитывать. Вероломство корпораций хорошо известно; люди, с которыми мы имеем дело, могут быть добросовестны, но их решения могут переменить сверху, этих людей даже могут в любой момент заменить на других. Даже высшее руководство, владеющие большей частью акций, может смениться после продажи компании. При любых соглашениях о совместной работе с корпорацией требуйте письменных обязательств.
Непохоже, чтобы компания Intel предложила договор, который дает нам то, что нам нужно. На самом деле кажется, что УИД составлен, чтобы облегчить сохранение спецификаций в секрете.
Тем не менее не будет никакого вреда, если мы оставим дверь открытой — до тех пор, пока мы не позволяем входить всем без разбора.