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

ПослС Π΄Π²ΡƒΡ… мСсяцСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ прСдставил Ρ€Π΅Π»ΠΈΠ· ядра Linux 6.9. Π‘Ρ€Π΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: ΠΌΠΎΠ΄ΡƒΠ»ΡŒ dm-vdo для Π΄Π΅Π΄ΡƒΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ сТатия Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств, Ρ€Π΅ΠΆΠΈΠΌ прямого доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ Π² FUSE, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° создания pidfd для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ BPF-Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Rust Π½Π° систСмах ARM64, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π€Π‘ Ext2 Π² разряд ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ…, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ старого Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° NTFS, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Intel FRED.

Π’ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ принято 15680 исправлСний ΠΎΡ‚ 2106 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°Ρ‚Ρ‡Π° — 54 ΠœΠ‘ (измСнСния Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ»ΠΈ 11825 Ρ„Π°ΠΉΠ»ΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 687954 строк ΠΊΠΎΠ΄Π°, ΡƒΠ΄Π°Π»Π΅Π½ΠΎ 225344 строк). Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ выпускС Π±Ρ‹Π»ΠΎ 15641 исправлСниС ΠΎΡ‚ 2018 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°Ρ‚Ρ‡Π° — 44 ΠœΠ‘. Около 42% всСх прСдставлСнных Π² 6.9 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ связаны с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ устройств, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 17% ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ обновлСнию ΠΊΠΎΠ΄Π°, спСцифичного для Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€, 13% связано с сСтСвым стСком, 7% — с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ систСмами ΠΈ 4% c Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ подсистСмами ядра.

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

  • Дисковая подсистСма, Π²Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы
    • Π’ Device Mapper (DM) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ dm-vdo (virtual data optimizer), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π½Π° Π±Π°Π·Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Π±Π»ΠΎΡ‡Π½ΠΎΠ΅ устройство, ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰Π΅Π΅ Ρ‚Π°ΠΊΠΈΠΌΠΈ возмоТностями, ΠΊΠ°ΠΊ дСдупликация ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π΄Π°Π½Π½Ρ‹Ρ…, сТатиС Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ пустых Π±Π»ΠΎΠΊΠΎΠ² ΠΈ увСличСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ устройства ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ появлСния нСобходимости (thin provisioning). Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ возмоТности Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ устройства ΠΈ Π½Π΅ зависят ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ dm-vdo ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ автоматичСскоС объСдинСниС Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ…ΡΡ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² сТатом Π²ΠΈΠ΄Π΅ для Π»ΡŽΠ±Ρ‹Ρ… Π€Π‘). ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ dm-vdo для физичСских Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π΄ΠΎ 256TB, ΠΈ созданиС логичСских Ρ‚ΠΎΠΌΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π΄ΠΎ 4PB. Для управлСния Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌΠΈ vdo рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ lvm. ВСхнология VDO Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Permabit ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Π° послС Π΅Ρ‘ поглощСния Red Hat Π² 2017 Π³ΠΎΠ΄Ρƒ.
    • Π’ подсистСмС FUSE, примСняСмой для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ рСализация Ρ€Π΅ΠΆΠΈΠΌΠ° «passthrough», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ², минуя процСсс, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎ позволяСт Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях сущСствСнно ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. НапримСр, FUSE-Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π€Π‘, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния ΠΈ Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ доступ ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ, ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ содСрТимоС Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· исходной Π€Π‘ Π±Π΅Π· ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² процСсс FUSE.
    • Π’ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… (deprecated) ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Ext2. Π’ качСствС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ упоминаСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 32-разрядных счётчиков Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² inode, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ пСрСполнятся 19 января 2038 Π³ΠΎΠ΄Π°. ВмСсто Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ext2 прСдлагаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ext4, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой Ext2 ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстим с Π½Π΅ΠΉ, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ext2-Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ, Π½Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ 2038 Π³ΠΎΠ΄Π°, Ссли Π€Π‘ создана с inode, Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ 255 Π±Π°ΠΉΡ‚ (Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ ext2 32-разрядныС счётчики Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ использовались нСзависимо ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° inode).
    • Π£Π΄Π°Π»Ρ‘Π½ старый Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы NTFS, Π½Π° смСну ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ начиная с выпуска 5.15 ΠΏΡ€ΠΈΡˆΡ‘Π» Π½ΠΎΠ²Ρ‹ΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ NTFS3. ΠŸΠΎΡΡ‚Π°Π²ΠΊΠ° Π² ядрС Π΄Π²ΡƒΡ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ NTFS ΠΏΡ€ΠΈΠ·Π½Π°Π½Π° нСцСлСсообразной, с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ старый Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π½Π΅ обновлялся ΡƒΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ‚, находится Π² ΠΏΠ»Π°Ρ‡Π΅Π²Π½ΠΎΠΌ состоянии ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ чтСния.
    • Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы zonefs ΠΈ hugetlbfs Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм, примСняСмого для сопоставлСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π° ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ‡ΡƒΠΆΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ систСмС.
    • Π’ NFSv4 для администраторов прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ очистки состояний открытия ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ².
    • Для Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Ext4 отмСчаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ исправлСниС ошибок ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ kunit-тСстов.
    • Π’ Btrfs ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π° использованиС Ρ„ΠΎΠ»ΠΈΠ°Π½Ρ‚ΠΎΠ² страниц памяти (page folios).
    • Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС XFS ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ возмоТности примСнСния ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ fsck для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ исправлСния выявлСнных ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² online-Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π±Π΅Π· отмонтирования Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы.
    • Π’ систСмный Π²Ρ‹Π·ΠΎΠ² pwritev2() Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π»Π°Π³ RWF_NOAPPEND, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ смСщСниС для записи, Π΄Π°ΠΆΠ΅ Ссли Ρ„Π°ΠΉΠ» Π±Ρ‹Π» ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ добавлСния Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ioctl-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: FS_IOC_GETUUID — Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ UUID-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, ΠΈ FS_IOC_GETFSSYSFSPATH — опрСдСляСт мСстополоТСниС Π² /sys/fs Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π€Π‘.
    • Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы efs, qnx4 ΠΈ coda ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π° использованиС Π½ΠΎΠ²ΠΎΠ³ΠΎ API монтирования Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ².
    • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° рСализация ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, выполняСмых Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° рСгистра символов. ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π° счёт выполнСния Π²Π½Π°Ρ‡Π°Π»Π΅ сравнСния с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ рСгистра ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° поиск Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° рСгистра. Π Π΅ΡˆΠ΅Π½Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ overlayfs ΠΏΠΎΠ²Π΅Ρ€Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выставлСн Ρ€Π΅ΠΆΠΈΠΌ Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° рСгистра символов.
  • ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΈ систСмныС сСрвисы
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Intel FRED (Flexible Return and Event Delivery), созданного для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности ΠΈ надёТности доставки ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… событиях, ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с примСняСмым Π½Ρ‹Π½Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ IDT (Interrupt Descriptor Table). ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ сокращСниС Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ обСспСчиваСтся благодаря Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ событий процСссорной инструкциСй IRET вмСсто ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ событий Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ IDT. ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ надёТности достигаСтся ΠΈΠ·-Π·Π° Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ поступлСния события Π² контСкстС ядра ΠΈ контСкстС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ выполнСния NMI ΠΈ сохранСния Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΌ ΠΊΠ°Π΄Ρ€Π΅ стСка всСх связанных с ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ рСгистров CPU.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ядСр CPU Ρ‡Π΅Ρ€Π΅Π· использования Π² ΠΊΠΎΠ΄Π΅ ядра ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… адрСсных пространств (Named Address Spaces), Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² GCC Π² Ρ„ΠΎΡ€ΠΌΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ GNU C.
    • Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ pidfd_open() Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π»Π°Π³ PIDFD_THREAD, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ pidfd для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ pidfd Π² контСкстС Π»ΠΈΠ΄Π΅Ρ€Π° Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ². Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° рСализация псСвдо-Π€Π‘ для доступа ΠΊ pidfd Ρ‡Π΅Ρ€Π΅Π· Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ процСссов ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ pid, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ pidfd связываСтся с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ процСссом ΠΈ Π½Π΅ мСняСтся, Π² Ρ‚ΠΎΠΌ врСмя ΠΊΠ°ΠΊ PID послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ процСсса ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ привязан ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ процСссу.
    • Π’ подсистСму BPF Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ BPF-Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎ Π΄Π΅Π»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ ΠΏΡ€Π°Π²Π° доступа ΠΊ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ BPF-опСрациям, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ доступ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ подсистСмам BPF Π±Π΅Π· прСдоставлСния ΠΏΠΎΠ»Π½Ρ‹Ρ… ΠΏΡ€Π°Π² CAP_BPF.
    • Π’ подсистСму BPF Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ раздСляСмой памяти bpf_arena, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ для совмСстного использования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ BPF ΠΈ процСссами Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° инструкция may_goto, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ†ΠΈΠΊΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Ρ€Π²Π°Π½Ρ‹ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ· BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… TCP SYN cookie ΠΈ создания BPF-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² для Π±ΠΎΡ€ΡŒΠ±Ρ‹ с SYN-Ρ„Π»ΡƒΠ΄ΠΎΠΌ.
    • ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ пСрСнос ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ Rust-for-Linux, связанных с использованиСм языка Rust Π² качСствС Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ языка для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ядра (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Rust Π½Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ Rust Π² число ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сборочных зависимостСй ΠΊ ядру). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° использования языка Rust ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π° 64-разрядных процСссорах ARM. ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»Ρ‘Π½ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° использованиС выпуска Rust 1.76. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ макрос ‘container_of!’. ВмСсто Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ‘ptr_metadata’ задСйствован ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ‘byte_sub’. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ‘time’ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ прСобразования Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ‘msecs_to_jiffies()’.
    • Π’ подсистСму io_uring Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ усСчСния Ρ„Π°ΠΉΠ»ΠΎΠ² (ftruncate_file).
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ WQ_BH (workqueue Bottom Halves) для асинхронного выполнСния ΠΊΠΎΠ΄Π° Π² контСкстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π° использованиС вмСсто ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… tasklet-ΠΎΠ².
    • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° подсистСма Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° Π²Ρ‹Π±ΠΎΡ€Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ядра CPU для выполнСния ΡΡ€Π°Π±ΠΎΡ‚Π°Π²ΡˆΠ΅Π³ΠΎ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ· спящСго Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ядра.
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ обновлСния ΠΌΠΎΠ΄Π΅Π»ΠΈ потрСблСния энСргии ядра (EM, Energy Model) Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΡƒΡ‡Ρ‘Ρ‚Π° влияния Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π½Π° ΡΠ½Π΅Ρ€Π³Π΅Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ CPU. Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ em_cpu_energy(), которая Π² тСстах Π½Π° стационарной систСмС Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ выполняСтся быстрСС Π² 1.43 Ρ€Π°Π·Π°, Π° Π² тСстС Π½Π° ΠΏΠ»Π°Ρ‚Π΅ RockPi 4B — Π² 1.69 Ρ€Π°Π·Π°.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° запуска систСм Π½Π° Π±Π°Π·Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ARM64 Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ LPA2 с 52-разрядным Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ адрСсным пространством.
    • Для систСм ARM64 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹Ρ… записСй PTE (Page Table Entry), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π° счёт ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности использования TLB (Translation Lookaside Buffer).
    • ΠŸΡ€ΠΈΠ½ΡΡ‚Ρ‹ ΠΏΠ°Ρ‚Ρ‡ΠΈ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ подсистСмы управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Π·Π° счёт сокращСния возникновСния ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π² vmalloc().
    • Для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ LoongArch Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ горячСго налоТСния ΠΏΠ°Ρ‚Ρ‡Π΅ΠΉ Π½Π° ядро (live patching), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ исправлСния ΠΊ ядру Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.
    • Для систСм RISC-V Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° систСмного Π²Ρ‹Π·ΠΎΠ²Π° membarrier(), ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ установку Π±Π°Ρ€ΡŒΠ΅Ρ€ΠΎΠ² Π½Π° ΠΏΠ°ΠΌΡΡ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² систСмС ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².
    • ΠŸΠΎΠ΄Π½ΡΡ‚Ρ‹ трСбования ΠΊ вСрсии LLVM/Clang, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для сборки ядра. Для сборки Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ трСбуСтся ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ выпуск LLVM 13.0.1 (Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»Π°ΡΡŒ сборка Π² LLVM 11+).
    • Π’ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ «User trace events», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ события трассировки ΠΈΠ· ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… процСссов для отслСТивания активности Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° экспорта свСдСний ΠΎ событии Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… (USER_EVENT_REG_MULTI_FORMAT).
    • Π’ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ трассировки Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ отслСТивания состояния входящих Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈ трассировкС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ЗначСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° return Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ с Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.
    • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ perf Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π΅ΠΆΠΈΠΌΠ° агрСгирования Π²Ρ‹Π²ΠΎΠ΄Π° «cluster» («perf stat -a —per-cluster») для объСдинСния статистики раздСляСмых рСсурсов. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ задСйствования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ libcapstone для дизассСмблирования процСссорных инструкций («perf script -F disasm»). ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ потрСблСния памяти ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ perf report’ ΠΈ ‘perf annotate’.
  • Виртуализация ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ уязвимости RFDS (Register File Data Sampling) Π² процСссорах Intel Atom, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· рСгистровых Ρ„Π°ΠΉΠ»ΠΎΠ² (RF, Register File) процСссора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для совмСстного хранСния содСрТимого рСгистров Π²ΠΎ всСх Π·Π°Π΄Π°Ρ‡Π°Ρ… Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ ядрС CPU. Для блокирования уязвимости трСбуСтся ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄Π° ΠΈ использованиС инструкции VERW для очистки содСрТимого ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ возвращСния ΠΈΠ· ядра Π² пространство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ядра ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ «reg_file_data_sampling=on». Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ подвСрТСнности уязвимости ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ «/sys/devices/system/cpu/vulnerabilities/reg_file_data_sampling».
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° базовая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ гостСвых систСм ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ AMD SEV-SNP (Secure Nested Paging), ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ страниц памяти ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΡ‚ Π°Ρ‚Π°ΠΊ «undeSErVed» ΠΈ «SEVerity» Π½Π° процСссоры AMD EPYC, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ±ΠΎΠΉΡ‚ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ AMD SEV (Secure Encrypted Virtualization). Π’ KVM Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для использования SNP измСнСния ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Π²Π΅Ρ‚ΠΊΠ΅ 6.10.
    • ΠœΠΎΠ΄ΡƒΠ»ΠΈ с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ IMA (Integrity Measurement Architecture) ΠΈ Π•VM (Extended Verification Module) ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π° использованиС Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° LSM (Linux Security Modules), Ρ‡Ρ‚ΠΎ Π±Π΅Π· ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΡƒΡŽΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ доступныС Ρ‡Π΅Ρ€Π΅Π· LSM Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ возмоТности. ΠœΠΎΠ΄ΡƒΠ»ΡŒ IMA ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ цСлостности ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΏΠΎ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ подписям ΠΈ Ρ…ΡΡˆΠ°ΠΌ. ΠœΠΎΠ΄ΡƒΠ»ΡŒ EVM позволяСт Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Ρ„Π°ΠΉΠ»ΠΎΠ² (xattrs) ΠΎΡ‚ Π°Ρ‚Π°ΠΊ, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Π½Π° Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΈΡ… цСлостности (EVM Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ offline-Π°Ρ‚Π°ΠΊΡƒ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ²ΡˆΠΈΡΡŒ со своСго накопитСля).
    • ΠŸΠ΅Ρ€Π΅Π΄Π΅Π»Π°Π½Ρ‹ для большСй совмСстимости с 32-разрядными окруТСниями систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ lsm_list_modules(), lsm_get_self_attr() ΠΈ lsm_set_self_attr(), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для Π²Ρ‹Π²ΠΎΠ΄Π° списка Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… LSM-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ (Linux Security Modules) ΠΈ получСния/выставлСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² LSM-модуля. ИзмСнСниС Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ, Π½ΠΎ Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½ΠΎΠ²Ρ‹Π΅ систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ выпускС ядра ΠΈ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² прилоТСниях, Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ посчитал, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ допустимо.
    • ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚Π° ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° возобновлСния использования ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° UBSAN (Undefined Behavior Sanitizer). Π‘ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ компиляторы ΠΏΠΎ Ρ€Π°Π·Π½ΠΎΠΌΡƒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ цСлочислСнныС пСрСполнСния Π·Π½Π°ΠΊΠΎΠ²Ρ‹Ρ… ΠΈ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π—Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ пСрСполнСния ΠΈ пСрСполнСния ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ относятся ΠΊ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ повСдСния, Π° Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ пСрСполнСния ΠΎΡ‚ΡΠ΅ΠΊΠ°ΡŽΡ‚ΡΡ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ 2n с сохранСниСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ»Π°Π΄ΡˆΠΈΡ… Π±ΠΈΡ‚ΠΎΠ² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° («wrap-around») ΠΈ Π½Π΅ ΠΏΠΎΠ΄ΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΏΠΎΠ΄ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ситуации с Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ повСдСния ядро собираСтся с ΠΎΠΏΡ†ΠΈΠ΅ΠΉ «-fno-strict-overflow», которая ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ использованию «wrap-around» для всСх цСлочислСнных ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ. GCC ΠΈ Clang Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ использовании Ρ„Π»Π°Π³Π° «-fno-strict-overflow» ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ UBSAN Π½Π°Ρ†Π΅Π»Π΅Π½ΠΎ Π½Π° ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ совмСстной с Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ компиляторов Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ ΡƒΡΡ‚Ρ€Π°Π½Π΅Π½ΠΈΡŽ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… Π»ΠΎΠΆΠ½Ρ‹Ρ… срабатываний ΠΈ выявлСния цСлочислСнных ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π² мСстах, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ явныС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

      Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ Π² ядрС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ конструкции Π²ΠΈΠ΄Π° «var + offset < var" (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, "if (pgoff + (size > PAGE_SHIFT) < pgoff){..}"), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ завязаны Π½Π° сборку с Ρ„Π»Π°Π³ΠΎΠΌ "-fno-strict-overflow" ΠΈ Π½Π΅ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ вСсь ΠΊΠΎΠ΄, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании UBSAN ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ большого числа Π»ΠΎΠΆΠ½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ, ΠΈ ΠΈΠ·-Π·Π° этого Π² 2021 Π³ΠΎΠ΄Ρƒ UBSAN ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ. Π’ ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ __signed_wrap ΠΈ __unsigned_wrap, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ макросы с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°ΠΌΠΈ add_would_overflow(a, b) ΠΈ add_wrap(a, b), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ прСдусмотрСнноС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ использования цСлочислСнных ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ ΠΎΡ‚ возникновСния случайных ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ, способных привСсти ΠΊ уязвимостям. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»ΠΊΠΈ ядра с Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Ρ‚ΠΈΠΏΠΎΠ² ΠΎΡ‚Π²Π΅Ρ€Π³Π½ΡƒΡ‚ΠΎ Линусом Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄ΡΠΎΠΌ.

  • БСтСвая подсистСма
    • Π’ сСтСвой подсистСмС ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ сниТСнию возникновСния ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ («lock contention», ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ, ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡƒΡŽ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ). Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΎ использования Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ RTNL.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΈΠ½Π³Π° сокСтов (busy polling) Π² контСкстС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² epoll. Π Π°Π·ΠΌΠ΅Ρ€ ΠΏΡƒΠ»Π° ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π° ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ систСмных ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.
    • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° структура net_hotdata для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… сСтСвой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.
    • Π’ MPTCP Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° установки для сокСтов ΠΎΠΏΡ†ΠΈΠΈ TCP_NOTSENT_LOWAT, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΡ„Π΅Ρ€Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ. Π’ API для сокСтов MCTP Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠ½Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² сСти («network ID»), Π΄Π°ΡŽΡ‰ΠΈΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ хостС нСсколько Π½Π΅ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‰ΠΈΡ…ΡΡ сСтСй MCTP.
    • Π’ IPSec Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° пСрСнаправлСния ICMP-сообщСний с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… (RFC 4301).
    • УскорСн процСсс сканирования ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ² с ΠΈΡΡ‚Π΅ΠΊΡˆΠΈΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΆΠΈΠ·Π½ΠΈ.
    • УскорСна Ρ€Π°Π±ΠΎΡ‚Π° XDP, благодаря Π±ΠΎΠ»Π΅Π΅ Тёсткому избСганию выдСлСния Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ² памяти.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прикрСплСния ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ сообщСниям netconsole.
    • Π’ Netfilter Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· пространства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Ρ‚Π°Π±Π»ΠΈΡ†, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅ΠΌΡƒ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌΡƒ процСссу ΠΈ Π½Π΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ автоматичСски послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ прилоТСния.
    • Π’ nftables ускорСно Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² set-Π½Π°Π±ΠΎΡ€Ρ‹ с ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Ρ‘Π½Π½Ρ‹ΠΌΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌΠΈ.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ i915 ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ‡ΠΈΠΏΠΎΠ² Intel LunarLake (Xe 2). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ PCI-ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ для устройств Π½Π° Π±Π°Π·Π΅ Ρ‡ΠΈΠΏΠΎΠ² Intel Arrow Lake ΠΈ Alder Lake N. Для Displayport Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚ΡƒΠ½Π½Π΅Π»ΠΈΠ½Π³Π° (DP tunneling) ΠΈ выдСлСния пропускной способности (bandwidth allocation). Для всСх ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Ρ€Π΅ΠΆΠΈΠΌ fastboot. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° Π² привязкС ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ устройствам.
    • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ AMDGPU ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ GPU AMD RDNA3.5 ΠΈ RDNA4. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ATHUB 4.1, LSDMA 7.0, JPEG DPG, IH 7.0, HDP 7.0, VCN 5.0, SMU 13.0.6, NBIO 7.11, SDMA 6.1, MMHUB 3.3, DCN 3.5.1, NBIF 6.3.1, VPE 6.1.1 ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° RAS ACA. Π’ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ядра Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ freesync_video для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΠΎΠ² с использованиСм Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠΉ синхронизации FreeSync.
    • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ Nouveau ΠΊΠΎΠ΄ управлСния экраном ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½ Π½Π° использованиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ kmemdup().
    • ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ drm-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ (Direct Rendering Manager) Xe для GPU Π½Π° Π±Π°Π·Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Intel Xe, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Π°Ρ… Intel сСмСйства Arc ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅, начиная с процСссоров Tiger Lake.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ DRM-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для Ρ‡ΠΈΠΏΠΎΠ² Mediatek MT8188 VDOSYS1.
    • БвязанныС с видСоподсистСмами настройки ядра пСрСнСсСны Π² ΡΠ΅ΠΊΡ†ΠΈΡŽ CONFIG_VIDEO.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ARM64 SoC: Mediatek MT7981B (Filogic 820), MT7988A (Filogic 880), NXP i.MX8DXP, Renesas R8A779G2 (R-Car V4H ES2.0), R8A779H0 (R-Car V4M), TI J722S.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ARM-ΠΏΠ»Π°Ρ‚ ΠΈ устройств: Android-Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρ‹ Π½Π° Π±Π°Π·Π΅ Ρ‡ΠΈΠΏΠ° Tegra30, ΠΌΠΎΠ΄Π΅Π»ΠΈ Chromebook Π½Π° Π±Π°Π·Π΅ Mediatek MT8186, NAS, ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Ρ‹ ΠΈ ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Π΅ консоли Π½Π° Π±Π°Π·Π΅ Rockchips RK35xx, ΠΏΠ»Π°Ρ‚Ρ‹ White Hawk Π½Π° Π±Π°Π·Π΅ SoC Renesas, ΠΏΠ»Π°Ρ‚Ρ‹ Π½Π° Π±Π°Π·Π΅ Qualcomm SM8550 (Snapdragon 8 Gen 2), Apalis Evaluation Board, Sielaff i.MX6 Solo Board, Samsung Galaxy Tab 4 10.1 LTE.
    • ΠŸΡ€ΠΎΠ²Π΅Π΄Ρ‘Π½ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΠΎΠ΄Π° Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ подсистСмы ALSA. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Ρ… систСм Microchip SAM9x7, NXP i.MX95 ΠΈ Qualcomm WCD939x. Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ SoundWire Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ASoC со Π·Π²ΡƒΠΊΠΎΠ²Ρ‹ΠΌΠΈ сопроцСссорами AMD ACP 6.3, Π° для систСм Intel Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ€Π΅ΠΆΠΈΠΌ DSPless. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠ΄Π΅ΠΊΠΎΠ² Cirrus HD. Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ virtio ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π²ΡƒΠΊΠΎΠ²Ρ‹ΠΌΠΈ устройствами.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ethernet-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² Marvell Octeon PCI Endpoint NIC VF ΠΈ Intel E825-C 100G.

ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ латиноамСриканский Π€ΠΎΠ½Π΄ свободного ПО сформировал Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ свободного ядра 6.9 — Linux-libre 6.9-gnu, ΠΎΡ‡ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚ элСмСнтов ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², содСрТащих нСсвободныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ»ΠΈ участки ΠΊΠΎΠ΄Π°, ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ. Π’ выпускС 6.9 ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ ΠΊΠΎΠ΄ чистки Π±Π»ΠΎΠ±ΠΎΠ² Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… amdgpu, ath12k, adreno, btusb ΠΈ r8169. ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° чистка Π½ΠΎΠ²ΠΎΠ³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ptp_fc3. ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° чистка ΠΈΠΌΡ‘Π½ Π±Π»ΠΎΠ±ΠΎΠ² Π² dts-Ρ„Π°ΠΉΠ»Π°Ρ… (devicetree) для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Aarch64. УстранСны ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с чисткой Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° i915, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡˆΠΈΠ΅ ΠΊ зависанию Π²ΠΎ врСмя ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. ВнСсСны измСнСния, связанныС с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π±Π»ΠΎΠ±ΠΎΠ², поставляСмых Π² Π²ΠΈΠ΄Π΅ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°ΠΌΠΏΠΎΠ².

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