Появилось на свет Linux ядро 2.6.31. Обзор нововведений
Появилось на свет Linux ядро 2.6.31. Обзор нововведений
Линус Торвальдс заявил в перечне рассылки 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 клиента;
* Усовершенствование средств по выявлению ошибок в ядре:
o Kmemcheck - конструкция для выявления фактов некорректной работы Linux ядра с памятью, позволяющий обнаружить неинициализированные области выделенной сквозь kmalloc памяти. Kmemcheck осуществляет наблюдение всех операций записи и чтения, сохраняя в логе все данные чтения блоков памяти, в которые до сего не производилась отметка;
o Kmemleak - инструмент для определения утечек памяти в Linux ядре. Используется способ аналогичный на применяемый в системе Valgrind;
o Обеспечение использования утилиты 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.