ДЛЯ НАЧАЛА: ЖИВЫЕ

- Knoppix -
Линукс за пять минут
- Puppy Linux -
Хороший друг


ДЛЯ ДЕЛА: ПРОФИ

- Debian -
Он такой один
- Linux Mint -
С родинкой на щеке!
- CentOS -
Копейка рубль бережёт!
- Fedora -
По следам Red Hat
- Ubuntu Linux -
Мы одной крови!
- Mageia -
Красота и удобства
- openSUSE -
Настоящее немецкое качество
- Slackware -
Линукс из кубиков
- ALT Linux -
Что русскому хорошо





ДЛЯ ДЕЛА: РОЛЛЫ

- ArchLinux -
Гениальное - просто!
- PCLinuxOS -
Просто линукс
- Aptosid -
Почувствуй силу!


ДЛЯ ДЕЛА: СОБЕРИ САМ

- Gentoo -
Каждому своё
- LinuxFromScratch -
Линукс с нуля


ДЛЯ ДЕЛА: ЛЁГКИЕ

- DeLiCate -
Старость в радость!
- SLAX -
Тысяча и один модуль


ЗАЩИТА

- OpenWall -
Не стучите, закрыто!
- Kali -
Вам, хакеры!


ПРИЛОЖЕНИЯ

- Planet CCRMA -
Работа со звуком
- VegaStrike -
Каждому по планете!


ЭКСПЕРИМЕНТ

- коЛинуксы -
Не выходя из Виндоус
- GoboLinux -
Очевидно и вероятно
- ReactOS -
Освободите Виндоус!


РОДНЯ

- BSD-семейство -
На плечах гигантов
- OpenIndiana -
До звёзд рукой подать


АРХИВ (2003-2016)
ФОРУМ




НАШИ ПРОЕКТЫ

MATRIX GL
ПОЛЕЗНЫЕ СОВЕТЫ
ПИНГВИН В КАРМАНЕ
ЗАКЛАДКИ
СТАТЬИ
КОНТАКТЫ


ПОМОЧЬ






Личный архив ЕЗ

20.01.2010 Новое прекрасно!

В эти дни в Веллингтоне, Новая Зеландия, проходит Linux.conf.au — одна из крупнейших конференций, посвящённых свободному программному обеспечению. Сотни энтузиастов и представителей бизнеса со всего мира собрались здесь, чтобы обсудить проблемы и перспективы open source в самых разных областях человеческой деятельности. Среди актуальных тем числится и выпуск очередной версии линуксового ядра: релиз 2.6.33 запланирован на начало марта. Ветка 2.6 ведёт свою историю с 2003 года, за это время в Ядро было внесено много интересного (к слову, количество строк в исходниках выросло вдвое). Но есть основания полагать, что мартовский релиз будет выделяться на фоне предшествующих. Дело в том, что львиная доля модификаций, внесённых в 2.6.33, приходится на вшитый в ядерный код экспериментальный свободный графический драйвер Nouveau — настоящую конфетку для обладателей видеокарт на чипах Nvidia.

Давайте сделаем экскурс в историю отношений сообщества пользователей свободного софта и производителей компьютерного железа. Для того, чтобы любая «видяшка» заработала в Linux, ей необходим драйвер, программа-посредник между видеокартой и Ядром. Идеальным вариантом считается драйвер с открытым исходным кодом, так чтобы его можно было свободно распространять с любым дистрибутивом, а в случае необходимости менять код (например, для исправления ошибок). Однако по ряду причин, производители не стремятся выпускать драйверы с открытым кодом. Почему? Из-за нежелания раскрывать секреты своих чипов. Поэтому сложилась следующая ситуация: для «видяшек» конкретного производителя существует официальный проприетарный драйвер (свободная дистрибуция запрещена, код закрыт) от производителя, и неофициальный драйвер с открытым кодом, развиваемый пользователями. Как правило, официальный драйвер поддерживает больше функций видеочипа, нежели его свободный аналог. Но есть и подводные камни.

Работает ReNouveau: идёт сбор данных о видеокарте

Проблема в том, что интересы производителя и пользователя пересекаются лишь частично и очевидно зависят от толщины кошелька последнего. Пример? В официальных драйверах для видеокарт производства и ATI, и Nvidia, присутствуют несколько давно известных, хорошо воспроизводимых и чрезвычайно неприятных ошибок. Драйвер ATI «рушится» при смене графических режимов. Драйвер Nvidia испытывает трудности с расширенным управлением питанием («засыпание» компьютера). Оба бага делают жизнь очень многих пользователей невыносимой, вынуждая искать альтернативные варианты. Будь драйверы свободными, с открытым кодом, энтузиасты давно исправили бы недоработки самостоятельно. Однако код в руках производителей — и ни та, ни другая компания до сих пор не вычистили ошибки из своих программ.

Есть у официальных закрытых драйверов и другие недостатки. Так, три года назад в драйвере Nvidia была обнаружена уязвимость, позволявшая злоумышленнику перехватить управление компьютером. На разработку «заплатки» у компании ушло несколько месяцев. А несовместимость официальных драйверов с новыми версиями свободных программ? Пользователи вынуждены ждать, пока производитель отреагирует и соизволит доработать закрытый код. Это неудобно и пользователям, и разработчикам прикладного софта. А когда очередная модель видеокарты признаётся устаревшей и поддерживать её становится нерентабельно, производитель перестаёт сопровождать её драйвер. Так что и годы спустя несчастным владельцам устаревшей «видяшки» приходится довольствоваться древним драйвером, с оставшимися в нём ошибками, без поддержки новых функций современного софта. Из той же оперы риск банкротства, в случае которого производитель унесёт все свои секретные наработки в могилу. Наконец, несвободные драйверы нельзя распространять на тех же условиях, что и дистрибутивы Linux. В результате пользователь, получив дистрибутив, включающий только свободные программы (таков, к примеру, Debian), вынужден скачивать официальный драйвер отдельно.

Nvidia + Linux = ?

Неудивительно что очень быстро нашлись энтузиасты, затеявшие разработку собственных полнофункциональных свободных видеодрайверов. К сожалению, производители скрывают не только исходники, но и полные спецификации чипов. Поэтому «прямым» путём — изучая документацию от производителей — изготовить полноценный драйвер невозможно. Вот почему популярный свободный драйвер nv для карт Nvidia не поддерживает 3D-функции (даже несмотря на то, что написан он с участием самой компании). Примерно та же ситуация и с картами ATI. Так что же, тупик?

К счастью, есть исследовательский метод, который позволяет обойтись без помощи производителей: чистое реверсивное проектирование (clean room reverse engineering). Вместо грубого вторжения в машинный код официального драйвера (простой реверс-инжиниринг — естественно, незаконный), энтузиасты задействуют специальную программу, которая заставляет видеокарту выполнить какое-либо действие и сравнивает состояние видеочипа до и после. Таким скрупулёзным образом, команда за командой, теоретически можно выяснить все функции видеокарты — и, заметьте, не нарушая законы. После остаётся лишь написать собственный драйвер.

Именно так и был создан драйвер Nouveau (читается как «нуво» - франц. новый). Разочарованные качеством первого свободного драйвера для карт Nvidia, энтузиасты потратили три года на создание достойной замены. Nouveau быстрее и лучше своего предшественника отображает 2D-графику, предоставляет частичную поддержку трёхмерных функций, а также даёт надежду на то, что 3D-графика с его помощью будет выводиться быстрее, чем с помощью драйвера официального, от самой Nvidia. Плюс, благодаря тому, что драйвер свободен, его можно распространять в составе любого линуксового дистрибутива. К настоящему моменту Nouveau имеется в Fedora, Ubuntu и нестабильной ветке Debian. Впрочем, в скором будущем, вместе с ядром 2.6.33, он появится в каждом Линуксе. Включение драйвера в Ядро позволит добиться ещё некоторых преимуществ в плане скорости и качества изображения.

Nouveau безоговорчно заменит старый свободный драйвер nv, но пока что не может считаться полноценной альтернативой драйверу официальному, несвободному. Помочь проекту достичь поставленных целей по силам каждому из вас: сбор данных, необходимых для реверс-инжиниринга — задача несложная, для этого в рамках проекта разработаны простые в обращении инструменты (в частности, утилита ReNouveau). Пора приступать и к экспериментам с самим драйвером: релиз-кандидат нового ядра давно доступен (ищите на kernel.org). Успехов вам!

------------------------------------------------------------------------------------------------------------

Этот текст всегда доступен по адресу Knoppix.ru/200110.shtml


При частичной или полной перепечатке, переводе, переработке материалов сайта ссылка на Knoppix.ru обязательна.
(c) Knoppix.ru 2003 - 2016