Перейти к содержанию

Журнал фильтра злоупотреблений

Подробности записи журнала 683621

09:49, 18 декабря 2024: InternetArchiveBot (обсуждение | вклад) вызвал срабатывание фильтра 3, выполнив действие «edit» на странице Релиз ядра Linux 4.16. Предпринятые меры: Предупреждение. Описание фильтра: Спам ссылки (просмотреть)

Изменения, сделанные в правке

* Добавлена реализация [https://lwn.net/Articles/727322/ механизма] защиты копирования данных между ядром и пространством пользователя, блокирующего использование вызова usercopy при проведении некоторых видов атак. Суть предложенного метода в запрете применения usercopy для прямого копирования между пространством пользователя и некоторыми областями ядра с введением белого списка допустимых для использования областей памяти. Так как подобный подход потенциально может нарушить работу приложений, использующих usercopy, предусмотрен fallback-режим (HARDENED_USERCOPY_FALLBACK или slab_common.usercopy_fallback). В настоящее время механизм активирован в режиме информирования, при котором в лог записываются предупреждения о проблемных операциях, без их фактического блокирования;
* Добавлена реализация [https://lwn.net/Articles/727322/ механизма] защиты копирования данных между ядром и пространством пользователя, блокирующего использование вызова usercopy при проведении некоторых видов атак. Суть предложенного метода в запрете применения usercopy для прямого копирования между пространством пользователя и некоторыми областями ядра с введением белого списка допустимых для использования областей памяти. Так как подобный подход потенциально может нарушить работу приложений, использующих usercopy, предусмотрен fallback-режим (HARDENED_USERCOPY_FALLBACK или slab_common.usercopy_fallback). В настоящее время механизм активирован в режиме информирования, при котором в лог записываются предупреждения о проблемных операциях, без их фактического блокирования;
* Продолжена реализация техник защиты от атак Meltdown и Spectre. Например, проведены оптимизации для снижения накладных расходов от PTI, добавлен код для обеспечения [https://lwn.net/Articles/746551/ защиты] от первого варианта атаки Spectre (CVE-2017-5753) и для блокирования атак Meltdown и Spectre на процессорах с архитектурой ARM64 и S390. Защита от Spectre v1 реализована через добавление макроса array_index_nospec(), предотвращающего выполнение спекулятивных операций, которые могут вызвать обход проверки границ массива. В код для защиты от Spectre v2 добавлена возможность использование MSR-команды IBPB (Indirect Branch Prediction Barriers), представленной в обновлении микрокода. Защита от Meltdown для ARM64 реализована через классический патч PTI, а от Spectre v2 через возможность выборочного отключения блока предсказания переходов. На системах S390 для блокирования Spectre задействован модифицированный вариант защиты retpoline (expoline) и макрос array_index_nospec();
* Продолжена реализация техник защиты от атак Meltdown и Spectre. Например, проведены оптимизации для снижения накладных расходов от PTI, добавлен код для обеспечения [https://lwn.net/Articles/746551/ защиты] от первого варианта атаки Spectre (CVE-2017-5753) и для блокирования атак Meltdown и Spectre на процессорах с архитектурой ARM64 и S390. Защита от Spectre v1 реализована через добавление макроса array_index_nospec(), предотвращающего выполнение спекулятивных операций, которые могут вызвать обход проверки границ массива. В код для защиты от Spectre v2 добавлена возможность использование MSR-команды IBPB (Indirect Branch Prediction Barriers), представленной в обновлении микрокода. Защита от Meltdown для ARM64 реализована через классический патч PTI, а от Spectre v2 через возможность выборочного отключения блока предсказания переходов. На системах S390 для блокирования Spectre задействован модифицированный вариант защиты retpoline (expoline) и макрос array_index_nospec();
* В гипервизор KVM добавлена поддержка доступного в процессорах AMD механизма [http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf Secure Encrypted Virtualization] (SEV), который предоставляет средства шифрования памяти для виртуальных машин. Суть метода защиты в интеграции в архитектуру виртуализации AMD-V возможности для прозрачного шифрования памяти виртуальных машин, при которой доступ к расшифрованным данным имеет только текущая гостевая система, а остальные виртуальные машины и даже гипервизор при попытке обращения к этой памяти получают зашифрованные данные;
* В гипервизор KVM добавлена поддержка доступного в процессорах AMD механизма [http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf Secure Encrypted Virtualization] {{Wayback|url=http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf |date=20201027141231 }} (SEV), который предоставляет средства шифрования памяти для виртуальных машин. Суть метода защиты в интеграции в архитектуру виртуализации AMD-V возможности для прозрачного шифрования памяти виртуальных машин, при которой доступ к расшифрованным данным имеет только текущая гостевая система, а остальные виртуальные машины и даже гипервизор при попытке обращения к этой памяти получают зашифрованные данные;
* В состав включены драйверы для ускорения работы гостевых систем под управлением VirtualBox: Vboxvideo для обеспечения доступа к GPU и Vboxguest с поддержкой средств для переноса данных между гостевой системой и хостом, а также с возможностью проброса команд OpenGL. Не перенесённым в основной состав пока остаётся только драйвер
* В состав включены драйверы для ускорения работы гостевых систем под управлением VirtualBox: Vboxvideo для обеспечения доступа к GPU и Vboxguest с поддержкой средств для переноса данных между гостевой системой и хостом, а также с возможностью проброса команд OpenGL. Не перенесённым в основной состав пока остаётся только драйвер
Vboxsf, предоставляющий функции проброса каталогов;
Vboxsf, предоставляющий функции проброса каталогов;


Одновременно Латиноамериканский Фонд свободного ПО [http://www.fsfla.org/ikiwiki/selibre/linux-libre/ сформировал]
Одновременно Латиноамериканский Фонд свободного ПО [http://www.fsfla.org/ikiwiki/selibre/linux-libre/ сформировал]
вариант полностью свободного ядра 4.16 - [http://linux-libre.fsfla.org/pub/linux-libre/releases/4.16-gnu/ Linux-libre 4.16-gnu], очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В новом выпуске переработана реализация reject_firmware_nowait, почищены сообщения, которые могут предлагать установку несвободного микрокода, очищен от блобов драйвер mt76x2e. Обновлён код чистки блобов в драйверах i915, nouveau, imx-sdma, iwlwifi, raydium-i2c и silead_dmi. Прекращена чистка драйвера lirc_zilog, в связи с удалением из ядра.
вариант полностью свободного ядра 4.16 - [http://linux-libre.fsfla.org/pub/linux-libre/releases/4.16-gnu/ Linux-libre 4.16-gnu] {{Wayback|url=http://linux-libre.fsfla.org/pub/linux-libre/releases/4.16-gnu/ |date=20210420194402 }}, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В новом выпуске переработана реализация reject_firmware_nowait, почищены сообщения, которые могут предлагать установку несвободного микрокода, очищен от блобов драйвер mt76x2e. Обновлён код чистки блобов в драйверах i915, nouveau, imx-sdma, iwlwifi, raydium-i2c и silead_dmi. Прекращена чистка драйвера lirc_zilog, в связи с удалением из ядра.


{{-}}
{{-}}

Параметры действия

ПеременнаяЗначение
Число правок участника (user_editcount)
129643
Имя учётной записи (user_name)
'InternetArchiveBot'
Тип учётной записи участника (user_type)
'named'
Возраст учётной записи (user_age)
154900843
Группы (включая неявные) в которых состоит участник (user_groups)
[ 0 => 'autoreview', 1 => 'bot', 2 => '*', 3 => 'user', 4 => 'autoconfirmed' ]
Права, которые есть у участника (user_rights)
[ 0 => 'move-categorypages', 1 => 'movestable', 2 => 'autoreview', 3 => 'noratelimit', 4 => 'bot', 5 => 'autoconfirmed', 6 => 'editsemiprotected', 7 => 'nominornewtalk', 8 => 'autopatrol', 9 => 'suppressredirect', 10 => 'apihighlimits', 11 => 'sboverride', 12 => 'skipcaptcha', 13 => 'abusefilter-bypass-blocked-external-domains', 14 => 'createaccount', 15 => 'read', 16 => 'edit', 17 => 'createpage', 18 => 'createtalk', 19 => 'abusefilter-log-detail', 20 => 'abusefilter-view', 21 => 'abusefilter-log', 22 => 'reupload-own', 23 => 'move-rootuserpages', 24 => 'minoredit', 25 => 'editmyusercss', 26 => 'editmyuserjson', 27 => 'editmyuserjs', 28 => 'sendemail', 29 => 'applychangetags', 30 => 'changetags', 31 => 'viewmywatchlist', 32 => 'editmywatchlist', 33 => 'reupload', 34 => 'upload', 35 => 'move', 36 => 'transcode-reset' ]
Редактирует ли участник через мобильный интерфейс (user_mobile)
false
Global edit count of the user (global_user_editcount)
32974228
Редактирует ли пользователь через мобильное приложение (user_app)
false
ID страницы (page_id)
7947493
Пространство имён страницы (page_namespace)
0
Название страницы (без пространства имён) (page_title)
'Релиз ядра Linux 4.16'
Полное название страницы (page_prefixedtitle)
'Релиз ядра Linux 4.16'
Последние десять редакторов страницы (page_recent_contributors)
[ 0 => 'TheStoneBot', 1 => 'NewsBots' ]
Действие (action)
'edit'
Описание правки/причина (summary)
'Rescuing 2 sources and tagging 0 as dead.) #IABot (v2.0.9.5'
Время с момента последнего редактирования страницы (в секундах) (page_last_edit_age)
129567353
Старая модель содержимого (old_content_model)
'wikitext'
Новая модель содержимого (new_content_model)
'wikitext'
Вики-текст старой страницы до правки (old_wikitext)
'{{дата|2 апреля 2018}} {{тема|Компьютерные технологии}} [[File:Wikinews-logo-ru.svg|thumb|left|300px]] После двух месяцев разработки Линус Торвальдс [https://lkml.org/lkml/2018/4/1/175 представил] релиз ядра [https://kernel.org Linux 4.16]. Среди наиболее заметных изменений: интеграция гипервизора Jailhouse, блокирование некоторых операций копирования данных между ядром и пространством пользователя, учёт режимов энергосбережения CPU в планировщике deadline, подготовка к прекращению поддержки IPX и NCPFS, поддержка механизма AMD Secure Encrypted Virtualization в KVM. В новую версию принято около 13 тысяч исправлений от 1500 разработчиков, размер патча - 48 Мб (изменения затронули 11986 файлов, добавлено 508425 строк кода, удалено 314376 строк). Около 49% всех представленных в 4.16 изменений связаны с драйверами устройств, примерно 19% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 13% связано с сетевым стеком, 4% - файловыми системами и 3% c внутренними подсистемами ядра. [http://kernelnewbies.org/Linux_4.16 Основные] [https://lwn.net/Articles/746791/ новшества]: * Виртуализация и безопасность * Обеспечена начальная поддержка гипервизора Jailhouse, развиваемого компанией Siemens и поддерживающего работу на системах x86_64 с расширениями VMX+EPT или AMD-V/SVM+NPT (поддержка ARMv7 и ARMv8, а также компоненты для корневого окружения, пока не приняты в основное ядро). Отличительными особенностями Jailhouse являются легковесная реализация и ориентация на привязку виртуальных машин к фиксированному CPU, области ОЗУ и аппаратным устройствам. Т.е. на одном физическом многопроцессорном сервере обеспечивается работа нескольких независимых виртуальных окружений, каждое из которых закреплено за своим процессорным ядром. Такой подход позволяет свести к минимуму накладные расходы от работы гипервизора и обеспечить гарантированный доступ к ресурсам и предсказуемую производительность, подходящие для виртуализации задач режима реального времени; * Добавлена реализация [https://lwn.net/Articles/727322/ механизма] защиты копирования данных между ядром и пространством пользователя, блокирующего использование вызова usercopy при проведении некоторых видов атак. Суть предложенного метода в запрете применения usercopy для прямого копирования между пространством пользователя и некоторыми областями ядра с введением белого списка допустимых для использования областей памяти. Так как подобный подход потенциально может нарушить работу приложений, использующих usercopy, предусмотрен fallback-режим (HARDENED_USERCOPY_FALLBACK или slab_common.usercopy_fallback). В настоящее время механизм активирован в режиме информирования, при котором в лог записываются предупреждения о проблемных операциях, без их фактического блокирования; * Продолжена реализация техник защиты от атак Meltdown и Spectre. Например, проведены оптимизации для снижения накладных расходов от PTI, добавлен код для обеспечения [https://lwn.net/Articles/746551/ защиты] от первого варианта атаки Spectre (CVE-2017-5753) и для блокирования атак Meltdown и Spectre на процессорах с архитектурой ARM64 и S390. Защита от Spectre v1 реализована через добавление макроса array_index_nospec(), предотвращающего выполнение спекулятивных операций, которые могут вызвать обход проверки границ массива. В код для защиты от Spectre v2 добавлена возможность использование MSR-команды IBPB (Indirect Branch Prediction Barriers), представленной в обновлении микрокода. Защита от Meltdown для ARM64 реализована через классический патч PTI, а от Spectre v2 через возможность выборочного отключения блока предсказания переходов. На системах S390 для блокирования Spectre задействован модифицированный вариант защиты retpoline (expoline) и макрос array_index_nospec(); * В гипервизор KVM добавлена поддержка доступного в процессорах AMD механизма [http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf Secure Encrypted Virtualization] (SEV), который предоставляет средства шифрования памяти для виртуальных машин. Суть метода защиты в интеграции в архитектуру виртуализации AMD-V возможности для прозрачного шифрования памяти виртуальных машин, при которой доступ к расшифрованным данным имеет только текущая гостевая система, а остальные виртуальные машины и даже гипервизор при попытке обращения к этой памяти получают зашифрованные данные; * В состав включены драйверы для ускорения работы гостевых систем под управлением VirtualBox: Vboxvideo для обеспечения доступа к GPU и Vboxguest с поддержкой средств для переноса данных между гостевой системой и хостом, а также с возможностью проброса команд OpenGL. Не перенесённым в основной состав пока остаётся только драйвер Vboxsf, предоставляющий функции проброса каталогов; * По умолчанию для архитектур x86/x86_64 и ARM64 включена опция CONFIG_STRICT_DEVMEM, ограничивающая доступ к /dev/mem из пространства пользователя. Без выключения данной опции root может получить доступ ко всем областям памяти ядра и приложений, а при включении доступ ограничивается только областями отражённой памяти периферийных устройств; * Дисковая подсистема, ввод/вывод и файловые системы * Подсистема MultiMediaCard, отвечающая за обработку таких устройств хранения, как SD-карты, переведена на многоуровневую систему очередей (multiqueue), позволяющую организовать многопоточный доступ к данным на многоядерных системах; * В планировщиках ввода/вывода обеспечена поддержка заблокированных зон на блочных устройствах, что позволяет исключить выполнение перегруппировки операций записи на зонированных устройствах, операции записи на которых должны выполняться последовательно; * В файловой системе XFS снят флаг экспериментальной разработки с механизма обратного маппинга (rmap, reverse-mapping), позволяющего файловой системе определить владельца любого блока на устройстве хранения. Reverse-mapping может быть использован как основа для реализации таких возможностей, как reflink(), режим copy-on-write для данных, дедупликация, расширенные средства информирования о bad-блоках и дополнительные средства восстановления повреждений; * В файловую систему CIFS добавлена поддержка режима SMB Direct, который позволяет использовать сетевые адаптеры с функцией удаленного доступа к памяти (RDMA) для увеличения скорости передачи SMB-пакетов; * В файловой системе Btrfs улучшен код перестроения повреждённых массивов RAID5/6 и реализована поддержка управления резервированием пустых областей через вызов fallocate() в режиме FALLOCATE_FL_ZERO_RANGE; * В NFS-клиенте изменён метод вызова statx() для исключения обращения к внешнему серверу, если необходимая информация доступна локально. * Добавлена поддержка экспорта Overlayfs через NFS; * В системный вызов pwritev2() добавлен флаг RWF_APPEND, при котором данные прикрепляются к хвосту файла, независимо от текущего смещения; * В AFS [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4d673da14533b32fe8d3125b5b7be4fea14e39a8 добавлена] поддержка динамического создания точек монтирования; * [http://lkml.iu.edu/hypermail/linux/kernel/1801.3/03340.html Переработан] код обновления поля i_version в inode, которое раньше инкрементировалось при каждом обновлении связанных с inode данных или метаданных, что не востребовано на практике (обычно осуществляется проверка времени изменения, а не версии inode). В новом выпуске сокращено число ситуаций, при которых выполняется обновление i_version, что позволило ускорить операции ввода/вывода небольшого размера. Например, при тестировании утилитой [https://github.com/axboe/fio fio] конфигурации с XFS поверх DAX и размером записываемого блока 4K пропускная способность чтения/записи [https://lkml.org/lkml/2017/12/25/8 увеличилась] на 244%; * Память и системные сервисы * В планировщике задач deadline, реализующем алгоритм EDF (Earliest Deadline First), основанный на идее выбора задачи из очереди ожидающих процессов, наиболее близкой к истечению крайнего расчётного времени, добавлен учёт изменения частоты CPU и параметров вольтажа, что позволяет обеспечить его оптимальную работу без отключения функций энергосбережения; * В планировщике CFS (Fair) ограничена автоматическая миграция задач между ядрами CPU - в процессе выполнения прерывания задача теперь может быть перемещена на другое ядро только если новое и старое ядра используют общий кэш; * В виртуальную машину BPF (Berkeley Packet Filter) добавлена возможность определения и вызова функций в BPF-программах; * В системный вызов membarrier(), обеспечивающий установку барьеров на память для всех работающих в системе потоков, [https://lwn.net/Articles/728795/ добавлена] новая реализация режима MEMBARRIER_CMD_SHARED_EXPEDITED, позволяющего значительно ускорить выполнение вызова, ценой применения [https://en.wikipedia.org/wiki/Inter-processor_interrupt IPI] (inter-processor interrupt). В новой реализации проведена работа по предоставлению возможности исключение процессов, для которых отсутствует необходимость в обработке барьеров. Кроме того, процесс теперь должен явно заявить о намерении участия в операциях с глобальными барьерами (MEMBARRIER_CMD_GLOBAL_EXPEDITED) при помощи вызова membarrier() с командой MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED; * Добавлена новая опция командой строи console_msg_format, которую можно использовать для определения формата в printk(), используемого при выводе записей в syslog; * Добавлена возможность партицирования L2-кэша CPU для процессоров Intel с поддержкой технологии RDT L2 CDP (Resource Director Technology L2 Code and Data Prioritization), позволяющей управлять размещением кода и данных в L2-кэше. Появление данного режима ожидается в будущих моделях процессоров Intel Atom; * Flex и Bison добавлены в число зависимостей, необходимых для сборки ядра; * Сетевая подсистема * Добавлено новое виртуальное устройство "netdevsim", которое позволяет симулировать различные hardware-offload операции без наличия фактической их поддержки в оборудовании, что может использоваться для тестирования возможностей сетевого стека, связанных с привлечением механизмов аппаратного ускорения обработки пакетов. Например, netdevsim уже применяется для тестирования поддержки offload в BPF; * Реализация протоколов Netware IPX и NCPFS перемещена в промежуточную staging-ветку ядра и в одном из будущих выпусков будет удалена. Прекращение поддержки IPX и NCPFS обусловлено устаревшим кодом, отсутствием сопровождения и невостребованностью; * Заметно [http://vger.kernel.org/~davem/seoul2017_netdev_keynote.pdf сокращён] размер некоторых структур, используемых для хранения данных маршрутизации. Например, размер записи в структурах rtable и dst_entry сокращён на 48 байт, а в rt6_info на 64 байта; * Добавлен второй хэш для слушающих TCP-сокетов (listener); * [https://lkml.org/lkml/2018/1/31/589 Избавлен] от блокировок код планировщика qdisc (queuing discipline); * Поддержка архитектур * В системах на базе архитектуры ARM64 теперь поддерживается использование 52-разрядной физической адресации; * Для архитектуры PowerPC реализована поддержка механизма PKU ( [https://en.wikipedia.org/wiki/Memory_protection#Protection_keys Memory Protection Keys] for Userspace), который можно применять для защиты доступа к страницам памяти из пространства пользователя, без изменения таблиц страниц памяти при изменении домена защиты. Например, указанные системные вызовы можно использовать для дополнительной защиты размещения в памяти ключей шифрования, предоставив возможность чтения только для одного потока в многопоточной программе шифрования; * Оборудование * В DRM-драйвере Intel [http://lkml.iu.edu/hypermail/linux/kernel/1802.0/00704.html улучшена] поддержка чипов Cannonlake (Gen 10), добавлена поддержка новых прошивок для чипов Skylake и Kabylake и улучшены средства виртуализации GPU ( GVT-g); * В DRM-драйвере Nouveau добавлена поддержка GPU GP108, применяемого в видеокартах серии GeForce GT 1030; * В DRM-драйвере AMDGPU [http://lkml.iu.edu/hypermail/linux/kernel/1802.1/00012.html улучшена] поддержка GPU Vega и Raven, в прослойку AMD DC (Display Core) добавлен код для синхронизации между несколькими экранами; * Добавлена поддержка звуковых подсистем SoC Allwinner A83T, Maxim MAX89373, SocioNext UiniPhier, EVEA Tempo Semiconductor TSCS42xx, TI PCM816x, TAS5722 и TAS6424; * Для SoC Tegra TX2 реализована поддержка HDMI и I2C; * Добавлена поддержка новых ARM-устройств, включая Orange Pi R1, D-Link DNS-313 NAS, Actions S700 SoC, Libre Computer Board ALL-H3-CC H3, FreeScale Hummingboard2, Variscite DART-MX6, TS-4600, TS-7970 и Toradex Colibri; * Удалены старые драйверы для инфракрасных портов LIRC, которые уже давно были объявлены устаревшими. * Добавлена настройка CONFIG_SATA_MOBILE_LPM_POLICY, позволяющая продлить время автономной работы ноутбуков на базе чипов Intel за счёт использовании более агрессивных настроек ALPM (ATA Link Power Management). При помощи данной опции можно добиться снижения энергопотребления в режиме простоя примерно на 1 Вт; * Добавлена настройка BT_HCIBTUSB_AUTOSUSPEND, позволяющая включить автоматический перевод в спящий режим устройств Bluetooth, подключенных через USB, что позволяет снизить энергопотребление примерно на 0.4 Вт; Одновременно Латиноамериканский Фонд свободного ПО [http://www.fsfla.org/ikiwiki/selibre/linux-libre/ сформировал] вариант полностью свободного ядра 4.16 - [http://linux-libre.fsfla.org/pub/linux-libre/releases/4.16-gnu/ Linux-libre 4.16-gnu], очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В новом выпуске переработана реализация reject_firmware_nowait, почищены сообщения, которые могут предлагать установку несвободного микрокода, очищен от блобов драйвер mt76x2e. Обновлён код чистки блобов в драйверах i915, nouveau, imx-sdma, iwlwifi, raydium-i2c и silead_dmi. Прекращена чистка драйвера lirc_zilog, в связи с удалением из ядра. {{-}} == Источники == * [https://lkml.org/lkml/2018/4/1/175 Главная ссылка к новости (https://lkml.org/lkml/2018/4/1...)] {{OpenNET|url=http://www.opennet.ru/opennews/art.shtml?num=48374|title=Релиз ядра Linux 4.16}} {{Загружено ботом в архив|NewsBots|OpenNET}} {{Подвал новости}} {{Архивные новости (категория)}} {{Категории|Linux|Ядро Linux|Компьютерные технологии|Наука и технологии|Программное обеспечение|Свободное программное обеспечение|Технологии|}} {{yes}}'
Вики-текст новой страницы после правки (new_wikitext)
'{{дата|2 апреля 2018}} {{тема|Компьютерные технологии}} [[File:Wikinews-logo-ru.svg|thumb|left|300px]] После двух месяцев разработки Линус Торвальдс [https://lkml.org/lkml/2018/4/1/175 представил] релиз ядра [https://kernel.org Linux 4.16]. Среди наиболее заметных изменений: интеграция гипервизора Jailhouse, блокирование некоторых операций копирования данных между ядром и пространством пользователя, учёт режимов энергосбережения CPU в планировщике deadline, подготовка к прекращению поддержки IPX и NCPFS, поддержка механизма AMD Secure Encrypted Virtualization в KVM. В новую версию принято около 13 тысяч исправлений от 1500 разработчиков, размер патча - 48 Мб (изменения затронули 11986 файлов, добавлено 508425 строк кода, удалено 314376 строк). Около 49% всех представленных в 4.16 изменений связаны с драйверами устройств, примерно 19% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 13% связано с сетевым стеком, 4% - файловыми системами и 3% c внутренними подсистемами ядра. [http://kernelnewbies.org/Linux_4.16 Основные] [https://lwn.net/Articles/746791/ новшества]: * Виртуализация и безопасность * Обеспечена начальная поддержка гипервизора Jailhouse, развиваемого компанией Siemens и поддерживающего работу на системах x86_64 с расширениями VMX+EPT или AMD-V/SVM+NPT (поддержка ARMv7 и ARMv8, а также компоненты для корневого окружения, пока не приняты в основное ядро). Отличительными особенностями Jailhouse являются легковесная реализация и ориентация на привязку виртуальных машин к фиксированному CPU, области ОЗУ и аппаратным устройствам. Т.е. на одном физическом многопроцессорном сервере обеспечивается работа нескольких независимых виртуальных окружений, каждое из которых закреплено за своим процессорным ядром. Такой подход позволяет свести к минимуму накладные расходы от работы гипервизора и обеспечить гарантированный доступ к ресурсам и предсказуемую производительность, подходящие для виртуализации задач режима реального времени; * Добавлена реализация [https://lwn.net/Articles/727322/ механизма] защиты копирования данных между ядром и пространством пользователя, блокирующего использование вызова usercopy при проведении некоторых видов атак. Суть предложенного метода в запрете применения usercopy для прямого копирования между пространством пользователя и некоторыми областями ядра с введением белого списка допустимых для использования областей памяти. Так как подобный подход потенциально может нарушить работу приложений, использующих usercopy, предусмотрен fallback-режим (HARDENED_USERCOPY_FALLBACK или slab_common.usercopy_fallback). В настоящее время механизм активирован в режиме информирования, при котором в лог записываются предупреждения о проблемных операциях, без их фактического блокирования; * Продолжена реализация техник защиты от атак Meltdown и Spectre. Например, проведены оптимизации для снижения накладных расходов от PTI, добавлен код для обеспечения [https://lwn.net/Articles/746551/ защиты] от первого варианта атаки Spectre (CVE-2017-5753) и для блокирования атак Meltdown и Spectre на процессорах с архитектурой ARM64 и S390. Защита от Spectre v1 реализована через добавление макроса array_index_nospec(), предотвращающего выполнение спекулятивных операций, которые могут вызвать обход проверки границ массива. В код для защиты от Spectre v2 добавлена возможность использование MSR-команды IBPB (Indirect Branch Prediction Barriers), представленной в обновлении микрокода. Защита от Meltdown для ARM64 реализована через классический патч PTI, а от Spectre v2 через возможность выборочного отключения блока предсказания переходов. На системах S390 для блокирования Spectre задействован модифицированный вариант защиты retpoline (expoline) и макрос array_index_nospec(); * В гипервизор KVM добавлена поддержка доступного в процессорах AMD механизма [http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf Secure Encrypted Virtualization] {{Wayback|url=http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf |date=20201027141231 }} (SEV), который предоставляет средства шифрования памяти для виртуальных машин. Суть метода защиты в интеграции в архитектуру виртуализации AMD-V возможности для прозрачного шифрования памяти виртуальных машин, при которой доступ к расшифрованным данным имеет только текущая гостевая система, а остальные виртуальные машины и даже гипервизор при попытке обращения к этой памяти получают зашифрованные данные; * В состав включены драйверы для ускорения работы гостевых систем под управлением VirtualBox: Vboxvideo для обеспечения доступа к GPU и Vboxguest с поддержкой средств для переноса данных между гостевой системой и хостом, а также с возможностью проброса команд OpenGL. Не перенесённым в основной состав пока остаётся только драйвер Vboxsf, предоставляющий функции проброса каталогов; * По умолчанию для архитектур x86/x86_64 и ARM64 включена опция CONFIG_STRICT_DEVMEM, ограничивающая доступ к /dev/mem из пространства пользователя. Без выключения данной опции root может получить доступ ко всем областям памяти ядра и приложений, а при включении доступ ограничивается только областями отражённой памяти периферийных устройств; * Дисковая подсистема, ввод/вывод и файловые системы * Подсистема MultiMediaCard, отвечающая за обработку таких устройств хранения, как SD-карты, переведена на многоуровневую систему очередей (multiqueue), позволяющую организовать многопоточный доступ к данным на многоядерных системах; * В планировщиках ввода/вывода обеспечена поддержка заблокированных зон на блочных устройствах, что позволяет исключить выполнение перегруппировки операций записи на зонированных устройствах, операции записи на которых должны выполняться последовательно; * В файловой системе XFS снят флаг экспериментальной разработки с механизма обратного маппинга (rmap, reverse-mapping), позволяющего файловой системе определить владельца любого блока на устройстве хранения. Reverse-mapping может быть использован как основа для реализации таких возможностей, как reflink(), режим copy-on-write для данных, дедупликация, расширенные средства информирования о bad-блоках и дополнительные средства восстановления повреждений; * В файловую систему CIFS добавлена поддержка режима SMB Direct, который позволяет использовать сетевые адаптеры с функцией удаленного доступа к памяти (RDMA) для увеличения скорости передачи SMB-пакетов; * В файловой системе Btrfs улучшен код перестроения повреждённых массивов RAID5/6 и реализована поддержка управления резервированием пустых областей через вызов fallocate() в режиме FALLOCATE_FL_ZERO_RANGE; * В NFS-клиенте изменён метод вызова statx() для исключения обращения к внешнему серверу, если необходимая информация доступна локально. * Добавлена поддержка экспорта Overlayfs через NFS; * В системный вызов pwritev2() добавлен флаг RWF_APPEND, при котором данные прикрепляются к хвосту файла, независимо от текущего смещения; * В AFS [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4d673da14533b32fe8d3125b5b7be4fea14e39a8 добавлена] поддержка динамического создания точек монтирования; * [http://lkml.iu.edu/hypermail/linux/kernel/1801.3/03340.html Переработан] код обновления поля i_version в inode, которое раньше инкрементировалось при каждом обновлении связанных с inode данных или метаданных, что не востребовано на практике (обычно осуществляется проверка времени изменения, а не версии inode). В новом выпуске сокращено число ситуаций, при которых выполняется обновление i_version, что позволило ускорить операции ввода/вывода небольшого размера. Например, при тестировании утилитой [https://github.com/axboe/fio fio] конфигурации с XFS поверх DAX и размером записываемого блока 4K пропускная способность чтения/записи [https://lkml.org/lkml/2017/12/25/8 увеличилась] на 244%; * Память и системные сервисы * В планировщике задач deadline, реализующем алгоритм EDF (Earliest Deadline First), основанный на идее выбора задачи из очереди ожидающих процессов, наиболее близкой к истечению крайнего расчётного времени, добавлен учёт изменения частоты CPU и параметров вольтажа, что позволяет обеспечить его оптимальную работу без отключения функций энергосбережения; * В планировщике CFS (Fair) ограничена автоматическая миграция задач между ядрами CPU - в процессе выполнения прерывания задача теперь может быть перемещена на другое ядро только если новое и старое ядра используют общий кэш; * В виртуальную машину BPF (Berkeley Packet Filter) добавлена возможность определения и вызова функций в BPF-программах; * В системный вызов membarrier(), обеспечивающий установку барьеров на память для всех работающих в системе потоков, [https://lwn.net/Articles/728795/ добавлена] новая реализация режима MEMBARRIER_CMD_SHARED_EXPEDITED, позволяющего значительно ускорить выполнение вызова, ценой применения [https://en.wikipedia.org/wiki/Inter-processor_interrupt IPI] (inter-processor interrupt). В новой реализации проведена работа по предоставлению возможности исключение процессов, для которых отсутствует необходимость в обработке барьеров. Кроме того, процесс теперь должен явно заявить о намерении участия в операциях с глобальными барьерами (MEMBARRIER_CMD_GLOBAL_EXPEDITED) при помощи вызова membarrier() с командой MEMBARRIER_CMD_REGISTER_GLOBAL_EXPEDITED; * Добавлена новая опция командой строи console_msg_format, которую можно использовать для определения формата в printk(), используемого при выводе записей в syslog; * Добавлена возможность партицирования L2-кэша CPU для процессоров Intel с поддержкой технологии RDT L2 CDP (Resource Director Technology L2 Code and Data Prioritization), позволяющей управлять размещением кода и данных в L2-кэше. Появление данного режима ожидается в будущих моделях процессоров Intel Atom; * Flex и Bison добавлены в число зависимостей, необходимых для сборки ядра; * Сетевая подсистема * Добавлено новое виртуальное устройство "netdevsim", которое позволяет симулировать различные hardware-offload операции без наличия фактической их поддержки в оборудовании, что может использоваться для тестирования возможностей сетевого стека, связанных с привлечением механизмов аппаратного ускорения обработки пакетов. Например, netdevsim уже применяется для тестирования поддержки offload в BPF; * Реализация протоколов Netware IPX и NCPFS перемещена в промежуточную staging-ветку ядра и в одном из будущих выпусков будет удалена. Прекращение поддержки IPX и NCPFS обусловлено устаревшим кодом, отсутствием сопровождения и невостребованностью; * Заметно [http://vger.kernel.org/~davem/seoul2017_netdev_keynote.pdf сокращён] размер некоторых структур, используемых для хранения данных маршрутизации. Например, размер записи в структурах rtable и dst_entry сокращён на 48 байт, а в rt6_info на 64 байта; * Добавлен второй хэш для слушающих TCP-сокетов (listener); * [https://lkml.org/lkml/2018/1/31/589 Избавлен] от блокировок код планировщика qdisc (queuing discipline); * Поддержка архитектур * В системах на базе архитектуры ARM64 теперь поддерживается использование 52-разрядной физической адресации; * Для архитектуры PowerPC реализована поддержка механизма PKU ( [https://en.wikipedia.org/wiki/Memory_protection#Protection_keys Memory Protection Keys] for Userspace), который можно применять для защиты доступа к страницам памяти из пространства пользователя, без изменения таблиц страниц памяти при изменении домена защиты. Например, указанные системные вызовы можно использовать для дополнительной защиты размещения в памяти ключей шифрования, предоставив возможность чтения только для одного потока в многопоточной программе шифрования; * Оборудование * В DRM-драйвере Intel [http://lkml.iu.edu/hypermail/linux/kernel/1802.0/00704.html улучшена] поддержка чипов Cannonlake (Gen 10), добавлена поддержка новых прошивок для чипов Skylake и Kabylake и улучшены средства виртуализации GPU ( GVT-g); * В DRM-драйвере Nouveau добавлена поддержка GPU GP108, применяемого в видеокартах серии GeForce GT 1030; * В DRM-драйвере AMDGPU [http://lkml.iu.edu/hypermail/linux/kernel/1802.1/00012.html улучшена] поддержка GPU Vega и Raven, в прослойку AMD DC (Display Core) добавлен код для синхронизации между несколькими экранами; * Добавлена поддержка звуковых подсистем SoC Allwinner A83T, Maxim MAX89373, SocioNext UiniPhier, EVEA Tempo Semiconductor TSCS42xx, TI PCM816x, TAS5722 и TAS6424; * Для SoC Tegra TX2 реализована поддержка HDMI и I2C; * Добавлена поддержка новых ARM-устройств, включая Orange Pi R1, D-Link DNS-313 NAS, Actions S700 SoC, Libre Computer Board ALL-H3-CC H3, FreeScale Hummingboard2, Variscite DART-MX6, TS-4600, TS-7970 и Toradex Colibri; * Удалены старые драйверы для инфракрасных портов LIRC, которые уже давно были объявлены устаревшими. * Добавлена настройка CONFIG_SATA_MOBILE_LPM_POLICY, позволяющая продлить время автономной работы ноутбуков на базе чипов Intel за счёт использовании более агрессивных настроек ALPM (ATA Link Power Management). При помощи данной опции можно добиться снижения энергопотребления в режиме простоя примерно на 1 Вт; * Добавлена настройка BT_HCIBTUSB_AUTOSUSPEND, позволяющая включить автоматический перевод в спящий режим устройств Bluetooth, подключенных через USB, что позволяет снизить энергопотребление примерно на 0.4 Вт; Одновременно Латиноамериканский Фонд свободного ПО [http://www.fsfla.org/ikiwiki/selibre/linux-libre/ сформировал] вариант полностью свободного ядра 4.16 - [http://linux-libre.fsfla.org/pub/linux-libre/releases/4.16-gnu/ Linux-libre 4.16-gnu] {{Wayback|url=http://linux-libre.fsfla.org/pub/linux-libre/releases/4.16-gnu/ |date=20210420194402 }}, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В новом выпуске переработана реализация reject_firmware_nowait, почищены сообщения, которые могут предлагать установку несвободного микрокода, очищен от блобов драйвер mt76x2e. Обновлён код чистки блобов в драйверах i915, nouveau, imx-sdma, iwlwifi, raydium-i2c и silead_dmi. Прекращена чистка драйвера lirc_zilog, в связи с удалением из ядра. {{-}} == Источники == * [https://lkml.org/lkml/2018/4/1/175 Главная ссылка к новости (https://lkml.org/lkml/2018/4/1...)] {{OpenNET|url=http://www.opennet.ru/opennews/art.shtml?num=48374|title=Релиз ядра Linux 4.16}} {{Загружено ботом в архив|NewsBots|OpenNET}} {{Подвал новости}} {{Архивные новости (категория)}} {{Категории|Linux|Ядро Linux|Компьютерные технологии|Наука и технологии|Программное обеспечение|Свободное программное обеспечение|Технологии|}} {{yes}}'
Унифицированная разница изменений правки (edit_diff)
'@@ -18,5 +18,5 @@ * Добавлена реализация [https://lwn.net/Articles/727322/ механизма] защиты копирования данных между ядром и пространством пользователя, блокирующего использование вызова usercopy при проведении некоторых видов атак. Суть предложенного метода в запрете применения usercopy для прямого копирования между пространством пользователя и некоторыми областями ядра с введением белого списка допустимых для использования областей памяти. Так как подобный подход потенциально может нарушить работу приложений, использующих usercopy, предусмотрен fallback-режим (HARDENED_USERCOPY_FALLBACK или slab_common.usercopy_fallback). В настоящее время механизм активирован в режиме информирования, при котором в лог записываются предупреждения о проблемных операциях, без их фактического блокирования; * Продолжена реализация техник защиты от атак Meltdown и Spectre. Например, проведены оптимизации для снижения накладных расходов от PTI, добавлен код для обеспечения [https://lwn.net/Articles/746551/ защиты] от первого варианта атаки Spectre (CVE-2017-5753) и для блокирования атак Meltdown и Spectre на процессорах с архитектурой ARM64 и S390. Защита от Spectre v1 реализована через добавление макроса array_index_nospec(), предотвращающего выполнение спекулятивных операций, которые могут вызвать обход проверки границ массива. В код для защиты от Spectre v2 добавлена возможность использование MSR-команды IBPB (Indirect Branch Prediction Barriers), представленной в обновлении микрокода. Защита от Meltdown для ARM64 реализована через классический патч PTI, а от Spectre v2 через возможность выборочного отключения блока предсказания переходов. На системах S390 для блокирования Spectre задействован модифицированный вариант защиты retpoline (expoline) и макрос array_index_nospec(); -* В гипервизор KVM добавлена поддержка доступного в процессорах AMD механизма [http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf Secure Encrypted Virtualization] (SEV), который предоставляет средства шифрования памяти для виртуальных машин. Суть метода защиты в интеграции в архитектуру виртуализации AMD-V возможности для прозрачного шифрования памяти виртуальных машин, при которой доступ к расшифрованным данным имеет только текущая гостевая система, а остальные виртуальные машины и даже гипервизор при попытке обращения к этой памяти получают зашифрованные данные; +* В гипервизор KVM добавлена поддержка доступного в процессорах AMD механизма [http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf Secure Encrypted Virtualization] {{Wayback|url=http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf |date=20201027141231 }} (SEV), который предоставляет средства шифрования памяти для виртуальных машин. Суть метода защиты в интеграции в архитектуру виртуализации AMD-V возможности для прозрачного шифрования памяти виртуальных машин, при которой доступ к расшифрованным данным имеет только текущая гостевая система, а остальные виртуальные машины и даже гипервизор при попытке обращения к этой памяти получают зашифрованные данные; * В состав включены драйверы для ускорения работы гостевых систем под управлением VirtualBox: Vboxvideo для обеспечения доступа к GPU и Vboxguest с поддержкой средств для переноса данных между гостевой системой и хостом, а также с возможностью проброса команд OpenGL. Не перенесённым в основной состав пока остаётся только драйвер Vboxsf, предоставляющий функции проброса каталогов; @@ -63,5 +63,5 @@ Одновременно Латиноамериканский Фонд свободного ПО [http://www.fsfla.org/ikiwiki/selibre/linux-libre/ сформировал] -вариант полностью свободного ядра 4.16 - [http://linux-libre.fsfla.org/pub/linux-libre/releases/4.16-gnu/ Linux-libre 4.16-gnu], очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В новом выпуске переработана реализация reject_firmware_nowait, почищены сообщения, которые могут предлагать установку несвободного микрокода, очищен от блобов драйвер mt76x2e. Обновлён код чистки блобов в драйверах i915, nouveau, imx-sdma, iwlwifi, raydium-i2c и silead_dmi. Прекращена чистка драйвера lirc_zilog, в связи с удалением из ядра. +вариант полностью свободного ядра 4.16 - [http://linux-libre.fsfla.org/pub/linux-libre/releases/4.16-gnu/ Linux-libre 4.16-gnu] {{Wayback|url=http://linux-libre.fsfla.org/pub/linux-libre/releases/4.16-gnu/ |date=20210420194402 }}, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В новом выпуске переработана реализация reject_firmware_nowait, почищены сообщения, которые могут предлагать установку несвободного микрокода, очищен от блобов драйвер mt76x2e. Обновлён код чистки блобов в драйверах i915, nouveau, imx-sdma, iwlwifi, raydium-i2c и silead_dmi. Прекращена чистка драйвера lirc_zilog, в связи с удалением из ядра. {{-}} '
Старый размер страницы (old_size)
23541
Добавленные в правке строки (added_lines)
[ 0 => '* В гипервизор KVM добавлена поддержка доступного в процессорах AMD механизма [http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf Secure Encrypted Virtualization] {{Wayback|url=http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf |date=20201027141231 }} (SEV), который предоставляет средства шифрования памяти для виртуальных машин. Суть метода защиты в интеграции в архитектуру виртуализации AMD-V возможности для прозрачного шифрования памяти виртуальных машин, при которой доступ к расшифрованным данным имеет только текущая гостевая система, а остальные виртуальные машины и даже гипервизор при попытке обращения к этой памяти получают зашифрованные данные;', 1 => 'вариант полностью свободного ядра 4.16 - [http://linux-libre.fsfla.org/pub/linux-libre/releases/4.16-gnu/ Linux-libre 4.16-gnu] {{Wayback|url=http://linux-libre.fsfla.org/pub/linux-libre/releases/4.16-gnu/ |date=20210420194402 }}, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В новом выпуске переработана реализация reject_firmware_nowait, почищены сообщения, которые могут предлагать установку несвободного микрокода, очищен от блобов драйвер mt76x2e. Обновлён код чистки блобов в драйверах i915, nouveau, imx-sdma, iwlwifi, raydium-i2c и silead_dmi. Прекращена чистка драйвера lirc_zilog, в связи с удалением из ядра.' ]
Удалённые в правке строки (removed_lines)
[ 0 => '* В гипервизор KVM добавлена поддержка доступного в процессорах AMD механизма [http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/12/AMD_Memory_Encryption_Whitepaper_v7-Public.pdf Secure Encrypted Virtualization] (SEV), который предоставляет средства шифрования памяти для виртуальных машин. Суть метода защиты в интеграции в архитектуру виртуализации AMD-V возможности для прозрачного шифрования памяти виртуальных машин, при которой доступ к расшифрованным данным имеет только текущая гостевая система, а остальные виртуальные машины и даже гипервизор при попытке обращения к этой памяти получают зашифрованные данные;', 1 => 'вариант полностью свободного ядра 4.16 - [http://linux-libre.fsfla.org/pub/linux-libre/releases/4.16-gnu/ Linux-libre 4.16-gnu], очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В новом выпуске переработана реализация reject_firmware_nowait, почищены сообщения, которые могут предлагать установку несвободного микрокода, очищен от блобов драйвер mt76x2e. Обновлён код чистки блобов в драйверах i915, nouveau, imx-sdma, iwlwifi, raydium-i2c и silead_dmi. Прекращена чистка драйвера lirc_zilog, в связи с удалением из ядра.' ]
Была ли правка сделана через выходной узел сети Tor (tor_exit_node)
false
Unix-время изменения (timestamp)
'1734515346'
Название базы данных вики (wiki_name)
'ruwikinews'
Языковой код вики (wiki_language)
'ru'