Вот и состоялся первый технический выпуск ядра серии 3.9! В новую версию принято 11.7 тысяч исправлений от 1364 разработчиков, размер патча - 42Mb.
Около 39% всех представленных изменений связаны с драйверами устройств, примерно 29% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур. 12% связано с сетевым стеком, 5% - файловыми системами и 5% c внутренними подсистемами ядра.
В разработке Linux Kernel 3.9 приняли участие 219 компаний, наибольший вклад представили сотрудники Intel, Red Hat, SUSE, Google, Linaro, Texas Instruments, IBM, Samsung, NVidia и Oracle. Несвязанными с компаниями энтузиастами представлено 10.1% изменений.
Полный список изменений: kernelnewbies.org. Я же приведу самые интересные новшества:
-
Дисковая подсистема, ввод/вывод и файловые системы
- В файловую систему Btrfs добавлена встроенная поддержка RAID5 и RAID6. Интеграция поддержки RAID непосредственно в код файловой системы позволяет применять разные уровни RAID для метаданных и хранимых данных
- В файловой системе Ext4 задействована реализация возможности "punch hole" для inode и файлов, в которых использован маппинг блоков, что позволяет использовать "punch hole" не только для файлов с картой экстентов. "Punch hole" позволяет пометить область внутри файла в качестве необязательной, которую можно при необходимости очистить. Кроме того, в Ext4 включены наработки по увеличению эффективности кэширования экстентов, решены ранее наблюдаемые проблемы с производительностью в подсистеме журналирования (JBD2) и ускорено выполнение системного вызова fsync()
- В Device Mapper добавлена поддержка модуля dm-cache с реализацией слоя Bcache для кэширования блочных устройств на SSD-накопителях
- Добавлена серия исправлений, оптимизаций и улучшений в F2FS, развиваемой компанией Samsung высокопроизводительной файловой системе для Flash-накопителей
-
Виртуализация и безопасность
- Обеспечена поддержка работы гипервизора KVM на процессорах Cortex-A15 с архитектурой ARMv7. В реализации обеспечена поддержка интерфейса ARM для координации состояния потребления энергии, что позволяет включать и выключать питание виртуальных CPU
- В подсистему виртуализации Xen добавлена поддержка использования средств ACPI для горячего подключения памяти и CPU. Внесены дополнительные улучшения для работы Xen на ARM-системах
- В механизм фильтрации сокетов добавлена опция SO_LOCK_FILTER, позволяющая заблокировать внесение изменений в фильтр.
- В block I/O controller, добавлена поддержка контроля ресурсов ввода-вывода с блочных устройств при помощи иерархических управляющих групп (cgroups)
- В подсистему NFS и CIFS добавлена поддержка пространств имён для непривилегированных пользователей (user namespaces), что позволяет использовать в изолированных контейнерах отдельные CIFS и NFS-серверы. При этом определённый пользователь может получить в данном контейнере особенные привилегии по работе с CIFS и NFS, которые отсутствуют у него вне контейнера
-
Сетевая подсистема
- Для сокетов TCP и UDP добавлена новая опция SO_REUSEPORT, позволяющая сразу нескольким слушающим сокетам подключиться к одному порту для приёма соединений
- В код отслеживания соединений подсистемы netfilter добавлена поддержка установки меток соединений, позволяющих прикреплять метку к отслеживаемым соединениям и учитывать помеченные соединения в правилах netfilter
- В беспроводной стек интегрирована поддержка функций "радара" (radar) для выявления работы передатчиков, работающих в заданном диапазоне частот. Добавленная подсистема является необходимым звеном для реализации поддержки динамического выбора частоты в диапазоне 5GHz, что необходимо при использовании Linux для организации работы таких систем как базовые станции
- Интегрирована подсистема VM Sockets, разработанная компанией VMware для организации коммуникаций между гипервизором и виртуальными машинами, а также интерфейс "Virtual Machine Communication Interface" для организации взаимодействия между хост-системой и гостевыми окружениями
- Добавлена поддержка протокола MVRP (Multiple VLAN Registration Protocol), позволяющего управлять регистрацией и отзывом VLAN на коммутаторах
-
Память и системные сервисы
- Интегрирован созданный инженерами Intel драйвер PowerClamp, реализующий средства для задания общего лимита энергопотребления процессором, что дополняет ранее доступные механизмы регулирования параметров, влияющих на потребление энергии в разных ситуациях
- В планировщик задач внесены небольшие исправления, позволившие существенно повысить эффективность работы в ситуациях когда число процессоров превышает число выполняемых активных процессов. За счёт сокращения миграций процессов, мешающей оптимальному использованию процессорного кэша, после внесения изменений производительность в некоторых тестах возросла до 15 раз
- В системе трассировки ftrace добавлена поддержка создания снапшотов буфера трассировки с управлением через debugfs. Снапшоты позволяют зафиксировать состояние буфера для его изучения без прекращения трассировки, которая будет продолжена с использованием отдельного рабочего буфера
- Множество улучшений, касающихся энергосбережения
- Реализация легковесного спящего режима (lightweight suspend mode), при активации которого всё имеющееся аппаратное обеспечение переводится в режимы минимального потребления энергии
- В состав ядра включена доработанная версия алгоритма сжатия LZO, представленная Маркусом Оберхаммером (Markus Oberhumer), автором LZO (Lempel-Ziv-Oberhumer). Новая версия позволяет в несколько раз ускорить операции сжатия и распаковки при использовании современных процессоров i386/x86_64/ARM
- В конфигуратор menuconfig добавлены кнопки сохранения и загрузки отдельных файлов с настройками
-
Аппаратные архитектуры
- Поддержка процессорных ядер Meta ATP (Meta 1) и HTP (Meta 2), выпускаемых компанией Imagination Technologies и примечательных поддержкой дополнительного набора DSP-инструкций и обеспечением аппаратной многопоточности (виртуальных процессоров)
- Поддержка нового семейства встраиваемых 32-разрядных RISC-процессоров - Synopsys DesignWare ARC700, используемых в контроллерах Flash-памяти, цифровых фотоаппаратах и различных потребительских устройствах
- Поддержка технологии Google Goldfish. Goldfish - виртуальный процессор, нацеленный на обеспечение эмуляции платформы Android, используемый при разработке под данную платформу
- Улучшения в поддержке архитектуры ARM: Увеличено число SoC, поддерживающих многоплатформенные ARM-сборки (возможность собрать одно ядро, которое будет содержать поддержку различных ARM-платформ). Начальная поддержка Soc Tegra 4, которая будет выпущена через несколько месяцев. Поддержка NVIDIA Tegra114, нескольких новых плат для разработчиков Tegra 3 и Tegra 4, поддержка NVIDIA Tegra114, Marvell Armada XP, ARM "dummy virtual machine". Для платформы Marwell Kirkwood реализована поддержка горячего подключения для шины PCI-E
- Добавлена поддержка процессоров Ralink на базе архитектуры MIPS
-
Оборудование
- Удалена большая порция устаревших драйверов, включая драйверы 3c501, 3c505, 3c507, Intel i825xx и драйверы для поддержки сетевых устройств через параллельный порт. Также из состава ядра удалена подсистема "WAN router". В качестве причины удаления отмечается наличие проблем с их работоспособностью
- Улучшения в подсистеме DRM (Direct Rendering Manager):
- Интеграция подготовленных разработчиками компании NVIDIA функций-хелперов gem_prime_* и gem_drm_*, предоставляющих абстрактный набор простых вызовов, независимых от низкоуровневой реализации поддержки PRIME, что позволяет организовать взаимодействие свободных драйверов с проприетарным драйвером NVIDIA без прямого обращения к API DMA-BUF и избежать связанного с таким взаимодействием нарушения лицензии GPL. Указанные хелперы позволяют задействовать технологию Optimus в последних тестовых выпусках проприетарных драйверов NVIDIA
- Начальная поддержка видеокарт AMD серии HD8000
- В драйвере Nouveau для GPU NV40 и NV50 (GeForce 6xxx-9xxx) добавлены экспериментальные средства для автоматического и ручного управления вращением кулера. Проведена работа по увеличению производительности драйвера Nouveau
- Ряд улучшений в DRM-драйвере Radeon: переработана логика сброса, использование колец DMA для обновления VM PT и т.д. Кроме того, поддержка переключения видеорежимов на уровне пользователя (UMS) окончательно объявлена устаревшей и более поддерживаться не будет
- Улучшение поддержки чипов Intel Haswell, в основном касающиеся управления энергопотреблением
- Поддержка page flipping в DRM-драйвере Tegra
- Улучшение драйвера Ti OMAP, в том числе поддержка платформы OMAP5 и средства для управления энергосбережением
- Переделан механизм блокировок подсистемы KMS
- Оптимизации (no reloc) для DRM-драйвера Intel, что может дать несколько процентов прироста скорости
- Добавлен драйвер для беспроводных чипов Intel серии 7000
- Множество улучшений в звуковой подсистеме ALSA: Переработанная поддержка Intel HDA audio (добавлен новый универсальный парсер, который задействован во многих драйверах). Поддержка интерфейсов NVIDIA Tegra20 AC97. Многие драйверы были унифицированы и объединены, что значительно снизит затраты на их дальнейшую поддержку. Ряд улучшений и поддержка новых чипов в ALSA SoC (ASoC)
- Новый драйвер для гигабитного сетевого контроллера с интерфейсом USB - ASIX AX88179_178A
- Поддержка одноплатных компьютеров Technologic Systems TS-5500 и систем SGI Ultraviolet System 3
- Поддержка тачпадов Cypress PS/2, трекпадов Cypress APA I2C и устройств ввода Steelseries SRW-S1
- Поддержка SATA-контроллеров Renesas R-Car, SD/MMС-контроллеров Broadcom BCM2835 и USB-контроллеров SMSC USB3503
- В Video4Linux добавлена поддержка видеопроцессоров SuperH VEU mem2mem, медиаконтроллеров TI DM365 VPFE, тюнеров Montage Technology TS2020-based, FM-приёмников Masterkit MA901 USB FM, сенсоров OmniVision OV9650/OV9652 и Samsung S5C73M3
- Поддержка компонентов ноутбука Google Chromebook Pixel
Установка Linux Kernel 3.9 в Ubuntu
Рекомендую устанавливать ядро 3.9 с помощью скрипта ULLKD. Установил на Ubuntu 13.04 - полёт нормальный. 🙂