14 лет назад 20 октября 2004 в 0:40 83

Linux развивается чрезвычайно динамично. Что ожидает эту систему и ее пользователей? Продолжится ли противостояние Windows и Linux или каждая система займет свое место? Стоит ли ждать от Linux чудес, или эти времена уже прошли? Разумеется, эти вопросы весьма непросты, но все же кое-что мы можем предсказать уже сегодня.

ЯДРО СИСТЕМЫ
Ожидать от ядра системы чего-то сверхъестественного вряд ли разумно. Оно развивается, в него добавляется как поддержка новых устройств, так и систем управления логическими томами. В частности, в качестве системы управления логическими томами (logical volume manager) уже используется LVM 2.0 производства Sistina Software (www.sistina.com). Уже реализованы и поддержка технологии Hyperthreading, выпущены патчи для 64-разрядных процессоров. Проще говоря, в области потенциальных возможностей ядра системы вряд ли следует ждать какого-либо качественного прорыва, сравнимого с появлением поддержки интерфейса USB 2.0.

С точки зрения простого пользователя намного актуальнее пофантазировать по поводу “околоядерных” процессов. Проще говоря, процессов взаимодействия пользователя и ядра. А взаимодействовать придется – знакомый читателям Upgrade Алексей Федорчук как-то заметил, что “… развитие микропроцессорной индустрии вплотную подошло к порогу, за которым повышение производительности систем будет определяться не ростом гигагерц тактового генератора, а оптимизацией софта”.

Поэтому каждому пользователю, которого действительно волнует производительность своего “железного друга”, придется собирать ядро самостоятельно, причем с учетом конфигурации не компьютера вообще, а компьютера своего собственного и имея в виду не потребности пользователя среднестатистического, а только себя любимого и больше никого. Да и среднестатистический пользователь существует большей частью в фантазиях разработчиков, поэтому оптимизация системы “под себя” уже перестала быть экзотикой для избранных, а стала насущной потребностью для каждого разумного компьютеровладельца.

Главная проблема “всеобщего” ядра заключается в том, что количество устройств “вообще” уже во много раз превысило количество того, что реально имеется у конкретного пользователя. Причем большая часть устройств и интерфейсов, над поддержкой которых трудились разработчики, этому самому пользователю совершенно не нужна.

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

На самом деле все может происходит как раз наоборот по причине того, что в ядро включено все, что только возможно, – и нужное, и ненужное (привычка впустую разбазаривать ресурсы до добра не доведет в любом случае). Впрочем, отдельным пользователям для отдельных задач удается собрать крошечное монолитное ядро, пожертвовав тем, что не является жизненно необходимым для решения конкретной задачи. Более того, для каждой задачи можно иметь свое ядро. Тогда пользователь получает практически совершенную систему – быструю, надежную, безопасную и простую. Но малофункциональную.

А вот модульное ядро представляет собой загружаемый при старте системы файл, к которому прилагается набор других файлов, называемых модулями. В модулях и содержатся все возможности ядра, которые можно подключать и отключать по мере необходимости без перезагрузки системы. Основное достоинство модульного ядра заключается в том, что в него можно включить все возможности, сохранив при этом небольшой размер. Но есть и минусы – модули надо все же сначала загрузить. Правда, большинство современных дистрибутивов делают это автоматически, за что приходится расплачиваться усложнением системы.

Оптимальное ядро – это нечто среднее между абсолютно монолитным и абсолютно модульным. Понятно, что поддержка жесткого диска должна быть встроена в ядро. А вот какой-нибудь USB-драйвер, который нужен раз в полгода, следует сделать модулем. А если не раз в полгода, а намного чаще? А если никакого жесткого диска вообще нет и система загружается со специально собранного для этого дела LiveCD? Вывод очевиден: никаких универсальных ядер нет и быть не может.

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

Стало быть, в будущем (далеком или близком) непременно появится интеллектуальная система, помогающая пользователю определиться с конфигурацией ядра. Кстати, очень может быть, что именно необходимость решения таких задач даст новый толчок развитию систем искусственного интеллекта вообще и экспертных систем в частности. Их применение для настройки ядра системы Linux (да и не только ядра – графическую подсистему тоже сможет настроить не каждый) позволит резко повысить ее популярность среди конечных пользователей.

Итак, когда-нибудь настанет тот волнительный момент, когда в большинство дистрибутивов класса end user будет входить подсистема настройки параметров ядра. Скорее всего, она будет запускаться при первом старте системы и предлагать пользователю посвятить немного времени оптимизации ядра под свои потребности.

В процессе своей работы система получит исчерпывающие данные о железе, затем задаст пользователю ряд вопросов на понятном ему языке (и в прямом, и в переносном смыслах), и, наконец, предложит несколько вариантов сборки. Пользователь сможет выбрать либо один, либо несколько. Причем, собрав ядра, система должна будет сама прописать их в конфигурационный файл загрузчика так, чтобы при загрузке пользователь смог выбрать любое из полученных ядер.

Есть хорошая новость и для тех, кто не изменит любимой системе Windows ни за что и никогда. Проект Cooperative Linux уже объявил о возможности запуска ядра Linux как отдельного процесса в системе Windows XP. Для этого используется специальный драйвер, который запускает ядро в привилегированном режиме. Таким образом, Cooperative Linux получает полный контроль над аппаратными ресурсами и не конфликтует с системой Windows, причем производительность такой системы Linux практически не отличается от канонической.

Соответственно, пользователь получает сразу две активные системы, ведь работающее ядро дает возможность запустить любую программу. Любопытно то, что специалисты специально отмечают отсутствие препятствий для подобного запуска системы Linux практически из любой операционной системы, пусть даже это будет сама Linux.

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

ДИСТРИБУТИВЫ
Разумеется, время универсальных дистрибутивов еще не прошло. Да и вряд ли оно когда-нибудь пройдет. Более того, общедоступность кода приведет к появлению еще большего количества дистрибутивов “для всех”, большинство из которых так и не выйдут за пределы alma mater. Однако часть разработчиков наверняка решит, что конкурировать с грандами не стоит, и займется выпуском дистрибутивов, рассчитанных на конкретного пользователя, имеющего вполне конкретные потребности. Например, дистрибутив для кабинета информатики. Или дистрибутив для работника бухгалтерии. В конце концов, дистрибутив для интернет-серфера.

Очевидно, что такие дистрибутивы обречены на популярность по определению. Причем пользоваться такой системой будет значительно проще, чем даже системой Windows. Действительно, процедура установки системы уже доведена до полного автоматизма. Разумеется, речь идет о системе для “усредненного” пользователя, но, ограничивая круг потребителей людьми одной профессии или интересов, разработчики апеллируют к пользователю, требования которого будут весьма предсказуемыми.

Между прочим, такие проекты уже существуют. Movix, скажем, представляет собой практически полное и законченное решение для мультимедиамана. Freeduc разрабатывался специально для использования в школах. А уж об играх и говорить нечего – America’s Army, Return to Castle Wolfenstein, FlightGear и некоторые другие уже свободно продаются даже в российских магазинах. LiveCD для диагностики системы, LiveCD для тестирования “железа”… Причем все это есть уже сейчас, а в недалеком будущем такого добра станет еще больше. Более того, в джентльменский набор каждого продвинутого пользователя будут входить несколько LiveCD на все случаи жизни.
Но вернемся к дистрибутивам классическим.

Чего следует ждать от них? Придется начать с не самого приятного. Увы, коммерциализация системы Linux продолжается, и остановить этот процесс вряд ли удастся. Компания Red Hat уже закончила разработку и поддержку своего общедоступного дистрибутива, полностью сосредоточив свои силы на Red Hat Enterprise Linux, которая уже сегодня работает на нескольких архитектурах: Intel x86-совместимые (32-bit), Intel Itanium (64-bit), Advanced Micro Deviced AMD64 (64-bit), IBM PowerPC(R) и IBM Mainframe.

Более того, нет оснований считать, что покорение системой Linux всех существующих ныне платформ является чем-то из области фантастики. Так что можно ждать небольшой революции на пользовательском уровне – об аппаратной платформе можно будет вообще не думать. Не думать в том смысле, что переход на новую аппаратную платформу уже не будет означать затрат на освоение нового программного обеспечения (или времени, если затраты значения не имеют). Таким образом, выбор платформы станет более или менее объективным, поскольку не будет зависеть от софта.

Впрочем, пока обыкновенного пользователя коммерциализация не коснулась – Red Hat мило превратился в дистрибутив Fedora. Правда фирменная техподдержка приказала долго жить, но, положа руку на сердце, кто ей пользовался-то? Тем не менее практически в каждом дистрибутиве уже находится некоторое количество софта, которое не является ни свободным, ни бесплатным. Дистрибутив SuSE Linux вообще можно отнести к разряду свободных только весьма и весьма условно. Но менее популярным он от этого не становится.

Отсюда вывод: количество “принципиальных” линуксоидов в общем числе пользователей системы Linux будет уменьшаться. Если романтический период распространения этой системы еще не истек, то конец его уже можно увидеть невооруженным глазом. Потихоньку наступает пора прагматичных пользователей с тугим кошельком, которые, тем не менее, умеют считать собственные деньги. Мэр Мюнхена Кристиан Уде всерьез настроен на то, чтобы городские чиновники полностью пересели на Linux. Правда, некоторое время назад соответствующую программу пришлось ненадолго заморозить, поскольку городские власти опасались нового патентного законодательства.

Но сейчас работы в рамках проекта LiMux (внедрение 14 000 рабочих мест под управлением открытой ОС) продолжаются. Правительство штата Калифорния уже знакомится с рекомендациями аудиторов по поводу перехода на IP-телефонию и открытое программное обеспечение. Последнее, по оценкам специалистов, должно сэкономить штату около 300000 долларов в год (сумма небольшая, но все же).
Однако пока эти проблемы довольно далеки от массового российского пользователя, привыкшего покупать программы исключительно “на вес”. Его куда больше волнует проблема локализации дистрибутивов и то, что происходит сейчас на рынке российского софта.

Впрочем, локализация последних дистрибутивов производства ALTLinux (www.altlinux.ru) и ASPLInux (www.asplinux.ru) такова, что пользоваться ими могут даже те, кто не учит английский по принципиальным соображениям. Разумеется, им будет несколько тяжелее, чем полиглотам, но то же самое можно сказать и про пользователей системы Windows. На сегодняшний день локализация основных пользовательских программ (Mozilla, OpenOffice и пр.) превосходна. Практически полностью переведены интерфейсы KDE и GNOME. Так что можно надеяться на то, что следующие версии дистрибутивов отечественных разработчиков будут не просто русифицированы, а русифицированы идеально.

БЕЗОПАСНОСТЬ
По данным сайта isc.sans.org, среднее время, которое спокойно проводит в Сети непатченный и незащищенный Windows, сократилось с сорока до двадцати минут. На практике это приводит к тому, что установка системы Windows с подключенным сетевым проводом уже неразумна – пока будешь инсталлировать софт и обновления, система уже успеет заразиться.

Сегодня безопасность считается чуть ли не главным достоинством системы Linux. Но будет ли так всегда? Вряд ли. И речь идет не о индивидуальном взломе сервера, а о самых заурядных угрозах, носящих массовый характер, а потому весьма актуальных для домашнего пользователя.

О грядущей эпидемии вирусов, заражающих систему Linux, специалисты говорят уже давно. Правда, уточняя, что для нее потребуется введение некоего стандарта и широкое распространение этой системы. Первое условие уже можно считать выполненным – наиболее авторитетных разработчиков уделяют стандартизации системы повышенное внимание. Выполнение второго условия – вопрос времени и трудолюбия разработчиков.

Таким образом, в самом ближайшем будущем полемика о “неуязвимости” системы Linux непременно перейдет из теоретической плоскости в практическую. Поводов для этого более чем достаточно. Во-первых, открытость текстов, несмотря ни на какие доводы, является существенным уязвимым местом. Очевидно, что то время, которое вирусописатели тратят на дизассемблирование кода “закрытых” систем, они могут расходовать более оптимальным (в их понимании) образом. Открытость исходных текстов может запросто привести к появлению вирусов, работающих на уровне ядра операционной системы. Разумеется, опытные пользователи тут же возразят, что заразить ядро не так-то просто, ведь при нормальной работе доступ к нему отсутствует.

Однако значительная часть домашних пользователей предпочитает работать как root. А для пользователей системы Lindows иной режим работы, мягко говоря, вообще не предусмотрен. Это оправдывается тем, что вот, мол, большинство пользователей системы Windows всю жизнь работают “под рутом” и ничего страшного с ними не происходит. Однако система Windows не может похвастаться открытым ядром.

Механизм заражения системы Linux “ядерным” вирусом выглядит очень просто: достаточно запустить заразу из-под любого активного процесса с правами администратора (а убедить неопытного пользователя сделать это – дело нехитрое), и вирус пропатчит ядро или создаст новый модуль для него. От второй напасти можно защититься так называемым электронным подписыванием модулей, но разве это выход?

Патчи для системы Linux также значительно отличаются от патчей для Windows. С точки зрения пользователя патч для ОС Windows – это просто исполняемый файл, который надо запустить, остальное же он сделает сам. А вот для неопытного пользователя системы Linux “латание” системы может оказаться не просто нетривиальной, а непосильной задачей. Причина заключается в еще имеющей место несовместимости различных версий системы и частой необходимости перекомпиляции исходников патча.

В системе Linux возможно существование и резидентных вирусов (Siilov), и скрипт-вирусов, похожих на LoveLetter. Да и от почтовых вирусов типа Melissa система Linux не застрахована. А ведь многие пользователи перешли на Linux только потому, что были абсолютно уверены в изначальной неуязвимости этой системы. Так что эпидемия непременно будет, и ее масштабы вполне могут оказаться катастрофическими.

БЫТОВЫЕ УСТРОЙСТВА
Исторически сложилось так, что производители карманных компьютеров, телевизионных приставок и других электронных устройств вплоть до бытовых приборов, предпочитали использовать либо свои собственные программные разработки, либо что-то вроде продукции компаний, специально занимающимися такими устройствами (например, Wind River Systems). Однако практика показала, что это не самый лучший путь.

Безусловно, в то время, когда “умные” приборы были диковинкой, на цену особо никто не смотрел и производитель не находился в тех жестких условиях, в которые его ставит конвейер. Но это время прошло, и сегодня одним из важнейших факторов, определяющих конкурентоспособность изделия, стала его цена. Очевидно, что минимальная цена софта достижима только в том случае, когда у программы отсутствует правообладатель, который может потребовать лицензионных отчислений. А именно такой системой и является Linux.

Подобные устройства уже выпускаются полным ходом. Так, компания Sharp предлагает потребителю карманный компьютер Sharp Zaurus, работающий под управлением системы Linux. Та же Wind River уже объявила о своем вхождении в Consumer Electronics Linux Forum (CELF), членами которого являются Sony, Panasonic, Motorola и LG Electronics. Причем произошло это после того, как Wind River отказалась от продолжения работ над собственной операционной системой VxWorks, признав, что Linux является лучшим решением.

Но и тут не обходится без пресловутой ложки дегтя. Дело даже не в отсутствии общепризнанного единого стандарта – это поправимо, дайте только время. Дело в безопасности Linux-устройств.
В мире уже появляются образцы бытовой техники, подключенные к интернету. Так вот, заражение управляющего компьютера может привести к тому, что он отправит бытовым приборам самые немыслимые команды и вместо чашечки крепкого кофе хозяин системы получит размороженный холодильник. А поскольку мы выяснили, что об абсолютной безопасности Linux-систем не может быть и речи, такой поворот событий вполне возможен.

Как бы то ни было, преимущества Linux при использовании ее во встроенных системах все же перевешивают недостатки. Скажем, система Linux, которой управляется спутниковый ресивер DreamBox 7000, уже сегодня позволяет открывать любые кодированные каналы без модулей и карточек – новые коды будут берутся сразу из интернета (разумеется, речь идет о технической возможности – юридическая чистота такой операции целиком и полностью на совести владельца).

С устройством можно общаться по сети как с отдельным компьютером, используя классический Telnet. В общем, пользователь ограничен только своей фантазией. А если в интернете не нашлось готовой прошивки (что, кстати, маловероятно – скорость, с которой Linux-разработчики пишут софт, давно известна), то никто не мешает написать его самому. Система-то открытая.

Главная проблема “всеобщего” ядра заключается в том, что количество существующих устройств уже во много раз превысило реальные потребности пользователя.

Коммерциализация системы Linux продолжается, и остановить этот процесс вряд ли удастся: деньги нужны всем, и без них сделать что-то путное становится все сложнее.

Среднее время, которое спокойно проводит в Сети непатченный и незащищенный Windows, сократилось с сорока минут до двадцати, чего явно недостаточно для поиска и установки патча.