Релиз ядра Linux 4.13

Модератор: LinuxNEWS
no avatar

Автор темы
x230
Сообщения: 2094
Зарегистрирован: 02 сен 2016, 22:07
Решено: 5
Благодарил (а): 406 раз
Поблагодарили: 487 раз
Контактная информация:

Релиз ядра Linux 4.13

#1

04 сен 2017, 14:28

После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 4.13. Среди наиболее заметных изменений: встроенная реализация протокола TLS, плагин для рандомизации порядка полей в структурах данных, функциональность "lifetime hints" в VFS, поддержка буферизированного ввода/вывода в неблокирующем режиме, модуль для зонированных блочных устройств, расширение лимита на число файлов в директории ext4, поддержка привязки BPF-программ к сокетам, средства оптимизации энергопотребления через прогнозирование следующего прерывания.

В новую версию принято более 14 тысяч исправлений от 1400 разработчиков, размер патча - 68 Мб (изменения затронули 10647 файлов, добавлено 824508 строк кода, удалено 228197 строк). Около 45% всех представленных в 4.13 изменений связаны с драйверами устройств, примерно 18% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 15% связано с сетевым стеком, 4% - файловыми системами и 3% c внутренними подсистемами ядра.

Основные новшества:
○ В виртуальную файловую систему и уровень блочных устройств добавлены признаки со сведениями о времени жизни данных ("lifetime hints"), которые могут быть привязаны к открытому файлу при помощи системного вызова fcntl(). Например, признак RWH_WRITE_LIFE_SHORT сигнализирует, что данные предназначены для хранения короткое время, а признак RWH_WRITE_LIFE_EXTREME указывает на то, что данные останутся навсегда. Устройство хранения может использовать данные признаки для оптимизации размещения данных с учётом ожидаемого времени их хранения. В настоящее время только драйвер NVMe учитывает эти сведения;
○ Поддержка буферизированного ввода/вывода на блочном уровне в неблокирующем режиме. Новая возможность позволяет улучшить поддержку асинхронного доступа в условиях, когда используется буферизированный ввод/вывод, и снижает риск возникновения задержки возврата управления из ядра при выполнении асинхронных операций (AIO) при помощи интерфейса Direct I/O;
○ Для Device Mapper реализован новый модуль dm-zoned, позволяющий создавать зонированные блочные устройства в которых применяются разные правила записи в различные части устройства. Например, зонирование записи применяется в устройствах c черепичной магнитной записью (Shingled Magnetic Recording, SMR), в которых запись производится с частичным перекрытием соседней дорожки и, как следствие, в рамках группы допускается лишь последовательное добавление данных, а любая перезапись приводит к необходимости перезаписи всей группы дорожек. Модуль dm-zoned даёт возможность представить подобное зонированное устройство как обычное блочное устройство, скрывая применяемые в процессе работы ограничения записи;
○ В файловой системе ext4 реализована опция "largedir", при указании которой увеличивается число файлов, которое может размещаться в одной директории. Без данной опции действует лимит на 10 млн файлов в одной директории, а при указании опции "largedir" лимит увеличивается до 2 миллиардов файлов. Опция подготовлена разработчиками кластерной файловой системы Lustre;
○ В ext4 добавлена возможность хранения расширенных атрибутов файлов (Xattr) в отдельных inode, что позволяет добиться хранения большего числа атрибутов для одного файла. Каждый атрибут теперь может содержать до 64 Кб информации. При выносе Xattr в отдельный inode также наблюдается увеличение эффективности кэширования. Дополнительно, в ext4 добавлена поддержка дедупликации расширенных атрибутов, позволяющая фактически хранить только одну копию атрибута, применённого к нескольким файлам;
○ В ext4 обеспечена возможность параллельного выполнения операций discard при монтировании с опцией '-o discard';
○ Добавлен механизм для более надёжного информирования приложений в пространстве пользователя об ошибках, возникающих в процессе выполнения операций отложенной записи (writeback);
○ В F2FS, развиваемой компанией Samsung высокопроизводительной файловой системе для Flash-накопителей, обеспечена поддержка дисковых квот;
○ В F2FS, UBIFS и Btrfs добавлена поддержка системного вызова statx() с реализацией более эффективного и функционального варианта stat(), возвращающего расширенную информацию о файле, включая время создания файла и специфичные для файловых систем флаги;
○ В XFS добавлена поддержка опций SEEK_HOLE и SEEK_DATA системного вызова lseek() для выявления пустых областей и блоков данных внутри файла;
○ В файловой системе OverlayFS добавлена поддержка индекса директории, позволяющая выполнять операции копирования между слоями без повреждения жестких ссылок. Подготовлена инфраструктура для экспорта OverlayFS через NFS;
○ Добавлена возможность повторного экспорта NFS-раздела поверх NFS;
○ Обеспечено использование по умолчанию протокола SMB 3 (Server Message Block) при обращении к файлам на серверах Samba и Windows при помощи CIFS;
○ Добавлена реализация протокола TLS на уровне ядра (KTLS), использование которой позволяет добиться существенного повышения производительности приложений, использующих HTTPS. Реализация выполнена в виде модуля ядра, предоставляющего новый тип сокетов AF_KTLS, которые можно использовать для передачи данных по протоколам TLS 1.2 для TCP и DTLS 1.2 для UDP с применением шифра AES GCM. Поддерживается прямая отправка файлов через установленное TLS-соединение при помощи вызова sendfile(). На графике ниже отражено проведённое инженерами Facebook сравнение задержек при использовании обработчика HTTPS на базе KTLS в ядре и библиотеки OpenSSL:
○ В состав системы сборки включен плагин к GCC для рандомизации раскладки структур данных, который на этапе сборки делает непредсказуемым следование полей в структурах и затрудняет проведение атак, базирующихся на знании раскладки структур в ядре. Плагин портирован из патчей проекта grsecurity;
○ В состав модуля AppArmor включен код обработки меток на процессы ("domain labeling"), разработанный и применяемый в Ubuntu. В будущих выпусках ожидается продолжение интеграции улучшений, разработанных командой Ubuntu для AppArmor и применяемых в проекте Snapd;
○ В подсистему SCSI добавлена поддержка cамошифруемых накопителей SSD (Self-Encrypting SSD), в которых устройство аппаратного шифрования встроено непосредственно в контроллер в соответствии со спецификацией Opal;
○ Добавлены дополнительные меры для определения во время компиляции и перехвата во время работы возможных переполнений буфера при выполнении строковых функций, определённых в заголовочном файле string.h. Реализация идентична режиму FORTIFY_SOURCE=1 в glibc, но также предоставляет средства и для контроля за размером буфера при операциях чтения, а не только при записи;
○ Реализована поддержка уровней безопасности хост-контроллера Thunderbolt, позволяющих задавать права доступа для подключаемых через данный интерфейс устройств (например, можно запретить прямой доступ к памяти через DMA или ограничить доступ только работой через Display Port и туннель USB);
○ Добавлены вызовы wait_for_random_bytes() и get_random_*_wait(), позволяющие убедиться, что генератор псевдослучайных чисел корректно инициализирован и получил достаточный объём энтропии;
○ В fscrypt добавлена поддержка алгоритма AES-128-CBC для шифрования содержимого файлов и AES-128-CBC-CTS для имён файлов (ранее поддерживались только AES-256-XTS и AES-256-CBC-CTS);
○ На 64-разрядных системах изменён метод генерации "канареечного слова" - технология защиты от переполнения стека, основанной на применении случайной последовательности, устанавливаемой в стек непосредственно перед адресом возврата. Младшие 8 бит канареечного слова теперь обнуляются. С одной стороны это на 8 бит снижает случайную энтропию, но с другой стороны позволяет защититься от получения значения канареечного слова, манипулируя переполнением Си-строк, для ограничения которых используется нулевой символ;
○ Обеспечена раздельная обработка sysctl tcp_sack, tcp_window_scaling и tcp_timestamps для каждого пространства имён сетевой подсистемы (network namespace);
○ В getsockopt() добавлена поддержка новой команды SO_PEERGROUPS, возвращающей список всех групп, в которые входит сокет;
○ Представлен новый тип BPF-программ - BPF_PROG_TYPE_SOCK_OPS, который позволяет организовать вызов BPF-программы на различных стадиях обработки сокетов и может применяться для корректировки параметров соединения, таких как размер буферов, начального окна, SYN/SYN-ACK RTO и т.п.
○ Добавлены средства прогнозирования следующего прерывания, которые позволяют повысить эффективность принятия решений, связанных с управлением питанием;
○ В утилиту perf добавлена опция "--smi-cost", позволяющая оценить затраты на обработку прерываний системного управления (SMI - System Management Interrupt, для выполнения кода в режиме SMM);
○ Инициатива по оформлению документации к ядру с использованием разметки reStructuredText (RST) и пакета Sphinx достигла важного рубежа - все ранее доступные шаблоны DocBook преобразованы в reStructuredText. Компоненты для поддержки DocBook удалены;
○ Для каждой BPF-программы теперь генерируется и назначается уникальный идентификатор, который может использоваться для получения файловых дескрипторов к объектам BPF из пространства пользователя;
○ Реализована первая стадия оптимизации процесса вытеснения в раздел подкачки больших страниц памяти (Transparent Huge-Pages). Если до сих пор первым этапом вытеснения в раздел подкачки было разбиение больших страниц не маленькие, то в ядре 4.13 подобное разбиение откладывается до момента распределения места в разделе подкачки и обработки кэша подкачки. Подобное изменение уменьшает конфликт блокировок и приводит к росту производительности примерно на 15%. В будущих ядрах разбиение больших страниц планируется отложить до момента фактической записи в раздел подкачки или чтения из него;
○ В файле /proc/cpuinfo в строке "cpu MHz" теперь выводится номинальная частота процессора, а не вычисленная текущая частота, которая может меняться при каждом запросе. Для оценки изменения текущей частоты рекомендуется использовать программы turbostat и cpupower, поставляемые в составе исходных текстов ядра;
○ Представлена новая подсистема драйверов "mux", позволяющая обеспечить поддержку контроллеров с мультиплексированием, управляющих работой сразу нескольких устройств;
○ Для архитектуры s390 реализованы пятиуровневые таблицы страниц памяти, которые позволяют адресовать до 16 эксабайт ОЗУ;
○ В DRM-драйвере (Direct Rendering Manager) Nouveau обеспечена поддержка средств стереоскопического и 3D вывода через HDMI и DisplayPort для карт NV50+ (G80+);
○ В DRM-драйвере AMDGPU добавлена ограниченная начальная поддержка GPU AMD Raven Ridge и внесена большая порция исправлений для поддержки GPU Radeon RX Vega. При этом, для указанных GPU пока не реализована поддержка DC (Display Core), т.е. отсутствуют компоненты для вывода на экран;
○ В DRM-драйвер для GPU Intel добавлена начальная поддержка грядущих процессоров на базе микроархитектур Intel Cannonlake и Intel Coffeelake. Улучшен процесс сброса GPU g4x и g33;
○ Добавлен драйвер vboxvideo для виртуального GPU VirtualBox, драйвер для которого раньше поставлялся в наборе VirtualBox Guest Additions, а теперь перенесён в основное ядро;
○ Добавлена поддержка звуковых кодеков Realtek ALC215, ALC285 и ALC289, Everest Semi ES8316, ZTE ZX AUD96P22;
○ Добавлена поддержка новых ARM-плат и SoC, включая Orange Pi Win, Orange Pi Zero Plus 2, Nano Pi NEO2, Orange Pi Prime, BeagleBone Blue, LeMaker Guitar Board, Linksys WRT3200ACM, Action Semi S500, Rockchip RV1108 и Bubblegum 96.
Одновременно Латиноамериканский Фонд свободного ПО сформировал вариант полностью свободного ядра 4.13 - Linux-libre 4.13-gnu, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В новом выпуске очищен от блобов код для поддержки криптоакселераторов Cavium Nitrox CNN55XX и Inside Secure SafeXcel, кодировщики и декодировщики Qualcomm Venus V4L2, а также драйверы для Mellanox Technologies Spectrum, Quantenna QSR10g, Qualcomm ADSP и WCNSS. Обновлён код чистки блобов в драйверах для GPU AMDGPU, Adreno A5xx и Intel i915 CSR, беспроводных чипов Atheros 802.11ac ath10k, Broadcom IEEE802.11n embedded FullMAC WLAN, Intel DVM /MVM, Redpine Signals WLAN и Wilocity 60g WiFi, а также драйверов сенсорных экранов Silead Tablet.

Источник: OpenNews

no avatar

Автор темы
x230
Сообщения: 2094
Зарегистрирован: 02 сен 2016, 22:07
Решено: 5
Благодарил (а): 406 раз
Поблагодарили: 487 раз
Контактная информация:

Релиз ядра Linux 4.13

#2

11 сен 2017, 15:15

Скачать уже можно:
http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13/

Аватара пользователя

rogoznik
Сообщения: 10042
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1956 раз
Контактная информация:

Релиз ядра Linux 4.13

#3

11 сен 2017, 17:35

x230 писал(а): Скачать уже можно:
Я неделю назад ставил его в LMDE. Вроде ничего не поломалось :smile:
ИзображениеИзображение

no avatar

Автор темы
x230
Сообщения: 2094
Зарегистрирован: 02 сен 2016, 22:07
Решено: 5
Благодарил (а): 406 раз
Поблагодарили: 487 раз
Контактная информация:

Релиз ядра Linux 4.13

#4

12 сен 2017, 10:25

darkfenix писал(а):ставил
Как скорость? поддержка железа?

Аватара пользователя

rogoznik
Сообщения: 10042
Зарегистрирован: 27 июн 2017, 13:36
Решено: 129
Откуда: Нижний Тагил
Благодарил (а): 776 раз
Поблагодарили: 1956 раз
Контактная информация:

Релиз ядра Linux 4.13

#5

12 сен 2017, 10:26

x230 писал(а): Как скорость? поддержка железа?
К сожалению ставил только на виртуалку. На реальном железе нет LMDE.
ИзображениеИзображение

Аватара пользователя

Chocobo
Сообщения: 10015
Зарегистрирован: 27 авг 2016, 22:57
Решено: 215
Откуда: НН
Благодарил (а): 815 раз
Поблагодарили: 3010 раз
Контактная информация:

Релиз ядра Linux 4.13

#6

12 сен 2017, 11:05

x230 писал(а): Скачать уже можно:
Там уже и корректирующий 4.13.1 доступен пару дней
http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.13.1/
Изображение
   
Изображение

no avatar

syberdaim
Сообщения: 58
Зарегистрирован: 03 апр 2017, 12:56
Решено: 2
Благодарил (а): 2 раза
Поблагодарили: 2 раза
Контактная информация:

Релиз ядра Linux 4.13

#7

30 сен 2017, 11:23

Если Вы подключаете сетевые папки через systemd то не работает в 4,13 версии ядра а в 4,12 работает

Ответить

Вернуться в «Другие новости»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей