13 апреля 2015

Релиз ядра Linux 4.0 (обзор и установка)

После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 4.0. Среди наиболее заметных улучшений: интеграция базовых компонентов для обновления ядра Linux без перезагрузки, поддержка нескольких слоёв на чтение в overlayfs, реализация блочного сервера pNFS, возможность привязки к хостам алгоритмов контроля перегрузки, возможность установки меток на сетевые пакеты в модулях Smack, добавление в ext4 опции lazytime.

Переход к номеру версии 4.0, вместо ожидаемого выпуска 3.20, осуществлён после проведения голосования, в котором приняло участие более 31 тысячи участников сообщества, из которых 56% посчитали, что настало время выпуска версии 4.0. Переход к нумерации 4.x является формальным шагом, обусловленным лишь эстетическими соображениями. Текущий выпуск ядра оказался как нельзя лучшим претендентом на смену нумерации. Цикл разработки 3.20/4.0 был относительно расслабленным и принёс заметно меньше существенных изменений, чем наблюдалось в прошлые выпуски (10 тыс изменений против 12.5 тысяч в ядре 3.19). Кроме того, репозиторий приблизился к отметке в 500 тысяч коммитов (commit - изменение в программном коде) и преодолел рубеж в 4 млн объектов. При выпуске ядра 3.0 были преодолены рубежи в 250 тысяч коммитов и 2 млн объектов в Git.

В 2013 году рассматривалась идея использования смены первого номера в версии как дополнительного стабилизирующего этапа (предлагалось включить в ядро 4.0 только исправления ошибок, без функциональных изменений и новшеств), но данная идея была отвергнута. С точки зрения функциональности выпуск 4.0 не содержит кардинальных изменений или нарушений совместимости и не выделяется среди остальных выпусков, плавно продолжая развитие текущей кодовой базы. Прошлая смена нумерации была произведена в 2011 году, когда в ветке 2.6.x накопилось 39 релизов, на подготовку которых было потрачено 10 лет.

В новую версию принято более 10 тысяч исправлений от 1403 разработчиков, размер патча - 34 Мб (изменения затронули 9489 файлов, добавлено 509084 строк кода, удалено 327296 строк). Около 45% всех представленных в 4.0 изменений связаны с драйверами устройств, примерно 16% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 4% - файловыми системами и 4% c внутренними подсистемами ядра. 11.6% изменений внесено сотрудниками компании Intel, 7% - Red Hat, 4.6% - SUSE, 4.0% - Linaro, 3.6% - Samsung, 2.2% - IBM, 1.6% - Freescale, 1.5% - Google, 1.4% - AMD, 1.4% - Texas Instruments, 1.4% - Oracle, 1.2% - Qualcomm, 1.2% - ARM.

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

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

        Интеграция базовой инфраструктуры, предоставляющей универсальный API для горячего наложения патчей на ядро. Код подготовлен в результате сотрудничества разработчиков SUSE и Red Hat, которые согласились задействовать данный API в реализациях систем обновления ядра без перезагрузки - kPatch и kGraft. В текущем виде, добавленный в ядро код позволяет создавать простые патчи для горячего устранения некоторых типов уязвимостей, но пока не может быть использован для более сложных изменений, так как не предоставляет средств для обеспечения непротиворечивости. Подробнее об особенностях добавленной в ядро инфраструктуры и отличиях kPatch от kGraft можно прочитать в ранее опубликованном анонсе.
        В реализации сетевого протокола TIPC (Transparent Inter-process Communication), предназначенного для организации межпроцессного взаимодействия в кластере, обеспечена поддержка изолированных пространств имён (namespace);
        Ядро теперь может быть собрано для запуска нитей RCU grace-period-handling с использованием системы приоритетов режима реального времени, что может оказаться полезным для выскоконагруженных систем; Удалён ранее объявленный устаревшим системный вызов remap_file_pages(), вместо которого добавлена заглушка, симулирующая его функциональность через использование нескольких виртуальных областей памяти, что позволило сохранить работоспособность приложений, использующих данный системный вызов;

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

        В OverlayFS добавлена возможность использования более одного слоя, доступного только на чтение;
        Для файловых систем реализована поддержка опции монтирования lazytime, которая даёт возможность отследить время обращения к файлам, но не приводит к возникновению большого числа паразитных операций записи в ФС. Основное отличие от "atime" состоит в том, что время доступа сохраняется в inode, хранящихся в оперативной памяти, и сбрасываемых на диск только при возникновении явных условий или истечения достаточно длительного таймаута (раз в 24 часа). Таким образом для работающих программ возвращается всегда точный atime, но на диске сведения сохраняются с большой задержкой. Данный режим пока доступен только для ФС ext4;
        Реализация блочного сервера pNFS, позволяющего NFS-клиентам подключаться к совместно используемым дискам с применением блочного ввода/вывода вместо операций чтения и записи NFS. Поддержка нового режима пока реализована только для файловой системы XFS;
        В файловую систему Btrfs принята часть подготовленных компанией Facebook изменений, направленных на более грамотную обработку ситуаций исчерпания свободного дискового пространства;
        В dm-crypt внесены оптимизации для увеличения масштабируемости, которые позволили поднять производительность на крупных нагруженных системах.

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

        Подсистема Open vSwitch теперь генерирует собственные идентификаторы потока ("flow IDs"), которые используются для идентификации сетевых потоков в пространстве пользователя, что может привести к увеличению производительности до 40%;
        Подсистема Virtio (Virtual I/O Device) обновлена для соответствия недавно принятому стандарту virtio 1.0;
        Модулям безопасности Smack предоставлена возможность взаимодействовать с системой netfilter через установку меток на проходящие через фильтр пакеты.

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

        В подсистеме управления трафиком добавлена поддержка фильтров, написанных с использованием языка виртуальной машины eBPF;
        В сетевом стеке обеспечена поддержка применения для определённых хостов специфичных алгоритмов контроля перегрузки (congestion-control) с привязкой через таблицу маршрутизации;

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

        В драйвер Radeon добавлена поддержка передачи аудиоданных через интерфейс DisplayPort и решены проблемы с производительностью GPU AMD семейства Hawaii (R9 290 и R9 290X). В состав также включены патчи для улучшения управления системой охлаждения GPU на основе GCN, которые приводят к ощутимому снижению уровня шума для GPU за счёт снижения частоты вращения вентилятора;
        Расширение возможностей драйверов для видеокарт Intel, включая начальную поддержку оборудования Intel Skylake;
        В Nouveau произведено слияние с драйвером для видеоподсистем NVIDIA, используемых в SoC на базе процессоров ARM. Добавлены средства для управления частотой GPU GK20A (Tegra K1);
        Поддержка звуковых карт Studio Evolution SE6X;
        Поддержка сетевых контроллеров Rockchip SoC RK3288 10/100/1000 Ethernet, HISILICON P04 Ethernet, TI Keystone NETCP Ethernet, Kvaser USBcan II CAN, PEAK PCAN-USB/USB Pro CAN-FD.
        Поддержка SCSI-контроллеров Qualcomm UFS;
        В Video4Linux добавлена поддержка устройств захвата видео TI AM437x VPFE, декодеров Philips RC5/RC6 и USB-камер Touptek.
        Поддержка плат Intel Quark X1000 и процессоров MIPS, построенных на базе архитектуры MIPS32 R6.

Установка ядра Linux Kernel 4.0 (Stable) в Ubuntu и производные 

 

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


Вы можете скачать соответствующие deb пакеты ОТСЮДА и установить их в Центре приложений Ubuntu. Или просто следуйте приведенным ниже инструкциям, которые помогут вам установить новое ядро несколькими командами в терминале.

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

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

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

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

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

cd /tmp && wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.0-vivid/linux-headers-4.0.0-040000-generic_4.0.0-040000.201504121935_i386.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.0-vivid/linux-headers-4.0.0-040000_4.0.0-040000.201504121935_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.0-vivid/linux-image-4.0.0-040000-generic_4.0.0-040000.201504121935_i386.deb && sudo dpkg -i *.deb

Для 64-bit (одной командой):
 
cd /tmp && wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.0-vivid/linux-headers-4.0.0-040000-generic_4.0.0-040000.201504121935_amd64.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.0-vivid/linux-headers-4.0.0-040000_4.0.0-040000.201504121935_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.0-vivid/linux-image-4.0.0-040000-generic_4.0.0-040000.201504121935_amd64.deb && sudo dpkg -i *.deb

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

sudo update-grub

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

sudo update-burg

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

sudo reboot

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

uname -r
 

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

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

sudo apt-get purge linux-image-4.0-*

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

sudo update-grub

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

Удачи.

31 комментарий :

  1. у меня иксы не запускаются в lubuntu 14.04.2
    В RC5 ядро 4 грузилось без проблем, а тут на тебе- тольок в консоль переводит. Что делать?

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

      Откатись на родное ядро.

      Удалить
    2. Владимир, а Вы будите пробовать? :) Мне интересно как оно с драйверами проприетраными... Состыкуется?

      Удалить
    3. Я пробовал, но система не запустилась с проприетарным драйвером Nvidia.

      Удалить
    4. А у вас 346? В 15.04 человек писал, что блоб заработал с четвертым ядром. Возможно рабочий драйвер пока только репах для vivid.

      Удалить
    5. Владимир, ядро 4.0 с самого начала (с RC1) не поддерживало драйвера на Nvidia, я сколько не компилировал так и не запустил (после RC4, перестал заниматься этим вообще). Спасибо, что поддтвердили этот недостаток на ядре 4.0. На сайте NVidia есть тема, как делать поддержку приприетарных драйверов путем применения патчей, но мне ковыряться было лень. меня пока и 3.19.3 устраивает.

      Удалить
    6. Дайте ссылку. Хочу поковыряться.

      Удалить
  2. Зачем кстати update-grub? Для подстраховки? У меня при установке ядра конфиг сам обновляется.

    ОтветитьУдалить
    Ответы
    1. ==Зачем кстати update-grub? Для подстраховки? == Нет не для подстраховки, а для тех у кого установлено несколько систем Linux на ж/диске. В статье ведь есть пояснение на эту тему:
      " 2. Обновите GRUB (GRUB надо обновлять в той системе Linux где он установлен, если у вас их более одной)".

      Удалить
  3. Понял. У меня просто UEFI. И если я обновлю ядро не в основной ОС, то grub обновить надо в основной.

    ОтветитьУдалить
    Ответы
    1. Именно так. Иначе в Grub не отобразтся строка с ноывм ядром.

      Удалить
  4. Здравствуйте товарищи! Вот такая трабла при загрузке на 4.0 ядре ignoring bgrt invalid status 0 expected 1 и еще выдает сообщение драйвер nouveauчто то там... решаются ли какими либо методами эти проблемы, hidden timeout тоже ругается, типа установленное значение не в ноль...предупреждение больше не поддерживается.ну тут все понятно, но все равно напрягает...

    ОтветитьУдалить
  5. даже пробовать не буду
    если манагер обновлений не требует то значит и не надо оно мне

    ОтветитьУдалить
  6. На Elementary работает прекрасно. Ядро собирал из исходников с конфигом от родного 3.16.

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

    ОтветитьУдалить
  8. Извеняюсь ! На позитывных эмоциях хотел , и забыл высказать благодарность )))) Спасибо Аднинистаторам

    ОтветитьУдалить
  9. Поставил, X сервер не запустился, из меню загрузки пропали все предыдущие ядра. Придется все сносить наверно =) На втором ноуте пока ставить не стал.

    ОтветитьУдалить
  10. Моё почтение!...после установки работает все в штатном режиме как и раньше на ядре 3.19.3 Визуально и "тактильно" ничего особо не заметил в работе. Глюков нет ну и хорошо. Всем добра!

    ОтветитьУдалить
  11. Как всегда не работает видео, ждём чего то

    ОтветитьУдалить
  12. Спасибо! Очень хорошо встало ядро, всё запустилось и работает так же, как на стоковом. Исключение составляет температура, она значительно снизилась, градусов на 15-20 в среднем. 14.04 с картой ATI.

    ОтветитьУдалить
    Ответы
    1. Эдуард Лисовой
      "Исключение составляет температура, она значительно снизилась, градусов на 15-20 в среднем"
      А как и где посмотреть? Какая есть, и какая должна быть? Я не "профи". Просто интересно посмотреть что в сист.блоке происходит. "Скрытое" от глаз, так сказать..

      Удалить
    2. Минт 17.1 Мате ,Ядро 4.0, 32_64, озу 4 гига, Nvidia 610 349.16. Если честно сказать, всё работает. Но это ничего не изменило. Так и раньше всё работало..Дело не в нумерации, кто-то и на 9-ке, или 10.04 до сих пор сидит, и не парится.. Работает, да и ладно..))) Главное не загоняться.

      Удалить
    3. Температуру всегда можно посмотреть в Psensor-е. Она у меня заметно повысилась после перехода с 12.04 на 14.04, и при серьёзных нагрузках поднималась до 85-90 C`. Это слишком высокая t`, уже думал разбирать ноут, но теперь больше 60-65C` не поднимается.
      А всё остальное можно посмотреть в системном мониторе.

      Удалить
  13. Всё нормально раюотает!
    http://s020.radikal.ru/i704/1504/ed/fdab77972a65.png

    ОтветитьУдалить
    Ответы
    1. Спасибо за информацию. Что то пришлось делать дополнительно? Можно краткую спецификацию системы?

      Удалить
  14. [url=http://img.5cm.ru/view/i6/pArn.png][img]http://i6.5cm.ru/i/pArn.png[/img][/url]

    ОтветитьУдалить
  15. После установки на Ubuntu 14.04 не загружались иксы. Проблему решил. Может еще кому поможет.
    Ноут Lenovo G505 - две видеокарты Radeon. Решение. Первым делом откатился на предыдущее ядро, как написано в статье. После перезагрузки все нормально загрузилось. Потом зашел в Параметры системы - Программы и обновления - Дополнительные драйверы. Изменил используемый драйвер с проприетарного на свободный (обычно стоит по умолчанию после установки), т.е. был fglrx, а стал xserver-xorg-video-ati. Снова обновил ядро, следуя инструкциям. После перезагрузки все работает. Далее вновь сменил драйвер на проприетарный. Вот, в принципе, и весь мой "бубен".
    Все работает на ура. О других достоинствах ядра сказать ничего не могу. Еще не распробовал. :)

    ОтветитьУдалить
  16. С установкой этого ядра, вылезла единственная ерунда: когда приходят очередные обновления(у меня в Cairo Dock иконка вращается), я могу их установить нажатием правой кнопки в панели Unity, но само окно менеджера обновлений нигде не появляется. То есть, я не вижу, что именно он устанавливает, хотя прогресс загрузки на значке показывает исправно.
    Может кто в курсе, как это вылечить?

    ОтветитьУдалить
  17. systemd + kernel 3.16 (и новей) увеличивает время загрузки на старых процессорах AMD до 2 минут!!!
    Всем, кто использует Phenom II и другие процессоры на его архитектуре нужно использовать старое ядро Linux 2.6х версии вручную. Наиболее безопасным и совместимым является ядро от Ubuntu 12.04 LTS тк там есть патчи безопасности.

    ОтветитьУдалить