06 октября 2014

Релиз ядра Linux 3.17

После двух месяцев разработки Линус Торвальдс анонсировал релиз ядра Linux 3.17. Среди наиболее заметных улучшений: новые системные вызовы getrandom и seccomp, возможность обращения к областям памяти через файловый дескриптор (memfd), поддержка ограничения операций с файлом через дескриптор, включена по умолчанию реализация Render Nodes, поддержка dma-buf cross-device synchronization, прекращена поддержка архитектур POWER3 и rs64.

В новую версию принято около 12 тысяч исправлений от 1300 разработчиков, размер патча - 54 Мб (изменения затронули 10605 файлов, добавлено 653577 строк кода, удалено 668166 строк). Около 46% всех представленных в 3.17 изменений связаны с драйверами устройств, примерно 18% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 5% - файловыми системами и 3% c внутренними подсистемами ядра.

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

Память и системные сервисы
Поддержка техники маппинга памяти memfd, при которой область памяти идентифицируется через файловый дескриптор, который может передаваться между процессами. По сути можно выделить память как по malloc, но обращаться к ней как с файлом, по файловому дескриптору. Управление производится через системный вызов memfd_create();
Представлена техника запечатывания файла (file sealing), которая позволяет ограничить выполняемые над файлом операции, например, запретить на уровне файлового дескриптора изменение содержимого файла, увеличение или уменьшение размера, т.е. можно передать дескриптор другому процессу защитив данные от изменения. С практической стороны данная функциональность необходима для заморозки содержимого memfd, чтобы после передачи файлового дескриптора не позволить другим процессам изменять связанную с memfd область памяти. File sealing и memfd являются ключевыми компонентами, необходимыми для реализации kdbus (аналог D-Bus внутри ядра);
Включена по умолчанию технология Render Nodes, подразумевающая разделение монолитных устройств /dev/dri/card{num} на две категории: Rendering Nodes (/dev/dri/renderD{num}), отвечающие за аппаратное ускорение рендеринга и обсчет вычислительных заданий GPGPU, и ModeSetting Nodes (/dev/dri/modeset{num}), обеспечивающие переключение видеорежимов и управление экраном. Таким образом предоставлены более гибкие средства для управления правами доступа и возможность выполнения вычислений на GPU или рендеринга без вывода на экран и без привязки к активному дисплею. До реализации Render Nodes все операции рендеринга и смены видеорежимов выполнялись через один интерфейс, что приводило к невозможности независимого выставления прав на выполнение операций ускорения рендеринга и переключение видеорежимов. Поддержка Render Nodes присутствует в драйверах i915, Radeon и Nouveau;
Доступна переписанная реализация API DMA-BUF, позволяющего организовать совместное использования буферов драйверами и различными подсистемами (V4L2, DRI и т.п.). В API добавлены средства для синхронизации DMA-буферов между разными устройствами (cross-device synchronization) и координации взаимодействия между ними. API доступен для всех модулей ядра и экспортируется в категории EXPORT_SYMBOL, а не только для распространяемых под лицензией GPL (EXPORT_SYMBOL_GPL), что позволяет решить проблемы с организацией взаимодействия свободных и проприетарных драйверов при организации работы гибридных графических систем. Например, в проприетарном драйвере NVIDIA может быть реализована поддержка технологии Optimus, дающей возможность на лету переключаться между встроенной энергоэффективной видеокартой на базе GPU Intel и дискретной картой NVIDIA (использование DMA-BUF в драйвере NVIDIA требуется для организации записи во фреймбуфер драйвера Intel); .
В утилиту perf добавлена возможность трассировки обращений к невыделенным страницам памяти (page-fault) и генерации связанной с такими обращениями статистики. В команде "perf timechart" реализована генерация диаграмм, отображающих события ввода/вывода;
Внесена серия исправлений, связанных с решением проблемы 2038 года, которая приведёт к переполнению 32-разрядных эпохальных счётчиков времени;

Сетевая подсистема
В netfilter прекращена поддержка цели "ULOG", которая давно объявлена устаревшей (c 2006 года рекомендуется использовать "NFLOG");

Дисковая подсистема, ввод/вывод и файловые системы
Для работы файловой системы XFS теперь необходима сборка ядра с 64-разрядным числом секторов. Добавлен раздел XFS в sysfs с параметрами для тестирования файловой системы;
В клиенте NFS добавлена поддержка выборок на основе механизма синхронизации RCU (Read-copy-update), позволивших ускорить нахождение файлов при наличии информации в кэше;
Начальная поддержка Multiqueue SCSI, рассчитанного на организацию многопоточного доступа к данным на многоядерных системах и позволяющего эффективно использовать возможности современных SSD-накопителей. Архитектура Multiqueue SCSI основана на двухуровневой модели очередей: на первом уровне функционируют очереди для передачи запросов ввода/вывода, привязанные к каждому CPU. Из данных очередей запросы направляются в очереди второго уровня, которые координируют обращение к оборудованию. В зависимости от конфигурации системы, числа CPU и накопителей соотношение между очередями первого и второго уровня может составлять от 1 к 1 до N к M.

Виртуализация и безопасность
Добавлен системный вызов kexec_file_load(), позволяющий выполнить проверку по цифровой подписи для нового ядра, перед его запуском с использованием механизма kexec. Ранее функцию загрузки нового ядра из уже запущенного ядра Linux (kexec) приходилось отключать при использовании UEFI Secure Boot, так как невозможно было гарантировать сохранение цепочки доверия;
В криптографическую подсистему добавлена поддержка детерминированного генератора псевдослучайных чисел, соответствующего спецификации NIST SP800-90A. Также обеспечена возможность разбора подписанных сообщений PKCS#7 и проверки цифровых подписей;
Добавлен системный вызов getrandom(), который является аналогом системного вызова getentropy, присутствующего в OpenBSD. Getrandom предоставит надёжную защиту от атак, основанных на исчерпании доступных файловых дескрипторов. При отсутствии свободных дескрипторов невозможно задействовать /dev/urandom, поэтому библиотеками активируется запасной вариант, использующий менее надёжный PRNG. Getrandom предоставит возможность получения случайных чисел от системного PRNG даже в условиях отсутствия свободных файловых дескрипторов.
В подсистему LSM (linux security module) добавлен новый hook kernel_fw_from_file(), который можно использовать для проверки целостности бинарных прошивок перед их загрузкой ядром;
Добавлен новый системный вызов seccomp для управления режимом работы и фильтрами механизма ограничения доступа к системным вызовам для приложений. Новый системный вызов позволяет решить проблемы с использованием Seccomp filter для многопоточных приложений (ранее фильтры Seccomp привязывались только на уровне процесса через prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, filter));

Аппаратные архитектуры
Прекращена поддержка архитектур POWER3 и rs64, связанный с которыми код уже достаточно давно находился в неработоспособном состоянии;
Прекращена поддержка систем Samsung S5P6440, S5P6450 и S5PC100;
Для архитектуры ARM64 добавлена поддержка четырёхуровневых таблиц страниц памяти, что позволило значительно расширить размер адресуемой виртуальной памяти;
Гипервизор KVM адаптирован для big-endian ARM-систем;

Оборудование
В DRM-драйвере Nouveau устранены проблемы с использованием GPU Kepler, добавлена поддержка режима Zero Bandwidth Clear для GPU Fermi, Kepler и Maxwell;
В DRM-драйвер Radeon добавлена поддержка чипов "Hawaii" (Radeon R9 290);
В DRM-драйвере Intel проведена подготовка к поддержке Atom SoC Cherry Trail, добавлена поддержка Universal plane;
Добавлен драйвер для контроллера Xbox One;

http://www.opennet.ru/

Установить/обновить ядро Linux Kernel 3.17 (Stable) в Ubuntu/Linux Mint

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

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

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

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

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

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

cd /tmp && wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.17-utopic/linux-headers-3.17.0-031700-generic_3.17.0-031700.201410060605_i386.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.17-utopic/linux-headers-3.17.0-031700_3.17.0-031700.201410060605_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.17-utopic/linux-image-3.17.0-031700-generic_3.17.0-031700.201410060605_i386.deb && sudo dpkg -i *.deb


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

cd /tmp && wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.17-utopic/linux-headers-3.17.0-031700-generic_3.17.0-031700.201410060605_amd64.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.17-utopic/linux-headers-3.17.0-031700_3.17.0-031700.201410060605_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.17-utopic/linux-image-3.17.0-031700-generic_3.17.0-031700.201410060605_amd64.deb && sudo dpkg -i *.deb


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

sudo update-grub

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

sudo update-burg

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

sudo reboot

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

uname -r

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

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

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

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

sudo update-grub

Источник: https://www.kernel.org/

Удачи.

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

  1. Тоже установил. Вроде все работает. Интересно как скоро пойдут исправления 01, 02 и т.д. :)

    ОтветитьУдалить
  2. Linux Mint 17 крах cinnamon, откатился

    ОтветитьУдалить
  3. Вот это описание!!! Вот всегда бы так :) Спасибо.

    ОтветитьУдалить
  4. У меня почему-то не работает эта команда для 64-bit (Повторное использование соединения с kernel.ubuntu.com:80.
    HTTP-запрос отправлен. Ожидание ответа... 404 Not Found)

    ОтветитьУдалить
  5. копипаст - http://www.opennet.ru/opennews/art.shtml?num=40755

    ОтветитьУдалить
    Ответы
    1. Ну и что...
      Человек старается для нас.

      p.s. Спасибо Вам, Владимир.

      Удалить
    2. Надо же, какое открытие! Ну и что?? Главное в статье, как всегда - инструкция по установке, а список новшеств и изменений - это постольку-поскольку, для интересующихся. Эта информация и так кочует из одного места в другое в неизменном виде, да и чего там добавить-то прикажете :))) ? Пустые эти Ваши претензии.

      Удалить
    3. Linuxsoid, в статье есть ссылка на сайт с оригинальной статьёй - http://www.opennet.ru/. Или ты хочешь чтобы я велосипед начал изобретать?

      Удалить
    4. Вы, простите, предлагаете самостоятельно новости искать?! :) Удобно же. На том сайте много того что мне, к примеру "не по зубам", а если кто то способен сделать для меня новости и инструкции удобными, да ещё и толково пояснить возникающие вопросы, то спасибо Владимиру (Админу). ;)

      Удалить
  6. И я с Анреем согласен -
    Повторное использование соединения с kernel.ubuntu.com:80.
    HTTP-запрос отправлен. Ожидание ответа... 404 Not Found
    2014-10-06 15:57:04 ОШИБКА 404: Not Found.

    ОтветитьУдалить
    Ответы
    1. ошибка из-за того, что на фтп хранилище поменялись файлы http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.17-utopic/ данные ссылки, что выше на файлы уже недействительны.

      Удалить
  7. Годное обновление. Если верить слухам, нововведения этого ядра могут способствовать скорейшей реализации технологии Optimus

    ОтветитьУдалить
  8. Не заработал у меня вайфай на этом ядре( откатился на 13 версию. Тока с ним работает: Lenovo-B560:~$ sudo rfkill list
    0: ideapad_wlan: Wireless LAN
    Soft blocked: no
    Hard blocked: no
    1: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
    2: brcmwl-0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
    А на 17 ядре пишет: Lenovo-B560:~$ sudo rfkill list
    0: ideapad_wlan: Wireless LAN
    Soft blocked: no
    Hard blocked: no
    и вайфая нет при этом...сети не видит.

    ОтветитьУдалить
    Ответы
    1. Такая же история Максим, и никто не даст дельного совета

      Удалить
    2. Алексей, дельный совет откатиться на более раннюю версию... Пока только так...

      Удалить
  9. Володя спосибо, все норм.
    С уважением Владимир.

    ОтветитьУдалить
  10. Измение Ядра влияет на работоспособность Системы? Думаю нет. Очередные "исправления" и дополнения.. Только новые проблемы. Кто ищет, тот всегда найдёт.. И на 3.2.023 всё работает прекрасно.

    ОтветитьУдалить
    Ответы
    1. Александр, ещё как влияет. Кстати, может кто нибудь знает... У меня убунту 12.04, ядро quantal. Я не могу обновиться вообще ни на какую версию, так-как после перезагрузки убунту не запускается. Приходится заново устанавливать ядро 3.5... А недавно в менеджере обновлений появилась настоятельная рекомендация обновить аппаратную поддержку, я согласился, обновилось ядро до trusty и графический стек, после перезагрузки конечно убунту не запустилась, вернул и ядро и стек quantal - отлично работает. Почему так? Раньше менял ядра, щас не пойму, что такого я мог наковырять...

      Удалить
    2. А... А почему на минт 13 ядро 3.2.0-23? Актуальное же 3.2.0-6-с чем-то вроде

      Удалить
    3. Обновилось при "upgrade" до 3.5.0-18. А мне больше и не надо. И вообще всё равно. Может быть, потом, как-нибудь понадобиться, что-то этакое вот тогда и поставлю. Никто ведь не торопит и не подгоняет..)))

      Удалить
  11. Если ВСЁ работает..Какого чёрта Вы дёргаетесь. Старое уже проверено. "Новое" никто даже не пробовал. И давай ставить..А потом ( "спасите, помогите"), Система "рухнула"...

    ОтветитьУдалить
    Ответы
    1. Александр, может мы вообще из пещер зря вылезли? :-D

      Удалить
    2. инкрементирую ваш пост, Антон xD
      Я вот щас поставлю, т.к. непрочь заюзать Multiqueue SCSI, и обновления, касающиеся GPU, мне кажутся интересными.
      откатиться на предыдущее в случае неполадок - 30 секунд несчастных займет)

      Удалить
  12. Linux Mint 17 x64 полет нормальный

    ОтветитьУдалить
  13. после обновления ядра на 3.17 ошибки:
    ata1: softreset failed (device not ready)
    ata3: softreset failed (device not ready)
    usb 3 2 device descriptor read 64 error -62
    Система убунту 14.04

    ОтветитьУдалить
  14. Linux-mint 17, Xfce - рискнул, поставил, проверил, всё замечательно работает. Правда перед этим создал точку восстановления, на всякий случай.

    ОтветитьУдалить
  15. Антон Казанцев
    <>
    Зря вы так. Человек ведь дело говорит. В принципе, люди новые ядра ставят, если у них что то из железа не работает, а экспериментировать на рабочей машине это тупость....

    ОтветитьУдалить
    Ответы
    1. Да ну, не, я же подстраховался, всё же у Меня заработало. За других не говорю, хотите пробуйте.Новые ядра могут оказаться ещё лучше старых.

      Удалить
    2. Дело в том что насильно устанавливать никого не заставляют. Каждый сам решает как ему быть. Но вот агитация против установки новых версий ядра это как то огорчает... У самого 12.04 xfce с кастомным ядром как основная, но я не против на дополнительной посмотреть будет ли какой толк и вообще что за нововведения. Хотя можно поставить обратно мою первую W98 радоваться что она работает и кричать долой всё новое, прогресс нас погубит!!!

      Удалить
  16. Спасибо!
    Ubuntu 14.04, Работает. Пришлось удалить проприетарный драйвер Nvidia. Если подключен внешний диск USB при загрузке пишет (сразу после grub):
    No Caching mode page found
    Assuming drive cache: write trough
    а если телефон, то еще и это:
    can't add hid device: -71

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