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

Ядро Linux версии 2.6. представляет собой важный шаг вперед, так как, в отличие от предыдущих, оно поддерживает как очень большие, так и очень маленькие системы (например, «карманные» компьютеры и подобные ему устройства). К числу радикальных новшеств добавилась поддержка новых архитектур — прежде всего (наряду со встроенными системами) процессора Opteron, благодаря которой конечные пользователи получают в свое распоряжение 64-разрядную систему Linux.

УВЕЛИЧЕНИЕ МАСШТАБИРУЕМОСТИ

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

Поддержка операционной системой Linux серверов с технологией доступа к неоднородной памяти (Non Uniform Memory Access, NUMA) является одним из самых важных изменений. В сфере многопроцессорной обработки NUMA идет дальше, чем симметричная многопроцессорная обработка (SMP), и позволяет достичь большей эффективности для систем с несколькими процессорами. Системам SMP присущ ряд тех же недостатков, что и их однопроцессорным «родственникам». Например, наличие единственного пула памяти для всех процессоров, в результате чего шина памяти становится узким местом для производительности системы в целом. Серверы NUMA обходят эту проблему. В их основе лежит концепция выделения каждому отдельному процессору максимально близко расположенной к нему части памяти. Технически NUMA может быть представлена следующим образом: система включает в себя платы расширения, на которых находятся процессоры, память и другие компоненты, в частности устройства ввода/вывода. Хотя все платы могут взаимодействовать друг с другом, ясно, что эффективнее всего центральные процессоры работают с памятью, которая находится на той же плате, что и они сами. Таким образом, архитектура NUMA выглядит как сильно связанные кластеры.

Чтобы адекватно поддерживать новые машины NUMA, ядро версии 2.6 должно быть адаптировано во многих отношениях. Для начала реализуется «внутренняя топология прикладного программного интерфейса» (Application Programming Interface, API), посредством которой ядро сможет понять связи между процессором, пулом памяти и устройствами ввода/вывода. На основании этого планировщик процессов Linux учитывает имеющиеся связи и пытается оптимизировать задачи таким образом, чтобы они наилучшим образом использовали локальные ресурсы. Сверх того, у многих машин NUMA есть «дырки» в линейном поле памяти «между» узлами. Новое ядро способно корректно обращаться с ними. В Linux имеется еще много других внутренних изменений для усовершенствования поддержки устройств старшего класса, и, без сомнения, это приведет к еще большему распространению ядра на рынке. В следующем году можно ожидать, что в систему будет добавлено еще много других улучшений.

ОРГАНИЗАЦИЯ ГИПЕРПОТОЧНОЙ ОБРАБОТКИ

Начиная с версии 2.4.17 ядро Linux поддерживает гиперпоточную обработку (Hyper Threading) для процессоров Intel Pentium 4. Последнее означает, что один-единственный процессор воспринимается операционной системой так, как будто их два или более. Linux была первой операционной системой, где реализована данная функция, хотя компания Intel выпустила совместимые процессоры еще за год до этого. Microsoft же долго решала, сколько лицензий брать за процессор с гиперпоточной обработкой — одну или две. В подобной ситуации операционная система с открытыми исходными кодами имеет несомненное преимущество — никаких лицензионных сборов не предусматривается, и поддержка новой функции не порождает побочных проблем. Следующее усовершенствование нового ядра заключается в оптимизации планировщика и других компонентов таким образом, что организация гиперпоточной обработки теперь действительно оправдана. В ядре же версии 2.4 это было не всегда так, а выполнение некоторых задач даже замедлялось.

СИСТЕМА СИСТЕМНЫХ ФАЙЛОВ

Самое очевидное изменение — введение новой системы системных файлов sysfs, аналога файловых систем proc для процесса, devfs для устройств и devpts для псевдотерминалов Unix98. Файловая система монтируется в /sys и содержит наглядное представление дерева устройств, как его видит ядро. Оно получает данную информацию исключительно благодаря очень тесной связи с подсистемой объекта ядра: как только появляется объект ядра, всплывает соответствующий файл или каталог. Правда, при необходимости объекты ядра помещаются в sysfs без записи.

Поскольку каждое устройство или, соответственно, каждый объект ядра содержит уникальную структуру каталога, логично было экспортировать в дерево каталога различные известные атрибуты (имя устройства, режим питания, запрос прерывания (IRQ) и т. п.), чтобы системный администратор смог их прочитать и описать. Это дает положительный — хотя, возможно, и несколько запутывающий — побочный эффект, так как многие из специфических для устройств приложений перемещены из /proc/sys в /sys.

АППАРАТНАЯ ПОДДЕРЖКА ЯДРА

Со времени включения Linux в список наиболее популярных ОС, каждое новое появление ядра оказывалось явным улучшением в отношении поддержки различных устройств. Это касается как новых устройств (например, USB в ядре версии 2.4), так и старых технологий (например, MCA в ядре версии 2.2). У ядра версии 2.6 число неподдерживаемых устройств уже относительно небольшое, так что Linux остается совсем немного для всеобъемлющего «завоевания» аппаратного обеспечения ПК. Поэтому новое ядро несет с собой в основном усовершенствование поддержки.

Рисунок 1. Программа конфигурации ядра с диалогом удаления функций ядра для встроенной системы.
USB 2.0

В последнем цикле разработки поддержки шины USB была явно улучшена. Linux поддерживает теперь также устройства с USB 2.0. Данный стандарт предлагает пропускную способность до 480 Мбит/с (сравните с 12 Мбит/с у первоначальной USB). Высокоскоростные устройства на базе 2.0 постепенно вытесняют прежние продукты USB.

БЕСПРОВОДНЫЕ ТЕХНОЛОГИИ

Беспроводные технологии в последнее время добились широкого признания. Некоторые даже считают, что кабель (кроме шнура электропитания) через пару лет уйдет в прошлое. К беспроводным устройствам относятся как сетевые компоненты, так и обычные устройства, например «карманные» компьютеры.

В целом все оборудование можно разделить по дальности действия — большой (например, AX.25 для любительского радио) и короткой (беспроводные локальные сети по стандарту 802.11). Начиная с ядра версии 1.2 Linux поддерживает обе группы устройств, и обе подсистемы были обновлены во время разработки ядра версии 2.6. Самое главное изменение в этой области заключается в том, что основные компоненты подсистем короткой дальности действия для различных поддерживаемых плат и протоколов были объединены в единую «беспроводную» подсистему со своим прикладным программным интерфейсом (API).

Тем самым разработчики устранили некоторые незначительные несовместимости при использовании различных устройств. Кроме того, поддержка подсистемы в Linux улучшена благодаря централизованному набору инструментов пользователя для всех поддерживаемых устройств. Дополнительно к стандартизации ядро версии 2.6 вводит ряд усовершенствований, к числу которых относится способность уведомлять об изменении статуса (например, если устройство переходит в состояние «роуминг»). Сверх того, разработчики настроили протокол TCP так, чтобы периодические пиковые задержки при беспроводной передаче не приводили к разрыву соединения.

Что касается непосредственно поддержки устройств, то здесь также имеются значительные усовершенствования. Драйверы стандарта IrDA (для инфракрасного протокола, названного в честь Ассоциации передачи данных в инфракрасном диапазоне — Infrared Data Association Group, IrDA) усовершенствованы в части управления режимом электропитания и интеграции в модель нового ядра. Разумеется, самые большие успехи достигнуты в области технологии Bluetooth. Она была разработана в качестве беспроводного протокола для коротких расстояний с низким энергопотреблением, причем такие устройства не предъявляют условие прямой видимости, как при инфракрасном соединении. Технология Bluetooth работает в «карманных» компьютерах, мобильных телефонах, принтерах, а также в автомобильном оборудовании.

ПОДДЕРЖКА БЛОЧНЫХ УСТРОЙСТВ

Драйверы для выделенных шин памяти, IDE/ATA и SCSI, были также усовершенствованы во время цикла развития ядра версии 2.6. Самые большие изменения можно отметить в подсистеме IDE, которая постоянно переписывалась. Разработчики устранили множество проблем в масштабируемости и другие ограничения. Например, драйвер дисковода IDE способен производить запись непосредственно на записывающем устройстве СD IDE, что означает самодостаточную реализацию, по сравнению с прежней (раньше для применения записывающего устройства IDE под Linux требовалась специальная эмуляция SCSI, тем самым дело запутывалось и усложнялось). Теперь уровень IDE может также опросить BIOS машины, если он наталкивается на незнакомый ему контроллер. Таким образом он получает правильные значения для синхронизации и другие важные данные.

В SCSI также имеется много небольших усовершенствований. Для старых систем важно, что теперь Linux поддерживаются и многоканальные устройства SCSI-2 с более чем двумя номерами логических устройств (Logical Unit Number, LUN) для каждого устройства. Сверх того, предлагается поддержка BIOS расширенного дискового устройства (Enhanced Disc Device, EDD) в новых машинах. Таким образом, ядро распознает, как сервер видит собственные дисковые устройства. EDD предоставляет информацию обо всех подключенных к системе шинах хранения, о которых известно BIOS (включая IDE и SCSI). Помимо опций конфигурации это дает и другие дополнительные преимущества. Например, Linux может установить, с какого устройства запущена система, а интеллектуальные инсталляционные программы затем решат, где должен быть записан начальный загрузчик операционной системы. Нелишне еще раз подчеркнуть, что все типы устройств шины (аппаратное обеспечение, беспроводные технологии и хранение) интегрированы в подсистему новой модели устройства Linux.

ЗВУК

В области настольных систем одним из самых важных новшеств является интеграция звуковой архитектуры Linux (Advanced Linux Sound System Architecture, ALSA) вместо открытой звуковой системы (Open Sound System, OSS). У OSS много обусловленных архитектурой ограничений, а новая система полноценно поддерживает потоковую и симметричную многопроцессорную обработку, решая тем самым проблемы со звуком в многопроцессорных машинах. Сверх того, драйвер ALSA изначально был разработан как модульный, что обеспечивает улучшенную поддержку систем с несколькими звуковыми картами. Кроме того, поддерживается новое аппаратное обеспечение, включая аудиоустройства с интерфейсами USB и MIDI, дуплексные воспроизведение и запись.

МУЛЬТИМЕДИА

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

ПОДКЛЮЧЕНИЕ К СЕТИ

Сейчас в сетевой области у Linux имеется отдельная подсистема независимого интерфейса среды передачи (Media Independent Interface или IEEE 802.3u), используемая многими сетевыми драйверами. Дальнейшие изменения будут, в частности, состоять в существенном обновлении ISDN. В части программного обеспечения ядро версии 2.6 поддерживает IPSec. Протокол реализует шифруемую передачу на сетевом уровне. Дополнительно разработчики обновили поддержку многоадресной рассылки по сети. Такая функциональность прежде всего имеет значение для систем электронной почты и программного обеспечения аудио-, видеоконференций.

Рисунок 2. В новом ядре немало сделано для поддержки многопроцессорных систем.
СЕТЕВАЯ ФАЙЛОВАЯ СИСТЕМА

Ядро версии 2.6 предусматривает много обновлений и усовершенствований для сетевой файловой системы (Network File System, NFS). К их числу относится поддержка новой и еще не очень распространенной NFSv4 как на клиенте, так и на сервере. NFSv4 позволяет более надежно проводить аутентификацию с использованием шифрования, осуществлять интеллектуальную блокировку, взаимодействовать с файловой псевдосистемой и другими расширениями. Правда, еще не все функции NFSv4 реализованы в Linux, но поддержка относительно стабильна, и протокол вполне применим в рабочей среде. Дополнительно разработчики сделали реализацию сервера NFS более масштабируемой (теперь одновременно могут работать в 64 раза больше пользователей и одна большая очередь запросов) и более полной (наряду с UDP поддерживается передача по протоколу TCP). Администрирование осуществляется через новую файловую систему nfsd вместо системных вызовов.

Кроме того, много усовершенствований реализовано для сетей Windows. Ядро версии 2.6 включает в себя заново написанную поддержку для «родного» монтирования файловых систем протокола CIFS. К новой функциональности относится поддержка расширений UNIX для SMB и CIFS. Тем самым новое ядро может обращаться к типам файлов, не относящимся к Windows (как, например, узлы устройств и символические ссылки), на серверах SMB, которые это поддерживают, в частности Samba. К тому же при помощи ядра версии 2.6 пользователь клиента Linux благодаря встроенному драйверу NCP имеет возможность монтировать до 256 разделов NetWare.

Джозеф Праневич — системный администратор портала http://www.licos.com. С ним можно связаться, обратившись на сайт: http://kniggit.net.


? AWi Verlag