LinuxDoc.ru - Новости Linux - Релиз ядра Linux 4.17

Релиз ядра Linux 4.17

LinuxDoc.Ru,
После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 4.17. Несмотря на то, что в процессе цикла разработки ядра 4.17 был преодолён рубеж в 6 млн объектов в Git, Линус решил сохранить интригу и не воспользовался данным поводом для увеличения номера значительной версии ядра, как это делалось для веток 3.x и 4.x. По ощущениям Линуса переходить на нумерацию 5.x ещё рано и скорее всего это произойдёт ко времени выпуска 4.20. Среди наиболее заметных изменений в ядре 4.17: удаление 8 устаревших процессорных архитектур, добавление в XFS опции lazytime, полная реализация протокола TLS на стороне ядра, защита от уязвимостей Spectre 3a/4, оптимизация планировщика задач для мобильных и встраиваемых систем, снижение энергопотребления в состоянии простоя, поддержка архитектуры Andes Technologies NDS32, поддержка GPU AMD Vega12 и Intel Cannonlake, реализация алгоритмов блочного шифрования SM4 и Speck, стабилизация протокола SMB 3.1.1, поддержка SELinux в SCTP. В новую версию принято 14.7 тысяч исправлений от 1400 разработчиков, размер патча - 70 Мб (изменения затронули 14170 файлов, добавлено 648108 строк кода, удалено 827247 строк). Около 38% всех представленных в 4.17 изменений связаны с драйверами устройств, примерно 22% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 11% связано с сетевым стеком, 4% - файловыми системами и 4% c внутренними подсистемами ядра. Основные новшества: Виртуализация и безопасность Доведена до полноценного состояния реализация протокола TLS на уровне ядра (KTLS), использование которой позволяет добиться существенного повышения производительности приложений, использующих HTTPS. Реализация выполнена в виде модуля ядра, предоставляющего новый тип сокетов AF_KTLS, которые можно использовать для передачи данных по протоколам TLS 1.2 для TCP и DTLS 1.2 для UDP с применением шифра AES GCM. Добавленный ранее вариант модуля KTLS ограничивался поддержкой передающей стороны, но отныне в ядро включены и компоненты для согласования соединения на стороне получателя, т.е. в ядре теперь имеются все компоненты для полноценной поддержки TLS; Добавлен код для защиты от уязвимостей Spectre 3a и Spectre 4 в механизме спекулятивного выполнения инструкций CPU (нераскрытыми остаются ещё 6 проблем из группы Spectre-NG). Кроме включения исправлений на стороне ядра для обеспечения защиты также обязательно требуется обновление микрокода - защита строится на применении MSR-бита SSBD (Speculative Store Bypass Disable), поддержка которого представлена в новом микрокоде. По предварительной оценке включение защиты приводит к снижению производительности на 2-8%. Так как применение защиты от Spectre 4 не всегда оправдано, для её отключения предусмотрена опция speculative_store_bypass_disable, в SECCOMP добавлен специальный флаг и код для автоматического отключения SSB для изолированных процессов, а для приложений предложен новый интерфейс prctl, при помощи которого программы могут определять наличие защиты и выборочно отключать её для отдельных процессов; В ядро встроена поддержка блочного шифра Speck, разработанного Агентством национальной безопасности США. Шифр примечателен очень высокой производительностью программной реализации, которая обгоняет AES на системах без наличия средств аппаратного ускорения AES; Добавлена поддержка шифрования AES в режиме CFM (Cipher Feedback Mode), наличие которого определено в спецификации TPM2 (Trusted Platform Module); Реализована поддержка алгоритма блочного шифрования SM4 (GB/T 32907-2016), стандартизированного для учреждений Китая и применяемого в китайском стандарте Wireless LAN WAPI; В протоколе SCTP обеспечена полноценная поддержка SELinux; Добавлена возможность управления модулями AppArmor через сокет; Дисковая подсистема, ввод/вывод и файловые системы Для файловой системы XFS реализована поддержка опции монтирования lazytime, которая даёт возможность отследить время обращения к файлам, но не приводит к возникновению большого числа паразитных операций записи в ФС. Основное отличие от "atime" состоит в том, что время доступа сохраняется в inode, хранящихся в оперативной памяти, и сбрасываемых на диск только при возникновении явных условий или истечения достаточно длительного таймаута (раз в 24 часа). Таким образом для работающих программ возвращается всегда точный atime, но на диске сведения сохраняются с большой задержкой; В файловой системе ext4 повышена надёжность работы в условиях обработки некорректных образов ФС, специально модифицированных для вредоносных целей. При этом мэйнтейнер Ext4 по-прежнему считает плохой идеей предоставление доступа к монтированию произвольных ext4-образов из изолированных контейнеров; В файловой системе Btrfs добавлена опция монтирования nossd_spread, отключающая режим оптимизации ssd_spread, при котором при размещении данных осуществляется поиск наибольшей неиспользуемой области на SSD-накопителе. Проведена работа по ускорению операции перестроения массива в режимах RAID5/RAID6. Удалены операции ioctl() с реализацией функциональности управляемых транзакций, которая оказалась невостребованной и не примется на практике; С реализации SMB 3.1.1 снят признак экспериментальной разработки. В CIFS добавлена поддержка представленной в спецификации SMB 3.1.1 возможности обеспечения целостности на стадии до прохождения аутентификации. Метод основан на использовании криптографических хэшей на этапе согласования сеанса связи и позволяет защититься от MITM-атак с подменой сообщений для отката на менее защищённые схемы аутентификации; В файловой системе F2FS добавлена поддержка помещения в каталог lost+found файлов, потерянных в результате сбоя, но выявленных утилитой fsck. Добавлена опция монтирования fsync_mode, позволяющая выбрать метод вызова fsync для сброса данных на накопитель (поддерживается два режима - posix и strict). Проведена оптимизация производительности для маломощных устройств; В файловой системе OverlayFS появилась опция монтирования "xino", обеспечивающая сохранения идентификатора ФС в составе номера inode, что позволяет зафиксировать имена inode и гарантировать, что они не будут меняться во времени. Предложенная опция предотвращает появление в разное время разных номеров inode для одного файла, что может приводить к проблемам в приложениях, манипулирующих данными на уровне inode; Память и системные сервисы Для более оптимальной работы в условиях нагрузок, свойственных для мобильных и встраиваемых систем, доработан код оценки нагрузки в планировщике задач, прогнозирующий сколько ресурсов CPU может израсходовать каждый работающий процесс для оптимизации выбора режимов работы CPU и распределения процессов по ядрам CPU; В системный вызов bpf() добавлена новая команда BPF_RAW_TRACEPOINT, позволяющая привязать BPF-обработчик к точке трассировки (tracepoint - вариант динамических printf(), выставляемых разработчиками программ для анализа поведения системы, к которым затем можно обращаться из LTTng, perf, SystemTap, ftrace). Работа осуществляется без предварительной обработки аргументов tracepoint на стадии до вызова BPF-программы, что позволяет минимизировать накладные расходы при трассировке, но усложняет написание BPF-программы; Переработан код для обработки состояний простоя процессора (idle loop), в котором сокращено число краткосрочных переходов на неглубокие уровни экономии энергии. Перевод процессора в состояние idle теперь осуществляется только если планировщик прогнозирует нахождение в данном состоянии достаточно долгое время. В проведённых разработчиками тестах в состоянии простоя потребление энергии после внесения изменений снизилось на 10% и больше. Кроме того возросла производительность некоторых видов нагрузки, на которые негативно влиял переход в idle-режим; Проведена чистка кода подсистемы CPUFreq; В команде "perf script" добавлена поддержка скриптов на языке Python 3. В систему трассировки добавлен новый режим "histogram trigger", обеспечивающий формирование вывода данных трассировки в виде наглядных гистограмм; Для сборки ядра на системах x86 теперь необходим компилятор с поддержкой специфичного для GCC выражения "asm goto", которое присутствует начиная с GCC 4.5, но пока не поддерживается в Clang. Кроме того, сборка модулей lexer и parser теперь производится в рамках общего сборочного процесса и требует наличия flex и bison (раньше данные модули поставлялись в репозитории в готовом виде); Проведена массивная чистка кода от прямого обращения к реализациям системных вызовов внутри ядра. Чистка проведена с целью повышения гибкости интерфейса системных вызовов и упрощения дальнейшей работы по удалению вызовов set_fs(). Изменён и унифицирован механизм обращения к системным вызовам на оборудовании с архитектурой x86-64. Новая схема обращения к системным вызовам обеспечивает защиту от попадания в обработчик системного вызова неиспользуемых, но контролируемых атакующим, данных (например подобная техника была использована в недавней атаке на системы, неверно интерпретировавшие описание поведения инструкций MOV SS/POP SS в документации); В состав принята подсистема LKMM (Linux Kernel Memory Consistency Model), включающая набор утилит (размещены в каталоге tools/memory-model/) для формального описания модели связи разных областей памяти ядра. Инструментарий даёт возможность генерировать модули ядра с тестовыми проверками, позволяющими тестировать различные методы работы ядра с памятью и выявлять проблемы связанные с организацией работы блокировок при попытках одновременного доступа к памяти; Поведение таймера CLOCK_MONOTONIC приведено в соответствие с таймером CLOCK_BOOTTIME, т.е. таймер теперь учитывает время проведённое системой в спящем режиме без формирования разрыва. Потенциально унификация CLOCK_MONOTONIC и CLOCK_BOOTTIME может привести к нарушению поведения приложений, но проблемы, возникающие из-за пропуска времени, проведённого в спящем режиме, явно перевешивают. Для тех приложений которым действительно нужно учитывать только время в активном состоянии предложен таймер CLOCK_MONOTONIC_ACTIVE; Представлена новая ioctl-команда INOTIFY_IOC_SETNEXTWD, позволяющая задать номер дескриптора, который должен быть возвращён при создании следующего дескриптора (используется при заморозке состояния системы при выполнении checkpoint/restart); В системный вызов mmap() добавлена опция MAP_FIXED_NOREPLACE, которая пытается разместить новый регион памяти по адресу, заданному пользователем, но в отличие от MAP_FIXED без замены уже существующего маппинга по данному адресу (при пересечении будет выдана ошибка EEXIST); Сетевая подсистема Протокол RDS (Reliable Datagram Sockets), позволяющий создавать сокеты для надёжной передачи датаграмм поверх TCP-линков, расширен поддержкой режима zero-copy, позволяющего передавать данные без промежуточной буферизации; Реализована возможность применения BPF-скриптов для фильтрации трафика, отправленного через системные вызовы sendmsg() и sendfile(); В системные вызовы bind() и connect() добавлен набор специфичных для cgroups точек подключения BPF-обработчиков. Присоединённые BPF-скрипты могут изменять поведение работы данных системных вызовов; С нарушением обратной совместимости изменено 32-разрядное ABI для RDMA. Решение о нарушении совместимости принято так как данный режим пока не используется в реальных приложениях; Поддержка архитектур Проведена одна из крупнейших чисток кодовой базы от устаревшего кода (удалено 467 тысяч строк кода), в ходе которой удалена поддержка архитектур blackfin, cris, frv, m32r, metag, mn10300, score и tile, а также специфичные для данных архитектур драйверы. Ныне данные архитектуры не используются для создания процессоров, так как производителям дешевле лицензировать более новые ядра CPU от ARM, MIPS или RISC-V. Прошивки для ранее выпущенных чипов остаются на старых версиях ядра Linux и давно не обновлялись до новых веток; Добавлена поддержка архитектуры CPU NDS32, развиваемой компанией Andes Technologies, и реализованных на её основе процессорных ядер N13, N15, D15, N10 и D10. NDS32 продолжает развитие 16/32-разрядной RISC-подобной архитектуры AndeStar и воплощена в новой серии настраиваемых процессоров AndesCore, которые охватывают широкий диапазон применения во встраиваемой технике, от компактных решений для микроконтроллеров и DSP до специализированных процессоров для ускорения определённых приложений и высокопроизводительных (1GHz+) систем общего назначения с возможностью запуска Linux; Добавлена поддержка появившегося в процессорах SPARC M7 механизма обеспечения целостности данных приложения (ADI, Application Data Integrity). Новая возможность позволяет приложению установить метки на адреса виртуальной памяти (метки представляют собой четырёхбитовые значения, прикреплённые к адресу). В случае последующего обращения к указанной области по адресу без метки будет сгенерировано исключение; Для архитектуры ARM реализована поддержка интерфейса SCMI (System Control and Management Interface), представляющего набор возможностей для управления системой и питанием; Для 64-разрядных систем PowerPC реализована возможность адресации до 4 ПБ ОЗУ; Прекращена поддержка процессоров POWER4, код для которых находился в неработоспособном виде с 2016 года и никто не обратил на это внимание, что свидетельствует об отсутствии пользователей, заинтересованных в данных CPU; Оборудование В DRM-драйвер AMDGPU добавлена полноценная поддержка GPU AMD Vega12. Для всех поддерживаемых GPU включена по умолчанию прослойка AMD DC (Display Core) с реализацией переработанного кода для управления отображением и поддержкой таких возможностей, как вывод звука через HDMI и DisplayPort, HDMI 2.0 и атомарное переключение видеорежимов. Проведена реструктуризация кода для использования технологии Powerplay. Прекращена поддержка менеджера управления видеопамятью TTM. Добавлены средства для контроля за энергопотреблением в стиле Radeon WattMan (позволяет управлять вольтажом, частотой движка и памяти, скоростью вращения кулера, получать сведения о температуре); В драйвере amdkfd для dGPU (дискретные GPU, такие как Fiji, Tonga, Polaris) добавлена поддержка GPUVM и обработки событий KFD, что позволяет запустить поверх ядра стек OpenCL без применения сторонних модулей; В DRM-драйвере Intel включен по умолчанию код для поддержки чипов Cannonlake (Gen 10). Добавлена поддержка технологии защиты HDCP (High-bandwidth Digital Content Protection) для шифрования видеосигнала, передаваемого через интерфейсы DVI, DisplayPort, HDMI, GVIF или UDI, с целью улучшения совместимости с существующим оборудованием (спецификация требует применения HDCP при передаче потоков звука в формате TrueHD). Добавлена поддержка портов AUX-F. Предоставлена возможность использования сжатого фреймбуфера для спрайтов. Реализован интерфейс Query uAPI. Обеспечено урезание кэша kmem во время простоя GPU; В драйвер Nouveau внесены только мелкие правки, более заметные исправления отложены до следующего выпуска из-за наличия нерешённых проблем; Добавлена поддержка панелей ARM Versatile, AUO G104SN02 V2, KEO TX31D200VM0BAA и Raydium RM68200 720x1280 DSI, HDMI-ресиверов NXP TDA1997x и SoundGraph iMON, тюнеров Sony CXD2880 DVB-T2/T; Добавлен драйвер для гигабитных ethernet-адаптеров Microchip LAN743x; Добавлена поддержка защищённых процессоров ARM TrustZone CryptoCell и аппаратных генераторов случайных чисел TI Keystone NETCP SA; Добавлена поддержка устройств вывода звука с интерфейсом USB, соответствующих спецификации USB Audio Class 3.0; Добавлена поддержка новых SoC Allwinner H6, ST STM32MPU, NVIDIA Tegra Tegra194 ("Xavier"), NVIDIA P2972. Добавлена поддержка плат Libre Computer Card ROC-RK3328-CC, Orange Pi Zero+, Teres-I, Olimex som204, Banana Pi M2 Zero, а также плат на базе Nuvoton NPCM и смартфонов Samsung Galaxy S3 и Galaxy S5 на базе SoC Exynos4 и MSM8974. Одновременно Латиноамериканский Фонд свободного ПО сформировал вариант полностью свободного ядра 4.17 - Linux-libre 4.17-gnu, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В новом выпуске прекращена чистка блобов для чипа обработки звука Dreamcast Yamaha AICA, прошивка для которого переведена в разряд СПО. Также прекращена чистка кода USB IrDA из-за удаления данной подсистемы из ядра. Проведена реорганизация кода загрузчика прошивок и скрипта builddeb. Обновлён код чистки блобов в драйверах i915, amdgpu, coda, s5p-mfc, wl1251 и brcmfmac.
linux

Новости Linux

. Релиз ядра Linux 4.17 Релиз ядра Linux 4.17
Если Вы обнаружите в опубликованных документах ошибки, опечатки, несоответствия и неточности - сообщите о них.
>>> После года разработки и 29 экспериментальных версий представлен стабильный релиз открытой реализации Win32 API - Wine 6.0, который вобрал в себя более 8300 изменений. Из ключевых достижений новой версии отмечается поставка базовых модулей Wine в формате PE, бэкенд на основе графического API Vulkan для WineD3D, новая реализация текстовой консоли, поддержка DirectShow и фреймворка Media Foundation.
>>> Состоялся релиз Alpine Linux 3.13, минималистичного дистрибутива, построенного на базе системной библиотеки Musl и набора утилит BusyBox. Дистрибутив отличается повышенными требованиями к обеспечению безопасности и собран с защитой SSP (Stack Smashing Protection). В качестве системы инициализации используется OpenRC, для управления пакетами применяется собственный пакетный менеджер apk. Alpine применяется для формирования официальных образов контейнеров Docker. Загрузочные iso-образы (x86_64, x86, armhf, aarch64, armv7, ppc64le, s390x, mips64) подготовлены в пяти вариантах: стандартном (130 МБ), с ядром без патчей (150 МБ), расширенном (570 МБ) и для виртуальных машин (40 МБ).
>>> Описание приложения MSN Погода
MSN Погода – это легкое и удобное мобильное приложение для владельцев Android-смартфонов, которое позволяет получить прогноз погоды на ближайшие 5-10 дней, независимо от того, где именно находится человек. Утилита информирует об изменениях температуры воздуха, силе ветра, уровне влажности, возможных осадках и т. п.
>>> Началась подготовка к предстоящей заморозке пакетной базы выпуска Debian 11 "Bullseye", релиз которого ожидается летом 2021 года. Первая стадия заморозки пакетной базы намечена на 12 января 2021 года. На данном этапе будет прекращено выполнение "transitions" (обновление пакетов, требующее корректировки зависимостей у других пакетов, которое приводит к временному удалению пакетов из Testing), а также прекращено обновление пакетов, необходимых для сборки (build-essential).


Редакция портала:

Добро пожаловать на сайт, посвященный документации к ОС Linux, ее переводу и распространению. Мы надеемся, что Вы найдете тут всю необходимую информацию. Здесь представлены три основных вида документации на русском языке: руководства (man-pages), HOWTO и mini-HOWTO. В скором будущем возможно появление и других видов документации.
Авторские права на представленные документы принадлежат авторам перевода и распространяются в соответствии со Стандартной Общественной Лицензией, если в документе не указано обратное.
Если Вы обнаружите в опубликованных документах ошибки, опечатки, несоответствия и неточности - сообщите о них.


Живая лента

Киберпанк уже наступил

STFW.Ru: Президент Microsoft Брэд Смит сказал о наличии свидетельств о том, что российская разведка причастна к массовой кибератаке на системы американских ведомств федерального правительства и ...

NAVI потеряла первое место в рейтинге CS:GO, в России проводят интенсив по Dota 2

STFW.Ru: В самом разгаре турнир IEM Katowice 2021 по CS:GO. Этот ивент является знаковым в календаре всех команд этой кибердисциплине, поскольку на турнире разыграют призовой фонд в размере одного ...

Компания Microsoft запатентовала способ цифровой реинкарнации любого человека

STFW.Ru: По документации, которая доступна на ресурсе Ведомства по патентам и товарным знакам США (USPTO), трудно судить, на какой стадии находится разработка. Но описанный функционал системы ...

02:11 Что может случиться с ноутбуком и как решить проблему


03:06 В Chrome предложен новый интерфейс PDF-просмотрщика и добавлена поддержка AVIF


03:06 Релиз дистрибутива Linux Mint 20


03:06 Chrome, Firefox и Safari ограничат время жизни TLS-сертификатов 13 месяцами


12:03 Второй выпуск Glimpse, форка графического редактора GIMP


12:03 Опубликован web-браузер Min 1.13


12:03 Выпуск дистрибутива Zorin OS 15.2


12:03 Объявлено об объединении проектов FreeNAS и TrueNAS


06:01 Из Kali Linux уберут права root по умолчанию


06:01 Tails 4.2.2 - экстренный релиз


06:01 РЖД закупит 15 000 компьютеров с российскими процессорами «Эльбрус»


06:01 Минкомсвязи утвердило требования к российским DNS


08:11 Выпуск Debian 9.6