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

ПослС Π΄Π²ΡƒΡ… мСсяцСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ прСдставил Ρ€Π΅Π»ΠΈΠ· ядра Linux 5.16. Π‘Ρ€Π΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: систСмный Π²Ρ‹Π·ΠΎΠ² futex_waitv для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Windows-ΠΈΠ³Ρ€ Π² Wine, отслСТиваниС ошибок Π² Π€Π‘ Ρ‡Π΅Ρ€Π΅Π· fanotify, концСпция Ρ„ΠΎΠ»ΠΈΠ°Π½Ρ‚ΠΎΠ² Π² систСмС управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° процСссорных инструкций AMX, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ рСзСрвирования памяти Π·Π° сСтСвыми сокСтами, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π² netfilter классификации ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π° стадии «egress», задСйствованиС подсистСмы DAMON для ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π³ΠΎ вытСснСния нСвострСбованных областСй памяти, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΎΠΊ ΠΏΡ€ΠΈ большом ΠΎΠ±ΡŠΡ‘ΠΌΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΈΠ²ΠΎΠ΄Π½Ρ‹Ρ… Тёстких дисков.

Π’ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ принято 15415 исправлСний ΠΎΡ‚ 2105 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°Ρ‚Ρ‡Π° — 45 ΠœΠ‘ (измСнСния Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ»ΠΈ 12023 Ρ„Π°ΠΉΠ»ΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 685198 строк ΠΊΠΎΠ΄Π°, ΡƒΠ΄Π°Π»Π΅Π½ΠΎ 263867 строк). Около 44% всСх прСдставлСнных Π² 5.16 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ связаны с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ устройств, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 16% ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ обновлСнию ΠΊΠΎΠ΄Π°, спСцифичного для Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€, 16% связано с сСтСвым стСком, 4% — с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ систСмами ΠΈ 4% c Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ подсистСмами ядра.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π° Π² ядрС 5.16:

  • Дисковая подсистСма, Π²Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы
    • Π’ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ fanotify Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ срСдства для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π·Π° состояниСм Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы ΠΈ отслСТивания возникновСния ошибок. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… пСрСдаётся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° событий — FAN_FS_ERROR, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² выполняСмых пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ систСмах ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° для ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ информирования администратора ΠΈΠ»ΠΈ запуска процСссов восстановлСния. ΠŸΡ€ΠΈ каскадном Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ сСрии ошибок fanotify обСспСчиваСт доставку сообщСния ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ошибкС вмСстС с ΠΎΠ±Ρ‰ΠΈΠΌ счётчиком ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, для упрощСния ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½ сбоя. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° отслСТивания ошибок ΠΏΠΎΠΊΠ° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π€Π‘ Ext4.
    • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΎΠΊ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи (write congestion), Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΡ‘ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ накопитСля ΠΈ систСма Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запросы процСсса Π½Π° запись Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ выполнСния ΡƒΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½Ρ‹Ρ… запросов. Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ядра, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ блокирования Π·Π°Π΄Π°Ρ‡, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² старой Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ наблюдались ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с сопряТСниСм ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ записи c вытСснСниСм страниц памяти Π² Ρ€Π°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ ΠΏΡ€ΠΈ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ΅ памяти Π² систСмС.
    • Π’ Btrfs Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ зонирования устройств (Zoned Namespace), примСняСмой Π² Тёстких дисках ΠΈΠ»ΠΈ NVMe SSD для раздСлСния пространства для хранСния Π½Π° Π·ΠΎΠ½Ρ‹, ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ»ΠΈ сСкторов, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ допускаСтся лишь ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ всСй Π³Ρ€ΡƒΠΏΠΏΡ‹ Π±Π»ΠΎΠΊΠΎΠ². ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, внСсСны нСбольшиС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ логгирования inode, позволившиС Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ пропускной способности Π² тСстС dbench Π½Π° 3% ΠΈ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π½Π° 11%. ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ логгирования ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности сокращСно число ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ поиска ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π² Π΄Π΅Ρ€Π΅Π²Π΅. УскорСна вставка элСмСнтов Π² структуру btree Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ (врСмя массовой вставки элСмСнтов ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΠ»ΠΎΡΡŒ Π½Π° 4%, Π° удалСния Π½Π° 12%). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ограничСнная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° использования сТатия ΠΏΡ€ΠΈ записи Π½Π΅ ΠΏΠΎΠ»Π½Ρ‹Ρ… страниц, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄Π΅Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ подстраниц (subpage). ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ вСрсии ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ «send».
    • Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС XFS сокращСно ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ памяти Π·Π° счёт использования ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… кэшСй slab для часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… элСмСнтов ΠΈ сокращСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ….
    • Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС Ext4 ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ исправлСния ошибок ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ вычислСниС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Inode.
    • На ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ сущСствСнно ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ привязки ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΊ ядрам CPU.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Тёстких дисков с нСсколькими нСзависимыми ΠΏΡ€ΠΈΠ²ΠΎΠ΄Π°ΠΌΠΈ (multi-actuator), Π΄Π°ΡŽΡ‰ΠΈΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ нСскольким сСкторам Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π·ΠΎΠ½Π°Ρ… ΠΌΠ°Π³Π½ΠΈΡ‚Π½ΠΎΠΉ пластины.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая ioctl-ΠΊΠΎΠΌΠ°Π½Π΄Π° CDROM_TIMED_MEDIA_CHANGE для опрСдСлСния событий смСны носитСля Π² ΠΏΡ€ΠΈΠ²ΠΎΠ΄Π΅ оптичСских дисков.
    • Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму EROFS (Enhanced Read-Only File System) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… устройств хранСния. Π Π°Π·Π½Ρ‹Π΅ устройства ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π² ΠΎΠ΄Π½ΠΎ 32-разрядноС адрСсноС пространство Π±Π»ΠΎΠΊΠΎΠ². Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сТатия с использованиСм Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° LZMA.
    • Π’ Π€Π‘ F2FS Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ монтирования для управлСния Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ).
    • Π’ CEPH Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ создания ΠΈ удалСния ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π² асинхронном Ρ€Π΅ΠΆΠΈΠΌΠ΅ (для возвращСния старого повСдСния слСдуСт ΠΏΡ€ΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ ‘-o wsync’). Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ копирования Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².
    • Π’ CIFS Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ монтирования tcpnodelay, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ для сСтСвого сокСта выставляСтся Ρ€Π΅ΠΆΠΈΠΌ tcp_sock_set_nodelay, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π² TCP-стСкС. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… DFS Link (Distributed File System) ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ запросов ΠΊ Π±Π»ΠΎΡ‡Π½ΠΎΠΌΡƒ устройству Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. ВСстированиС измСнСния ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ интСнсивности выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ случайного чтСния с Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅ΠΉ Optane с 6.1 Π΄ΠΎ 6.6 ΠΌΠ»Π½ IOPS Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ядрС CPU.
  • ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΈ систСмныС сСрвисы
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ систСмный Π²Ρ‹Π·ΠΎΠ² futex_waitv, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ состояниС сразу Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„ΡŒΡŽΡ‚Π΅ΠΊΡΠΎΠ² ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ систСмного Π²Ρ‹Π·ΠΎΠ²Π°. Указанная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ Π² Windows Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ WaitForMultipleObjects, эмуляция ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ‡Π΅Ρ€Π΅Π· futex_waitv ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Windows-ΠΈΠ³Ρ€, запускаСмых ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Wine ΠΈΠ»ΠΈ Proton. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Ρ„ΡŒΡŽΡ‚Π΅ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΈ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€ΠΎΠ΄Π½Ρ‹Ρ… сборок ΠΈΠ³Ρ€ для Linux.
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° концСпция Ρ„ΠΎΠ»ΠΈΠ°Π½Ρ‚ΠΎΠ² страниц памяти (page folios), использованиС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… подсистСмах ядра ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°Ρ…. Π’ настоящСС врСмя Π½Π° Ρ„ΠΎΠ»ΠΈΠ°Π½Ρ‚Ρ‹ ΡƒΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° основная подсистСма управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π² ядрС ΠΈ рСализация страничного кэша, Π° Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Π½Π°ΠΌΠ΅Ρ‡Π΅Π½ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм. Π’ дальнСйшСм Π² ядрС Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ многостраничных Ρ„ΠΎΠ»ΠΈΠ°Π½Ρ‚ΠΎΠ².

      Π€ΠΎΠ»ΠΈΠ°Π½Ρ‚Ρ‹ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Ρ‘Π½Π½Ρ‹Π΅ страницы памяти (compound pages), Π½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½ΠΎΠΉ сСмантикой ΠΈ Π±ΠΎΠ»Π΅Π΅ понятной ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Для управлСния систСмной ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ доступноС ΠžΠ—Π£ раздСляСтся Π½Π° страницы памяти, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… зависит ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, Π½ΠΎ Π½Π° систСмах x86 исчисляСтся ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°ΠΌΠΈ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ 4096 Π±Π°ΠΉΡ‚). Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ систСмы ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ΡƒΡŽΡ‚ΡΡ дСсятками Π³ΠΈΠ³Π°Π±Π°ΠΉΡ‚ ΠžΠ—Π£, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΡƒΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΡŽ управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈΠ·-Π·Π° нСобходимости ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ³ΠΎ числа страниц памяти. Для сокращСния числа страниц Ρ€Π°Π½Π΅Π΅ Π² ядрС Π±Ρ‹Π»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° концСпция ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Ρ‘Π½Π½Ρ‹Ρ… страниц (compound pages) со структурами, ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄Π½Ρƒ Ρ„ΠΈΠ·ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ страницу памяти. Но API для манипуляции ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Ρ‘Π½Π½Ρ‹Ρ… страницами памяти оставлял ΠΆΠ΅Π»Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ ΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ» ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ расходам.

    • Π’ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π·Π°Π΄Π°Ρ‡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠ»Π°ΡΡ‚Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ кэша Π² CPU. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… процСссорах, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Kunpeng 920 (ARM) ΠΈ Intel Jacobsville (x86), ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ число ядСр CPU, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ 4, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ²ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ L3 ΠΈΠ»ΠΈ L2 кэш. Π£Ρ‡Ρ‘Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ‚ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ распрСдСлСния Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ ядрам CPU Π² ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ΅ Π·Π°Π΄Π°Ρ‡, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ кластСра CPU позволяСт ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ обращСния ΠΊ памяти ΠΈ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ†ΠΈΡŽ Π² кэшС.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° инструкций AMX (Advanced Matrix Extensions), Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² грядущих сСрвСрных процСссорах Intel Xeon Scalable, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠΎΠ΄ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Sapphire Rapids. AMX ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ настраиваСмыС рСгистры TMM «TILE» ΠΈ инструкции для манипуляции с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² этих рСгистрах, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ TMUL (Tile matrix MULtiply) для умноТСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†.
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ нСсколько Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй, основанных Π½Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ выпускС подсистСмС DAMON (Data Access MONitor), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Π² привязкС ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌΡƒ процСссу, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌΡƒ Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. НапримСр, подсистСма Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊ ΠΊΠ°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ областям памяти обращался процСсс Π·Π° всё врСмя своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π° ΠΊΠ°ΠΊΠΈΠ΅ области памяти ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ нСвострСбованными.
      • DAMON_RECLAIM для выявлСния ΠΈ вытСснСния областСй памяти, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΉ. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π³ΠΎ мягкого вытСснСния страниц памяти Π² условиях приблиТСния ΠΊ ΠΈΡΡ‡Π΅Ρ€ΠΏΠ°Π½ΠΈΡŽ свободной памяти.
      • DAMOS (Data Access Monitoring-based Operation Schemes) для примСнСния Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ madvise(), Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ высвобоТдСниС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ свободной памяти, ΠΊ областям памяти процСсса, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… фиксируСтся опрСдСлённая частота обращСния ΠΊ памяти. Настройка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² DAMOS осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· debugfs.
      • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π·Π° физичСским адрСсным пространством памяти (Ρ€Π°Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ адрСса).
    • РСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° сТатия zstd ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° Π΄ΠΎ вСрсии 1.4.10, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… подсистСм ядра, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… примСняСтся сТатиС (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, распаковка ΠΎΠ±Ρ€Π°Π·Π° ядра ускорСна Π½Π° 35%, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ распаковки сТатых Π΄Π°Π½Π½Ρ‹Ρ… Π² Btrfs ΠΈ SquashFS ΠΏΠΎΠ²Ρ‹ΡΠΈΠ»Π°ΡΡŒ Π½Π° 15%, Π° Π² ZRAM — Π½Π° 30%). Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π² ядрС Π±Ρ‹Π»Π° использована ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ рСализация zstd, основанная Π½Π° вСрсии 1.3.1, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΉ Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€Ρ‘Ρ… Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ ΠΈ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠšΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ ΠΏΠ°Ρ‚Ρ‡ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ с upstream-Π²Π΅Ρ‚ΠΊΠΎΠΉ zstd, позволяя Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² ядро Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· основного рСпозитория zstd. Π’ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΊΠΎΠ΄ zstd Π² ядрС ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Π²Ρ‹Ρ…ΠΎΠ΄Π° Π½ΠΎΠ²Ρ‹Ρ… вСрсий Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ zstd.
    • ВнСсСна большая порция ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ Π² подсистСму eBPF. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Π° ΠΈΠ· BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ядра. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° функция bpf_trace_vprintk(), Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ bpf_trace_printk() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€Ρ‘Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ². Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая структура хранСния Π΄Π°Π½Π½Ρ‹Ρ… (BPF map) bloom filter, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚Π½ΡƒΡŽ структуру Π΄Π°Π½Π½Ρ‹Ρ… для опрСдСлСния наличия элСмСнта Π² Π½Π°Π±ΠΎΡ€Π΅. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ BTF_KIND_TAG, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… для привязки Ρ‚Π΅Π³ΠΎΠ² ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для упрощСния выявлСния ошибок Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…. Π’ libbpf Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ созданиС собствСнных сСкций .rodata.*/.data.*, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° событий трассировки uprobe ΠΈ kprobe, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ API для копирования всСх Ρ‚ΠΈΠΏΠΎΠ² BTF ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° AF_XDP вынСсСна ΠΈΠ· libbpf Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ libxdp. Для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ MIPS Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ JIT-компилятор для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ BPF.
    • Для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ARM64 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ ARMv8.6 для Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°, Π² Ρ‚ΠΎΠΌ числС ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡŽ прСдставлСния систСмных рСгистров Π±Π΅Π· примСнСния инструкций ISB.
    • Для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ PA-RISC Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ примСнСния ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° KFENCE для выявлСния ошибок ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€Π° состояний Π³ΠΎΠ½ΠΊΠΈ KCSAN.
    • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ настройки ΠΏΡ€Π°Π² доступа ΠΊ tracefs Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Π³Ρ€ΡƒΠΏΠΏ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ доступ ΠΊ срСдствам трассировки Ρ‚ΠΎΠ»ΡŒΠΊΠΎ участникам ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹.
  • Виртуализация ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ
    • Π’ подсистСмах io_uring ΠΈ device-mapper Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ событий Π°ΡƒΠ΄ΠΈΡ‚Π°. Π’ io_uring прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ управлСния доступом Ρ‡Π΅Ρ€Π΅Π· ΠΌΠΎΠ΄ΡƒΠ»ΠΈ LSM. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π°ΡƒΠ΄ΠΈΡ‚Π° систСмного Π²Ρ‹Π·ΠΎΠ²Π° openat2().
    • Код ядра ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·Π±Π°Π²Π»Π΅Π½ ΠΎΡ‚ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ casΠ΅ Π² switch (Π±Π΅Π· return ΠΈΠ»ΠΈ break послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° case). ΠŸΡ€ΠΈ сборкС ядра Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ «-Wimplicit-fallthrough».
    • Π’ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ измСнСния для уТСсточСния ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π³Ρ€Π°Π½ΠΈΡ† ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ memcpy().
    • Π’ интСрфСйсС асинхронного Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° io_uring Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ примСнСния ΠΊ опСрациям Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ бСзопасности, опрСдСляСмых модулями SELinux ΠΈ Smack.
    • Π’ подсистСмС IMA (Integrity Measurement Architecture), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ сСрвису Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ состояниС подсистСм ядра для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² ΠΈΡ… подлинности, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ примСнСния ΠΏΡ€Π°Π²ΠΈΠ» Π½Π° основС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π³Ρ€ΡƒΠΏΠΏΡ‹ (GID) ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉΡΡ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ.
    • ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² seccomp() ΠΎΡ‚ Π°Ρ‚Π°ΠΊ класса Spectre, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ расцСнСны ΠΊΠ°ΠΊ излишниС ΠΈ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ Π½Π΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ Π²Π»ΠΈΡΡŽΡ‰ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ΠŸΠ΅Ρ€Π΅ΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Retpoline.
    • Π£Π΄Π°Π»Π΅Π½Π° рСализация ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° cryptoloop, Π½Π° смСну ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π² 2004 Π³ΠΎΠ΄Ρƒ ΠΏΡ€ΠΈΡˆΡ‘Π» dm-crypt ΠΈ ΠΏΡ€ΠΈ нСобходимости ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π΅ ΠΆΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹.
    • По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π°ΠΏΡ€Π΅Ρ‰Ρ‘Π½ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ доступ ΠΊ подсистСмС eBPF. ИзмСнСниС внСсСно для прСдотвращСния использования BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ для ΠΎΠ±Ρ…ΠΎΠ΄Π° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π°Ρ‚Π°ΠΊ ΠΏΠΎ сторонним ΠΊΠ°Π½Π°Π»Π°ΠΌ. ΠŸΡ€ΠΈ нСобходимости администратор ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования eBPF Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ.
    • Π’ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ ACRN, рассчитанный Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ использованиС Π² критичСски Π²Π°ΠΆΠ½Ρ‹Ρ… систСмах, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° создания/удалСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… устройств ΠΈ проброса устройств MMIO.
    • Π’ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ΄Π²ΠΈΠΆΠΎΠΊ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ KPP (Key-agreement Protocol Primitives), ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΡ… Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² для криптосистСм.
    • Для Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π° Hyper-V Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅ΠΆΠΈΠΌΠ° изоляции Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин, ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ содСрТимого памяти.
    • Π’ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€Π΅ KVM Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ RISC-V. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ хост-окруТСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин, выполняСмых с использованиСм Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ AMD SEV ΠΈ SEV-ES. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ API для live-ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ гостСвых систСм, ΡˆΠΈΡ„Ρ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ AMD SEV (Secure Encrypted Virtualization).
    • Для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ PowerPC ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Ρ€Π΅ΠΆΠΈΠΌ STRICT_KERNEL_RWX, Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ использованиС страниц памяти, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ доступных Π½Π° запись ΠΈ исполнСниС.
    • На 32-разрядных систСмах x86 ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° горячСго ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ памяти (Memory hotplug), которая Π±ΠΎΠ»Π΅Π΅ Π³ΠΎΠ΄Π° Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ Π² Π½Π΅Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ состоянии.
    • Из ядра ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° liblockdep, которая Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ ядра.
  • БСтСвая подсистСма
    • Для сокСтов Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° новая опция SO_RESERVE_MEM, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для сокСта ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΡ‘ΠΌ памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ всСгда останСтся доступным для сокСта ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ·ΡŠΡΡ‚. ИспользованиС Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ позволяСт Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ увСличСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π·Π° счёт сокращСния Π² сСтСвом стСкС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ выдСлСния ΠΈ возвращСния памяти, особСнно ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ условий Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ памяти Π² систСмС.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° автоматичСского туннСлирования multicast-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° (Automatic Multicast Tunneling, RFC 7450), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ multicast-Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΈΠ· сСтСй, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Мulticast, получатСлям Π² сСтях Π±Π΅Π· Multicast. ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΡŽ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ UDP.
    • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° инкапсуляция Π΄Π°Π½Π½Ρ‹Ρ… IOAM (In-situ Operations, Administration, and Maintenance) Π² Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹.
    • Π’ ethtool netlink API Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ управлСния Ρ€Π΅ΠΆΠΈΠΌΠ°ΠΌΠΈ энСргопотрСблСния ΠΏΡ€ΠΈΠ΅ΠΌΠΎΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ².
    • Π’ подсистСмС netfilter Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ классификации ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ egress, Ρ‚.Π΅. Π½Π° стадии ΠΊΠΎΠ³Π΄Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΎΡ‚ сСтСвого стСка ядра. Π’ nftables ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² появилась Π² вСрсии 1.0.1. Π’ netfilter Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сопоставлСния ΠΈ измСнСния Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… для UDP ΠΈ TCP (inner header / payload), ΠΈΠ΄ΡƒΡ‰ΠΈΡ… послС транспортного Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° (transport header).
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ sysctl-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ arp_evict_nocarrier ΠΈ ndisc_evict_nocarrier ΠΏΡ€ΠΈ установкС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… кэш ARP ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π° ndisc (neighbor discovery) Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‡ΠΈΡ‰Π°Ρ‚ΡŒΡΡ Π² случаС ΠΎΠ±Ρ€Ρ‹Π²Π° связи (NOCARRIER).
    • Π’ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ управлСния сСтСвыми очСрСдями fq_codel (Π‘ontrolled Delay) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ€Π΅ΠΆΠΈΠΌΡ‹ Low Latency, Low Loss ΠΈ Scalable Throughput (L4S).
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ amdgpu Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° спСцификации DP 2.0 (DisplayPort 2.0) ΠΈ возмоТности туннСлирования DisplayPort Ρ‡Π΅Ρ€Π΅Π· USB4. Для APU Cyan Skillfish (оснащСны GPU Navi 1x) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² дисплСя. Π Π°ΡΡˆΠΈΡ€Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° APU Yellow Carp (ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ процСссоры Ryzen 6000 «Rembrandt»).
    • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ i915 стабилизирована ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‡ΠΈΠΏΠΎΠ² Intel Alderlake S ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Intel PXP (Protected Xe Path), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½ΠΎΠ³ΠΎ графичСского сСанса Π½Π° систСмах с Ρ‡ΠΈΠΏΠ°ΠΌΠΈ Intel Xe.
    • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ nouveau ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ошибок ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ стиля оформлСния ΠΊΠΎΠ΄Π°.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° x86-совмСстимых CPU Vortex (Vortex86MX). Linux Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… процСссорах Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅, Π½ΠΎ явная идСнтификация ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… CPU ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π°ΡΡŒ для ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π°Ρ‚Π°ΠΊ Spectre/Meltdown, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Ρ‡ΠΈΠΏΠ°ΠΌ.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° x86-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Surface Pro 8 ΠΈ Surface Laptop Studio.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Ρ… Ρ‡ΠΈΠΏΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² APU AMD Yellow Carp, Van Gogh, Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Ρ… систСм ΠΈ ΠΊΠΎΠ΄Π΅ΠΊΠΎΠ² Cirrus CS35L41, Maxim MAX98520/MAX98360A, Mediatek MT8195, Nuvoton NAU8821, NVIDIA Tegra210, NXP i.MX8ULP, Qualcomm AudioReach, Realtek ALC5682I-VS, RT5682S, RT9120, Rockchip RV1126 ΠΈ RK3568.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ishtp_eclite для доступа ΠΊΠΎ встроСнным ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌ Intel PSE (Programmable Service Engine) ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ISHTP (Integratd Sensor Hub Transport Protocol), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для получСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ± аккумуляторС, Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, связанной с UCSI (USB Type-C Connector System Software Interface).
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² Nintendo Switch, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ устройства Switch Pro ΠΈ Joy-Cons. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚ΠΎΠ² Wacom Intuos BT (CTL-4100WL/CTL-6100WL) ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Apple 2021 Magic Keyboard. Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² Sony PlayStation DualSense. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±ΠΎΠΊΠΎΠ²Ρ‹Ρ… ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΌΡ‹ΡˆΠΈ Xiaomi Mi.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ RT89 с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ бСспроводных Ρ‡ΠΈΠΏΠΎΠ² Realtek 802.11ax, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ для Ethernet-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠ² Asix AX88796C-SPI ΠΈ ΠΊΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² Realtek RTL8365MB-VC.
    • Для Ρ‡ΠΈΠΏΠΎΠ² Apple M1 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ для PCI ΠΈ PASemi i2c.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ARM SoΠ‘, устройств ΠΈ ΠΏΠ»Π°Ρ‚ Raspberry Pi Compute Module 4, Fairphone 4, Snapdragon 690, LG G Watch R, Sony Xperia 10 III, Samsung Galaxy S4 Mini Value Edition, Xiaomi MSM8996 (Mi 5, Mi Note 2, Mi 5s, Mi Mix, Mi 5s Plus ΠΈ Xiaomi Mi 5), Sony Yoshino (Sony Xperia XZ1, ΠΈ Sony Xperia XZ Premium), F(x)tec Pro1 QX1000, Microchip LAN966, CalAmp LMU5000, Exegin Q5xR5, sama7g5, Samsung ExynosAutov9, Rockchip RK3566, RK3399 ROCK Pi 4A+, RK3399 ROCK Pi 4B+, Firefly ROC-RK3328-PC, Firefly ROC-RK3399-PC-PLUS, ASUS Chromebook Tablet CT100, Pine64 Quartz64-A, Netgear GS110EMX, Globalscale MOCHAbin 7040, NXP S32G2, Renesas R8A779M*, Xilinx Kria, Radxa Zero, JetHub D1/H1, Netronix E70K02.

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

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