ΠΠΎΡΠ»Π΅ Π΄Π²ΡΡ ΠΌΠ΅ΡΡΡΠ΅Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»ΡΠ΄Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» ΡΠ΅Π»ΠΈΠ· ΡΠ΄ΡΠ° Linux 5.15. Π‘ΡΠ΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: Π½ΠΎΠ²ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ NTFS Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ, ΠΌΠΎΠ΄ΡΠ»Ρ ksmbd Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ SMB-ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° DAMON Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π΄Π»Ρ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° fs-verity Π² Btrfs, ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² process_mrelease Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π½Π΅Ρ Π²Π°ΡΠΊΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΉ Π°ΡΡΠ΅ΡΡΠ°ΡΠΈΠΈ dm-ima.
Π Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠ½ΡΡΠΎ 13499 ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΎΡ 1888 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΡΡΠ° — 42 ΠΠ (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°ΡΡΠΎΠ½ΡΠ»ΠΈ 10895 ΡΠ°ΠΉΠ»ΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 632522 ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΡΠ΄Π°Π»Π΅Π½ΠΎ 299966 ΡΡΡΠΎΠΊ). ΠΠΊΠΎΠ»ΠΎ 45% Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π² 5.15 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ²ΡΠ·Π°Π½Ρ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ², ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 14% ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ, 14% ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΡΡΠ΅ΠΊΠΎΠΌ, 6% — Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΠΈ 3% c Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΡΠ΄ΡΠ°.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π°:
- ΠΠΈΡΠΊΠΎΠ²Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°, Π²Π²ΠΎΠ΄/Π²ΡΠ²ΠΎΠ΄ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ
- Π ΡΠ΄ΡΠΎ ΠΏΡΠΈΠ½ΡΡΠ° Π½ΠΎΠ²Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ NTFS, ΠΎΡΠΊΡΡΡΠ°Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Paragon Software. ΠΠΎΠ²ΡΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ NTFS 3.1, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΏΠΈΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ° (ACL), ΡΠ΅ΠΆΠΈΠΌ ΡΠΆΠ°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ , ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΡΡΠΎΡΠ°ΠΌΠΈ Π² ΡΠ°ΠΉΠ»Π°Ρ (sparse) ΠΈ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· ΠΆΡΡΠ½Π°Π»Π° Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠ±ΠΎΠ΅Π².
- Π ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Btrfs ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° fs-verity, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΠΎ Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Ρ
ΡΡΠ°ΠΌ ΠΈΠ»ΠΈ ΠΊΠ»ΡΡΠ°ΠΌ, Ρ
ΡΠ°Π½ΠΈΠΌΡΠΌ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ
. Π Π°Π½Π΅Π΅ fs-verity Π±ΡΠ» Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π€Π‘ Ext4 ΠΈ F2fs.
Π Btrfs ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π΄Π»Ρ ΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ (ΡΠ°Π½Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»ΡΡ Π΄Π»Ρ Π€Π‘ FAT, ext4 ΠΈ XFS). Π£ΠΊΠ°Π·Π°Π½Π½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΡΠΈΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΡΡΠΆΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
Π‘ΡΠ΅Π΄ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Btrfs: ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π² ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²; Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ raid0 Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ, Π° raid10 Ρ Π΄Π²ΡΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°); ΠΎΠΏΡΠΈΡ «rescue=ibadroots» Π΄Π»Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΡΠΊΡΡΠ΅Π½ΡΠΎΠ²; ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ «send»; ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ; Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΠΎΡΠΎΠ² 4K Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠ°ΠΌΡΡΠΈ 64K.
- Π XFS ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π€Π‘ Π΄Π°Ρ ΠΏΠΎΡΠ»Π΅ 2038 Π³ΠΎΠ΄Π°. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΠΈ inode ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ². C ΡΠ΅Π»ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠ±ΡΠ°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΈΡΠΊΠΎΠ²ΡΡ ΠΊΠ²ΠΎΡ Π΄Π»Ρ ΡΠΆΠ΅ ΠΏΡΠΈΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² (ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠ²ΠΎΡΡ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ Ρ Π½ΠΈΠΌΠΈ ΠΏΠΎΠ΄ΡΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅).
- Π EXT4 ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΠΈΡΠΈ delalloc-Π±ΡΡΠ΅ΡΠΎΠ² ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΡΠΈΡΠΎΡΠ΅Π²ΡΠΈΡ (orphan) ΡΠ°ΠΉΠ»ΠΎΠ², ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡΡΠΈΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ ΡΡΠΎ ΠΎΠ½ΠΈ ΠΎΡΡΠ°ΡΡΡΡ ΠΎΡΠΊΡΡΡΡΠΌΠΈ, Π½ΠΎ ΠΎΠΊΠ°Π·Π°Π²ΡΠΈΡ ΡΡ Π±Π΅Π· ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ discard Π²ΡΠ½Π΅ΡΠ΅Π½Π° ΠΈΠ· jbd2-ΠΏΠΎΡΠΎΠΊΠ° kthread Π΄Π»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ.
- Π F2FS Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ «discard_unit=block|segment|section» Π΄Π»Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ discard (ΠΏΠΎΠΌΠ΅ΡΠΊΠ° ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄ΡΠ½Π½ΡΡ Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ) ΠΊ Π²ΡΡΠ°Π²Π½ΠΈΠ²Π°Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±Π»ΠΎΠΊΠ°, ΡΠ΅ΠΊΡΠΎΡΠ°, ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ° ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΠΈΠΈ. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΏΡΠΈ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π΅.
- Π ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ EROFS (Extendable Read-Only File System) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΡΠΌΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° Π΄Π»Ρ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΡΡ Π±Π΅Π· ΡΠΆΠ°ΡΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° fiemap.
- Π OverlayFS ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ»Π°Π³ΠΎΠ² ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ «immutable», «append-only», «sync» ΠΈ «noatime».
- Π NFS ΡΠ»ΡΡΡΠ΅Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΈΡΡΠ°ΡΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° NFS-ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π» ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° Π·Π°ΠΏΡΠΎΡΡ. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π· Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ Π°Π΄ΡΠ΅Ρ.
- ΠΠ°ΡΠ°Π»Π°ΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ FSCACHE.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° EFI-ΡΠ°Π·Π΄Π΅Π»ΠΎΠ² Ρ Π½Π΅ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π±Π»ΠΈΡ GPT.
- Π ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ΅ fanotify ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½ΠΎΠ²ΡΠΉ ΡΠ»Π°Π³ FAN_REPORT_PIDFD, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠΈΠΉ ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΈΡ pidfd Π² ΡΠΈΡΠ»Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ . Pidfd ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ PID Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΎΠ±ΡΠ°ΡΠ°ΡΡΠΈΡ ΡΡ ΠΊ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ (pidfd ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΈ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, Π² ΡΠΎΠΌ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ PID ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΡΡΠΈΠΌ PID).
- Π ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² move_mount() Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΠ΅ΠΊ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΡΠ΅ Π³ΡΡΠΏΠΏΡ, ΡΡΠΎ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ c ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ CRIU ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ .
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π·Π°ΡΠΈΡΠ° ΠΎΡ ΡΠΊΡΡΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π³ΠΎΠ½ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠ³Π»ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΊΡΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΡΡΠΎΡ Π² ΡΠ°ΠΉΠ»Π΅.
- ΠΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ (mandatory) Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΡΡ ΡΠ΅ΡΠ΅Π· Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠΈΡ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°. ΠΠ·-Π·Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ Π³ΠΎΠ½ΠΊΠΈ Π΄Π°Π½Π½ΡΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠΈΡΠ°Π»ΠΈΡΡ Π½Π΅Π½Π°Π΄ΡΠΆΠ½ΡΠΌΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Ρ Π½Π°Π·Π°Π΄ Π±ΡΠ»ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌΠΈ.
- Π£Π΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° LightNVM, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²ΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ SSD-Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ, ΠΌΠΈΠ½ΡΡ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΡ ΡΠΌΡΠ»ΡΡΠΈΠΈ. LightNVM ΠΏΠΎΡΠ΅ΡΡΠ» ΡΠΌΡΡΠ» ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² NVMe, ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ZNS, Zoned Namespace).
- ΠΠ°ΠΌΡΡΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° DAMON (Data Access MONitor), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ Π΄Π°Π½Π½ΡΠΌ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, Π² ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ ΠΊ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΌΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊ ΠΊΠ°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±Π»Π°ΡΡΡΠΌ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ±ΡΠ°ΡΠ°Π»ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π° Π²ΡΡ Π²ΡΠ΅ΠΌΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ, Π° ΠΊΠ°ΠΊΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΡΡΠ°Π»ΠΈΡΡ Π½Π΅Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΡΠΌΠΈ. ΠΠ· ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ DAMON ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π½ΠΈΠ·ΠΊΠ°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π½Π° CPU, Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΡΠΎΠΊΠ°Ρ ΡΠΎΡΠ½ΠΎΡΡΡ ΠΈ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ, Π½Π΅ Π·Π°Π²ΠΈΡΡΡΠΈΠ΅ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°. ΠΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΡΠ΄ΡΠΎΠΌ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ, ΡΠ°ΠΊ ΠΈ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π»ΠΈΡΠ½Π΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠ΅.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² process_mrelease, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΡΠΊΠΎΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π·Π°Π²Π΅ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΡΠ²ΠΎΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Π ΠΎΠ±ΡΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π½Π΅ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΈ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π·Π°Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ, ΡΡΠΎ ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΡΡΡΠΈΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΈΡΡΠ΅ΠΌ ΡΠ°Π½Π½Π΅Π³ΠΎ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Π½Π΅Ρ Π²Π°ΡΠΊΡ ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ oomd (ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² systemd) ΠΈ lmkd (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Android). ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π²ΡΠ·ΠΎΠ²Π° process_mrelease ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠ³ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠ°Π΅ΠΌΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
- ΠΠ· Π²Π΅ΡΠΊΠΈ ΡΠ΄ΡΠ° PREEMPT_RT, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°Π±ΠΎΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½Ρ Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²ΠΎΠ² Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ mutex, ww_mutex, rw_semaphore, spinlock ΠΈ rwlock, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅ RT-Mutex. Π SLUB slab allocator Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ»ΡΡΡΠ°ΡΡΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ PREEMPT_RT ΠΈ ΡΠ½ΠΈΠΆΠ°ΡΡΠΈΡ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ.
- Π cgroup Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΡΠΈΠ±ΡΡΠ° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π·Π°Π΄Π°Ρ SCHED_IDLE, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΡΠ½Π°Π±Π΄ΠΈΡΡ Π΄Π°Π½Π½ΡΠΌ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠΌ ΡΡΠ°Π·Ρ Π²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π³ΡΡΠΏΠΏΡ, Π²Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ cgroup. Π’.Π΅. ΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΡ Π±ΡΠ΄ΡΡ Π·Π°ΠΏΡΡΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ³Π΄Π° Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½Π΅Ρ Π΄ΡΡΠ³ΠΈΡ Π·Π°Π΄Π°Ρ, ΠΎΠΆΠΈΠ΄Π°ΡΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π°ΡΡΠΈΠ±ΡΡΠ° SCHED_IDLE ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΠΎ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΏΡΠΈ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ SCHED_IDLE ΠΊ cgroup ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²Π΅Ρ Π·Π°Π΄Π°Ρ Π²Π½ΡΡΡΠΈ Π³ΡΡΠΏΠΏΡ.
- ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΡΡΡΠ° ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π² cgroup ΡΠ°ΡΡΠΈΡΠ΅Π½ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ ΡΠ΄ΡΠ°, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΡΡ Π΄Π»Ρ poll-ΠΈΠ½Π³Π°, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΡΠ½.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎΠΉ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π·Π°Π΄Π°Ρ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠΌ ΡΠ΄ΡΠ°ΠΌ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°Ρ , Π² ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ CPU Π΄ΠΎΠΏΡΡΠΊΠ°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ Π·Π°Π΄Π°Ρ, Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² 64-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ARM). ΠΠΎΠ²ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ Π·Π°Π΄Π°Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ CPU, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ.
- Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° io_uring ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΡΠ°Π·Ρ Π² ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ fixed-file, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ, ΡΡΠΎ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠΊΠΎΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΠΏΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, Π½ΠΎ ΠΈΠ΄ΡΡ Π² ΡΠ°Π·ΡΠ΅Π· Ρ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠΌ Π΄Π»Ρ Unix ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ
Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ ΠΎΡΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ².
Π io_uring Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ BIO (Block I/O Layer) ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½ΠΎΠ²ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠΊΠΈ («BIO recycling»), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠ½ΠΈΠ·ΠΈΡΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΏΠ°ΠΌΡΡΡΡ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ Π½Π° 10% ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ. Π io_uring ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² mkdirat(), symlinkat() ΠΈ linkat().
- ΠΠ»Ρ BPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ ΡΠ°ΠΉΠΌΠ΅ΡΠ°. ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΈΡΠ΅ΡΠ°ΡΠΎΡ Π΄Π»Ρ UNIX-ΡΠΎΠΊΠ΅ΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΎΠΏΡΠΈΠΈ ΡΠΎΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ setsockopt. Π BTF dumper Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ .
- ΠΠ° NUMA-ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ, ΠΎΡΠ»ΠΈΡΠ°ΡΡΠΈΠΌΠΈΡΡ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π² ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΈΡΡΠ΅ΡΠΏΠ°Π½ΠΈΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ Π²ΡΡΠ΅ΡΠ½ΡΠ΅ΠΌΡΡ ΡΡΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ· Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (DRAM) Π² Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ (Persistent Memory) Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡ. ΠΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ² ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΡΠ°ΠΊΡΠΈΠΊΠ° ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ»ΡΡΡΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ . ΠΠ»Ρ NUMA ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠ· Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΡΠ·Π»ΠΎΠ² NUMA.
- ΠΠ»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ARC ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΡΡ - ΠΈ ΡΠ΅ΡΡΡΡΡ ΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΡΠ°Π±Π»ΠΈΡ ΡΡΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² ARC.
- ΠΠ»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ s390 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° KFENCE Π΄Π»Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠ°ΠΌΡΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄Π΅ΡΠ΅ΠΊΡΠΎΡΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ Π³ΠΎΠ½ΠΊΠΈ KCSAN.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ ΡΠ΅ΡΠ΅Π· printk(), ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π·ΠΎΠΌ ΠΈΠ·Π²Π»Π΅ΡΡ Π²ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
- Π mmap() ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠΏΡΠΈΠΈ VM_DENYWRITE, Π° ΠΊΠΎΠ΄ ΡΠ΄ΡΠ° ΠΈΠ·Π±Π°Π²Π»Π΅Π½ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ° MAP_DENYWRITE, ΡΡΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΠ»ΠΎ ΡΠΈΡΠ»ΠΎ ΡΠΈΡΡΠ°ΡΠΈΠΉ, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠΈΡ ΠΊ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°ΠΉΠ» Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ETXTBSY.
- Π ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΏ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ «Event probes», ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΡΡ ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΌ ΡΠΎΠ±ΡΡΠΈΡΠΌ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π²ΡΠ²ΠΎΠ΄Π°.
- ΠΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΡΠ΄ΡΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° Clang ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ΅ΠΏΠ΅ΡΡ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° LLVM.
- Π ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎ ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ΄ΡΠ° ΠΎΡ ΠΊΠΎΠ΄Π°, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠ΅Π³ΠΎ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ, ΠΏΡΠΎΠ²Π΅Π΄ΡΠ½ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Ρ Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ° «-Werror», ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΠΈΠ±ΠΊΠΈ. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ Π²ΡΠΏΡΡΠΊΠ° 5.15 ΠΠΈΠ½ΡΡ Π½Π°ΡΠ°Π» ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠΈΠ΅ ΠΊ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΠΌ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΡΠ΄ΡΠ° ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π» ΡΠ±ΠΎΡΠΊΡ Ρ «-Werror», Π½ΠΎ ΠΏΠΎΡΠΎΠΌ ΡΠΎΠ³Π»Π°ΡΠΈΠ»ΡΡ Ρ ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ ΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΡΡΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠ»ΠΎΠΆΠΈΠ» Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ «-Werror» ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ»Π°Π³Π° «-Werror» ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° WERROR, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΡΡΠ°Π²Π»Π΅Π½ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ COMPILE_TEST, Ρ.Π΅. ΠΏΠΎΠΊΠ° Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΡΠ΅ΡΡΠΎΠ²ΡΡ ΡΠ±ΠΎΡΠΊΠ°Ρ .
- ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
- Π Device Mapper (DM) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ dm-ima Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΉ Π°ΡΡΠ΅ΡΡΠ°ΡΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ IMA (Integrity Measurement Architecture), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ Π²Π½Π΅ΡΠ½Π΅ΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΡ Π²Π΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌ ΡΠ΄ΡΠ° Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² ΠΈΡ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΠΈ. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ dm-ima ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Device Mapper Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΠΎΠ±Π»Π°ΡΠ½ΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ IMA ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ DM target.
- Π prctl() ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½ΠΎΠ²Π°Ρ ΠΎΠΏΡΠΈΡ PR_SPEC_L1D_FLUSH, ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΄ΡΠΎ Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΠΊΡΡΠ° ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ (L1D) ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. ΠΠ°Π½Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎ Π΄Π»Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°ΡΠΈΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π°ΡΠ°ΠΊ ΠΏΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ ΠΊΠ°Π½Π°Π»Π°ΠΌ, ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌΡΠΌ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , ΠΎΡΠ΅Π²ΡΠΈΡ Π² ΠΊΡΡΠ΅ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ, Π²ΡΠ·Π²Π°Π½Π½ΡΡ ΡΠΏΠ΅ΠΊΡΠ»ΡΡΠΈΠ²Π½ΡΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π² CPU. Π¦Π΅Π½ΠΎΠΉ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ PR_SPEC_L1D_FLUSH (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½) ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ° Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π² GCC ΡΠ»Π°Π³Π° «-fzero-call-used-regs=used-gpr», ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ. Π£ΠΊΠ°Π·Π°Π½Π½Π°Ρ ΠΎΠΏΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΡΠΈΡΠΈΡΡΡΡ ΠΎΡ ΡΡΠ΅ΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ Π½Π° 20% ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ Π±Π»ΠΎΠΊΠΎΠ², ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ROP-Π³Π°Π΄ΠΆΠ΅ΡΠΎΠ² (Return-Oriented Programming) Π² ΡΠΊΡΠΏΠ»ΠΎΠΈΡΠ°Ρ .
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΄Π΅Ρ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ARM64 Π² ΡΠΎΡΠΌΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ° Hyper-V.
- ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² «VDUSE», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ Π±Π»ΠΎΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Virtio Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ° Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΈΠ· Π³ΠΎΡΡΠ΅Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Virtio-Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ ΡΠΈΠ½Ρ I2C, Π΄Π°ΡΡΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΌΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ I2C Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΠ°ΡΠ°Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π±ΡΠΊΠ΅Π½Π΄ΠΎΠ².
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Virtio-Π΄ΡΠ°ΠΉΠ²Π΅Ρ gpio-virtio, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π³ΠΎΡΡΠ΅Π²ΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π»ΠΈΠ½ΠΈΡΠΌ GPIO, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΌ Ρ ΠΎΡΡ-ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΡΡΡΡΠΎΠΉΡΡΠ² Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ DMA Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π±Π΅Π· I/O MMU (memory-management unit).
- Π Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ΅ KVM ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠ²ΠΎΠ΄Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ Π² ΡΠΎΡΠΌΠ΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ ΠΈ Π»ΠΎΠ³Π°ΡΠΈΡΠΌΠΈΡΠ΅ΡΠΊΠΈΡ Π³ΠΈΡΡΠΎΠ³ΡΠ°ΠΌΠΌ.
- Π‘Π΅ΡΠ΅Π²Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°
- Π ΡΠΎΡΡΠ°Π² ΡΠ΄ΡΠ° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠΎΠ΄ΡΠ»Ρ ksmbd Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» SMB3. ΠΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ°Π½Π΅Π΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π² ΡΠ΄ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° SMB ΠΈ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ SMB-ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π³ΠΎ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΡΠ΄ΡΠ°. Ksmbd ΠΏΡΠ΅ΠΏΠΎΠ΄Π½ΠΎΡΠΈΡΡΡ ΠΊΠ°ΠΊ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈ Π³ΠΎΡΠΎΠ²ΠΎΠ΅ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π° Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊ Samba, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΠΌΠΎΠ΅ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ Samba. ΠΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ksmbd Π²ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ»ΡΡΡΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² (SMB leases) Π½Π° Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΡΠ°ΡΠΈΠΊ. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΠΏΠ»Π°Π½ΠΈΡΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ RDMA («smbdirect») ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΡΠΈΠ»Π΅Π½ΠΈΠ΅ΠΌ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΠΈ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ ΠΏΠΎ ΡΠΈΡΡΠΎΠ²ΡΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΌ.
- Π ΠΊΠ»ΠΈΠ΅Π½ΡΠ΅ CIFS ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° NTLM ΠΈ ΠΌΠ΅Π½Π΅Π΅ Π½Π°Π΄ΡΠΆΠ½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅ DES ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π΅ SMB1.
- Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΌΠΎΡΡΠΎΠ² Π΄Π»Ρ vlan ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° multicast.
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ bonding, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ XDP (eXpress Data Path), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ΅Π²ΡΠΌΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ Π΄ΠΎ ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΡΡΠ΅ΠΊΠΎΠΌ ΡΠ΄ΡΠ° Linux.
- Π Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΎΠΌ ΡΡΠ΅ΠΊΠ΅ mac80211 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° 6GHZ STA (Special Temporary Authorization) Π² ΡΠ΅ΠΆΠΈΠΌΠ°Ρ LPI, SP ΠΈ VLP, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ TWT (Target Wake Time) Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ°.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° MCTP (Management Component Transport Protocol), ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π½ΠΈΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ² (Ρ ΠΎΡΡ-ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ, ΠΏΠ΅ΡΠΈΡΠ΅ΡΠΈΠΉΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ Ρ.ΠΏ.).
- ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π² ΡΠ΄ΡΠΎ MPTCP (MultiPath TCP), ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° TCP Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ TCP-ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠΎΠΉ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΌΠ°ΡΡΡΡΡΠ°ΠΌ ΡΠ΅ΡΠ΅Π· ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊ ΡΠ°Π·Π½ΡΠΌ IP-Π°Π΄ΡΠ΅ΡΠ°ΠΌ. Π Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°Π΄ΡΠ΅ΡΠΎΠ² Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ fullmesh.
- Π netfilter Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π² ΠΏΡΠΎΡΠΎΠΊΠΎΠ» SRv6 (Segment Routing IPv6).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° sockmap Π΄Π»Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ Unix-ΡΠΎΠΊΠ΅ΡΠΎΠ².
- ΠΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ amdgpu ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° APU Cyan Skillfish (ΠΎΡΠ½Π°ΡΠ΅Π½Ρ GPU Navi 1x). ΠΠ»Ρ APU Yellow Carp ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΠΈΠ΄Π΅ΠΎΠΊΠΎΠ΄Π΅ΠΊΠΎΠ². Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° GPU Aldebaran. ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΊΠ°ΡΡ Π½Π° Π±Π°Π·Π΅ GPU Navi 24 «Beige Goby» ΠΈ RDNA2. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° ΡΠ»ΡΡΡΠ΅Π½Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΊΡΠ°Π½ΠΎΠ² (VKMS). Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΡ ΡΠΈΠΏΠΎΠ² AMD Zen 3.
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ amdkfd (Π΄Π»Ρ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΡΡ GPU, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Polaris) ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (SVM, shared virtual memory) Π½Π° Π±Π°Π·Π΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ HMM (Heterogeneous memory management), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ (MMU, memory management unit), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. Π ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ HMM ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ GPU ΠΈ CPU, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ GPU ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ i915 Π΄Π»Ρ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡ Intel ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΡΡ TTM ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° Π±Π°Π·Π΅ GuC (Graphics micro Controller). ΠΠ°ΡΠ°Π»Π°ΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠ°ΡΡΡ Intel ARC Alchemist ΠΈ GPU Intel Xe-HP.
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ nouveau ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΎΠΉ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ eDP ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ DPCD (DisplayPort Configuration Data).
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ msm Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° GPU Adreno 7c Gen 3 ΠΈ Adreno 680.
- ΠΠ»Ρ ΡΠΈΠΏΠ° Apple M1 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π΄ΡΠ°ΠΉΠ²Π΅Ρ IOMMU.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π·Π²ΡΠΊΠΎΠ²ΠΎΠΉ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ Π½Π° Π±Π°Π·Π΅ APU AMD Van Gogh.
- Π Π²Π΅ΡΠΊΡ staging Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Realtek R8188EU, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΌΠ΅Π½ΠΈΠ» ΡΠΎΠ±ΠΎΠΉ ΡΡΠ°ΡΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° (rtl8188eu) Π΄Π»Ρ Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΡΡ ΡΠΈΠΏΠΎΠ² Realtek RTL8188EU 802.11 b/g/n.
- Π ΡΠΎΡΡΠ°Π² ΠΏΡΠΈΠ½ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ocp_pt Π΄Π»Ρ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Meta (Facebook) PCIe-ΠΏΠ»Π°ΡΡ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΌΠΈΠ½ΠΈΠ°ΡΡΡΠ½ΡΡ Π°ΡΠΎΠΌΠ½ΡΡ ΡΠ°ΡΠΎΠ² ΠΈ GNSS-ΡΠ΅ΡΠΈΠ²Π΅ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ ΠΎΠ±ΠΎΡΠΎΠ±Π»Π΅Π½Π½ΡΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΌΠ°ΡΡΡΠΎΠ½ΠΎΠ² Sony Xperia 10II (Snapdragon 665), Xiaomi Redmi 2 (Snapdragon MSM8916), Samsung Galaxy S3 (Snapdragon MSM8226), Samsung Gavini/Codina/Kyle.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ARM SoΠ‘ ΠΈ ΠΏΠ»Π°Ρ NVIDIA Jetson TX2 NX Developer Kit, Sancloud BBE Lite, PicoITX, DRC02, SolidRun SolidSense, SKOV i.MX6, Nitrogen8, Traverse Ten64, GW7902, Microchip SAMA7, ualcomm Snapdragon SDM636/SM8150, Renesas R-Car H3e-2G/M3e-2G, Marvell CN913x, ASpeed AST2600 (ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΏΠ»Π°ΡΡ Facebook Cloudripper, Elbert ΠΈ Fuji), 4KOpen STiH418-b2264.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° LCD-ΠΏΠ°Π½Π΅Π»Π΅ΠΉ Gopher 2b, EDT ETM0350G0DH6/ETMV570G2DHU, LOGIC Technologies LTTD800480070-L6WH-RT, Multi-Innotechnology MI1010AIT-1CP1, Innolux EJ030NA 3.0, ilitek ili9341, E Ink VB3300-KCA, Samsung ATNA33XC20, Samsung DB7430, WideChips WS2401.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π΄ΡΠ°ΠΉΠ²Π΅Ρ LiteETH Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Ethernet-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ SoC LiteX (Π΄Π»Ρ FPGA).
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ usb-audio Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ lowlatency Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ quirk_flags Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π½Π°ΡΡΡΠΎΠ΅ΠΊ.
ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π»Π°ΡΠΈΠ½ΠΎΠ°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΈΠΉ Π€ΠΎΠ½Π΄ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΠ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π» Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° 5.15 — Linux-libre 5.15-gnu, ΠΎΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ
Π½Π΅ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΎΠ±Π»Π°ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ
ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ. Π Π½ΠΎΠ²ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² Π»ΠΎΠ³ ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠΈ ΡΠΈΡΡΠΊΠΈ. Π£ΡΡΡΠ°Π½Π΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ mkspec, ΡΠ»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² snap. Π£Π±ΡΠ°Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ, Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° firmware.h. Π Π°Π·ΡΠ΅ΡΡΠ½ Π²ΡΠ²ΠΎΠ΄ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
Π²ΠΈΠ΄ΠΎΠ² ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ («format-extra-args», ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅) ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ «-Werror». ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΈΡΡΠΊΠ° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° gehc-achc. ΠΠ±Π½ΠΎΠ²Π»ΡΠ½ ΠΊΠΎΠ΄ ΡΠΈΡΡΠΊΠΈ Π±Π»ΠΎΠ±ΠΎΠ² Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ
ΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
adreno, btusb, btintel, brcmfmac, aarch64 qcom. ΠΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΡΠΈΡΡΠΊΠ° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² prism54 (ΡΠ΄Π°Π»ΡΠ½) ΠΈ rtl8188eu (Π·Π°ΠΌΠ΅Π½ΡΠ½ Π½Π° r8188eu).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru