Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Конференция «Технологии управления данными 2018»
СУБД, платформы, инструменты, реальные проекты.
29 ноября 2018 г.

Релиз ядра Linux 4.14

После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 4.14. Среди наиболее заметных изменений: поддержка технологии AMD Secure Memory Encryption, возможность адресации до 128 Пб виртуальной памяти, поддержка алгоритма сжатия zstd, режим zero-copy для прямой передачи данных в сокеты из памяти процессов, включение в состав подсистемы HMM (Heterogeneous memory management).

В новую версию принято 13500 исправлений от 1300 разработчиков, размер патча - 51 Мб (изменения затронули 23024 файлов, добавлено 618312 строк кода, удалено 343899 строк). Около 32% всех представленных в 4.14 изменений связаны с драйверами устройств, примерно 32% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 8% связано с сетевым стеком, 3% - файловыми системами и 5% c внутренними подсистемами ядра.

Основные новшества:

  • Дисковая подсистема, ввод/вывод и файловые системы
    • Проведена большая работа по увеличению производительности подсистемы дисковых квот. Производительность создания файлов при включенных квотах в ext4 возросла примерно в два раза;
    • В ext4 увеличена масштабируемость при выделении места под inode. Обеспечена обратная совместимость с реализацией ea_inode из ФС Lustre;
    • В сетевой файловой системе CIFS добавлена поддержка чтения и записи расширенных атрибутов (xattr) с использованием протокола SMB2 и новее. В SMB3 добавлена возможность согласования диалектов для использования наиболее защищённой версии, поддерживаемой сервером (SMB2.1, SMB3.0, SMB3.02);
    • В Btrfs и SquashFS добавлена поддержка алгоритма сжатия zstd, который может рассматриваться как оптимальный компромисс, между быстрым но неэффективным lz4 и медленным но хорошо сжимающим xz. По сравнению с zlib/Deflate, zstd демонстрирует в 3-5 раз более высокую скорость сжатия и в два раза более быструю распаковку, при уровне сжатия выше на 10-15%.
    • В Btrfs добавлена возможность доступа на запись в деградировавшие RAID-массивы, если целостность всех блоков не нарушена. Улучшены алгоритмы распределения данных при использовании Btrfs на SSD-накопителях. Обеспечена возможность применения rbtree для отслеживания ссылок;
    • В F2FS добавлена поддержка обычных и журналируемых квот, добавлены ioctl F2FS_IOC_FS{GET,SET}XATTR, обеспечена возможность хранения контрольных сумм для inode;
    • Добавлен новый флаг IOCB_NOWAIT, при установке которого асинхронные операции буферизированного блочного ввода/вывода выполняются по возможности как в неблокирующем режиме (например, без флага IOCB_NOWAIT могут блокироваться операции управления памятью);
  • Виртуализация и безопасность
    • Добавлена поддержка шифрования отдельных страниц памяти при помощи представленной в процессорах AMD технологии SME (Secure Memory Encryption). SME позволяет пометить страницы памяти как подлежащие шифрованию, после чего данные страницы будут автоматически зашифрованы при записи в DRAM и расшифрованы при чтении из DRAM;
    • Из-за невостребованности и отсутствия сопровождающего удалён код системы виртуализации lguest, позволяющей загружать ядра Linux как пользовательский процесс;
    • Добавлена возможность использования file capabilities в пространстве имён идентификаторов пользователя (user namespaces), что позволяет обойтись одним расширенным атрибутом security.capability для любого файла;
    • Расширен перенесённый из патчей grsecurity плагин к GCC для рандомизации раскладки структур данных, который на этапе сборки делает непредсказуемым следование полей в структурах и затрудняет проведение атак, базирующихся на знании раскладки структур в ядре. Плагин теперь дополнительно автоматически выполняет перегруппировку элементов структур, состоящих целиком из указателей на функции;
    • Добавлена поддержка GCC-плагина structleak, обеспечивающего инициализацию всех переменных, которые используются в коде через обращение по ссылке (позволяет блокировать потенциальные утечки содержимого памяти);
    • В Xen добавлен фронтэнд для PV Calls ABI, позволяющий перенаправлять POSIX-вызовы между гостевыми системами. При помощи PV Calls вызов POSIX-функции, инициированный из приложения в DomU, может быть перенаправлен и обработан на стороне Dom0. Например, обращение к сетевому сокету может быть выполнено на стороне Dom0, позволяя реализовать новую сетевую модель, естественно вписывающуюся в концепцию cloud-native приложений;
  • Сетевая подсистема
    • Реализована возможность отправки данных в сетевой сокет в режиме zero-copy (вызов send с флагом MSG_ZEROCOPY), позволяющем организовать передачу данных по сети без промежуточной буферизации;
    • В подсистему GRE (Generic Routing Encapsulation) добавлена поддержка второго типа туннелей ERSPAN, которые могут использоваться для приёма или перенаправления трафика с данными мониторинга от коммутаторов Cisco;
    • Добавлена поддержка расширенных механизмов обработки локальных сегментов, определённых в новых вариантах спецификации IPv6 Segment Routing, а также возможность инкапсуляции пакетов IPv4;
    • В net/ncsi добавлена поддержка фильтрации VLAN;
    • Добавлена поддержка протокола NSH (Network Service Header), который может применяться как протокол третьего уровня модели OSI (как IPv4 и IPv6);
    • В netfilter реализована возможность рекурсивного удаления цепочек nf_tables. В xt_hashlimit представлен режим сопоставления по интенсивности поступления числа пакетов или байтов без применения rate limit (в отличие от rate limit, не ограничивает, а классифицирует поток, оценивая находится ли он выше или ниже заданной интенсивности);
  • Память и системные сервисы
    • Добавлена поддержка подсистемы Heterogeneous memory management (HMM), позволяющей использовать устройства с собственными блоками управления памятью (MMU, memory management unit), которые могут получать доступ к основной памяти. Например, при помощи HMM можно организовать совместное адресное пространство между GPU и CPU, в котором GPU может получить доступ к основной памяти процесса;
    • Добавлена система раскрутки стека ORC unwinder, позволяющая повысить надёжность трассировки стека в процессе отладки крахов ядра и увеличить качество анализа стека в момент применения live-патчей на предмет влияния подмены функции на выполняемые в текущий момент процессы. Выполнение раскрутки стека, т.е. определения цепочки вызовов, которые привели к текущему состоянию, является нетривиальной задачей в ядре, так как кроме вызова Си-функций приходится учитывать такие нюансы как вызовы из кода на ассемблере, прерывания и trap-исключения процессора;
    • В cgroup добавлен режим гибкого управления потоками процесса (cgroup.type threaded), в дополнение к ранее применяемой группировки всех потоков одного процесса и управления этой группой как единым целым. В режиме cgroup.type потоки одного процесса не обязаны входить в одну группу и могут быть разнесены по разным группам, но все из этих групп должны быть с типом threaded и размещаться в одной иерархии cgroup;
    • В подсистему RDMA, предоставляющую похожие на DMA возможности для организации прямого доступа к памяти другого компьютера, добавлен новый API для использования из пространства пользователя через ioctl();
    • В системный вызов membarrier(), обеспечивающий установку барьеров на память для всех работающих в системе потоков, добавлен режим MEMBARRIER_CMD_SHARED_EXPEDITED, позволяющий значительно ускорить выполнение вызова, ценой применения IPI (inter-processor interrupt);
    • В системный вызов madvise(), предоставляющий средства для оптимизации управления памятью процесса, добавлена опция MADV_WIPEONFORK, при которой после выполнении fork() указанный регион памяти будет получен дочерним процессом в обнулённом виде;
    • Для архитектуры x86 реализована поддержка пятиуровневых таблиц страниц памяти c 56-битной адресацией, позволяющих управлять до 128 Пб виртуального адресного пространства на системах с 4 Пб физической памяти (ранее поддерживалось 256 Тб и 64 Тб соответственно);
    • В системе динамического управления частотой процессора (cpufreq) появилась возможность раздельного управления каждым CPU, что позволяет улучшить управление питанием и повысить отзывчивость при изменениях нагрузки;
    • Продолжена оптимизация процесса вытеснения в раздел подкачки больших страниц памяти (Transparent Huge-Pages). Обеспечено откладывание разбиения больших страниц на маленькие до момента фактической записи в раздел подкачки или чтения из него, что позволило поднять пропускную способность вывода в раздел подкачки на 42% за счёт уменьшения конфликтов блокировок;
    • Реализован JIT-компилятор eBPF для архитектуры ARM;
  • Оборудование
    • В DRM-драйвере (Direct Rendering Manager) Nouveau добавлены средства для управления видеорежимами для GPU GP108 (GeForce GT 1030)
    • В DRM-драйвере AMDGPU добавлена начальная поддержка больших страниц памяти (hugepage) и продолжена реализация поддержки GPU Radeon RX Vega;
    • В DRM-драйвер для GPU Intel продолжена реализация поддержки грядущих процессоров на базе микроархитектуры Intel Cannonlake, улучшен код для выполнения сброса GPU, добавлена поддержка CCS (color compression) для буфера отрисовки следующего кадра;
    • Поддержка звуковых кодеков Realtek RT274, Wolfson Microelectronics WM8524 и Cirrus Logic CS43130;
    • Поддержка USB-контроллеров Atheros ath10k и Ralink USB PHY;
    • Добавлен драйвер "rtlwifi" для беспроводных карт на базе чипов Realtek RTL8822BE (802.11ac);
    • Для Raspberry Pi реализована поддержка шины обмена данными HDMI CEC (Consumer Electronics Control), позволяющая при помощи одного универсального пульта управлять устройствами, подключенными через HDMI;
    • Поддержка встроенных в CPU Allwinner и Freescale i.MX генераторов псевдослучайных чисел, а также средств ускорения криптографии по эллиптическим кривым в чипах Microchip и Atmel;
    • Поддержка Ethernet-контроллеров Hisilicon HNS3, Rockchip, Marvell CP110 и Adaptrum Anarion GMAC, а также беспроводных адаптеров Realtek RTL8822BE;
    • Подсистема драйверов IRDA (поддержка инфракрасного порта) перемещена в ветку staging с целью дальнейшего удаления из ядра (драйвер имеет проблемы с качеством кода и при этом не востребован);
    • Из основного ядра в репозиторий linux-firmware вынесен набор прошивок, ранее поставляемых в каталоге "firmware/". По сути, решено объединить в одном месте разрозненные прошивки, часть которых поставлялась в архиве с ядром, а часть в пакете linux-firmware. Набор прошивок в ядре продолжал поставляться по историческим причинам, но не обновлялся с 2013 года - вся связанная с прошивками активность была перемещена в репозиторий linux-firmware, который ныне рассматривается как актуальный источник прошивок.

OpenNET

Комментарии

аноним, Ср 22 ноя 2017 19:04:31:
М.б. "аноним, Ср 22 ноя 2017 11:59:06:" на конкретном патче ядра 4.14. покажет "латание дыр"?
von K, Ср 22 ноя 2017 13:38:53:
Аноним, неизвестно каких "линэксистов" интересует "латание дыр и брешей" в продукции микрософт, судя по которой Вы так болезненно реагируете на термин "изменения".
аноним, Ср 22 ноя 2017 11:59:06:
Ага, понятно: латание дыр и брешей теперь они называют - "изменения".
Очень даже дипломатично.
Не режет слух нежных линэксистов.
и можно даже подумать, будто сотворили что-то новенькое.
аноним, Пт 17 ноя 2017 16:12:34:
"Около 32% всех представленных в 4.14 изменений связаны с драйверами устройств, примерно 32% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 8% связано с сетевым стеком, 3% - файловыми системами и 5% c внутренними подсистемами ядра." - ни слова про "дыры".
von K, Пт 17 ноя 2017 12:28:32:
<аноним, Пт 17 ноя 2017 07:40:17:
Количество баг и дырищ просто ошеломляет!>

Ну, зачем Вы так про микрософт? Они всё же стараются...
аноним, Пт 17 ноя 2017 07:40:17:
Количество баг и дырищ просто ошеломляет!
И конечно это не всё.
На найденные (случайно?) дырищи будут наложено ещё больше новых, а потом опять все бросятся их искать.
Похоже, что вся деятельность посвящена только ошибкам и исправлениям.
На новое и прогрессивное просто нет ни времени, ни сил.
Но, зато с какой гордостью это всё преподносится!
хе.. хе..
аноним, Чт 16 ноя 2017 07:18:52:
Назад, в прошлое?
Зачем?
von K, Вт 14 ноя 2017 13:13:10:
Живёт и развивается. А товарищ ниже как "человек рассеянный с улицы Бассейной" сел в отцепленный вагон и всё проспал. Не будите уже...
аноним, Вт 14 ноя 2017 11:43:56:
Зеваю.
Разбудите меня, когда это будет пригодно для современной эксплуатации.

Ваш комментарий

Имя:

Текст комментария (HTML-теги не допускаются):

Новости мира IT:

Архив новостей

Последние комментарии:

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...