Π Π΅Π»ΠΈΠ· ядра Linux 5.9

ПослС Π΄Π²ΡƒΡ… мСсяцСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ прСдставил Ρ€Π΅Π»ΠΈΠ· ядра Linux 5.9. Π‘Ρ€Π΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° символов ΠΈΠ· ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² GPL-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ускорСниС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ контСкста ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ процСссорной инструкции FSGSBASE, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сТатия ΠΎΠ±Ρ€Π°Π·Π° ядра ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Zstd, ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° расстановки ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² ядрС, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° PRP (Parallel Redundancy Protocol), ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ пропускной способности Π² ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ΅ deadline, ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π°Ρ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° страниц памяти, capability-Ρ„Π»Π°Π³ CAP_CHECKPOINT_RESTOR, систСмный Π²Ρ‹Π·ΠΎΠ² close_range(), ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ dm-crypt, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° для 32-разрядных гостСвых систСм Xen PV, Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ slab, опция «rescue» Π² Btrfs, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° inline-ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π² ext4 ΠΈ F2FS.

Π’ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ принято 16074 исправлСния ΠΎΡ‚ 2011 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²,
Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°Ρ‚Ρ‡Π° — 62 ΠœΠ‘ (измСнСния Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ»ΠΈ 14548 Ρ„Π°ΠΉΠ»ΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 782155 строк ΠΊΠΎΠ΄Π°, ΡƒΠ΄Π°Π»Π΅Π½ΠΎ 314792 строки). Около 45% всСх прСдставлСнных Π² 5.9
ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ связаны с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ устройств, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 15% ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠΌΠ΅ΡŽΡ‚
ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ обновлСнию ΠΊΠΎΠ΄Π°, спСцифичного для Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€, 13%
связано с сСтСвым стСком, 3% — с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ систСмами ΠΈ 3% c Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ
подсистСмами ядра.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π°:

  • ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΈ систСмныС сСрвисы
    • УТСсточСна Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ использования GPL-прослоСк для связывания ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Ρ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ядра, экспортируСмыми Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPL. Π€Π»Π°Π³ TAINT_PROPRIETARY_MODULE Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ Π²ΠΎ всСх модулях, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… символы ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ с Π΄Π°Π½Π½Ρ‹ΠΌ Ρ„Π»Π°Π³ΠΎΠΌ. Если GPL-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ попытаСтся ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ символы ΠΈΠ· Π½Π΅-GPL модуля, Ρ‚ΠΎ этот GPL-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ унаслСдуСт ΠΌΠ΅Ρ‚ΠΊΡƒ TAINT_PROPRIETARY_MODULE ΠΈ Π½Π΅ смоТСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ ядра, доступным Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ GPL, Π΄Π°ΠΆΠ΅ Ссли ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°Π½Π΅Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π» символы ΠΈΠ· ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ «gplonly». ΠžΠ±Ρ€Π°Ρ‚Π½Π°Ρ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° (экспорт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ EXPORT_SYMBOL_GPL Π² модулях, ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π²ΡˆΠΈΡ… EXPORT_SYMBOL_GPL), которая ΠΌΠΎΠ³Π»Π° Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Ρ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², Π½Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° (наслСдуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ„Π»Π°Π³ ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½ΠΎΠ³ΠΎ модуля, Π½ΠΎ Π½Π΅ GPL-привязки).
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° kcompactd для ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅ΠΉ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ страниц памяти Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ число Π±ΠΎΠ»ΡŒΡˆΠΈΡ… страниц памяти, доступных ядру. По ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡ†Π΅Π½ΠΊΠ΅, фоновая ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Ρ†Π΅Π½ΠΎΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов позволяСт Π² 70-80 Ρ€Π°Π· ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… страниц памяти (huge-page) ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ€Π°Π½Π΅Π΅ примСняСмым ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ, запускаСмым ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ нСобходимости (on-demand). Для задания Π³Ρ€Π°Π½ΠΈΡ† внСшнСй Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ kcompactd, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ sysctl vm.compaction_proactiveness.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сТатия ΠΎΠ±Ρ€Π°Π·Π° ядра с использованиСм Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Zstandard (zstd).
    • Для систСм x86 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° процСссорной инструкции FSGSBASE, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ содСрТимоС рСгистров FS/GS ΠΈΠ· пространства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ ядрС FSGSBASE ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ускорСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ контСкста Π·Π° счёт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи MSR для GSBASE, Π° Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ позволяСт ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² для измСнСния FS/GS.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «allow_writes», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ измСнСния MSR-рСгистров процСссора ΠΈΠ· пространства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ содСрТимому Π΄Π°Π½Π½Ρ‹Ρ… рСгистров опСрациями чтСния, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ MSR ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ запись ΠΏΠΎΠΊΠ° Π½Π΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Π°, Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ MSR отраТаСтся Π² Π»ΠΎΠ³Π΅, Π½ΠΎ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ планируСтся пСрСвСсти доступ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Ρ€Π΅ΠΆΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния.
    • Π’ интСрфСйс асинхронного Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° io_uring Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° асинхронных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ чтСния, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… привлСчСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ядра. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° записи оТидаСтся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ выпускС.
    • Π’ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ΅ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° deadline Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ пропускной способности, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° асиммСтричных систСмах, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ систСмы ARM Π½Π° Π±Π°Π·Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ DynamIQ ΠΈ big.LITTLE, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ‡ΠΈΠΏΠ΅ ΠΌΠΎΡ‰Π½Ρ‹Π΅ ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ энСргоэффСктивныС ядра CPU. Π’ частности, Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ рассогласований ΠΏΡ€ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ ядро CPU Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ½Ρ‹Ρ… рСсурсов для выполнСния Π·Π°Π΄Π°Ρ‡ΠΈ Π² Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ срок.
    • МодСль потрСблСния энСргии Π² ядрС (Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Energy Model) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ описываСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ энСргопотрСблСния CPU, Π½ΠΎ ΠΈ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Π΅ устройства.
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ систСмный Π²Ρ‹Π·ΠΎΠ² close_range(), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ процСссу Ρ€Π°Π·ΠΎΠΌ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ†Π΅Π»Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… дСскрипторов.
    • Из Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ тСкстовой консоли ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° fbcon ΡƒΠ΄Π°Π»Ρ‘Π½ ΠΊΠΎΠ΄, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ тСкста Π½Π°Π·Π°Π΄ (CONFIG_VGACON_SOFT_SCROLLBACK) Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π° объСм видСопамяти тСкстового Ρ€Π΅ΠΆΠΈΠΌΠ° VGA.
    • ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ назначСния ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π²Π½ΡƒΡ‚Ρ€ΠΈ ядра. Новый Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ обСспСчиваСт Π»ΡƒΡ‡ΡˆΡƒΡŽ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π²ΠΎ всСх подсистСмах ядра ΠΏΡ€ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² для Π·Π°Π΄Π°Ρ‡ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ sysctl sched_uclamp_util_min_rt_default для управлСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ форсирования частоты CPU для Π·Π°Π΄Π°Ρ‡ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ Π½Π° Π»Π΅Ρ‚Ρƒ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ для экономии энСргии послС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΎΡ‚ аккумулятора ΠΈΠ»ΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… систСмах).
    • ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Transparent Huge Pages Π² страничном кэшС.
    • Π’ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ fanotify Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ Ρ„Π»Π°Π³ΠΈ FAN_REPORT_NAME ΠΈ FAN_REPORT_DIR_FID для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ свСдСний ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅ FID ΠΏΡ€ΠΈ наступлСнии событий создания, удалСния ΠΈΠ»ΠΈ пСрСмСщСния элСмСнтов ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ Π½Π΅ связанных с ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².
    • Для cgroups Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ распрСдСлСния памяти slab (slab memory controller), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»Π΅Π½ пСрСносом ΡƒΡ‡Ρ‘Ρ‚Π° slab с уровня страниц памяти Π½Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ядра, Ρ‡Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ slab-страницы Π² Ρ€Π°Π·Π½Ρ‹Ρ… cgroup, вмСсто выдСлСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… кэшСй slab для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ cgroup. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ использования slab, Π½Π° 30-45% ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ для slab памяти, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти ядром ΠΈ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ памяти.
    • Π’ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ подсистСмС ALSA ΠΈ USB-стСкС, Π² соотвСтствии с Π½Π΅Π΄Π°Π²Π½ΠΎ принятыми рСкомСндациями ΠΏΠΎ использованию инклюзивной Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π² ядрС Linux, ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° чистка Π½Π΅ΠΏΠΎΠ»ΠΈΡ‚ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Ρ… Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ². Код ΠΎΡ‡ΠΈΡ‰Π΅Π½ ΠΎΡ‚ использования слов «slave», «master», «blacklist» ΠΈ «whitelist».
  • Виртуализация ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ
    • ΠŸΡ€ΠΈ сборкС ядра с использованиСм компилятора Clang появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ настройки (CONFIG_INIT_STACK_ALL_ZERO) автоматичСской ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π² стСкС (ΠΏΡ€ΠΈ сборкС указываСтся «-ftrivial-auto-var-init=zero») .
    • Π’ подсистСму seccomp, ΠΏΡ€ΠΈ использовании Ρ€Π΅ΠΆΠΈΠΌΠ° контроля процСсса Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ подстановки Π² отслСТиваСмый процСсс Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… дСскрипторов для ΠΏΠΎΠ»Π½ΠΎΠΉ эмуляции систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², приводящих ΠΊ созданию Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… дСскрипторов. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вострСбована Π² систСмах ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ sandbox для Chrome.
    • Для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ xtensa ΠΈ csky Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ограничСния систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ подсистСмы seccomp. Для xtensa Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π°ΡƒΠ΄ΠΈΡ‚Π°.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ capability-Ρ„Π»Π°Π³ CAP_CHECKPOINT_RESTORE, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ доступ ΠΊ возмоТностям, связанным с Π·Π°ΠΌΠΎΡ€ΠΎΠ·ΠΊΠΎΠΉ ΠΈ восстановлСниСм состояния процСссов.
    • Π’ GCC 11 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ всС возмоТности, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для
      ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠ³ΠΎ инструмСнта KCSAN (Kernel Concurrency Sanitizer), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для динамичСского выявлСния состояний Π³ΠΎΠ½ΠΊΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ядра. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, KCSAN Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ядрами, собранными Π² GCC.

    • Для AMD Zen ΠΈ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ CPU Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ P2PDMA, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ DMA для прямой ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π΄Π²ΡƒΡ… устройств, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΊ шинС PCI.
    • Π’ dm-crypt Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π·Π° счёт выполнСния криптографичСской ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π±Π΅Π· использования Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ. Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π·ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΌΠΈ устройствами (устройства с областями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ всСй Π³Ρ€ΡƒΠΏΠΏΡ‹ Π±Π»ΠΎΠΊΠΎΠ²). ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡŽ пропускной способности ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π² dm-crypt.
    • Π£Π΄Π°Π»Ρ‘Π½ ΠΊΠΎΠ΄ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ 32-разрядных гостСвых систСм, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° Xen. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСм слСдуСт ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° использованиС 64-разрядных ядСр Π² гостСвых окруТСниях ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для запуска ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ вмСсто ΠΏΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (PV) Ρ€Π΅ΠΆΠΈΠΌΡ‹ ΠΏΠΎΠ»Π½ΠΎΠΉ (HVM) ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ (PVH) Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
  • Дисковая подсистСма, Π²Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы
    • Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС Btrfs Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° опция монтирования «rescue», ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ доступ ΠΊΠΎ всСм Π΄Ρ€ΡƒΠ³ΠΈΠΌ опциям для восстановлСния. Π£Π΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠΏΡ†ΠΈΠΉ «alloc_start» ΠΈ «subvolrootid», объявлСна ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ опция «inode_cache». ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° оптимизация ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, особСнно Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ускорСно Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ fsync(). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… сумм, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚ CRC32c.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования inline-ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ (Inline Encryption) Π² Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСмах ext4 ΠΈ F2FS, для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ прСдусмотрСна опция монтирования «inlinecrypt». Π Π΅ΠΆΠΈΠΌ inline-ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ позволяСт Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ накопитСля ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ΅ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΡƒ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°.
    • Π’ XFS обСспСчСн сброс inode (flush) Π² ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ асинхронном Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌ процСссы ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ чистки памяти. РСшСна давняя ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΊΠ²ΠΎΡ‚Π°ΠΌΠΈ, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π»ΠΈΡΡŒ прСдупрСТдСния ΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ мягкого Π»ΠΈΠΌΠΈΡ‚Π° ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° число inode. Π£Π½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π° рСализация ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ DAX для ext4 ΠΈ xfs.
    • Π’ Ext4 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π°Ρ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π±ΠΈΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚ распрСдСлСния Π±Π»ΠΎΠΊΠΎΠ². Π’ сочСтании с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ сканирования Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏ, оптимизация ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя монтирования ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ².
    • Π’ F2FS Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ioctl F2FS_IOC_SEC_TRIM_FILE, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ TRIM/discard для физичСского обнулСния ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ»Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для удалСния ΠΊΠ»ΡŽΡ‡Π΅ΠΉ доступа Π±Π΅Π· осСдания Π½Π° Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅ остаточных Π΄Π°Π½Π½Ρ‹Ρ….
      Π’ F2FS Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ сборки мусора GC_URGENT_LOW, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π±ΠΎΠ»Π΅Π΅ агрСссивно Π·Π° счёт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ нахоТдСния Π² состоянии простоя (idle) ΠΏΠ΅Ρ€Π΅Π΄ запуском сборщика мусора.

    • Π’ bcache Ρ€Π°Π·ΠΌΠ΅Ρ€ bucket_size для экстСнтов ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ с 16 Π΄ΠΎ 32 Π±ΠΈΡ‚ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ возмоТности примСнСния для кэша Π·ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… устройств.
    • Π’ подсистСму SCSI Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования inline-ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π±Π°Π·Π΅ встроСнных срСдств Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ, прСдоставляСмых UFS-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ (Universal Flash Storage).
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ядра «debugfs», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½ΠΎΠΉ псСвдо-Π€Π‘.
    • Π’ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π΅ NFSv4.2 обСспСчСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ² (xattr).
    • Π’ dm-dust Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ интСрфСйс для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π°Π·ΠΎΠΌ списка всСх выявлСнных bad-Π±Π»ΠΎΠΊΠΎΠ² Π½Π° дискС («dmsetup message dust1 0 listbadblocks»).
    • Для md/raid5 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ /sys/block/md1/md/stripe_size для настройки Ρ€Π°Π·ΠΌΠ΅Ρ€Π° STRIPE-Π±Π»ΠΎΠΊΠ°.
    • Для устройств хранСния NVMe Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄ для зонирования накопитСля (ZNS, NVM Express Zoned Namespace), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ пространство для хранСния Π½Π° Π·ΠΎΠ½Ρ‹, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π±Π»ΠΎΠΊΠΎΠ², для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ управлСния Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅.
  • БСтСвая подсистСма
    • Π’ Netfilter Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ отклонСния ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π° стадии Π΄ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ (Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ REJECT Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°Ρ… INPUT, FORWARD ΠΈ OUTPUT, Π½ΠΎ ΠΈ Π½Π° стадии PREROUTING для icmp ΠΈ tcp).
    • Π’ nftables Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°ΡƒΠ΄ΠΈΡ‚Π° событий, связанных с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.
    • Π’ nftables Π² API netlink Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ, имя ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ назначаСтся динамичСски ядром. ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ связанного с Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠΉ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΎΠΉ ΠΏΡ€Π°Π²ΠΈΠ»Π° автоматичСски удаляСтся ΠΈ сама Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°.
    • Π’ BPF Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² для ΠΎΠ±Ρ…ΠΎΠ΄Π°, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΈ измСнСния элСмСнтов ассоциативных массивов (map) Π±Π΅Π· копирования Π΄Π°Π½Π½Ρ‹Ρ… Π² пространство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π˜Ρ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для сокСтов TCP ΠΈ UDP, Ρ‡Ρ‚ΠΎ позволяСт BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ списки ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… сокСтов ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ свСдСния.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ BPF_PROG_TYPE_SK_LOOKUP, запускаСмых Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ядро ΠΈΡ‰Π΅Ρ‚ подходящий ΡΠ»ΡƒΡˆΠ°ΡŽΡ‰ΠΈΠΉ сокСт для входящСго соСдинСния. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎ Ρ‚ΠΎΠΌ, c ΠΊΠ°ΠΊΠΈΠΌ сокСтом слСдуСт Π°ΡΡΠΎΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ соСдинСниС, Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π°ΠΌΠΊΠ°ΠΌΠΈ систСмного Π²Ρ‹Π·ΠΎΠ²Π° bind(). НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ связываниС ΠΎΠ΄Π½ΠΎΠ³ΠΎ сокСта с Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ адрСсов ΠΈΠ»ΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠ². ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² bpf_setsockopt() Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„Π»Π°Π³Π° SO_KEEPALIVE ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ установки ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² BPF_CGROUP_INET_SOCK_RELEASE, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ освобоТдСнии сокСта.
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° PRP (Parallel Redundancy Protocol), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Π½Π° Π±Π°Π·Π΅ Ethernet Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ΅ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π° запасной ΠΊΠ°Π½Π°Π» Π² случаС сбоя Π»ΡŽΠ±Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² сСти.
    • Π’ стСк mac80211 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° чСтырёхэтапного согласования ΠΊΠ°Π½Π°Π»Π° WPA/WPA2-PSK Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ доступа.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° qdisc (queuing discipline) Π½Π° использованиС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° управлСния сСтСвыми очСрСдями FQ-PIE (Flow Queue PIE), Π½Π°Ρ†Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π° сниТСниС Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ влияния ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π° Π³Ρ€Π°Π½ΠΈΡ‡Π½ΠΎΠΌ сСтСвом ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ (bufferbloat) Π² сСтях с ΠΊΠ°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΌΠΎΠ΄Π΅ΠΌΠ°ΠΌΠΈ.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ возмоТности Π² MPTCP (MultiPath TCP), Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TCP для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ TCP-соСдинСния с доставкой ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ нСскольким ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·Π½Ρ‹Π΅ сСтСвыС интСрфСйсы, привязанныС ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ IP-адрСсам. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° syn cookie, DATA_FIN, автонастройки Π±ΡƒΡ„Π΅Ρ€ΠΎΠ², диагностики сокСтов ΠΈ использования Ρ„Π»Π°Π³ΠΎΠ² REUSEADDR, REUSEPORT ΠΈ V6ONLY Π² setsockopt.
    • Для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ† ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ VRF (Virtual Routing and Forwarding), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ систСмС, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ€Π΅ΠΆΠΈΠΌ «strict». Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ассоциирована Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, которая Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ….
    • Π’ бСспроводной Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ath11k Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° частоты 6GHz ΠΈ ΡΠΏΠ΅ΠΊΡ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ сканирования.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Π£Π΄Π°Π»Ρ‘Π½ ΠΊΠΎΠ΄ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ UniCore, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ Π² микропроцСссорном Ρ†Π΅Π½Ρ‚Ρ€Π΅ ПСкинского унивСрситСта ΠΈ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΠΎΠΉ Π² состав ядра Linux Π² 2011 Π³ΠΎΠ΄Ρƒ. Данная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° с 2014 Π³ΠΎΠ΄Π° находится Π±Π΅Π· сопровоТдСния ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² GCC.
    • Для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ RISC-V Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° kcov (debugfs-интСрфСйс для Π°Π½Π°Π»ΠΈΠ·Π° покрытия ΠΊΠΎΠ΄Π° ядра), kmemleak (систСма выявлСния ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ памяти), Π·Π°Ρ‰ΠΈΡ‚Ρ‹ стСка, ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΈ tickless-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (нСзависимая ΠΎΡ‚ сигналов Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π° ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ).
    • Для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ PowerPC Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ для spinlock, позволившая Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² ситуациях ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ.
    • Для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ ARM ΠΈ ARM64 задСйствован ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ рСгулирования частоты процСссора schedutil (cpufreq governor), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ для принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ частоты Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΡ‚ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° Π·Π°Π΄Π°Ρ‡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ сразу ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌ cpufreq для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ измСнСния частоты, ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ подгоняя ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ CPU ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅.
    • Π’ DRM-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ i915 для Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ Intel Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‡ΠΈΠΏΠΎΠ² Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Rocket Lake ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° дискрСтных ΠΊΠ°Ρ€Ρ‚ Intel Xe DG1.
    • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ amdgpu Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° GPU AMD Navi 21 (Navy Flounder) ΠΈ Navi 22 (Sienna Cichlid). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π²ΠΈΠΆΠΊΠΎΠ² ускорСния кодирования ΠΈ дСкодирования Π²ΠΈΠ΄Π΅ΠΎ UVD/VCE для GPU Southern Islands (Radeon HD 7000).
      Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ свойство для ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° отобраТСния Π½Π° 90, 180 ΠΈΠ»ΠΈ 270 градусов.

      Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для GPU AMD являСтся самым ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ Π² ядрС — ΠΎΠ½ насчитываСт ΠΎΠΊΠΎΠ»ΠΎ 2.71 ΠΌΠ»Π½ строк ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 10% ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ядра (27.81 ΠΌΠ»Π½ строк). ΠŸΡ€ΠΈ этом 1.79 ΠΌΠ»Π½ строк приходится Π½Π° сгСнСрированныС автоматичСски Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для рСгистров GPU, Π° Π‘ΠΈ-ΠΊΠΎΠ΄ составляСт 366 тысяч строк (для сравнСния Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Intel i915 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ 209 тысяч строк, Π° Nouveau — 149 тысяч).

    • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Nouveau Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠΎΠΊΠ°Π΄Ρ€ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ цСлостности ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ CRC (Cyclic Redundancy Checks) Π² дисплСйных Π΄Π²ΠΈΠΆΠΊΠ°Ρ… GPU NVIDIA. РСализация основана Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, прСдоставлСнной ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ NVIDIA.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ для LCD-ΠΏΠ°Π½Π΅Π»Π΅ΠΉ: Frida FRD350H54004, KOE TX26D202VM0BWA, CDTech S070PWS19HP-FC21, CDTech S070SWV29HG-DC44, Tianma TM070JVHG33 ΠΈ Xingbangda XBD599.
    • Π’ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ подсистСмС ALSA Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Intel Silent Stream (Ρ€Π΅ΠΆΠΈΠΌ постоянного поддСрТания питания для Π²Π½Π΅ΡˆΠ½ΠΈΡ… HDMI-устройств для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈ Π½Π°Ρ‡Π°Π»Π΅ воспроизвСдСния) ΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ устройства для управлСния подсвСткой ΠΊΠ½ΠΎΠΏΠΎΠΊ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½Π° ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π·Π²ΡƒΠΊΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ оборудования, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Loongson 7A1000.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ARM-ΠΏΠ»Π°Ρ‚, устройств ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ: Pine64 PinePhone v1.2, Lenovo IdeaPad Duet 10.1, ASUS Google Nexus 7, Acer Iconia Tab A500, Qualcomm Snapdragon SDM630 (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Sony Xperia 10, 10 Plus, XA2, XA2 Plus ΠΈ XA2 Ultra), Jetson Xavier NX, Amlogic WeTek Core2, Aspeed EthanolX, ΠΏΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ»Π°Ρ‚ Π½Π° Π±Π°Π·Π΅ NXP i.MX6, MikroTik RouterBoard 3011, Xiaomi Libra, Microsoft Lumia 950, Sony Xperia Z5, MStar, Microchip Sparx5, Intel Keem Bay, Amazon Alpine v3, Renesas RZ/G2H.

ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ латиноамСриканский Π€ΠΎΠ½Π΄ свободного ПО сформировал
Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ свободного ядра 5.9Linux-libre 5.9-gnu, ΠΎΡ‡ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚ элСмСнтов ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², содСрТащих нСсвободныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ»ΠΈ участки ΠΊΠΎΠ΄Π°, ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ. Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π±Π»ΠΎΠ±ΠΎΠ² Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… для WiFi rtw8821c ΠΈ SoC MediaTek mt8183. ΠžΠ±Π½ΠΎΠ²Π»Ρ‘Π½ ΠΊΠΎΠ΄ чистки Π±Π»ΠΎΠ±ΠΎΠ² Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… ΠΈ подсистСмах Habanalabs, Wilc1000, amdgpu, mt7615, i915 CSR, Mellanox mlxsw (Spectrum3), r8169 (rtl8125b-2) ΠΈ x86 touchscreen.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ