22 июня 2015

Релиз ядра Linux Kernel 4.1

После двух месяцев разработки Линус Торвальдс анонсировал релиз ядра Linux 4.1. Среди наиболее заметных улучшений: поддержка шифрования в ФС Ext4, новая виртуальная файловая система tracefs, экспериментальная реализация распределённого RAID 1, поддержка MPLS, однопользовательский режим для встраиваемых систем, блочное устройство PMEM для энергонезависимой памяти, интеграция наработок Intel по виртуализации GPU. Также вышел Linux-libre 4.1 — модификация ядра Linux от латиноамериканского фонда Свободного ПО (FSFLA), очищенная от проприетарных компонентов и документации к ним.

В новую версию принято около 12 тысяч исправлений от более чем 1500 разработчиков, размер патча - 33 Мб (изменения затронули 10094 файлов, добавлено 454027 строк кода, удалено 253880 строк). Около 41% всех представленных в 4.1 изменений связаны с драйверами устройств, примерно 21% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 13% связано с сетевым стеком, 6% - файловыми системами и 5% c внутренними подсистемами ядра. 11.2% изменений внесено сотрудниками компании Intel, 9.2% - Red Hat, 3.7% - SUSE, 3.3% - Linaro, 3.3% - IBM, 3.1% - Google, 2.9% - Samsung, 2.4% - Renesas Electronics, 1.9% - Texas Instruments, 1.4% - Broadcom, 1.3% - Oracle, 1.3% - Cisco, 1.1% - ARM.

Из наиболее интересных новшеств можно отметить:

Дисковая подсистема, ввод/вывод и файловые системы

    В файловую систему Ext4 добавлена поддержка шифрования отдельных частей ФС, например, отдельных директорий. Шифруется только содержимое и имена файлов, а метаданные о файлах, такие как размер и права доступа, остаются видимыми. Ключ шифрования определяется во время монтирования ФС. Настройки шифрования выполняются посредством xattr. Новые файлы или директории могут быть зашифрованы отдельно или автоматически, в случае если они создаются в уже зашифрованной директории.

    Зашифрованные данные размещаются с использованием метода AES-256-XTS, для имён файлов применяется AES-256-CBC. Для каждого inode генерируется свой уникальный 512-битовый ключ шифрования, что позволяет блокировать атаки в ситуациях, когда злоумышленнику известна часть зашифрованного содержимого. По сравнению с применением надстроек, таких как dm-crypt и eCryptFS, интеграция поддержки шифрования непосредственно в драйвер ФС, позволяет добиться более высокой производительности, использовать текущий код для обработки прав доступа и обеспечить возможность работы с незашифрованной частью файлов на устаревших системах.
    В подсистему MD (RAID) добавлена экспериментальная возможность управления массивами RAID 1, распределёнными по узлам кластера при помощи DLM (Distributed Lock Manager);
    Проведена работа по увеличению производительности программного RAID5/6 и процесса ресинхронизации. В RAID5/6 добавлена поддержка пакетных операций блоками в 4К. Оптимизирован цикл операций чтение-модификация-запись для больших RAID 6, содержащих более 6 дисков. Обеспечено динамическое изменение размера кэша RAID 6.
    Обеспечена возможность использования XFS в качестве слоя OverlayFS, благодаря добавлению в XFS поддержки флага RENAME_WHITEOUT. Кроме того, в XFS для вызова fallocate() добавлен флаг FALLOC_FL_INSERT_RANGE, позволяющий приложениям добавлять пустые области в файл.
    В Btrfs добавлено несколько важных исправлений, которые решили проблемы с работой файловых систем, размером более 20 Тб и файлов больше 3 Тб.
    Добавлена новая специализированная виртуальная ФС tracefs, предназначенная для упрощения доступа из пространства пользователя к данным трассировки ядра Linux. ФС по умолчанию монтируется в директорию /sys/kernel/debug/tracing и применяется в ситуациях, когда использование debugfs невозможно из соображений безопасности (подсистемы ядра могут выводить через debugfs закрытые сведения). Tracefs позволяет администратору получить возможность использования только интерфейса трассировки, без открытия доступа к другим возможностям debugfs, а также обеспечить поддержку создания буферов трассировки через использование системных вызовов mkdir и rmdir.

     Добавлен драйвер PMEM с реализацией блочного устройства для хранения данных в энергонезависимой памяти (NVM, non-volatile memory), сочетающей производительность ОЗУ с возможностью постоянного хранения содержимого. Для процессора энергонезависимая память выглядит как обычное ОЗУ (отображается в пространство системной памяти в виде больших регионов физической памяти), но при этом данные не теряются после прекращения подачи энергии. При этом подобная память пока медленнее обычного ОЗУ при выполнении операций записи. Чтобы отделить энергонезависимую память от обычного ОЗУ на первом этапе поддержки данной технологии решено представить новый вид памяти как блочное устройство.
    В Device-Mapper добавлена новая цель "dm-log", через которую можно организовать сохранение на блочное устройство логов всех операций, например, с целью отладки работы файловой системы.
    Device-Mapper теперь может работать в качестве блочного устройства с многоуровневой моделью очередей (multiqueue), рассчитанной на организацию многопоточного доступа к данным на многоядерных системах и позволяющего эффективно использовать возможности современных SSD-накопителей. По умолчанию данный режим отключен и требует явного указания в настройках ядра параметра CONFIG_DM_MQ_DEFAULT.

Память и системные сервисы

    Добавлена возможность сборки ядра без поддержки многопользовательских операций с использованием в системе только пользователя root. Возможность предназначена для создания урезанных минималистичных решений для встраиваемых систем, для которых важен каждый килобайт сэкономленной памяти.
    Добавленная в прошлом выпуске базовая инфраструктура, предоставляющая универсальный API для горячего наложения патчей на ядро, расширена поддержкой архитектуры S/390.
    В планировщике задач переработан код отслеживания нагрузки, который теперь не зависит от скорости CPU при расчёте создаваемой процессом нагрузки. Новый подход даёт возможность принимать более эффективные решения по балансировке нагрузки в условиях непостоянной тактовой частоты и при использовании на асимметричных системах, сочетающих различные типы CPU.
    Добавлена новая опция загрузки ядра "efi=debug", при которой выводится дополнительная отладочная информация при загрузке на системах с EFI;
    Для шины I2C реализована возможность работы Linux в роли slave-узла на контроллерах с поддержкой slave-режима;
    В утилиту perf добавлена возможность прикрепления eBPF-обработчиков к проверочным вызовам внутри ядра (kprobes). Появилась поддержка аппаратной трассировки (PT, Processor Trace) и мониторинга качества работы кэша (CQM, Cache QoS Monitoring), представленных в следующем поколении CPU Intel Broadwell.

Виртуализация и безопасность

    В состав подсистемы прямого рендеринга (DRM) интегрирован менеджер виртуальной графической памяти ("virtual GEM"), необходимый для организации работы виртуальных графических устройств, который можно использовать для организации программного рендеринга.
    Добавлена поддержка виртуального GPU (vGPU), развиваемого компанией Intel в рамках проекта XenGT, предоставляющего решение для полной виртуализации GPU и обеспечения работы прослойки для взаимодействия из гостевых систем с реальными GPU Intel. XenGT подразумевает поддержание отдельных виртуальных GPU для каждого виртуального окружения, за которыми закрепляется часть критичных для обеспечения высокой производительности ресурсов реального GPU. Виртуальный GPU позволяет использовать внутри гостевых систем обычные видеодрайверы, не требующие вмешательства гипервизора для обеспечения должной производительности.
    В подсистему Smack добавлен новый режим доступа bring-up (метка "b"), предназначенный для отладки конфигураций защиты. Режим реализован в качестве компромисса между пожеланиями пользователей, желающими получить разрешительный режим, и принципиальной позицией автора Smack. В итоге, для правил добавлена новая метка "b", при которой в случае успешного срабатывания добавляется подробная запись в лог, а в случае сбоя генерируется событие аудита.
    На архитектуре MIPS в систему виртуализации KVM добавлена поддержка режима SIMD и устройства для вычислений с плавающей запятой. На архитектуре ARM в KVM добавлена поддержка подстановки прерываний через вызов irqfd();
    Для подсистемы virtio представлен новый драйвер virtio-input, обеспечивающий сбор и перенаправление событий от устройств ввода в виртуальные устройства.

Сетевая подсистема

    Реализация механизма MPLS для маршрутизации пакетов с использованием многопротокольной коммутации по меткам;
    В стек IPv6 добавлена поддержка RFC-7217 (генерация неизменных идентификаторов интерфейса, без привязки к MAC-адресу).
    В модуль классификации сетевого трафика cls_bpf добавлена поддержка использования обработчиков пакетов, оформленных в виде расширенных BPF-программ (eBPF). С практической стороны, данное нововведение позволяет создавать произвольные фильтры трафика на языке Си, а затем транслировать их в eBPF для выполнения в ядре внутри виртуальной машины BPF. Поддержка eBPF также добавлена в модуль act_bpf, что позволяет производить изменение данных в пакетах, используя новую функцию bpf_skb_store_bytes(). Из новшество также отмечается возможность доступа из eBPF к выборочным полям структур данных сокетов.

Оборудование

    Для архитектуры ARM64 представлена поддержка ACPI (необходимость поддержки ACPI для ARM вызывала вопросы, так как для определения оборудования на системах ARM обычно используется механизм device tree).
    Для архитектуры MIPS добавлена поддержка XPA-адресации, позволяющей манипулировать адресами физической памяти длиной до 40 бит на 32-разрядных системах.
    В DRM/KMS-драйвере Nouveau добавлена поддержка аппаратного ускорения для карт GeForce GTX 750, работающего без использования элементов бинарных прошивок.
    В драйвер Radeon добавлена поддержка многопоточной передачи данных через порт DisplayPort (MST, Multi-Stream Transport). Поддержка MST необходима для подключения мониторов высокого разрешения (4K/5K), которые подключаются к системе через два порта DisplayPort.
    Расширены возможности драйверов для видеокарт Intel, в том числе осуществлён переход на использование механизмов атомарного управления видеорежимами и включена поддержка DRRS (dynamic refresh rate switching).
    Проведена реорганизация звуковой системы HD-audio, которая переведена на новую шину "hdaudio", упрощающую управление устройствами.
    В Video4Linux добавлена поддержка тюнеров TechnoTrend TT-connect S2-4600 DVB-S/S2 и Hauppauge HVR-955Q ATSC/QAM, демодуляторов LG Electronics LGDT3306A, видеоподсистемы Xilinx.
    Поддержка SoC-плат IMG Pistachio, Marvell Armada 39x, Annapurna Labs Alpine и Xilinx ZynqMP.

Установка ядра Linux Kernel 4.1

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

Установить ядро версии 4.1 командами ниже, можно ​​в следующих дистрибутивах Linux:

Ubuntu 15.04/14.10/14.04/12.04
Linux Mint 17.1 17.2/17/13
elementary OS 0.2/0.3

1. Откройте терминал, скопируйте и выполните одну из команд, согласно архитектуры вашей системы/компьютера:

Для 32-bit (одной командой):

cd /tmp && wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.1-unstable/linux-headers-4.1.0-040100-generic_4.1.0-040100.201506220235_i386.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.1-unstable/linux-headers-4.1.0-040100_4.1.0-040100.201506220235_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.1-unstable/linux-image-4.1.0-040100-generic_4.1.0-040100.201506220235_i386.deb && sudo dpkg -i *.deb

Для 64-bit (одной командой):
 
cd /tmp && wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.1-unstable/linux-headers-4.1.0-040100-generic_4.1.0-040100.201506220235_amd64.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.1-unstable/linux-headers-4.1.0-040100_4.1.0-040100.201506220235_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.1-unstable/linux-image-4.1.0-040100-generic_4.1.0-040100.201506220235_amd64.deb && sudo dpkg -i *.deb

 2. Обновите GRUB (GRUB надо обновлять в той системе Linux где он установлен, если у вас их более одной):

sudo update-grub

Примечание 1
. Если у вас установлен загрузчик BURG, то и его нужно обновить:

sudo update-burg

3. По окончании установки, закройте все приложения и перезагрузите компьютер следующей командой:

sudo reboot

После входа в систему, проверьте версию актуального ядра командой:

uname -r


Видеодрайвер Nvidia 352.21


Примечание 2. Проприетарный видеодрайвер желательно устанавливать после установки нового ядра.

Примечание 3. Как вернуться к ранее установленному ядру, инструкция ЗДЕСЬ.

 Если вы решили удалить ядро 4.1, выполните эту команду:

sudo apt-get purge linux-image-4.1-* linux-headers-4.1-*

И вновь обновите GRUB командой:

sudo update-grub

Источники: https://www.kernel.org/ | http://www.opennet.ru/

Удачи.

27 комментариев :

  1. Прошил данное ядро , запуск прошел без эксцессов но вай фай не пашет , причем если втыкаю внешний роутер фай фай все работает а со внутренним не хочет .

    ОтветитьУдалить
  2. Пере залил заного драйвер 802.11 вот от сюда http://community.linuxmint.com/tutorial/view/379
    и все заработало на данном ядре . буду смотреть дальше какие баги вылезут

    ОтветитьУдалить
  3. Установил ядро 4.1.0 на Ubuntu 4.1.0
    При загрузке ошибка:
    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
    CPU: 3 PID: 1 Comm: swapper/0 Not tained 4.1.0-040100-lowlatency #201506220235

    Загрузиться получилось только в режиме 4.1.0-040100-generic

    ОтветитьУдалить
  4. cd /tmp && wget ....deb && sudo dpkg -i *.deb
    где описнаие команд?
    кстати где можно найти настолько же удобный русскоязычный ресурс по фряхе?

    ОтветитьУдалить
    Ответы
    1. ручкоязычные ресурсы оп фряхе э то: www.bsdportal.ru и www.lissyara.su

      Удалить
    2. Что там описывать? Переход во временную папку,скачивание 3х деб-пакетов и установка. Но колорадка конечно многое объясняет про уровень развития..

      Удалить
  5. Установил.После часа работы причин для беспокойства нет,вай-фай есть,оффис,видео,картинки-всё работает.
    Linux Mint-17.1x64

    ОтветитьУдалить
  6. "Проприетарный видеодрайвер желательно устанавливать после установки нового ядра."
    это счастье сглючивает каждый раз после установки нового ядра
    как его переустанавливать без отката системы???

    ОтветитьУдалить
  7. Большое спасибо за новость! Отдельно благодарю за описание и скрин с драйверами :)

    ОтветитьУдалить
  8. обновил вчера с предпоследнего на этот последний
    релиз ядра в смысле
    всё стало сразу и без проблем

    ОтветитьУдалить
  9. А почему на сайте http://kernel.ubuntu.com/~kernel-ppa/mainline/ ядро позначено как v4.1-unstable? unstable я так понимаю нестальное ядро. А где взять стабильное ядро?

    ОтветитьУдалить
    Ответы
    1. ==А почему на сайте http://kernel.ubuntu.com/~kernel-ppa/mainline/ ядро позначено как v4.1-unstable - нестальное?== Не знаю почему в http://kernel.ubuntu.com/~kernel-ppa/mainline/ v4.1-unstable, а на оф сайте https://www.kernel.org/ позиционируется как stable (стабильное). Действительно создаёт некоторую путаницу...???

      Удалить
  10. Извиняюсь, что не в тему. Просто назрел такой вопрос: можно ли вручную (с помощью конфигурационных файлов) допилить русификацию системы (например, Linux Mint Cinnamon 17.2 Rafaela RC или Mate)?
    Весьма раздражает, когда в некоторых, установленных "из коробки", приложениях (таких как "Калькулятор") проскакивают пункты "Copy", "Paste" и др. В Cinnamon с этим вообще мрак, там даже в стандартных настройках треть english`а. И это после выставленных в процессе установки соотв. флажков (и обновленных уже после установки системы пакетов локализации в меню настроек). Проблема не в знании языка и т.д., просто считаю, что это несколько нарушает целостность системы.
    p.s. В этом плане ситуация усугубляется при попытке перевести на Mint Cinnamon (и не только) заядлых виндузятников!

    ОтветитьУдалить
    Ответы
    1. ==Извиняюсь, что не в тему.== 100% что не в тему. Прежде всего хотелось бы заметить по этому поводу это то, что системы Linux - БЕСПЛАТНЫ и разрабатываются не только одной командой дистрибутива (на халяву), но и тысячами добровольных пользователей, в числе которых есть и переводчики. Подкючайтесь к переводам, будьте добровольным переводчиком Linux-дистрибутивов и СОХРАНИТЕ, тем самым, ЦЕЛОСТНОСТЬ системы. ИМХО и не только. :)

      Удалить
    2. Если Вам показалось, что в моем комментарии акцент сделан на критику, то это далеко не так. Прежде всего интересовал ответ на вопрос в первых двух строчках.
      Значит редактирование конфигурационных файлов для решения этой проблемы не прокатывает? Из того, что нашел в сети, это проект: https://translations.launchpad.net/. Т.е., если команда дистрибутива предложенный перевод не одобрит (или проигнорирует), то в системе по-прежнему не будет никакого прогресса в этом направлении? И нет никакой возможности допилить перевод на своем экземпляре ОС?

      Удалить
    3. == И нет никакой возможности допилить перевод на своем экземпляре ОС?== На своем экземпляре, т.е самому - никак. Ещё раз повторяю, что только на https://translations.launchpad.net/.

      Удалить
  11. Есть ли разница по ощущениям в сравнении со старыми ядрами (например 3.16.0)?

    ОтветитьУдалить
    Ответы
    1. Думаю ответ на Ваш вопрос есть в статье:
      [co="red"]Предупреждение[/co]. Ядро Linux является критичным элементом системы. Обновления ядра могут содержать улучшения аппаратной поддержки или устранять уязвимости. Делать обновление стоит когда одно из аппаратных устройств работает некорректно, а новое ядро может решить данную проблему. Но в тоже время установка нового ядра без особой необходимости может привести к нежелательным регрессиям, таким как: отсутствие подключения к сети, отсутствие звука или даже невозможность загрузить систему, поэтому [co="red"]устанавливайте новое ядро на свой страх и риск[/co].

      Удалить
  12. Накатил,все норм комп стал быстрее загружаться,а то чет долго грузился,моргал,мигал .

    ОтветитьУдалить
  13. А зачем груб обновлять? У меня он и так обновляется. Или так не у всех?

    ОтветитьУдалить
    Ответы
    1. Обновите GRUB (GRUB надо обновлять в той системе Linux где он установлен, если у вас их более одной), т.e. если Вы установили новое ядро, предположим, в Ubuntu, а GRUB у Вас отображается в Linux Mint, то нужно войти в Linux Mint и обновить GRUB, иначе новое ядро установленное в Ubuntu не появится в GRUB. Вот в чём смысл... "А зачем груб обновлять?".

      Удалить
  14. Замечательно ! Раньше была проблемка с подключением Bluetooth наушников , сейчас все устройства определились! Думаю проблем не будет,остановлюсь пока на этом ядре.

    ОтветитьУдалить
  15. фигня вообще не загрузился сношу

    ОтветитьУдалить
  16. установил,блин шустрое,проблем никаких,только с дровами amd,начиная с ядра 4.0 а так работает отменно,спасибо!

    ОтветитьУдалить
    Ответы
    1. это читали? http://forum.ubuntu.ru/index.php?topic=262073.0

      Удалить
  17. И ядро поставил и Nvidia, Всё как на скрине. Работает и нет проблем..А жаль. Скучно )))

    ОтветитьУдалить
    Ответы
    1. Да, не тот уже линукс, совсем не тот. )))

      Удалить