ΠΠΎΡΠ»Π΅ Π΄Π²ΡΡ ΠΌΠ΅ΡΡΡΠ΅Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»ΡΠ΄Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» ΡΠ΅Π»ΠΈΠ· ΡΠ΄ΡΠ° Linux 5.18. Π‘ΡΠ΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π° Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠΈΡΡΠΊΠ° ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π° ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ Π€Π‘ Reiserfs, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠΎΠ±ΡΡΠΈΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΡΠΊΡΠΏΠ»ΠΎΠΈΡΠΎΠ² Intel IBT, Π²ΠΊΠ»ΡΡΡΠ½ ΡΠ΅ΠΆΠΈΠΌ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΡΠ΅ΡΠΎΠ² ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ memcpy(), Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ fprobe, ΠΏΠΎΠ²ΡΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π·Π°Π΄Π°Ρ Π½Π° CPU AMD Zen, Π² ΡΠΎΡΡΠ°Π² Π²ΠΊΠ»ΡΡΡΠ½ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ CPU Intel (SDS), ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π° ΡΠ°ΡΡΡ ΠΏΠ°ΡΡΠ΅ΠΉ Π΄Π»Ρ ΡΠ΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ° C11.
Π Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠ½ΡΡΠΎ 16206 ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΎΡ 2127 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² (Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ Π±ΡΠ»ΠΎ 14203 ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ 1995 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²), ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΡΡΠ° — 108 ΠΠ (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°ΡΡΠΎΠ½ΡΠ»ΠΈ 14235 ΡΠ°ΠΉΠ»ΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 1340982 ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΡΠ΄Π°Π»Π΅Π½ΠΎ 593836 ΡΡΡΠΎΠΊ). ΠΠΊΠΎΠ»ΠΎ 44% Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π² 5.18 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ²ΡΠ·Π°Π½Ρ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ², ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 16% ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ, 11% ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΡΡΠ΅ΠΊΠΎΠΌ, 3% — Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΠΈ 3% c Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΡΠ΄ΡΠ°.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π° Π² ΡΠ΄ΡΠ΅ 5.18:
- ΠΠΈΡΠΊΠΎΠ²Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°, Π²Π²ΠΎΠ΄/Π²ΡΠ²ΠΎΠ΄ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ
- Π ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Btrfs Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΠ±ΡΠΎΡΠ° ΡΠΆΠ°ΡΡΡ
Π΄Π°Π½Π½ΡΡ
ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ send ΠΈ receive. Π Π°Π½Π΅Π΅ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ send/receive ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΠ°Ρ ΡΡΠΎΡΠΎΠ½Π° ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π»Π° Π΄Π°Π½Π½ΡΠ΅, Ρ
ΡΠ°Π½ΠΈΠΌΡΠ΅ Π² ΡΠΆΠ°ΡΠΎΠΌ Π²ΠΈΠ΄Π΅, Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ°Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠΆΠΈΠΌΠ°Π»Π° ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΠΈΡΡΡ. Π ΡΠ΄ΡΠ΅ 5.18 ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌ Π²ΡΠ·ΠΎΠ²Ρ send/receive, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΆΠ°ΡΡΡ
Π΄Π°Π½Π½ΡΡ
Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π½ΠΎΠ²ΡΠΌ ioctl-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ BTRFS_IOC_ENCODED_READ ΠΈ BTRFS_IOC_ENCODED_WRITE, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΌ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠΈΡΠ°ΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠΊΡΡΠ΅Π½ΡΡ.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² Btrfs ΠΏΠΎΠ²ΡΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ fsync. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π΅Π΄ΡΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ reflink (ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»Π° Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π±Π΅Π· ΠΈΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ) Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΡ ΡΠΎΡΠΊΠ°ΠΌΠΈ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
- Π ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° (Direct I/O) ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π² fscrypt inline-ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°ΡΡΠΈΡΡΠΎΠ²ΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠΈΠ»Π°ΠΌΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ, Π° Π½Π΅ ΡΠ΄ΡΠ°. ΠΡΠΈ ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΈΠ»Π°ΠΌΠΈ ΡΠ΄ΡΠ° Π΄ΠΎΡΡΡΠΏ ΠΊ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Direct I/O ΠΊΠ°ΠΊ ΠΈ ΡΠ°Π½ΡΡΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΈΠ½ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠ΄ΡΠ΅.
- Π NFS-ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° NFSv3, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΡΠΈ ΠΎΠ±ΡΠ΅ΠΌ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ NFS. NFSv3 ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠ°Ρ Π²Π΅ΡΡΠΈΡ NFS, Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° NFSv2 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π°. ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠ΅Π½Π° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ².
- Π€Π°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ReiserFS ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π° Π² ΡΠ°Π·ΡΡΠ΄ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π² 2025 Π³ΠΎΠ΄Ρ. ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ReiserFS Π² ΡΠ°Π·ΡΡΠ΄ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΡΡΠ΄ΠΎΠ·Π°ΡΡΠ°ΡΡ Π½Π° ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠΈΡ Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π½ΠΎΠ²ΠΎΠ³ΠΎ API Π΄Π»Ρ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, iomap ΠΈ ΡΠΎΠ»ΠΈΠ°Π½ΡΠΎΠ².
- ΠΠ»Ρ Π€Π‘ F2FS ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΡΠΈΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΡΠΈΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΡΠΆΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
- ΠΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΡΡΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°Ρ Device-mapper, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΡΠΎΡΠ½ΠΎΡΡΡ Π°ΠΊΠΊΠ°ΡΠ½ΡΠΈΠ½Π³Π° Π² ΡΠ°ΠΊΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°Ρ , ΠΊΠ°ΠΊ dm-crypt.
- ΠΠ»Ρ ΡΡΡΡΠΎΠΉΡΡΠ² NVMe ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΌΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ.
- ΠΠ»Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ exfat ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π½ΠΎΠ²Π°Ρ ΠΎΠΏΡΠΈΡ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ «keep_last_dots», Π·Π°ΠΏΡΠ΅ΡΠ°ΡΡΠ°Ρ ΠΎΡΠΈΡΡΠΊΡ ΡΠΎΡΠ΅ΠΊ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° (Π² Windows ΡΠΎΡΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ΄Π°Π»ΡΡΡΡΡ).
- Π EXT4 ΠΏΠΎΠ²ΡΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ΅ΠΆΠΈΠΌΠ° fast_commit ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡ. ΠΠΏΡΠΈΡ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ «mb_optimize_scan», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π€Π‘, Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Ρ ΡΠΊΡΡΠ΅Π½ΡΠ°ΠΌΠΈ.
- ΠΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠΎΡΠΎΠΊΠΎΠ² Π·Π°ΠΏΠΈΡΠΈ (write stream) Π² ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ Π±Π»ΠΎΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ². Π£ΠΊΠ°Π·Π°Π½Π½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΠ»Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΄Π»Ρ SSD, Π½ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»Π° ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ΅ΠΉΡΠ°Ρ Π² ΠΎΠ±ΠΈΡ ΠΎΠ΄Π΅ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΈ ΠΌΠ°Π»ΠΎΠ²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΡΠ²ΡΡΡΡ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
- Π ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Btrfs Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΠ±ΡΠΎΡΠ° ΡΠΆΠ°ΡΡΡ
Π΄Π°Π½Π½ΡΡ
ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ send ΠΈ receive. Π Π°Π½Π΅Π΅ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ send/receive ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΠ°Ρ ΡΡΠΎΡΠΎΠ½Π° ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π»Π° Π΄Π°Π½Π½ΡΠ΅, Ρ
ΡΠ°Π½ΠΈΠΌΡΠ΅ Π² ΡΠΆΠ°ΡΠΎΠΌ Π²ΠΈΠ΄Π΅, Π° ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ°Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠΆΠΈΠΌΠ°Π»Π° ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΠΈΡΡΡ. Π ΡΠ΄ΡΠ΅ 5.18 ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΌ Π²ΡΠ·ΠΎΠ²Ρ send/receive, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΆΠ°ΡΡΡ
Π΄Π°Π½Π½ΡΡ
Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π½ΠΎΠ²ΡΠΌ ioctl-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌ BTRFS_IOC_ENCODED_READ ΠΈ BTRFS_IOC_ENCODED_WRITE, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΌ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠΈΡΠ°ΡΡ ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠΊΡΡΠ΅Π½ΡΡ.
- ΠΠ°ΠΌΡΡΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ
- ΠΠ°ΡΠ°Π»Π°ΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π½Π°Π±ΠΎΡΠ° ΠΏΠ°ΡΡΠ΅ΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ° Π·Π° ΡΡΡΡ ΡΠ΅ΡΡΡΡΠΊΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ»Π° ΠΏΠ΅ΡΠ΅ΠΊΡΡΡΡΠ½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ. Π ΡΠΎΡΡΠ°Π² ΡΠ΄ΡΠ° 5.18 Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΏΠ°ΡΡΠΈ, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π·Π°Π΄Π°Ρ (kernel/sched). ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΏΡΠΎΡΠ»ΡΠΌ Π²ΡΠΏΡΡΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΠΊΠΎΠ΄Π° kernel/sched/ ΡΠΎΠΊΡΠ°ΡΠΈΠ»ΠΎΡΡ Π½Π° 61%, Π° ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΡΠΌΠ΅Π½ΡΡΠΈΠ»ΠΎΡΡ Π½Π° 3.9% (Ρ 2.95 Π΄ΠΎ 2.84 ΡΠ΅ΠΊ).
- Π ΠΊΠΎΠ΄Π΅ ΡΠ΄ΡΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°Π½Π΄Π°ΡΡΠ° C11, ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π² 2011 Π³ΠΎΠ΄Ρ. Π Π°Π½Π΅Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΡΠΉ Π² ΡΠ΄ΡΠΎ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΠ» ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ANSI C (Π‘89), ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π΅ΡΡ Π² 1989 Π³ΠΎΠ΄Ρ. Π ΡΠ±ΠΎΡΠΎΡΠ½ΡΡ ΡΠΊΡΠΈΠΏΡΠ°Ρ ΡΠ΄ΡΠ° 5.18 ΠΎΠΏΡΠΈΡ ‘—std=gnu89’ Π·Π°ΠΌΠ΅Π½Π΅Π½Π° Π½Π° ‘—std=gnu11 -Wno-shift-negative-value’. Π Π°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π»Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ° C17, Π½ΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΠΏΠΎΠ²ΡΡΠ°ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π²Π΅ΡΡΠΈΡ GCC, Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ C11 ΡΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ΅ΠΊΡΡΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π²Π΅ΡΡΠΈΠΈ GCC (5.1).
- ΠΠΎΠ²ΡΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°Π΄Π°Ρ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ AMD Ρ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Zen, Π² ΠΊΠΎΡΠΎΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ·Π»Π° Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΊΠ°Π½Π°Π»Π°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΡΡΠ΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ (LLC, Last Level Cache). Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΡΡΡΠ°Π½ΡΠ½ Π΄ΠΈΡΠ±Π°Π»Π°Π½Ρ LLC ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ·Π»Π°ΠΌΠΈ NUMA, ΡΡΠΎ ΠΏΡΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π²ΠΈΠ΄Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΏΡΠΈΠ²Π΅Π»ΠΎ ΠΊ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
- Π Π°ΡΡΠΈΡΠ΅Π½Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ΄ΡΠ° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ (User events) ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π΄Π°Π½Π½ΡΡ Π² Π±ΡΡΠ΅Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΠ΅ΡΠ΅Π· ΡΠΈΠΏΠΎΠ²ΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ΄ΡΠ°, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ftrace ΠΈ perf. Π‘ΠΎΠ±ΡΡΠΈΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠ· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½Ρ ΠΎΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ΄ΡΠ°. Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅Π½ΠΎ ΡΠ΅ΡΠ΅Π· ΡΠ°ΠΉΠ» /sys/kernel/debug/tracing/user_events_status, Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΡ ΠΈ Π·Π°ΠΏΠΈΡΡ Π΄Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ°ΠΉΠ» /sys/kernel/debug/tracing/user_events_data.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ (probe) Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ — fprobe. API fprobe ΠΎΡΠ½ΠΎΠ²Π°Π½ Π½Π° ftrace, Π½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ callback-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΊ ΡΠΎΡΠΊΠ°ΠΌ Π²Ρ ΠΎΠ΄Π° Π² ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ kprobes ΠΈ kretprobes, Π½ΠΎΠ²ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΡΠ°Π·Ρ Π΄Π»Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
- ΠΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠ°ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² ARM (ARMv4 ΠΈ ARMv5), Π½Π΅ ΠΎΡΠ½Π°ΡΡΠ½Π½ΡΡ Π±Π»ΠΎΠΊΠΎΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ (MMU). ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΈΡΡΠ΅ΠΌ ARMv7-M Π±Π΅Π· MMU ΡΠΎΡ ΡΠ°Π½Π΅Π½Π°.
- ΠΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° RISC-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ NDS32, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠ΅ΠΉΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Andes Technologies. ΠΠΎΠ΄ ΡΠ΄Π°Π»ΡΠ½ ΠΈΠ·-Π·Π° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ Π½Π΅Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ NDS32 Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠ΄ΡΠ΅ Linux (ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ° ΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ).
- ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π° ΡΠ±ΠΎΡΠΊΠ° ΡΠ΄ΡΠ° Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠΎΡΠΌΠ°ΡΠ° ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² a.out Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ alpha ΠΈ m68k, Π² ΠΊΠΎΡΠΎΡΡΡ Π΄Π°Π½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ. ΠΠ΅ΡΠΎΡΡΠ½ΠΎ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅Π³ΠΎ ΡΠΎΡΠΌΠ°ΡΠ° a.out Π² ΡΠΊΠΎΡΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ΄Π°Π»Π΅Π½Π° ΠΈΠ· ΡΠ΄ΡΠ°. ΠΠ»Π°Π½Ρ ΠΏΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ° a.out ΠΎΠ±ΡΡΠΆΠ΄Π°ΡΡΡΡ Ρ 2019 Π³ΠΎΠ΄Π°.
- ΠΠ»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ PA-RISC ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° vDSO (virtual dynamic shared objects), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΠΉ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° vDSO ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ° Ρ Π½Π΅ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΌ ΡΡΠ΅ΠΊΠΎΠΌ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Intel HFI (Hardware Feedback Interface), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠ΄ΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ½Π΅ΡΠ³ΠΎΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ CPU.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Intel SDSi (Software-Defined Silicon), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΊΡΡ-ΠΏΠ°ΠΌΡΡΡ). ΠΠ΄Π΅Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΏΠΎ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠ΅Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΈΠΏΡ Ρ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ «Π΄ΠΎΠΊΡΠΏΠΈΡΡ» ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±Π΅Π· Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ Π·Π°ΠΌΠ΅Π½Ρ ΡΠΈΠΏΠ°.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π΄ΡΠ°ΠΉΠ²Π΅Ρ amd_hsmp Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° AMD HSMP (Host System Management Port), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠ½ΠΊΡΠΈΡΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ ΡΠ΅ΡΠ΅Π· Π½Π°Π±ΠΎΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², ΠΏΠΎΡΠ²ΠΈΠ²ΡΠΈΡ ΡΡ Π² ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ AMD EPYC Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ Fam19h. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΡΠ΅Π· HSMP ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠ± ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠΈ ΠΈ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ΅, Π²ΡΡΡΠ°Π²ΠΈΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π° ΡΠ°ΡΡΠΎΡΡ, Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΠ°ΠΌΡΡΠΈ.
- Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° io_uring ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΎΠΏΡΠΈΡ IORING_SETUP_SUBMIT_ALL Π΄Π»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π² ΠΊΠΎΠ»ΡΡΠ΅Π²ΠΎΠΌ Π±ΡΡΠ΅ΡΠ΅ Π½Π°Π±ΠΎΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ IORING_OP_MSG_RING, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΈΠ³Π½Π°Π» ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ»ΡΡΠ΅Π²ΠΎΠΉ Π±ΡΡΠ΅Ρ.
- Π ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ΅ DAMOS (Data Access Monitoring-based Operation Schemes), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΌ Π²ΡΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ Ρ ΡΡΡΡΠΎΠΌ ΡΠ°ΡΡΠΎΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΡΡΠΈΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ Ρ ΠΏΠ°ΠΌΡΡΡΡ ΠΈΠ· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
- ΠΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π° ΡΡΠ΅ΡΡΡ ΡΠ΅ΡΠΈΡ ΠΏΠ°ΡΡΠ΅ΠΉ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΡΠΎΠ»ΠΈΠ°Π½ΡΠΎΠ² ΡΡΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ (page folios), ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ½Π½ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠ°ΠΌΡΡΠΈ (compound pages), Π½ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΡΠ»ΡΡΡΠ΅Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠΎΠΉ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ»ΠΈΠ°Π½ΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ΡΠ΄ΡΠ°. Π ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΏΠ°ΡΡΠ°Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ½ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ Π½Π° ΡΠΎΠ»ΠΈΠ°Π½ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ get_user_pages(). ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΎΠ»ΠΈΠ°Π½ΡΠΎΠ² Π² ΠΊΠΎΠ΄Π΅ ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅Π³ΠΎ ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
- Π ΡΠ±ΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ USERCFLAGS ΠΈ USERLDFLAGS, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ»Π°Π³ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΡ.
- Π ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅ eBPF Π² ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ΅ BTF (BPF Type Format), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΌ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ² Π² ΠΏΡΠ΅Π²Π΄ΠΎΠΊΠΎΠ΄Π΅ BPF, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π°Π½Π½ΠΎΡΠ°ΡΠΈΠΉ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ, ΡΡΡΠ»Π°ΡΡΠΈΠΌΡΡ Π½Π° ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ½Π½ΠΎΡΠ°ΡΠΈΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ BPF-ΠΊΠΎΠ΄Π° Π±ΠΎΠ»Π΅Π΅ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ Π²ΡΡΠ²Π»ΡΡΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ.
- ΠΡΠ΅Π»ΠΎΠΆΠ΅Π½ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π·Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ BPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ Π² ΡΠΈΡΡΠ°ΡΠΈΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° BPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
- Π ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² madvise(), ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ»Π°Π³ MADV_DONTNEED_LOCKED, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠΉΡΡ ΡΠ»Π°Π³ MADV_DONTNEED, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΄ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ ΡΠΎΠΎΠ±ΡΠΈΡΡ ΠΎ Π³ΠΎΡΠΎΠ²ΡΡΠ΅ΠΌΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ Π±Π»ΠΎΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ, Ρ.Π΅. ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠΎΡ Π±Π»ΠΎΠΊ ΡΠΆΠ΅ Π½Π΅ Π½ΡΠΆΠ΅Π½ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ΄ΡΠΎΠΌ. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ MADV_DONTNEED ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»Π°Π³Π° MADV_DONTNEED_LOCKED Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ Π΄Π»Ρ Π·Π°ΠΊΡΠ΅ΠΏΠ»ΡΠ½Π½ΡΡ Π² ΠΠΠ£ ΡΡΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ madvise Π²ΡΡΠ΅ΡΠ½ΡΡΡΡΡ Π±Π΅Π· ΡΠΌΠ΅Π½Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π·Π°ΠΊΡΠ΅ΠΏΠ»ΡΠ½Π½ΠΎΠ³ΠΎ ΡΡΠ°ΡΡΡΠ° ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π±Π»ΠΎΠΊΡ ΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ «page fault» Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π°Π³ MADV_DONTNEED Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π² HugeTLB.
- ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
- ΠΠ»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ x86 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π°ΡΠΈΡΡ ΠΏΠΎΡΠΎΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Intel IBT (Indirect Branch Tracking), ΠΌΠ΅ΡΠ°ΡΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅Ρ Π½ΠΈΠΊ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΡΠΊΡΠΏΠ»ΠΎΠΈΡΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΡΠΌΠΎΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ROP, Return-Oriented Programming), ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΡΡ ΡΠΊΡΠΏΠ»ΠΎΠΈΡ ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ Π² ΡΠΎΡΠΌΠ΅ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΊΡΡΠΊΠΎΠ² ΠΌΠ°ΡΠΈΠ½Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π·Π°Π²Π΅ΡΡΠ°ΡΡΠΈΡ ΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ). Π‘ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π°ΡΠΈΡΡ Π² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΡΠ²Π΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² Π² ΡΠ΅Π»ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π½Π°ΡΠ°Π»Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ENDBR ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎ ΠΊΠΎΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π½Π° ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ (ΠΊΠΎΡΠ²Π΅Π½Π½ΡΠΉ Π²ΡΠ·ΠΎΠ² ΡΠ΅ΡΠ΅Π· JMP ΠΈ CALL Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ENDBR, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π° Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ).
- ΠΠΊΠ»ΡΡΠ΅Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΎΠ³Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π³ΡΠ°Π½ΠΈΡ Π±ΡΡΠ΅ΡΠΎΠ² Π² ΡΡΠ½ΠΊΡΠΈΡΡ memcpy(), memmove() ΠΈ memset(), Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠ΅ΠΆΠΈΠΌΠ° CONFIG_FORTIFY_SOURCE. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Π²ΡΡ ΠΎΠ΄Π° Π·Π° Π³ΡΠ°Π½ΠΈΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΡΡΡΠΊΡΡΡ, ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½. ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π±Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ memcpy() ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΡΠ΅ΡΠ° Π² ΡΠ΄ΡΠ΅, Π²ΡΡΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΠΌΠ΅ΡΠ΅ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΡΠΈ Π³ΠΎΠ΄Π°.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΡΠΎΡΠ°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» RDRAND, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠ΅Π³ΠΎ Π·Π° ΡΠ°Π±ΠΎΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² /dev/random ΠΈ /dev/urandom. ΠΠΎΠ²Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½Π° ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ /dev/random ΠΈ /dev/urandom, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π·Π°ΡΠΈΡΡ ΠΎΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π΄ΡΠ±Π»ΠΈΠΊΠ°ΡΠΎΠ² Π² ΠΏΠΎΡΠΎΠΊΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½ ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠΌ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ Π΅Ρ-ΡΡΠ½ΠΊΡΠΈΠΈ BLAKE2s Π²ΠΌΠ΅ΡΡΠΎ SHA1 Π΄Π»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ ΡΠ½ΡΡΠΎΠΏΠΈΠΈ. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΏΠΎΠ²ΡΡΠΈΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° ΠΏΡΠ΅Π²Π΄ΠΎΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π», Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° SHA1 ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ Π²Π΅ΠΊΡΠΎΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ RNG. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π°Π»Π³ΠΎΡΠΈΡΠΌ BLAKE2s ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π΅Ρ SHA1 ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠΎ Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΡΠ°Π·ΠΈΠ»ΠΎΡΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
- ΠΠ»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ARM64 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ — «QARMA3», ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΡΡΡΠ΅Π΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° QARMA ΠΏΡΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π·Π°ΡΠΈΡΡ. Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ARM64 Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π°Π΄ΡΠ΅ΡΠΎΠ² Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠΈΡΡΠΎΠ²ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΡΠ°Π½ΡΡΡΡ Π² Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π²Π΅ΡΡ Π½ΠΈΡ Π±ΠΈΡΠ°Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ.
- ΠΠ»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ARM64 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ±ΠΎΡΠΊΠΈ Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π² GCC 12 ΡΠ΅ΠΆΠΈΠΌΠ° Π·Π°ΡΠΈΡΡ ΠΎΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠΈ Π°Π΄ΡΠ΅ΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±ΡΡΠ΅ΡΠ° Π² ΡΡΠ΅ΠΊΠ΅. Π‘ΡΡΡ Π·Π°ΡΠΈΡΡ Π² ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π°Π΄ΡΠ΅ΡΠ° Π²ΠΎΠ·Π²ΡΠ°ΡΠ° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ «ΡΠ΅Π½Π΅Π²ΠΎΠΌ» ΡΡΠ΅ΠΊΠ΅ ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ (keyring) — «machine», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΠΊΠ»ΡΡΠΈ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΡ (MOK, Machine Owner Keys), ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π² shim-Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ΅. Π£ΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΊΠ»ΡΡΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π·Π°Π²Π΅ΡΠ΅Π½ΠΈΡ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠ΄ΡΠ°, Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΡ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ ΠΏΠΎΡΠ»Π΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΄ΡΠ°).
- Π£Π΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΡΡ Π·Π°ΠΊΡΡΡΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π΄Π»Ρ TPM, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ Π² ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ TPM, ΠΈΠΌΠ΅ΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ ΠΈ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π·Π°ΡΠΈΡΠ° Π΄Π°Π½Π½ΡΡ Ρ ΡΠΈΠΏΠΎΠΌ size_t ΠΎΡ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ. Π ΠΊΠΎΠ΄Π΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ size_mul(), size_add() ΠΈ size_sub(), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΡΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² Ρ ΡΠΈΠΏΠΎΠΌ size_t.
- ΠΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΡΠ΄ΡΠ° Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠ»Π°Π³ΠΈ «-Warray-bounds» ΠΈ «-Wzero-length-bounds», Π²ΡΠ²ΠΎΠ΄ΡΡΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅ ΠΈΠ½Π΄Π΅ΠΊΡΠ° Π·Π° Π³ΡΠ°Π½ΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² Π½ΡΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ.
- Π ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ virtio-crypto Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° RSA.
- Π‘Π΅ΡΠ΅Π²Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°
- Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΌΠΎΡΡΠΎΠ² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΅ΠΆΠΈΠΌΠ° ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΏΠΎΡΡΠΎΠ² (locked mode), ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΡΠ°ΡΠΈΠΊ ΡΠ΅ΡΠ΅Π· ΠΏΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΠΎΠ³ΠΎ MAC-Π°Π΄ΡΠ΅ΡΠ°. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΡΠΊΡΡΡ Π΄Π»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° STP (Spanning Tree Protocol). Π Π°Π½Π΅Π΅ Π΄Π»Ρ VLAN ΠΌΠΎΠ³Π»Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΡΠΌΠ°Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΊ STP (1:1), ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠ°ΠΆΠ΄ΡΠΉ VLAN ΡΠΏΡΠ°Π²Π»ΡΠ»ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ. Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ mst_enable, ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ VLAN-ΠΎΠ² ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ MST (Multiple Spanning Trees) ΠΈ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° VLAN-ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ M:N.
- ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠ΅ΠΊ ΡΡΠ΅Π΄ΡΡΠ² Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΡΠΈΠ½ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² (ΠΊΠΎΠ΄Ρ reason). ΠΠΎΠ΄ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ, ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΊ ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΠ·-Π·Π° ΠΎΡΠΈΠ±ΠΎΠΊ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅, Π²ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΏΡΡΠΈΠ½Π³Π° ΡΠΈΠ»ΡΡΡΠΎΠΌ rp_filter, Π½Π΅Π²Π΅ΡΠ½Π°Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ ΡΡΠΌΠΌΠ°, Π½Π΅Ρ Π²Π°ΡΠΊΠ° ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ» IPSec XFRM, Π½Π΅Π²Π΅ΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ TCP ΠΈ Ρ.ΠΏ.
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΈΠ· BPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΠΈΠ· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ BPF_PROG_RUN ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ BPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΠ΄ΡΠ΅, Π½ΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ°ΠΊΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ XDP (eXpress Data Path). ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ live-ΡΠ΅ΠΆΠΈΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ XDP-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π½Π° Π»Π΅ΡΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠ΅ΠΊ ΠΈΠ»ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΡΠ΅Π²ΡΡ ΠΊΠ°Π΄ΡΠΎΠ² Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΡΠ΅ΠΊ.
- ΠΠ»Ρ BPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΠ΅ΠΌΡΡ ΠΊ ΡΠ΅ΡΠ΅Π²ΡΠΌ cgroups, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ²Π½ΠΎΠ³ΠΎ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΈΡΠΈΠ½Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°.
- Π ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ XDP (eXpress Data Path) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΠΌΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π±ΡΡΠ΅ΡΠ°Ρ , ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π² XDP Jumbo-ΠΊΠ°Π΄ΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ TSO/GRO (TCP Segmentation Offload/Generic Receive Offload) Π΄Π»Ρ XDP_REDIRECT.
- ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΡΠ½, ΡΡΠΎ Π±ΡΠ»ΠΎ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΎ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΡΡΠΏΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΎΠ±ΡΡΠΌΠΎΠΌ ΡΡΠ°ΡΠΈΠΊΠ°.
- ΠΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ amdgpu ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΠΎΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ FreeSync, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΠΎΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° ΡΠΊΡΠ°Π½Π΅, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ ΠΏΠ»Π°Π²Π½ΠΎΡΡΡ ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΡΠ°Π·ΡΡΠ²ΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ³Ρ ΠΈ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΠΈΠ΄Π΅ΠΎ. ΠΠ±ΡΡΠ²Π»Π΅Π½Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° GPU Aldebaran.
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ i915 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΈΠΏΠΎΠ² Intel Alderlake N ΠΈ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΡΡ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡ Intel DG2-G12 (Arc Alchemist).
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ nouveau ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΈΡ Π±ΠΈΡΡΠ΅ΠΉΡΠΎΠ² Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² DP/eDP ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΄Π»ΠΈΠ½ΠΈΡΠ΅Π»Π΅ΠΉ ΠΊΠ°Π±Π΅Π»Ρ lttprs (Link-Training Tunable PHY Repeaters).
- Π ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅ drm (Direct Rendering Manager) Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ armada, exynos, gma500, hyperv, imx, ingenic, mcde, mediatek, msm, omap, rcar-du, rockchip, sprd, sti, tegra, tilcdc, xen ΠΈ vc4 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° nomodeset, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎΡΠ΅ΠΆΠΈΠΌΠΎΠ² Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠ΄ΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ² Π΄Π»Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΠΎΡΡΠ°Π²ΠΈΠ² ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ ΡΡΠ΅ΠΉΠΌΠ±ΡΡΠ΅ΡΠΎΠΌ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ARM SoΠ‘ Qualcomm Snapdragon 625/632 (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΠΌΠ°ΡΡΡΠΎΠ½Π°Ρ LG Nexus 5X ΠΈ Fairphone FP3), Samsung Exynos 850, Samsung Exynos 7885 (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Samsung Galaxy A8), Airoha (Mediatek/EcoNet) EN7523, Mediatek mt6582 (ΠΏΠ»Π°Π½ΡΠ΅Ρ Prestigio PMT5008 3G), Microchip Lan966, Renesas RZ/G2LC, RZ/V2L, Tesla FSD, TI K3/AM62 ΠΈ i.MXRTxxxx.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ARM-ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ ΠΏΠ»Π°Ρ Broadcom (Raspberry Pi Zero 2 W), Qualcomm (Google Herobrine R1 Chromebook, SHIFT6mq, Samsung Galaxy Book2), Rockchip (Pine64 PineNote, Bananapi-R2-Pro, STM32 Emtrion emSBS, Samsung Galaxy Tab S, Prestigio PMT5008 3G tablet), Allwinner (A20-Marsboard), Amlogic (Amediatek X96-AIR, CYX A95XF3-AIR, Haochuangy H96-Max, Amlogic AQ222 ΠΈ OSMC Vero 4K+), Aspeed (Quanta S6Q, ASRock ROMED8HM3), Marvell MVEBU/Armada (Ctera C200 V1 ΠΈ V2 NAS), Mstar (DongShanPiOne, Miyoo Mini), NXP i.MX (Protonic PRT8MM, emCON-MX8M Mini, Toradex Verdin, Gateworks GW7903).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π·Π²ΡΠΊΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΈ ΠΊΠΎΠ΄Π΅ΠΊΠΎΠ² AMD PDM, Atmel PDMC, Awinic AW8738, i.MX TLV320AIC31xx, Intel CS35L41, ESSX8336, Mediatek MT8181, nVidia Tegra234, Qualcomm SC7280, Renesas RZ/V2L, Texas Instruments TAS585M. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π²ΡΠΊΠΎΠ²ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π΄Π»Ρ DSP-ΡΠΈΠΏΠ° Intel AVS. ΠΠ±Π½ΠΎΠ²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Π΄Π»Ρ Intel ADL ΠΈ Tegra234, Π° ΡΠ°ΠΊΠΆΠ΅ Π²Π½Π΅ΡΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π·Π²ΡΠΊΠ° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ Dell, HP, Lenovo, ASUS, Samsung ΠΈ Clevo.
ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π»Π°ΡΠΈΠ½ΠΎΠ°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΈΠΉ Π€ΠΎΠ½Π΄ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΠ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π» Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° 5.18 — Linux-libre 5.18-gnu, ΠΎΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ Π½Π΅ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΎΠ±Π»Π°ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ. Π Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΡΠΈΡΡΠΊΠ° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Π΄Π»Ρ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ MIPI DBI, VPU Amphion, WiFi MediaTek MT7986 WMAC, Mediatek MT7921U (USB) ΠΈ Realtek 8852a/8852c, Π·Π²ΡΠΊΠΎΠ²ΡΡ ΡΠΈΠΏΠΎΠ² Intel AVS ΠΈ Texas Instruments TAS5805M. Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΡΠΈΡΡΠΊΠ° DTS-ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ SoC Qualcomm Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ Π½Π° Π±Π°Π·Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ AArch64. ΠΠ±Π½ΠΎΠ²Π»ΡΠ½ ΠΊΠΎΠ΄ ΡΠΈΡΡΠΊΠΈ Π±Π»ΠΎΠ±ΠΎΠ² Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ ΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°Ρ AMD GPU, MediaTek MT7915, Silicon Labs WF200+ WiFi, Mellanox Spectru Ethernet, Realtek rtw8852c, Qualcomm Q6V5, Wolfson ADSP, MediaTek HCI UART.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru