ОС и поддержка «железа»: мифы и реальность

Алексей Федорчук
18 июня 2008 г

Какая из сегодняшних операционных систем лучше всего поддерживает современное «железо», столь быстро обновляющееся в современном быстро меняющемся мире? Ведь это один из решающих аргументов за или против использования той или иной ОС на пользовательском десктопе. Где зачастую можно обнаружить видеокарту, едва успевшую сойти с монтажного конвейера.

Разумеется, лучше всех это делает самая операционная из всех операционных систем всех времен и народов, скажете вы мне. То есть MS Windows. И будете правы, но лишь частично. Потому что если крепко призадуматься, всё будет не так однозначно.

Так давайте призадумаемся: а какое оборудование поддерживает Windows сама по себе? Да почти никакого — разве что процессор и память. Всё остальное — полноценная поддержка любого рода дисковых контроллеров, видеокарт, аудиосистемы, любого периферийного оборудования и так далее — обеспечивается драйверами. Которые поставляются с соответствующими устройствами и разрабатываются их производителями. И без которых свежеустановленная Windows на современном компьютере представляет собой «жалкое, душераздирающее зрелище».

Теперь зайдем с другого конца «натурального ряда» операционных систем. Традиционно самой скверной поддержка «железа» считается в NetBSD. С одной стороны, это действительно так: вспомним, сколько лет пришлось ждать включения поддержки IDE-RAID. А ведь это не было какой-то экзотикой — такими контроллерами уже тогда оснащалась каждая вторая материнская плата.

А с другой стороны, давайте взглянем на список поддерживаемых NetBSD архитектур, занимающий пару-тройку экранных страниц и насчитывающий около 50 позиций. В этом списке можно обнаружить все платформы, когда-либо придуманные человечеством, включая древние и экзотические. Причем портирование NetBSD на вновь появляющиеся платформы осуществляется, по утверждения разработчиков, в считанные дни, а то и часы. И в это легко поверить, если обратить внимание на то, что очередной релиз этой операционки выходит не практически, а просто одновременно для всех поддерживаемых платформ. Конечно, время от времени прекращается поддержка архитектур, пришедших уж совсем глубокой древности. Но всё, что имеет шанс быть в работоспособном состоянии, поддерживается.

Где-то в середине этого огромадного списка скромно притулилась и платформа i386, именуемая в народе PC-совместимой, или просто писюком. И включили её туда разработчики, руководствуясь принципом: мы поддерживаем все платформы, в том числе и эту. Подчеркну — в том числе. Но её поддержка ни в коем случае не является приоритетной. Насколько мне известно, высшим приоритетом в проекте пользуются процессоры для встраиваемых устройств, все остальные порты развиваются по остаточному принципу. Вот и приходится пользователям «писюков» годами ждать поддержки IDE-RAID или SATA, не говоря уже о более экзотических устройствах…

Едем дальше, видим мост… то есть OpenBSD. Говорят, в ней поддержка современного железа осуществляется лучше, чем в NetBSD, но очень ненамного (я давно не видел ни ту, ни другою, так что сравнивать не возьмусь). И причиной также является специфическая ориентация системы — в первую очередь на максимально надежные и защищенные сервера. А много вы видели серверов с персональным принтером для фотореалистической печати? Или с отдельным крутым монитором, подсоединенным к супермодерновой Geforce или ATI? Я — так ни одного (вот серверов без мониторов вообще видел много — целые шкафы). Так что со стороны пользователя было бы несколько опрометчиво ожидать, что разработчики будут уделять чрезмерной внимание его десктопным капризам.

Тем более, что кроссплатформенность — также в числе приоритетных направлений развития OpenBSD. Конечно, список поддерживаемых ею платформ не столь огромен, как у старшей сестрички NetBSD, но, тем не менее, впечатляет.

Маленькое отступление: предвижу комменты типа «я использую Net- (Open)BSD на десктопе много лет — и вреда ни малейшего. Да, можно — сам был некогда в числе таких экспериментаторов-энтузиастов, вероятно, одним из первых. О целесообразности этого говорить здесь не будем, достаточно вспомнить анекдот про армянское радио: Можно ли спать с открытой форточкой? Можно, если больше не с кем.

А в контексте настоящей темы подчеркну только, что, используя любую из этих систем в качестве настольной, вы в отношении совместимости с «железом» делаете это под свою ответственность: разработчики обеих видят высшее счастье в жизни отнюдь не в удовлетворении ваших десктопных потребностей.

Несколько другое дело — FreeBSD. С некоторых пор её разработчики если и не взяли курс на полную «десктопизацию» системы, то, по крайней мере признали это направление весьма важным. И уж тут-то пользователь вправе ожидать поддержки своего любимого и современного «железа». Оправдаются ли его ожидания?

Лишь частично. Начиная с пятой ветки, поддержка нового оборудования появляется во FreeBSD довольно оперативно, но в каждый момент времени:

а) кое-что из актуального «железа» по прежнему не поддерживается;
б) кое-что поддерживается так себе;
в) кое-что поддерживается хорошо, но с определенным запозданием.

Одним из существенных препятствий для настольного использования FreeBSD является недостаточная поддержка современных видеокарт — этот вопрос в качестве модельного я рассмотрю в заключительной части статьи. Пока же отмечу, что фактически во FreeBSD ныне можно работать только в VESA-режиме, что далеко не есть gut. Правда, для карт Nvidia существуют фирменные драйвера — но только для 32-битной версии, да и появляются они с существенным запозданием относительно таковых для Linux.

Ожидать же фирменных драйверов от производителя для, скажем, фотореалистических принтеров, пользователям FreeBSD не приходится не только в ближайшее время, но и в отдаленной перспективе, в светлом будущем.

Несколько слов о DragonFlayBSD. Отколовшись в свое время от четвертой ветки FreeBSD, в отношении поддержки устройств она продолжает её политику. То есть: круг поддерживаемых устройств не очень широк, поддержка эта появляется не мгновенно, но уж что поддерживается — поддерживается хорошо.

И, наконец, Linux — среди всего семейства открытых Unix-подобных оперционок общепризнанный чемпион по части поддержки оборудования. Во-первых, сам по себе Linux (то есть ядро) поддерживает наиболее широкий спектр оборудования. Во-вторых, большое количество разработчиков обеспечивает быстрое появление драйверов для вновь появляющихся устройств. И, в-третьих и главных, всё большее количество производителей оборудования поставляют свои девайсы с драйверами под Linux — если и не в коробке, то в доступном по сети виде. В свое время с ьлагородным почином на этом поприще выступила компания Nvidia. И тут настало время рассмотреть поддержку видеокарт в свободных системах — своего рода модель драйверной поддержки вообще.

Для начала надо развеять одно распространенное в кругах новообретенных пользователей Linux заблуждение. Часто можно слышать выражение: карта имя рек не поддерживается Linux’ом (или FreeBSD, или любой другой BSD).

Так вот, ядро Linux (а также любой BSD-системы) поддерживает все видеокарты, совместимые со стандартом VESA (а VESA-несовместимые карты черти в преисподней давно уже подкидывают в топки для пущего потрескивания). Разумеется, в консольном режиме, где всегда обеспечивается поддержка видеорежима 80×25 символов и еще нескольких стандартных.

В Linux, DragonFlayBSD и FreeBSD, кроме того, можно реализовать режим т.н. графической консоли (через framebuffer), и в этом случае становится доступным набор стандартных режимов от 640×480 до 1600×1440, а для карт ATI — также и некоторые нестандартные (правда, это уже только для Linux’а). Возможно, такая возможность есть и для карт Nvidia — не пробовал. Дело в том, что и в том, и в другом случае в ядро Linux надо встроить поддержку не абстракной VESA, а поддержку именно видеокарт ATI или Nvidia, соответственно. Последняя же будет жутко конфликтовать с фирменными драйверами ее — вплоть до полной неработоспособности системы.

Однако приведенная выше сакраментальная фраза подразумевает не поддержку карт системой как таковой, а поддержку их работы в графическом режиме, сиречь в Иксах. Каковая может быть достигнута двумя способами.

Первый способ — использование собственно Иксовых драйверов, всегда наличествующих в системе, nv и radeon (для Mvidia и ATI, соответственно). До недавнего времени драйвера их Xfree86, а затем и из Xorg, справлялись с этой задачей вполне успешно, обеспечивая качественную работу в 2D режиме — правда отлов рыбы на ледяных склонах в Tuxracer’е происходил очень медленно и печально. Причем поддержка новых видеокарт Иксовыми драйверами реализовывалась очень быстро по их выходу.

Однако в один далеко не прекрасный момент, года два или три назад, неожиданно обнаружилось, что с новыми моделями что Nvidia, что ATI Иксовые драйвера работать категорически отказываются. То есть отказываются вообще — Иксы просто не грузятся, и система при их старте падает в черный экран. Видать, разработчики Xorg притомились участвовать в «гонке вооружений» с производителями видеочипов и с некоторого момента времени просто забили на поддержку новых видеоустройств вообще. И установка фирменных драйверов стала необходимостью для всех — даже тех, кто, подобно автору этих строк, не испытывал не малейшей тяги к надледному лову рыбы и тому подобным игрищам: без них лучшее, что удавалось достигнуть (посредством Иксового драйвера vesa), был, соответственно vesa-режим, являвший собой зрелище вполне душераздирающее.

Примечание: едва байты, образующие эту заметку, успели улечься на винчестер, как мне довелось столкнуться с последней версией X-сервера — 1.4 (правда, не последней его реализацией, вышедшей днями). Я заполучил ее в составе дистрибутива Zenwalk 5.2, который сам по себе заслуживает отдельного рассмотрения (надеюсь, оно скоро воспоследует). Так вот, в ходе инсталляции его мое встроенное видео с материнки на Nforce было опознано, в xorg.conf прописан драйвер nv (раньше автоматом прописывался драйвер vesa) — и всё заработало. Так что зря я покатил бочку на разработчиков Xorg — какие-то телодвижения в плане развития драйверов они всё-таки делают. Но до недавнего времени ситуация была именно такая, как я описал в предыдущем абзаце. А, учитывая, что проект Xorg вообще переживает сейчас не лучшие свои дни, она будет повторяться.

Фирменный видеодрайвер — казалось бы, штука чисто Иксовая. Однако ему требуются некоторые «ядерные» функции, и потому он оказывается привязанным к ядру операционной системы: Linux требует одной его версии, FreeBSD — другой; для прочих свободных ОС фирменных видеодрайверов нет и, похоже, не будет никогда. Кроме того, для 32- и 64-битных платформ также требуются самостоятельные драйверы. Как же обстоит с этим дело ныне?

Тут следует с положительной стороны отметить фирму Nvidia. Она с заслуживающей похвалы регулярностью выпускает свежие версии своих видеодрайверов под Linux, как в 32-битном исполнении, так и под 64-битном. Они поддерживают самые новые чипы от родной фирмы, просты в установке (встречающиеся подчас на форумах стенания по сему поводу обусловлены обычно кривизной двух известных девайсов и нежеланием читать вполне внятное, хотя и англоязычное, руководство). Стабильность их работы также нареканий не вызывает.

С некоторых пор Nvidia выпускает также драйвера и для FreeBSD — правда, с некоторым запозданием относительно Linux’овых и только в 32-битной версии. Но и это лучше, чем ничего.

Потому что ATI (точнее, уже AMD) вообще не жалует пользователей FreeBSD поддержкой, выпуская лишь видеодрайвера под Linux. Правда, к одинокой 32-битной версии недавно добавилась 64-битная.

Показательна в этом отношении политика Intel. Эта фирма, не мудрствуя лукаво, просто открыла спецификации на свои видеочипы (и открывают сразу по выходе новых). Переложив таким образом и труд по их поддержке, и ответственность за оную на плечи сообщества. К чести которого, оно с этой ношей справляется легко, и Иксовый драйвер для чипов от Intel работает очень даже справно. Однако много ли вы видели решений на видеочипах от Intel вне круга ноутбуков, да и то преимущественно бюджетных? А в топ-модели всё чаще норовят засунуть дискретное видео от ATI или Nvidia.

Подведем итог вопросом. Так какая же ОС лучше всего поддерживает современное десктопное «железо»? Ответив — та, которая лучше поддерживает «железо», нужное вам и имеющееся у вас.