Что для вашего компьютера значит быть лояльным?
Ричард СтолменМы говорим, что выполнение свободных программ на вашем компьютере означает, что он работает под вашим контролем. Неявно это подразумевает, что ваш компьютер делает то, что ему велят ваши программы, и ничего более. Другими словами, ваш компьютер лоялен по отношению к вам.
В 1990 году мы принимали это как само собой разумеющееся; в наши дни многие компьютеры проектируются нелояльными по отношению к своим пользователям. Стало необходимым сформулировать, что для вашего компьютера означает быть лояльной платформой, которая подчиняется вашим решениям, которые вы выражаете, веля ей выполнять определенные программы.
Наше предварительное определение состоит из следующих принципов:
- Возможность установки
-
Пользователь должен быть в состоянии заменить любые программы, которые может заменять кто-то еще.
Таким образом, если компьютер требует знания пароля или какого-то другого секрета, чтобы заменять какие-то программы на нем, то продавец компьютера должен сообщить этот секрет и вам.
- Нейтральность к программам
-
Компьютер выполняет, если этому не препятствует что-то еще, любые программы, какие вы на нем устанавливаете, и позволяет этим программам делать все, что в этих программах ни записано.
Функция проверки подписей на выполняемых программах совместима с этим принципом при условии, что проверка подписей полностью находится под контролем пользователя. Когда это так, функция помогает реализовать решения пользователя о том, какие программы выполнять, а не подрывает решений пользователя. Напротив, проверка подписей, которая не находится полностью под контролем пользователя, нарушает этот принцип.
- Нейтральность к протоколам
-
Компьютер связывается, если этому не препятствует что-то еще, по любому протоколу, какой только ни реализуют установленные вами программы, с любыми пользователями и любыми другими компьютерами в сети, с которыми вы указываете связаться.
Это значит, что компьютер не навязывает одну конкретную службу вместо другой, один протокол вместо другого. Он не требует, чтобы пользователь получал разрешение от кого-либо другого на связь по определенному протоколу.
- Нейтральность к реализациям
-
Когда компьютер связывается по любому отдельно взятому протоколу, он поддерживает такую связь, если этому не препятствует что-то еще, посредством любых программ по вашему выбору (в предположении, что программы реализуют заданный протокол), и не делает ничего, чтобы помочь любой другой части Интернета различать, какими программами вы пользуетесь или какие изменения вы, возможно, в них внесли, или проводить дискриминацию по признаку того, какой выбор вы делаете.
Это подразумевает, что компьютер отвергает удаленное освидетельствование, то есть не позволяет другим компьютерам определить по сети, выполняется ли в компьютере конкретный набор программ. Удаленное освидетельствование дает сайтам Интернета власть вынуждать вас соединяться с ними только через приложение с цифровым управлением ограничениями, которое вы не можете взломать, отказывая вам в фактическом контроле над программами, которые вы применяете для связи с ними.
Мы можем понимать удаленное освидетельствование как общую схему, позволяющую любому сайту Интернета навязывать тивоизацию или “замыкание” на локальных программах, с помощью которых вы соединяетесь с сайтом. Простая тивоизация программы не дает измененным версиям нормально работать; это делает программу несвободной. Удаленное освидетельствование сайтами Интернета не дает измененным версиям работать с теми сайтами, которые их используют, что делает программу фактически несвободной при пользовании этими сайтами. Если компьютер позволяет сайтам не давать вам пользоваться ими с помощью измененной версии программы, то он лоялен по отношению к ним, а не к вам.
- Нейтральность к сообщаемым данным
-
Когда компьютер получает данные по какому бы то ни было протоколу, он не ограничивает то, что программа может делать с данными, полученными в этом сеансе связи.
Любое цифровое управление ограничениями на аппаратном уровне нарушает этот принцип. Например, аппаратура не должна выдавать видеопотоки, зашифрованные так, что расшифровать их может только монитор.
- Возможность отладки
-
Компьютер всегда разрешает вам анализировать работу программы, которая выполняется.
- Полнота
-
Вышеперечисленные принципы распространяются на все программные протоколы компьютера и все соединения, которые осуществляет компьютер. У компьютера не должно быть никаких нелояльных программируемых ресурсов, и он не должен устанавливать никаких нелояльных связей.
Например, блок AMT в последних процессорах Intel выполняет несвободные программы, которые могут общаться по сети с Intel. Если это не отключено, это делает систему нелояльной.
Чтобы компьютер был полностью к вашим услугам, он должен поставляться с документацией всех протоколов, предназначенных для того, чтобы программы, выполняющиеся на компьютере, получали контроль над ним. Сам по себе пробел в документации не означает, что компьютер активно нелоялен, но он означает, что есть какие-то аспекты, в которых компьютер вам не служит. В зависимости от того, какие это аспекты, это может быть, а может не быть настоящей проблемой.
Мы просим читателей присылать критику и предложения по этому определению по адресу <computer-principles@gnu.org>.
Лояльность определяется здесь по простейшему осмысленному критерию, какой мы только могли придумать. Критерий не требует, чтобы все программы на компьютере были свободны. Однако присутствие на компьютере несвободных программ мешает проверить, лоялен ли компьютер, и гарантировать, что он будет оставаться лояльным.
История
Вот список существенных изменений в этой странице.
- Версия 1.6: Добавлено требование возможности установки.
- Version 1.5: Лояльность не требует полной документации.