Аппаратные драйверы с закрытым исходным кодом и с открытым исходным кодом: почему это важно
Все драйверы обеспечивают связь, но большое значение имеет открытый или закрытый исходный код.
Драйверы компьютерных устройств — это то, что позволяет вашей операционной системе сообщать оборудованию внутри вашего компьютера и подключенным периферийным устройствам, что делать.
Подобно приложениям и операционным системам, эти драйверы оборудования могут состоять из общедоступного исходного кода или кода, скрытого за двоичными двоичными объектами и длительными лицензионными соглашениями с конечными пользователями.
Итак, в чем разница между закрытыми и открытыми аппаратными драйверами? Кроме того, как эти различия влияют на вас?
Что такое аппаратный драйвер?
Драйверы оборудования существуют для того, чтобы программное обеспечение вашего компьютера могло взаимодействовать с оборудованием. Иногда они интегрированы с операционной системой вашего компьютера. В других случаях вам нужно загрузить и установить драйверы самостоятельно.
Многие драйверы для Microsoft Windows доступны для загрузки. Старые компьютеры часто поставлялись с компакт-дисками, на которых были драйверы для работы вашего оборудования. Аппаратное обеспечение означает что угодно, от USB-микрофона до видеокарты для игр.
В Linux драйверы часто встроены в операционную систему, что имеет свои плюсы и минусы. В большинстве случаев, когда вы подключаете новое устройство, оно просто работает. Это особенно относится к старому оборудованию, которое успело проникнуть в ядро Linux. Но иногда, особенно с более новыми устройствами, ваш компьютер не распознает новое устройство, и драйверы, совместимые с Linux, с меньшей вероятностью будут доступны для загрузки в Интернете.
Почему многие драйверы являются проприетарными
Компьютерный компонент или внешнее устройство может показаться в основном физическим продуктом, но программное обеспечение, на котором работает устройство, часто делает один продукт более привлекательным, чем другой. Многие предприятия рассматривают код, лежащий в основе этого программного обеспечения, как свое конкурентное преимущество перед другими компаниями.
Вместо того, чтобы сделать этот код общедоступным, они позволяют видеть код только тем, у кого нет компании или определенных подрядчиков. Код считается конфиденциальной информацией. Полученное программное обеспечение является проприетарным программным обеспечением, также известным как программное обеспечение с закрытым исходным кодом.
Конкуренция между AMD и NVIDIA является одной из самых ожесточенных в компьютерном оборудовании. NVIDIA уже давно имеет преимущество перед конкурентами и менее склонна предоставлять аппаратные драйверы с открытым исходным кодом. Код в этих драйверах, возможно, может позволить существующему конкуренту догнать его или упростить выход новой компании на рынок без разработки кода с нуля.
Проприетарные операционные системы имеют проприетарные драйверы
Здесь также необходимо обратиться к слону в комнате. Microsoft Windows является наиболее широко используемой настольной операционной системой в мире. Windows состоит из закрытого исходного кода.
Драйверы оборудования интегрируются с операционной системой на таком низком уровне. Начиная с Windows 8, на компьютерах Windows можно запускать только подписанные драйверы. Это означает, что драйверы должны быть сертифицированы Microsoft, а поскольку Windows является частной собственностью, эти драйверы тоже должны быть сертифицированы.
Возможно, менее удивительно, что Apple также сертифицирует драйверы для macOS. Но на уровне ядра macOS основана на различных технологиях с открытым исходным кодом. macOS также использует систему CUPS с открытым исходным кодом для управления принтерами. Но если вы устанавливаете драйвер, скорее всего, он проприетарный.
Chrome OS от Google является здесь исключением. Chrome OS технически является проприетарной, но она построена на базе открытого исходного кода. Поскольку Chrome OS использует ядро Linux, она использует как драйверы с открытым исходным кодом, так и закрытые двоичные двоичные объекты, которые поставляются с ядром. Но если вам нужно запустить дополнительное оборудование, которое не поддерживается из коробки, это не совсем то, для чего предназначена Chrome OS.
Зачем нужны открытые драйверы?
Это означает, что вопрос о драйверах с открытым и закрытым исходным кодом в значительной степени затрагивает пользователей Linux. Здесь предпочтения противоположны другим настольным ОС. Ни одна компания не занимается разработкой и поставкой Linux, поэтому нет ни одной компании, которая сертифицирует драйверы. Разработкой Linux занимаются люди по всему миру, некоторые из них работают в качестве волонтеров, а другие — в различных компаниях. Это работает лучше для всех, когда доступен исходный код драйверов.
Преимущества драйверов с открытым исходным кодом отражают многие преимущества программного обеспечения с открытым исходным кодом в целом.
Простота совместной работы над программным обеспечением. Многие люди могут вместе разрабатывать программное обеспечение, если нет ни одной компании, выступающей в роли хранителя исходного кода.
Программное обеспечение, которому можно доверять. Без доступа к исходному коду вы на самом деле не знаете, что делает программа.
Большая конфиденциальность. Программное обеспечение с открытым исходным кодом редко отслеживает ваши действия, поскольку кто-то может легко распространить еще одну копию программного обеспечения с удаленным отслеживанием.
Долговечность программного обеспечения. Когда компания теряет интерес к программе или устройству, она часто прекращает их распространение. Открытый исходный код позволяет любому другому делать программное обеспечение доступным.
В Linux, когда драйвер с открытым исходным кодом, больше шансов, что все просто будет работать. Ваше оборудование также, вероятно, будет содержать меньше ошибок.
Например, пользователи Linux могут рассчитывать на более плавную анимацию рабочего стола при использовании интегрированной графики Intel, чем при использовании видеокарты NVIDIA, потому что разработчики графики для Linux не имеют доступа к внутренней работе чипа NVIDIA для исправления всех ошибок. Причуды могут появляться в неожиданных местах, например, при закрытии ноутбука, чтобы перевести его в спящий режим. В результате пользователи Linux, которые хотят более плавной работы, но при этом нуждаются в мощной видеокарте, могут в конечном итоге предпочесть AMD, компанию, которая предоставляет больше драйверов с открытым исходным кодом.
Если бы Linux более широко использовался на настольных компьютерах, вы, вероятно, увидели бы большее давление на компании с целью выпуска открытых драйверов. В Linux открытый исходный код является скорее конкурентным преимуществом, особенностью, которой многие пользователи придают значение при принятии решения о покупке. Но с учетом того, что пользователи Linux составляют такой крошечный процент от общего числа пользователей компьютеров, вопрос о том, делать ли драйвер с открытым исходным кодом, почти никогда не возникает. В Windows и macOS драйвер с открытым исходным кодом не будет сертифицирован.
Open-Source vs. Proprietary: что лучше использовать?
На большинстве компьютеров у вас нет выбора. В Windows и macOS ваши драйверы являются проприетарными. В Chrome OS, независимо от того, открыты ли ваши драйверы или закрыты, эти знания в значительной степени неизвестны и не имеют отношения к вашему опыту.
Но если вы используете Linux, то этот вопрос имеет значение. Если вам не нужна дополнительная мощность, которую может обеспечить проприетарный драйвер, например, для игр, оборудование с драйверами с открытым исходным кодом часто обеспечивает лучшую работу. И такие драйверы лучше соответствуют более широкому духу и функциональности, которые отличают Linux от других ОС.