Π‘Π»Π΅Π΄ Π΄Π²Π° ΠΌΠ΅ΡΠ΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»Π΄Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈ Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ 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 Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π°Mapping Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π·Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ (ΠΏΠΎ-ΡΠ°Π½ΠΎ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ΅ Π·Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ FAT, ext4 ΠΈ XFS). Π£ΠΊΠ°Π·Π°Π½Π°ΡΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π½Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½ ΡΡΠΆΠ΄ Π΄ΡΠ» Ρ Π΄ΡΡΠ³ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π² ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°.
Π‘ΡΠ΅Π΄ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Btrfs: ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ Π² ΠΈΠ½Π΄Π΅ΠΊΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²; Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ raid0 Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ, Π° raid10 Ρ Π΄Π²ΡΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°); ΠΎΠΏΡΠΈΡ Β«rescue=ibadrootsΒ» Π΄Π»Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ Π΄Π΅ΡΠ΅Π²Π° ΡΠΊΡΡΠ΅Π½ΡΠΎΠ²; ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Β«sendΒ»; ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΎΠ² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ; Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΠΎΡΠΎΠ² 4K Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠ°ΠΌΡΡΠΈ 64K.
- Π XFS Π΅ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·ΠΈΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ»Π΅Π΄ 2038 Π³ΠΎΠ΄ΠΈΠ½Π°. Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π° Π΄Π΅Π°ΠΊΡΠΈΠ²Π°ΡΠΈΡ Π½Π° inode ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΎΡΠ»ΠΎΠΆΠ΅Π½ΠΎ Π·Π°Π΄Π°Π²Π°Π½Π΅ ΠΈ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° Π°ΡΡΠΈΠ±ΡΡΠΈ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. Π‘ ΡΠ΅Π» ΠΈΠ·Π±ΡΠ³Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²ΠΈΡΠ΅ ΠΊΠ²ΠΎΡΠΈ Π·Π° Π²Π΅ΡΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠ°Π½ΠΈ Π΄ΡΠ»ΠΎΠ²Π΅ (ΠΌΠΎΠΆΠ΅ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΊΠ»ΡΡΠ°Ρ ΠΊΠ²ΠΎΡΠΈΡΠ΅, Π½ΠΎ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΡ Ρ ΡΡΡ Π±ΡΠΎΡΡ ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Π·Π° ΠΏΡΠ»Π½ΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅).
- Π 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() Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΡΠΎΡΠΊΠΈ Π·Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ Π² ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΠΎΠ±ΡΠΈ Π³ΡΡΠΏΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ΅ΡΠ°Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΡΡΡ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅ΡΠΎ ΠΈ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ CRIU, ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π·Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅, ΡΠΏΠΎΠ΄Π΅Π»ΡΠ½ΠΈ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π·Π°ΡΠΈΡΠ° ΠΎΡ ΡΠΊΡΠΈΡΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΡΡΡΡΠ΅Π·Π°Π½ΠΈΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π°Ρ Π΄ΠΎ ΠΏΠΎΠ²ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΎΡ ΠΊΠ΅ΡΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΡΠ°Π·Π½ΠΈΠ½ΠΈ Π² ΡΠ°ΠΉΠ»Π°.
- ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΈ (mandatory) Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π· Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ, Π΄ΠΎΠ²Π΅ΠΆΠ΄Π°ΡΠΈ Π΄ΠΎ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΠ°ΠΉΠ»Π°, Π΅ ΡΠΏΡΡΠ½Π°. ΠΠΎΡΠ°Π΄ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ ΡΡΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΡΡΡΡΠ΅Π·Π°Π½ΠΈΠ΅, ΡΠ΅Π·ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΠ° ΡΡΠΈΡΠ°Π½ΠΈ Π·Π° Π½Π΅Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π±ΡΡ Π° ΠΎΠ±ΡΠ²Π΅Π½ΠΈ Π·Π° ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ.
- ΠΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° LightNVM, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ SSD-Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»Ρ, Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»ΡΠΉΠΊΠΈ ΡΠ»ΠΎΡ Π½Π° Π΅ΠΌΡΠ»Π°ΡΠΈΡ, Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ°. LightNVM Π΅ Π·Π°Π³ΡΠ±ΠΈΠ» ΡΠΌΠΈΡΡΠ» ΡΠ»Π΅Π΄ ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠΈΡΠ΅ NVMe, ΠΏΡΠ΅Π΄Π²ΠΈΠΆΠ΄Π°ΡΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π·ΠΎΠ½ΠΈΡΠ°Π½Π΅ (ZNS, Zoned Namespace).
- ΠΠ°ΠΌΠ΅Ρ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° DAMON (Data Access MONitor), ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ°, ΡΠ²ΡΡΠ·Π°Π½Π° Ρ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ Π΄Π°Π½Π½ΠΈ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ, ΡΠ²ΡΡΠ·Π°Π½Π° Ρ ΠΈΠ·Π±ΡΠ°Π½ ΠΏΡΠΎΡΠ΅Ρ, ΡΠ°Π±ΠΎΡΠ΅Ρ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. ΠΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΊΠΎΠΈ ΡΠΎΡΠ½ΠΎ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π΅ Π΄ΠΎΡΡΡΠΏΠ²Π°Π½ ΠΏΡΠΎΡΠ΅ΡΠ° ΠΏΡΠ΅Π· Π²ΡΠΈΡΠΊΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΡΠΈ, Π° ΠΊΠΎΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΡΠ° ΠΎΡΡΠ°Π½Π°Π»ΠΈ Π½Π΅ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ. ΠΠ΅ΠΆΠ΄Ρ ΠΎΡΠΎΠ±Π΅Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° DAMON ΡΠ΅ ΠΎΡΠΊΡΠΎΡΠ²Π°Ρ Π½ΠΈΡΠΊΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° Π¦ΠΠ£, ΠΌΠ°Π»ΡΠΊ ΡΠ°Π·Ρ ΠΎΠ΄ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, Π²ΠΈΡΠΎΠΊΠ° ΡΠΎΡΠ½ΠΎΡΡ ΠΈ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ, Π½Π΅Π·Π°Π²ΠΈΡΠ΅ΡΠΈ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°. ΠΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ°ΠΊΡΠΎ ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΡΠ°ΠΊΠ° ΠΈ ΠΎΡ ΡΡΠΈΠ»ΠΈΡΠΈ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π·Π° ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΎΠ²Π°, ΠΊΠ°ΠΊΠ²ΠΎ ΡΠΎΡΠ½ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΏΡΠΎΡΠ΅ΡΠ° ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ·Π»ΠΈΡΠ½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΅ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ ΠΏΠΎΠ²ΠΈΠΊ 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 Π΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΡΡΡΠΊΡΡΡΠΈ ΠΎΡ Π΄Π°Π½Π½ΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈΡΠ΅ Π·Π° polling, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠΈΠ³Π½Π°Π»ΠΈ ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π½Π° ΠΈΠΌΠ΅Π½Π°.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°ΡΠΈΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π·Π°Π΄Π°ΡΠΈ ΠΊΡΠΌ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΈ ΡΠ΄ΡΠ° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ, ΠΏΡΠΈ ΠΊΠΎΠΈΡΠΎ Π½ΡΠΊΠΎΠΈ 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 Π²ΡΠ·Π»ΠΈ.
- ΠΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° 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 ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π²ΡΠ½ΡΠ½ΠΈ ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, Π² ΠΊΠΎΠΈΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° IMA ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π΄ΠΎΡΡΠΎΠ²Π΅ΡΠ½ΠΎΡΡΡΠ° Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π°ΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° DM target.
- Π prctl() Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π½ΠΎΠ²Π° ΠΎΠΏΡΠΈΡ PR_SPEC_L1D_FLUSH, ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΡΡΠΎ ΡΠ΄ΡΠΎΡΠΎ Π·Π°ΠΏΠΎΡΠ²Π° Π΄Π° ΠΈΠ·ΡΠΈΡΡΠ²Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΊΠ΅ΡΠ° Π½Π° ΠΏΡΡΠ²ΠΎ Π½ΠΈΠ²ΠΎ (L1D) Π²ΡΠ΅ΠΊΠΈ ΠΏΡΡ ΠΏΡΠΈ ΡΠΌΡΠ½Π° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. Π’ΠΎΠ·ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ΅Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎ Π·Π° Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ Π΄Π° ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° Π·Π°ΡΠΈΡΠ° ΠΎΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π°ΡΠ°ΠΊΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈ ΠΊΠ°Π½Π°Π»ΠΈ, ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π°Π½ΠΈ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΎΡΡΠ°Π²Π°ΡΠΈ Π² ΠΊΠ΅ΡΠ° Π² ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΠΏΡΠΈΡΠΈΠ½Π΅Π½ΠΈ ΠΎΡ ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² Π¦Π. Π¦Π΅Π½Π°ΡΠ° Π½Π° Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° 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 (Π΅Π΄ΠΈΠ½ΠΈΡΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°).
- Π Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ° 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 SoC ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ NVIDIA Jetson TX2 NX Developer Kit, Sancloud BBE Lite, PicoITX, DRC02, SolidRun SolidSense, SKOV i.MX6, Nitrogen8, Traverse Ten64, GW7902, Microchip SAMA7, Qualcomm 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
