Вышел релиз Linux ядра 2.6.31. Обзор новшеств

10 сентября 2009 года

Линус Торвальдс объявил (Архивная копия от 21 апреля 2015 на Wayback Machine) в списке рассылки Linux ядра о выходе релиза 2.6.31. В новое ядро принято около 12 тысяч исправлений от 1356 разработчиков, размер патча - 57Мб (добавлено 923 тыс. строк кода, удалено - 513 тыс.). 70% всех изменений связано с инфраструктурой драйверов и еще 6% связано c прошивками (firmware) и звуковой подсистемой, что значительно больше неформального баланса "50% изменений в драйверах и 50% во всем остальном". Примерно 11% изменений имеют отношение к поддержке различных аппаратных архитектур (ARM, mips, powerpc, sh, x86) и примерно столько же приходится на код, обеспечивающий работу файловых систем.

Основные новшества:

  • Поддержка USB 3.0 и хост-контроллеров, соответствующих спецификации xHCI 0.95 (eXtensible Host Controller Interface). Стандарт USB 3.0 определяет в качестве максимальной скорости передачи данных через USB интерфейс - 4.8 гигабит в сек., что в 10 раз быстрее USB 2.0;
  • CUSE - расширяет возможности FUSE поддержкой создания драйверов символьных устройств (например, драйверов для звуковых карт), работающих на пользовательском уровне. Одним из первых проектов использующих CUSE является OSS Proxy(недоступная ссылка), универсальный эмулятор звуковых устройств, позволяющий пробрасывать звук поверх сети на звуковую карту другой машины или организовать более полный уровень совместимости OSS-приложений с звуковой подсистемой ALSA, позволяющий в один и тот же момент использовать интерфейсы OSS (/dev/dsp, /dev/adsp и /dev/mixer) и ALSA;
  • Проведена работа по улучшению отзывчивости системы при выполнении типовых десктоп операций в условиях нехватки оперативной памяти. Удалось добиться уменьшения на 50% числа запросов, попадающих на вытесненные в раздел подкачки страницы памяти, и на 1/3 уменьшить число обращений к свопу (pswpin), что продемонстрировало в тестах увеличение интерактивности при работе с десктопом примерно в два раза;
  • Включение в состав KMS (Kernel Mode Setting) модуля для манипулирование видеорежимами на уровне ядра для карт ATI Radeon. В настоящий момент поддерживаются карты R1XX,R2XX,R3XX,R4XX,R5XX, в скором времени ожидается поддержка карт R6XX, R7XX (HD2XXX - HD4XXX) и более новых;
  • Добавлена подсистема Performance Counter, позволяющая задействовать для выявления узких мест, отладки и профилирования специальных "PERFMON" регистров, доступных в современных CPU (например, Intel Core 2). Регистры PERFMON могут отразить такие статистически данные, как число выполненных инструкций, распределение попаданий данных во внутренний кеш, качество работы предсказательной логики CPU. Достоинство задействования аппаратных счетчиков производительности в возможности проведения операции профилирования без использования ptrace и без замедления работы на выполнение сопутствующих вычислений. Для управления представлена специальная утилита perf, поддерживающая в числе прочего и top-подобный формат вывода текущей статистики;
  • Поддержка стандарта IEEE Std 802.15.4, определяющего низкоскоростной (до 250 Кб в сек), но энергоэффективный метод беспроводной передачи данных на небольшие расстояния (около 10 метров). Основное назначение - беспроводное соединение различных датчиков, переключателей и устройств автоматизации;
  • Предварительная поддержка работы в режиме NFS 4.1 клиента;
  • Улучшение средств по выявлению ошибок в ядре:
  • Kmemcheck - механизм для выявления фактов некорректной работы Linux ядра с памятью, позволяющий выявить неинициализированные области выделенной через kmalloc памяти. Kmemcheck осуществляет мониторинг всех операций записи и чтения, сохраняя в логе все факты чтения блоков памяти, в которые до этого не производилась запись;
  • Kmemleak - механизм для определения утечек памяти в Linux ядре. Используется метод похожий на применяемый в системе Valgrind;
  • Поддержка использования утилиты gcov из состава GCC для кода Linux ядра. Gcov позволяет проанализировать частоту выполнения различных участков кода и выявить блоки которые можно подвергнуть оптимизации;
  • Новый Firewire стек переведен в разряд базового стека. Ранее Firewire стек имел экспериментальный статус и разрабатывался в качестве замены для стека ieee1394. Кроме того, в ядре 2.6.31 добавлена поддержка проброса IPv4 поверх Firewire;
  • Значительное расширение поддерживаемого оборудования, например, добавлен новый беспроводной драйвер iwmc3200wifi для карт Intel Wireless Multicomm 802.11;
  • fsnotify - новая реализация механизма для слежения за событиями в файловой системе, представляющая собой переработанный вариант inotify и dnotify, основанный на использовании новой инфраструктуры нотификации в VFS;
  • Внесен ряд cущественных улучшений в код файловых систем Btrfs и Ext4.

Выпустив релиз 2.6.31, разработчики сразу переключились на подготовку следующей версии: Грег Кроа-Хартман (Greg Kroah-Hartman) опубликовал в своем блоге подробный обзор состояния экспериментальной "staging" ветки и подчеркнул какие из проектов уже готовы для включения в состав Linux ядра 2.6.32.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Вышел релиз Linux ядра 2.6.31. Обзор новшеств», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.