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

ПослС Π΄Π²ΡƒΡ… мСсяцСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ прСдставил Ρ€Π΅Π»ΠΈΠ· ядра Linux 6.11. Π‘Ρ€Π΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠΉ записи Π½Π° Π±Π»ΠΎΡ‡Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ bind() ΠΈ listen() Π² io_uring, Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ записи Π² ΠΎΡ‚Π·Π΅Ρ€ΠΊΠ°Π»Π΅Π½Π½Ρ‹Π΅ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° написания Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств Π½Π° языкС Rust, оптимизация Π²Ρ‹Π·ΠΎΠ²Π° getrandom(), новая рСализация AES-GCM.

Π’ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ принято 15130 исправлСний ΠΎΡ‚ 2078 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°Ρ‚Ρ‡Π° — 85 ΠœΠ‘ (измСнСния Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ»ΠΈ 13282 Ρ„Π°ΠΉΠ»ΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 985857 строк ΠΊΠΎΠ΄Π°, ΡƒΠ΄Π°Π»Π΅Π½ΠΎ 268915 строк). Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ выпускС Π±Ρ‹Π»ΠΎ 14564 исправлСний ΠΎΡ‚ 1989 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°Ρ‚Ρ‡Π° — 41 ΠœΠ‘ (Π² Π΄Π²Π° Ρ€Π°Π·Π° мСньшС, Ρ‡Π΅ΠΌ ΠΏΠ°Ρ‚Ρ‡ для ядра 6.11). Около 46% всСх прСдставлСнных Π² 6.11 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ связаны с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ устройств, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 17% ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ обновлСнию ΠΊΠΎΠ΄Π°, спСцифичного для Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€, 10% связано с сСтСвым стСком, 5% — с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ систСмами ΠΈ 3% c Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ подсистСмами ядра.

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

  • Дисковая подсистСма, Π²Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи Π½Π° Π±Π»ΠΎΡ‡Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π° Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»ΡŒ записываСтся Π»ΠΈΠ±ΠΎ вСсь ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π±Π»ΠΎΠΊΠΎΠ², Π»ΠΈΠ±ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π±Π»ΠΎΠΊΠΎΠ², Ρ‡Ρ‚ΠΎ позволяСт Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ ситуаций, ΠΊΠΎΠ³Π΄Π° послС сбоя оборудования записываСтся лишь Ρ‡Π°ΡΡ‚ΡŒ Π±Π»ΠΎΠΊΠΎΠ², Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ части остаётся старая информация. Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° записи Π² систСмный Π²Ρ‹Π·ΠΎΠ² pwritev() Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π»Π°Π³ RWF_ATOMIC. Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠΉ записи (atomic_write_unit_min, atomic_write_unit_max ΠΈ atomic_write_segments_max) Π² привязкС ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ statx().
    • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° записи Π² исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹, связанныС с Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ процСссами. Π Π°Π½Π΅Π΅, ΠΊΠ°ΠΊ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… систСмах, ядро Π²Ρ‹Π²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ записи Π² исполняСмый Ρ„Π°ΠΉΠ» Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ процСсса. Π”Π°Π½Π½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ снято, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΎ лишСно практичСского смысла.
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств Π½Π° языкС Rust. Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² ядро Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ rnull, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой Π°Π½Π°Π»ΠΎΠ³ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° null_blk, написанный Π½Π° языкС Rust.
    • Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС Btrfs Π² ΠΎΠΏΡ†ΠΈΠΈ монтирования «rescue=» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² «ignoremetacsums» ΠΈ «ignoresuperflags», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для выноса Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π² пространство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΡ€ΠΈ восстановлСнии Π€Π‘ послС сбоя. РСализация ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ динамичСского возвращСния Π³Ρ€ΡƒΠΏΠΏ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Π½Π° для ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ возникновСния ситуации Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ свободного пространства Π² условиях Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠΉ заполнСнности Π€Π‘.
    • Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС ntfs3 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² «compressed» ΠΈ «immutable», ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… сТатыС ΠΈ нСизмСняСмыС Ρ„Π°ΠΉΠ»Ρ‹.
    • Π’ Π€Π‘ F2FS ΠΈ Ext4 ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠΌΡ‘Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° рСгистра символов (casefold) ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π° Ρ‡Π΅Ρ€Π΅Π· Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΡ‘Π½ Π² Ρ„ΠΎΡ€ΠΌΠ΅ qstr-строк Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ рСгистра.
    • Π’ Π€Π‘ Ext4 рСализация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ jbd2_transaction_committed ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° ΠΎΡ‡Π΅Π½ΡŒ быстрых накопитСлях (Π² тСстах ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ прирост ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² сСкунду, Π΄ΠΎΡΡ‚ΠΈΠ³Π°ΡŽΡ‰ΠΈΠΉ 20%).
    • Π’ систСмном Π²Ρ‹Π·ΠΎΠ²Π΅ statx() Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° указатСля NULL вмСсто пустой строки с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌ ΠΏΡƒΡ‚Ρ‘ΠΌ, Π² случаС Ссли выставлСн Ρ„Π»Π°Π³ AT_EMPTY_PATH.
    • Π’ систСмном Π²Ρ‹Π·ΠΎΠ²Π΅ open_by_handle_at() смягчСны ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€Π°Π² доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ, Π² случаС отсутствия ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ CAP_DAC_READ_SEARCH для поиска Π² Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ пространствС ΠΈΠΌΡ‘Π½. Π Π°Π½Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ наличия ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ CAP_DAC_READ_SEARCH ΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ пространству ΠΈΠΌΡ‘Π½ Π½Π΅ позволяла ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ систСмный Π²Ρ‹Π·ΠΎΠ² open_by_handle_at() Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ….
    • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² listmount() ΠΈ statmount(). Π’ listmount() Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π»Π°Π³ LISTMOUNT_REVERSE для Π²Ρ‹Π²ΠΎΠ΄Π° содСрТимого Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Ρ‚ΠΎΡ‡Π΅ΠΊ монтирования Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС (самыС Π½ΠΎΠ²Ρ‹Π΅ записи Π² Π²Π΅Ρ€Ρ…Ρƒ). Π’ statmount() Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π²Ρ‹Π²ΠΎΠ΄ ΠΎΠΏΡ†ΠΈΠΉ, выставлСнных ΠΏΡ€ΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π€Π‘. Π’ ΠΎΠ±ΠΎΠΈΡ… систСмных Π²Ρ‹Π·ΠΎΠ²Π°Ρ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΈ отсутствии доступа ΠΊ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ пространству ΠΈΠΌΡ‘Π½ (ΠΊΠΎΠ³Π΄Π° имССтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ доступ ΠΊ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ пространству ΠΈΠΌΡ‘Π½).
    • Π’ Π€Π‘ Bcachefs Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° автоматичСского ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΠ³ΠΎ восстановлСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠ΄Ρ‹ восстановлСния ошибок — Ссли ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΠ»ΠΈ вычислСно нСсоотвСтствиС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ… автоматичСски пСрСзаписываСтся ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ избыточности для Π΅Π³ΠΎ восстановлСния.
  • ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΈ систСмныС сСрвисы
    • Π’ состав приняты ΠΏΠ°Ρ‚Ρ‡ΠΈ с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ (BH, bottom-half), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ ΠΏΡ€ΠΈ этом Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ блокирования ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ выполнСния Π½Π΅ связанного с Π½ΠΈΠΌΠΈ ΠΊΠΎΠ΄Π°. ΠžΡ‚ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ для ядСр, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ realtime, Π½ΠΎ ΠΈ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ядСр (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ сСтСвой подсистСмы Π½Π° 14.5%).
    • Π’ подсистСму асинхронного Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° io_uring Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ bind() ΠΈ listen(), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для создания ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ… соСдинСния сСтСвых сокСтов.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½Π°Π±ΠΎΡ€ ioctl-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ для псСвдо-Π€Π‘ NSFS (NameSpace FS), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с пространствами ΠΈΠΌΡ‘Π½. НовыС ioctl ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ процСссов ΠΈ Π³Ρ€ΡƒΠΏΠΏ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ пространствами ΠΈΠΌΡ‘Π½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² процСссов (PID namespace). ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ioctl, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π½Π° основС pidfd-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ дСскрипторы процСссов Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… пространствах ΠΈΠΌΡ‘Π½, Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² псСвдо-Π€Π‘ pidfd.
    • Для BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΎΡ€Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ масками, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±ΠΈΡ‚ΠΎΠ² Π² областях памяти, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ cpumask. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ процСссам Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎΠ± отсоСдинСнии (detach/unregister) ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° struct_ops. Π Π°ΡΡˆΠΈΡ€Π΅Π½ спСктр Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² массивах (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ массивы, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ элСмСнты с Ρ‚ΠΈΠΏΠ°ΠΌΠΈ kptr, bpf_rb_root ΠΈ bpf_list_head). ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Split BTF (BPF Type Format), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π² псСвдокодС BPF.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° подсистСма, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π°Ρ‡Ρƒ питания Π½Π° устройства Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ порядкС, Π½Π° случай, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΎ устройство Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ бСспроводных Ρ‡ΠΈΠΏΠΎΠ² Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… Qualcomm).
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ «Sloppy logic analyzer», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ простыС логичСскиС Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ сигнала, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ GPIO ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ядрС CPU.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° runtime-констант, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ вмСсто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. НапримСр, runtime-константы ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ вмСсто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, хранящих ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ для кэша dentry. Π”Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π²ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ. ИдСя Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ значСния ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² инструкции Π² ΠΊΠΎΠ΄Π΅, ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΠ² Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы, связанныС с манипуляциями с указатСлями.
    • ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ пСрСнос ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ Rust-for-Linux, связанных с использованиСм языка Rust Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ языка для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ядра (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Rust Π½Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ Rust Π² число ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сборочных зависимостСй ΠΊ ядру). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° выпуска Rust 1.80 (Π² качСствС минимальной вСрсии ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ поддСрТиваСтся Rust 1.78). Помимо Ρ€Π°Π½Π΅Π΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹Ρ… срСдств для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств, Π² Π½ΠΎΠ²ΠΎΠΉ вСрсии Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ абстракции для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ, доступа ΠΊ пространству ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (uaccess) ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ структурой «page».
    • Для систСм x86-64 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½ΠΎΠ²Ρ‹ΠΉ систСмный Π²Ρ‹Π·ΠΎΠ² uretprobe(), ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° трассировки uretprobe, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ значСния, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ функциями Π² прилоТСниях пространства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ядра: «reserve_mem» для рСзСрвирования ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠΉ области памяти Π²ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ «ramoops.mem_name» для использования Π² pstore области памяти, созданной Ρ‡Π΅Ρ€Π΅Π· reserve_mem.
    • Π’ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ памяти Π½Π° Π±Π°Π·Π΅ cgroup Π² Ρ„Π°ΠΉΠ» memory.reclaim, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ настройки вытСснСния памяти, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ «swappiness», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ баланс ΠΌΠ΅ΠΆΠ΄Ρƒ вытСснСниСм Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… страниц памяти Π² Ρ€Π°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ ΠΈ освобоТдСниСм страниц памяти, занятых ΠΏΠΎΠ΄ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ кэш.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ioctl-интСрфСйс PROCMAP_QUERY для Π±ΠΎΠ»Π΅Π΅ эффСктивного поиска Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… областСй памяти (Virtual Memory Area) Π² /proc/PID/maps.
    • Π’ систСмный Π²Ρ‹Π·ΠΎΠ² mmap() Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π»Π°Π³ MAP_DROPPABLE для запроса памяти, которая Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ±Ρ€ΠΎΡˆΠ΅Π½Π° Π² Ρ€Π°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΊΠ°Ρ‡ΠΊΠΈ, Π° Π² случаС Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠΈ памяти ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π°.
    • Для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ARM64 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° горячСго ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π² Ρ€Π΅ΠΆΠΈΠΌΡ‹ online/offline) физичСских ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… CPU Π½Π° систСмах с ACPI.
    • Для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ RISC-V обСспСчСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° горячСго ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ памяти ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° GCC-ΠΏΠ»Π°Π³ΠΈΠ½Π° STACKLEAK (выполняСт ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ всСх Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹Ρ… Π² стСкС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для прСдотвращСния ΡƒΡ‚Π΅Ρ‡ΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· ядра Ρ‡Π΅Ρ€Π΅Π· Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ остатки Ρ€Π°Π½Π΅Π΅ сохранённых Π² стСкС Π΄Π°Π½Π½Ρ‹Ρ…).
    • Π£Π΄Π°Π»Ρ‘Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ„ΠΈΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° памяти EFI (fake EFI memory map) Π½Π° этапС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π”Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π½Π΅ использовался Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΈ мСшал Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°ΠΌ Π² области ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ выполнСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин.
    • ΠŸΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ PowerPC 40x.
    • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Ρ‹ трСбования ΠΊ вСрсии GNU Make — для сборки ядра трСбуСтся ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ выпуск GNU Make, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π² 2013 Π³ΠΎΠ΄Ρƒ.
  • Виртуализация ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ
    • Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΠΏΠ°Ρ‚Ρ‡ΠΈ, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ (Π΄ΠΎ 15 Ρ€Π°Π·) ΡƒΡΠΊΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ случайных чисСл Ρ‡Π΅Ρ€Π΅Π· систСмный Π²Ρ‹Π·ΠΎΠ² getrandom(). ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ основана Π½Π° использовании ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° vDSO (virtual dynamic shared object), Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ пСрСнСсти ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ систСмного Π²Ρ‹Π·ΠΎΠ²Π° ΠΈΠ· ядра Π² пространство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ контСкста. Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ систСмного Π²Ρ‹Π·ΠΎΠ²Π° Π² адрСсноС пространство процСсса нСпосрСдствСнно ядром.
    • Для систСм x86-64 Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° новая рСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ AES-GCM, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π°Ρ использованиС Π²Π΅ΠΊΡ‚ΠΎΡ€Π½Ρ‹Ρ… инструкций VAES, VPCLMULQDQ ΠΈ AVX512/AVX10 для ускорСния вычислСний. Π’ ΠΏΡ€ΠΎΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… тСстах прирост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ послС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π½ΠΎΠ²ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ достигаСт 156%. АссСмблСрная рСализация AES-GCM ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ пСрСписана с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ коррСктности, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ докумСнтирования ΠΊΠΎΠ΄Π°.
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ запуска ядра Π² качСствС гостСвой систСмы Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… окруТСниях, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… процСссорноС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ AMD SEV-SNP (Secure Nested Paging), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для обСспСчСния бСзопасной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ страниц памяти. Для Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ изоляции доступа ΠΊ рСсурсам ΠΈΠ· Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ SVSM (Linux Secure VM Service Module). Π’ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ KVM Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° запуска гостСвых систСм, Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ AMD SEV-SNP.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ bucket slab allocator, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ CONFIG_SLAB_BUCKETS ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ Π°Ρ‚Π°ΠΊ с использованиСм Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ «heap spraying».
    • Π’ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ KVM Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ioctl-Π²Ρ‹Π·ΠΎΠ² для ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π³ΠΎ выдСлСния памяти гостСвой систСмС Π΄ΠΎ Π΅Ρ‘ фактичСского запуска.
  • БСтСвая подсистСма
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ sysctl-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ net.tcp_rto_min_us, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ (retransmission timeout) для TCP-сокСтов.
    • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ ethtool Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ½ΠΊΠΎΠΉ настройки ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ для сСтСвых интСрфСйсов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… интСрфСйс Net DIM.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ AMDGPU Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° GPU AMD RDNA4 («GFX12»). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ DCN 4.0.x, GC 12.0, GMC 12.0, SDMA 7.0, MES12 ΠΈ MMHUB 4.1.
    • ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ drm-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ (Direct Rendering Manager) Xe для GPU Π½Π° Π±Π°Π·Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Intel Xe, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Π°Ρ… Intel сСмСйства Arc ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅, начиная с процСссоров Tiger Lake. Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° GPU Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ Battlemage, Arrow Lake ΠΈ Lunar Lake.
    • Π’ подсистСмС DRM (Direct Rendering Manager) пСрСписан ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ выставляСмых ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² EDID (Extended Display Identification Data).
    • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ i915 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° GPU Battlemage Xe2 ΠΈ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π΅ΠΆΠΈΠΌ CMRR (Content Match Refresh Rate).
    • Π’ DRM-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ msm (GPU Qualcomm Adreno) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ SM7150 ΠΈ GPU X185 ΠΈ a505.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° экранных ΠΏΠ°Π½Π΅Π»Π΅ΠΉ Lincoln Tech Sol LCD185-101CT, Microtips Technology 13-101HIEBCAF0-C, Microtips Technology MF-103HIEB0GA0, BOE nv110wum-l60, IVO t109nw41, WL-355608-A8, PrimeView PM070WL4, Lincoln Technologies LCD197, Ortustech COM35H3P70ULC, AUO G104STN01, K&d kd101ne3-40ti.
    • Π’ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ подсистСмС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‡ΠΈΠΏΠΎΠ² ΠΈ ΠΊΠΎΠ΄Π΅ΠΊΠΎΠ² Intel Panther Lake, Asahi Kasei AK4619, Cirrus Logic CS530x, Everest Semiconductors ES8311, NXP i.MX95, LPC32xx, Qualcomm LPASS v2.5, WCD937x, Realtek RT1318, RT1320 ΠΈ Texas Instruments PCM5242.
    • ВнСсСна Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ порция ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ARM SoC Snapdragon X Elite, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ собствСнный 12-ядСрный CPU Qualcomm Oryon ΠΈ GPU Qualcomm Adreno. Π§ΠΈΠΏ Π½Π°Ρ†Π΅Π»Π΅Π½ Π½Π° использованиС Π² Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ°Ρ… ΠΈ ПК, ΠΈ ΠΎΠΏΠ΅Ρ€Π΅ΠΆΠ°Π΅Ρ‚ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… тСстах ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‡ΠΈΠΏΡ‹ Apple M3 ΠΈ Intel Core Ultra 155H. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π² ядро 6.11 измСнСния связаны с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ GPU Adreno X1-85 ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ энСргопотрСблСниСм. Из устройств Π½Π° Π±Π°Π·Π΅ SoC Snapdragon X Elite заявлСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠΎΠ² ASUS Vivobook S15 ΠΈ Lenovo Yoga Slim7x.

ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ латиноамСриканский Π€ΠΎΠ½Π΄ свободного ПО сформировал Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ свободного ядра 6.11 — Linux-libre 6.10-gnu, ΠΎΡ‡ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚ элСмСнтов ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², содСрТащих нСсвободныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ»ΠΈ участки ΠΊΠΎΠ΄Π°, ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ. Π’ выпускС 6.11 ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ ΠΊΠΎΠ΄ чистки Π±Π»ΠΎΠ±ΠΎΠ² Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… mdgpu, adreno, vgxy61, atomisp, btnxpuart, prueth ΠΈ tas2781. ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° чистка Π½ΠΎΠ²Ρ‹Ρ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² amdgpu isp, tn40, rtl8192du, cs40l50, rt1320 ΠΈ pcie-rcar-gen4. Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° чистка ΠΈΠΌΡ‘Π½ Π±Π»ΠΎΠ±ΠΎΠ² Π² dts-Ρ„Π°ΠΉΠ»Π°Ρ… (devicetree) для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Aarch64. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π΅ Π²Ρ‹Π΄Π°ΡŽΡ‰Π°Ρ прСдупрСТдСния ΠΈ запросов (nowait-nowarn) вСрсия ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠΎΠ΄ для опрСдСлСния ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ Π² ΠΊΠΎΠ΄Π΅ Π½Π° языкС Rust.

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