ΠΠΎΡΠ»Π΅ Π΄Π²ΡΡ ΠΌΠ΅ΡΡΡΠ΅Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»ΡΠ΄Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» ΡΠ΅Π»ΠΈΠ· ΡΠ΄ΡΠ° Linux 6.17. Π‘ΡΠ΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Btrfs, ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ file_getattr() ΠΈ file_setattr(), ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΎΠ΄Π½ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ Π² ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ΅ Π·Π°Π΄Π°Ρ, ΠΌΠΎΠ΄ΡΠ»Ρ DAMON_STAT ΡΠΎ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Live-ΠΏΠ°ΡΡΠ΅ΠΉ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ARM64, ΠΎΡΠΏΡΠ°Π²ΠΊΠ° core-Π΄Π°ΠΌΠΏΠΎΠ² ΡΠ΅ΡΠ΅Π· ΡΠΎΠΊΠ΅Ρ AF_UNIX, Π»ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ SCHED_EXT ΡΠ΅ΡΠ΅Π· cgroup, ΡΠΏΡΠΎΡΡΠ½Π½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² CPU, ΡΠ±ΠΎΡΠΊΠ° Π² Clang Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΡΡΠ΅ΠΊΠ΅, Π·Π°ΡΠΈΡΠ° ΠΎΡ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ /proc, ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ RV (Runtime Verification), ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅ΡΠΎΠ² AF_UNIX ΡΠ΅ΡΠ΅Π· AppArmor, Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΎΠΊ TCP DualPI2.
Π Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠ½ΡΡΠΎ 14334 ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΎΡ 2118 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΡΡΠ° β 46 ΠΠ (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°ΡΡΠΎΠ½ΡΠ»ΠΈ 12841 ΡΠ°ΠΉΠ»ΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 646654 ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΡΠ΄Π°Π»Π΅Π½ΠΎ 398782 ΡΡΡΠΎΠΊ). Π ΠΏΡΠΎΡΠ»ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ Π±ΡΠ»ΠΎ 15924 ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡ 2145 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΡΡΠ° β 50 ΠΠ . ΠΠΊΠΎΠ»ΠΎ 43% Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π² 6.17 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ²ΡΠ·Π°Π½Ρ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ², ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 12% ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ, 14% ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΡΡΠ΅ΠΊΠΎΠΌ, 4% β Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΠΈ 3% c Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΡΠ΄ΡΠ°.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π° Π² ΡΠ΄ΡΠ΅ 6.17 (1, 2, 3):
- ΠΠΈΡΠΊΠΎΠ²Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°, Π²Π²ΠΎΠ΄/Π²ΡΠ²ΠΎΠ΄ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ
- Π Btrfs Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΎΠ»ΠΈΠ°Π½ΡΠΎΠ² ΡΡΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ (large folios), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΡΠ½ΠΈΠ·ΠΈΡΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ ΠΈ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΡΠ΄Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ Π±ΠΈΡΠΎΠ²ΡΠΌ ΠΊΠ°ΡΡΠ°ΠΌ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ°, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΡΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π²ΡΡΠΎΡΠ»Π° Π½Π° 20%. Π£Π»ΡΡΡΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ° ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅Π³ΠΎ ΡΡΠ΅Π½ΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΠΈΡ ΡΠΆΠ°ΡΠΈΠ΅ Π΄Π°Π½Π½ΡΡ . ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ»ΠΎΡΠ½ΠΎΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ΅ΠΉ Π² ΡΡΡΡΠΊΡΡΡΠ΅ XArray, ΡΡΠΎ ΠΏΠΎΠ²ΡΡΠΈΠ»ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΎΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ·Π»ΠΎΠ² Π΄Π΅ΡΠ΅Π²Π° ΡΠΊΡΡΠ΅Π½ΡΠΎΠ² ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΠΈΡΠ»ΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠ·Π»ΠΎΠ² Π½Π° 50-70%. ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΆΠ°ΡΠΈΡ Π² Π΄Π΅ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΊΡΡΠ΅Π½ΡΠ°Ρ .
- Π Π€Π‘ ext4 ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±ΡΡΠ΅ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° Ρ ΡΠ»Π°Π³ΠΎΠΌ RWF_DONTCACHE, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΄Π°Π»ΡΡΡΡΡ ΠΈΠ· ΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠ° ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
- Π Π€Π‘ EROFS ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΆΠ°ΡΠΈΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ .
- NFS-ΡΠ΅ΡΠ²Π΅Ρ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ, ΠΎΡΠΊΡΡΠ²Π°ΡΡΠΈΠΌ ΡΠ°ΠΉΠ»Ρ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ.
- Π ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² fallocate() Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ»Π°Π³ FALLOC_FL_WRITE_ZEROES, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Π½ΡΠ»ΡΠΌΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π² ΡΠ°ΠΉΠ»Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ SSD-Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΡΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ WRITE_ZERO, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ±Π½ΡΠ»Π΅Π½ΠΈΠ΅ Π±Π΅Π· ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°. ΠΠΏΡΠΈΡ ΠΏΠΎΠΊΠ° Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ Π² Π€Π‘ ext4.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ file_getattr() ΠΈ file_setattr() Π΄Π»Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ inode Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°.
- Π£Π΄Π°Π»ΡΠ½ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Β«pktcdvdΒ» Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠΏΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ Π½ΠΎΡΠΈΡΠ΅Π»ΡΠΌΠΈ Π² ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ Π² 2016 Π³ΠΎΠ΄Ρ.
- Π€Π‘ Bcachefs Π² ΡΠ΄ΡΠ΅ Linux ΠΏΠ΅ΡΠ΅Π²Π΅Π΄Π΅Π½Π° Π² ΡΠ΅ΠΆΠΈΠΌ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡΠ΅Π³ΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΡΠΌΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π΄Π»Ρ Bcachefs Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΡΡΠ°Π² ΡΠ΄ΡΠ° ΠΏΡΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ Π€Π‘ Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ ΡΠ΄ΡΠ°. Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Bcachefs Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ Π²Π½Π΅ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ ΡΠ΄ΡΠ° Π΄ΠΎ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΠ΅Π½Ρ ΠΠ²Π΅ΡΡΡΡΠΈΡ Π½Π° Π΄Π΅Π»Π΅ Π½Π΅ Π΄ΠΎΠΊΠ°ΠΆΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌΠΈ ΡΠ΄ΡΠ° ΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΡΡΡΠΎΡΠ²ΡΠΈΠΌΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ.
- ΠΠ°ΠΌΡΡΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ
- ΠΠ· ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π·Π°Π΄Π°Ρ ΡΠ΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠ΄Π½ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ. ΠΠ° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΄ΡΠ°, ΡΠΎΠ±ΡΠ°Π½Π½ΡΠ΅ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ (SMP). ΠΠΎΠ΄ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½ ΠΈ ΠΈΠ·Π±Π°Π²Π»Π΅Π½ ΠΎΡ Π»ΠΈΡΠ½ΠΈΡ ΠΏΡΠΈΠ²ΡΠ·ΠΎΠΊ ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΄ΡΠ° CONFIG_SMP.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° DAMON_STAT (Data Access Monitoring Results Stat), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ DAMON (Data Access MONitor). ΠΠΎΠ΄ΡΠ»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΎ Π½Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ (memory_idle_ms_percentiles) ΠΈ ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ (estimated_memory_bandwidth).
- ΠΠ° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ ARM64 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Live-ΠΏΠ°ΡΡΠ΅ΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊ ΡΠ΄ΡΡ Linux Π½Π° Π»Π΅ΡΡ, Π±Π΅Π· ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ.
- Π ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡΠΈΡΠ½ΠΎΠΉ Π‘ΠΈ-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ nolibc, ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ² ΡΠ΄ΡΠ° Linux ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΠΎΠ±Π²ΡΠ·ΠΊΡ Π½Π°Π΄ Π±Π°Π·ΠΎΠ²ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ SuperH, x32, MIPS n32 ΠΈ MIPS n34.
- Π Π°ΡΡΠΈΡΠ΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ core-Π΄Π°ΠΌΠΏΠΎΠ² ΡΠ΅ΡΠ΅Π· ΡΠΎΠΊΠ΅Ρ AF_UNIX, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ core-Π΄Π°ΠΌΠΏΠΎΠ², Π½Π΅ Π·Π°Π²ΡΠ·Π°Π½Π½ΡΠ΅ Π½Π° Π²ΡΠ·ΠΎΠ² ΡΠ΄ΡΠΎΠΌ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΡΠΏΠΎΡΠΎΠ±Π½ΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ core-Π΄Π°ΠΌΠΏΠΎΠ² Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π°Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΎΠ΄Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ core-Π΄Π°ΠΌΠΏΡ, Π° Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΠΊΠ΅Ρ. ΠΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½ ΠΏΡΠΎΡΠΎΡΠΈΠΏ ΡΠ΅ΡΠ²Π΅ΡΠ° Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ core-Π΄Π°ΠΌΠΏΠ°ΠΌΠΈ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠ΄ΡΠ° Β«crashkernel=size,cmaΒ» Π΄Π»Ρ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· CMA (Contiguous Memory Allocator) ΠΌΠ΅ΡΡΠ° Π² ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΠ΄ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ crash-Π΄Π°ΠΌΠΏΠ° ΡΠ΄ΡΠ°.
- Π Π°ΡΡΠΈΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° pidfd, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌΠΈ ΠΈ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ pid ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π½Π΅ Π½Π°Π·Π½Π°ΡΠ°Π΅ΠΌΡΠ΅. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ pidfd ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΈΠ· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π Π°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΠΎΡΠΊΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ pidfd ΡΠ΅ΡΠ΅Π· ΡΡΠ½ΠΊΡΠΈΡ open_by_handle_at() Π±Π΅Π· ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΠ½ΡΡΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ ΡΠ΄ΡΠΎΠΌ Π²ΠΌΠ΅ΡΡΠ΅ Ρ pidfd, ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΡ, Π° Π½Π΅ pidfd, ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΌ ΠΎΡΠΊΡΡΡΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
- Π ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ BPF Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ bpf_cgroup_read_xattr() Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ². ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² BPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ ΡΠΈΠΏΠΎΠ²ΡΡ ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ bpf_strcmp, bpf_strnchr, bpf_strchrnul, bpf_strlen ΠΈ bpf_strspn, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² stdout ΠΈ stderr Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ»Ρ ΡΠΈΡΡΠ΅ΠΌ Π½Π° Π±Π°Π·Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ LoongArch Π² BPF ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π°, ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Β«BPF trampolineΒ» (ΡΠ½ΠΈΠΆΠ°Π΅Ρ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΄ΡΠΎΠΌ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ BPF) ΠΈ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ struct_ops Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ΄ΡΠ° ΡΠ΅ΡΠ΅Π· BPF.
- Π ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΡΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°ΡΠΎΠ² (auxiliary), ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌΠΈ ΡΠ°ΡΠ°ΠΌΠΈ ΠΈ ΠΈΠ΄ΡΡ ΠΏΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌΡ ΡΠΈΡΠΌΡ (ΡΠ°Π½Π΅Π΅ Π²ΡΠ΅ ΡΠ°ΡΡ ΡΠ»ΠΈ Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΡΠΈΡΠΌΠΎΠΌ ΠΈ ΠΎΡΠ»ΠΈΡΠ°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΠΊΡΠΈ-ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (Proxy Execution) Π΄Π»Ρ ΡΠΌΡΠ³ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈΠ½Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΎΠ². ΠΡΠΎΠΊΡΠΈ-ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°ΡΠ΅, ΠΎΠΆΠΈΠ΄Π°ΡΡΠ΅ΠΉ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠ΅, ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅ΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ, Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
- ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· Π²Π΅ΡΠΊΠΈ Rust-for-Linux, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ·ΡΠΊΠ° Rust Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΄ΡΠ° (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Rust Π½Π΅ Π°ΠΊΡΠΈΠ²Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΈ Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Rust Π² ΡΠΈΡΠ»ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ±ΠΎΡΠΎΡΠ½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΊ ΡΠ΄ΡΡ). ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅Π³ΡΠ»ΡΡΠΎΡΠ°ΠΌΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠΎΠΊΠ°, ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ, ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° ΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ°ΠΊΡΠΎΡ Β«warn_on!()Β». ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠΈΠΏ UserPtr Π΄Π»Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. Π Π°ΡΡΠΈΡΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ workqueue, uaccess, dma, time ΠΈ list. ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠΎΠ΄ΡΠ»Ρ βbitsβ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ βbitβ ΠΈ βgenmaskβ.
- ΠΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½ ΠΊΠΎΠ΄ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΌΠΌ CRC ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Ρ ΡΡΠ΅ΠΉ SHA-1 ΠΈ SHA-2. ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΎΠ²ΡΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ crc32c() Π½Π° Π½ΠΎΠ²ΡΡ CPU x86_64, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ VPCLMULQDQ (Vector Carry-Less Multiplication of Quadwords).
- ΠΠ»Ρ ΡΠΈΡΡΠ΅ΠΌ S390 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΡΡΠ΅ΡΠ½Π΅Π½ΠΈΡ Π² ΡΠ°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ ΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π±ΠΎΠ»ΡΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ (transparent huge page).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π°Π³ΡΠ΅ΡΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ (proactive-reclaim) ΠΏΡΠΈ Π΅Ρ Π½Π΅Ρ Π²Π°ΡΠΊΠ΅ Π² ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΡΠ·Π»Π°ΠΌ NUMA, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΠ·Π»Ρ NUMA, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ Π²ΡΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Β«echo Β«512M swappiness=10β³ > /sys/devices/system/node/node1/reclaimΒ».
- Π ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ SCHED_EXT, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ BPF Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ² CPU, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΡ ΡΠ΅ΡΠ΅Π· cgroup. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ cpu.max Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° CPU.
- ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΎ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ Π€Π‘ tracefs Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ /sys/kernel/debug/tracing, Π²ΠΌΠ΅ΡΡΠΎ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ /sys/kernel/tracing.
- ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π² CPU ΡΠ΅ΡΠ΅Π· Π²ΡΠ±ΠΎΡ Π±Π»ΠΎΠΊΠΈΡΡΠ΅ΠΌΡΡ Π²Π΅ΠΊΡΠΎΡΠΎΠ² Π°ΡΠ°ΠΊΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ. ΠΠ΅ΡΠΎΠ΄Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΠΈΠ΄Π° Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ: ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΈ ΡΠ΄ΡΠΎΠΌ (user-kernel), ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ (user-user), ΠΌΠ΅ΠΆΠ΄Ρ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ Ρ ΠΎΡΡ-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ΠΌ (guest-host), ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ Π³ΠΎΡΡΠ΅Π²ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ (guest-guest) ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ (cross-thread). ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎ Π²ΠΎΠ»Π½ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π»Π°Π΄Π΅Π»ΡΡΡ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠ³ΡΡ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌΡ guest-host ΠΈ guest-guest, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π±ΡΠ΄ΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ BHI, GD, L1TF, MDS, MMIO, Retbleed, RFDS, Spectre_v2, SRBDS, SRSO ΠΈ TAA.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ Clang Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π³Π»ΡΠ±ΠΈΠ½Ρ ΡΡΠ΅ΠΊΠ°, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π²ΡΠ΅Ρ Ρ ΡΠ°Π½ΠΈΠΌΡΡ Π² ΡΡΠ΅ΠΊΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ . ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΡΡΠ΅ΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· ΡΠ΄ΡΠ° ΡΠ΅ΡΠ΅Π· Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΡΡΠ°ΡΠΊΠΈ ΡΠ°Π½Π΅Π΅ ΡΠΎΡ ΡΠ°Π½ΡΠ½Π½ΡΡ Π² ΡΡΠ΅ΠΊΠ΅ Π΄Π°Π½Π½ΡΡ . ΠΠΎ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡ ΠΎΠΆΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»Π°ΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ GCC-ΠΏΠ»Π°Π³ΠΈΠ½Π° STACKLEAK.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π·Π°ΡΠΈΡΠ° ΠΎΡ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ Π°ΡΠ°ΠΊΡΡΡΠΈΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ /proc ΡΠ΅ΡΠ΅Π· ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Β«bindΒ». Inode-Π½ΠΎΠΌΠ΅Ρ ΠΊΠΎΡΠ½Ρ /proc ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½ (PROCFS_ROOT_INO) ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
- Π ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ RV (Runtime Verification), ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Π²ΡΡΠΎΠΊΠΎΠ½Π°Π΄ΡΠΆΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° rtapp (Real-time application monitor) Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ²ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ rp, sssw ΠΈ opid Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π·Π°Π΄Π°Ρ. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ ΡΠ΅ΠΌΠΏΠΎΡΠ°Π»ΡΠ½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ Π²ΠΌΠ΅ΡΡΠΎ Π΄Π΅ΡΠ΅ΡΠΌΠΈΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠ°. ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΊ ΡΠΎΡΠΊΠ°ΠΌ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ, ΡΠ²Π΅ΡΡΡΡΠΈΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Ρ ΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Ρ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ ΡΡΠ°Π»ΠΎΠ½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠ΅ΠΉ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ.
- Π ΡΠΈΡΡΠ΅ΠΌΡ AppArmor Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΡΠΎΠΊΠ΅ΡΠ°ΠΌ AF_UNIX.
- Π Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ΅ KVM Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ ARM ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ GICv5.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° CONFIG_KVM_IOAPIC, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π² KVM ΡΠΌΡΠ»ΡΡΠΈΠΈ APIC, PIC ΠΈ PIT.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π·Π°ΡΠΈΡΠ° ΠΎΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ VMSCAPE.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ioctl-ΠΊΠΎΠΌΠ°Π½Π΄Π° FS_IOC_GETLBMD_CAP Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊ ΡΠ°ΠΉΠ»Ρ ΡΡΠ΅Π΄ΡΡΠ² Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ.
- ΠΠ±ΡΡΠ²Π»Π΅Π½ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ /sys/fs/selinux/user, ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠ΅ΠΏΠ΅ΡΡ Π²Π½ΠΎΡΠΈΡΡΡ ΠΏΡΡΠΈΡΠ΅ΠΊΡΠ½Π΄Π½Π°Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠ° ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² Π»ΠΎΠ³.
- Π‘Π΅ΡΠ΅Π²Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°
- Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ PSE (Power Sourcing Equipment), ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ Π΄Π»Ρ ΠΏΠΎΠ΄Π°ΡΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· Ethernet Π½Π° ΡΠ°ΠΊΠΈΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠ°ΠΊ IP-ΠΊΠ°ΠΌΠ΅ΡΡ ΠΈ Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΡΠ΅ ΡΠΎΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ°, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ ΠΎΡΠ΅Π½ΠΊΠΈ Π±ΡΠ΄ΠΆΠ΅ΡΠ° ΠΏΠΈΡΠ°Π½ΠΈΡ (ΠΎΠ±ΡΠ΅ΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ). ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΡΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ.
- Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° MCTP (Management Component Transport Protocol) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΊ Π²Π½Π΅ΡΠ½ΠΈΠΌ ΡΠ·Π»Π°ΠΌ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΡΠ·Π»Ρ (gateway-routing). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΈΠΆΠ΅ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π½Π°ΠΏΡΠ°Π²ΠΈΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΊ ΡΠ·Π»Ρ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ 10 (Endpoint ID 10) ΡΠ΅ΡΠ΅Π· ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ mctpi2c0, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π°Π΄ΡΠ΅Ρ 0x1d, Π½Π°ΠΏΡΡΠΌΡΡ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΠ½Π½ΡΠΉ ΠΊ ΡΠ·Π»Ρ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ 9. mctp route add 9 via mctpi2c0 mctp neigh add 9 dev mctpi2c0 lladdr 0x1d mctp route add 10 gw 9
- ΠΠ»Ρ UNIX-ΡΠΎΠΊΠ΅ΡΠΎΠ² (AF_UNIX) ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΎΠΏΡΠΈΡ SO_INC, Π° Π΄Π»Ρ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Π°Π΄ΡΠ΅ΡΠΎΠ² VSOCK ΠΎΠΏΡΠΈΡ SIOCINQ. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ ΠΎΠΏΡΠΈΠΈ TCP_INQ Π΄Π»Ρ TCP ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ Π±Π°ΠΉΡΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π² ΡΠΎΠΊΠ΅ΡΠ΅ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ.
- ΠΠ»Ρ TCP Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΡΡΡΠΎΠ³ΠΎΠ΅ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠΊΠ½Π° ΠΏΡΠΈΡΠΌΠ°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ Π΄Π°Π½Π½ΡΡ , Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΠΊ ΠΎΡΠΏΡΠ°Π²ΠΊΠ΅ Π΄ΠΎ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ACK-ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΎΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ. Π Π°Π½Π΅Π΅ ΡΠ΄ΡΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π»ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΡΡΡΠΏΠ°ΡΡΠΈΠ΅ ΡΠ²Π΅ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΡΠΈΡΠΌΠ°, Π½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½Π΅Ρ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ.
- Π MPTCP (Multipath TCP) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΡΠΈΠΈ ΡΠΎΠΊΠ΅ΡΠ° TCP_MAXSEG Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠΎΠ². MPTCP ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° TCP Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΌΠ°ΡΡΡΡΡΠ°ΠΌ ΡΠ΅ΡΠ΅Π· ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΠΊ ΡΠ°Π·Π½ΡΠΌ IP-Π°Π΄ΡΠ΅ΡΠ°ΠΌ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΎΠΊ TCP DualPI2 (RFC 9332), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ Π΄Π»Ρ ΡΡΠ°ΡΠΈΠΊΠ° Ρ Π²ΡΡΠΎΠΊΠΈΠΌΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΊ ΠΊΠ°ΡΠ΅ΡΡΠ²Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π½ΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, TCP-Prague ΠΈ DCTCP), Π½Π΅ Π²ΡΠ·ΡΠ²Π°Ρ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ, ΠΊΠ°ΠΊ Reno ΠΈ Cubic.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ sysctl Β«force_forwardingΒ», ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ°ΡΠΈΠΊΠ° Π½Π° Π²ΡΠ±ΡΠ°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ Ρ IPv6.
- Π£Π΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ΅ΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² SACK (Selective Acknowledgment), ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ Π² RFC 6675. ΠΠ°Π½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π±ΡΠ» ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌ Π² 2018 Π³ΠΎΠ΄Ρ. ΠΠ»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ΅ΡΠΈ TCP-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ RACK-TLP.
- ΠΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
- ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π°Π΄ drm-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ (Direct Rendering Manager) Xe Π΄Π»Ρ GPU Π½Π° Π±Π°Π·Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Intel Xe, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΠ°Ρ Intel ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Arc ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠ΅, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Tiger Lake. Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΈΠΏΠΎΠ² Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Panthor Lake ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ WildCat Lake.
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ AMDGPU Π΄Π»Ρ GPU GFX9.x ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Cleaner Shader, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΎΡΠΈΡΡΠΊΡ ΠΏΠ°ΠΌΡΡΠΈ GPU ΠΏΠ΅ΡΠ΅Π΄ Π΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠ΅ΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ , ΠΎΡΡΠ°Π²ΡΠΈΡ ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ°Π±ΠΎΡΡ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΆΠ΄ΡΡΠ΅Π³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π² ΡΠΏΡΡΠΈΡ ΡΠ΅ΠΆΠΈΠΌ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ Ρ AMD SR-IOV. Π£Π»ΡΡΡΠ΅Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΎΠΉ.
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ i915 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° drm_panic, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΏΡΠΈ ΡΠ±ΠΎΡΡ ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Β«ΡΠΈΠ½Π΅Π³ΠΎ ΡΠΊΡΠ°Π½Π° ΡΠΌΠ΅ΡΡΠΈΒ». ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² ΡΠΈΠΏΠ°Ρ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Wildcat Lake.
- ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Nova Π΄Π»Ρ GPU NVIDIA, ΠΎΡΠ½Π°ΡΡΠ½Π½ΡΡ GSP-ΠΏΡΠΎΡΠΈΠ²ΠΊΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ΅ΡΠΈΠΈ NVIDIA GeForce RTX 2000 Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Turing. ΠΡΠ°ΠΉΠ²Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust. Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΡΠΎΠ²Π΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ DMA, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΠ°ΡΡΠ΅Ρ VBIOS, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠΎΠ΄ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠ΅ΠΉΠΌΠ±ΡΡΠ΅ΡΠ° ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠΊΠΎΡΠ΅Π½Π½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Falcon.
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ adreno Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° GPU Qualcomm Adreno x1-45 ΠΈ x1-85.
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ msm Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° GPU Adreno SM8750 ΠΈ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ (VM_BIND).
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ panfrost Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° GPU Mali, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π² SoC Mediatek mt8370.
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ lima Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° GPU, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ Π² SoC Rockchip RK3528.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π΄ΡΠ°ΠΉΠ²Π΅Ρ mtd (Memory Technology Devices) Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ NVM-ΠΏΠ°ΠΌΡΡΠΈ, ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² GPU Intel.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π·Π²ΡΠΊΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ ASoC IMX WM8524, AMD ACP7.2, SoundWire ACP 7.1, Fairphone 4 & 5, Qualcomm QCS8275, Framework Laptop 13 (AMD Ryzen AI 300), CS35L41 HDA (ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² Π½ΠΎΡΡΠ±ΡΠΊΠ°Ρ ASUS), Richtek RTQ9124, TI TAS5753, HP EliteBook x360 830 G6, EliteBook 830 G6, LG 16Z90R-A, HP 15-fc000. ΠΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΡΠ΅ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ΄Π° HD-audio.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ARM-ΠΏΠ»Π°Ρ, SoC ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²: NVIDIA Tegra264, Marvell PXA1908 (ΠΏΠ΅ΡΠ²ΡΠΉ 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ ΡΠΈΠΏ ΠΎΡ Marvell Π΄Π»Ρ ΡΠΌΠ°ΡΡΡΠΎΠ½ΠΎΠ²), CIX P1, Axiado AX3000, Sophgo SG2000 (ΡΠΎΠ²ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ΄ΡΠ° ARM ΠΈ RISC-V), Mediatek mt6572, exynos2200 (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Samsung Galaxy S22), Renesas R-Car V4M-7, TI am62d2 ΠΈ Sophgo sg2042, Π½ΠΎΡΡΠ±ΡΠΊΠΈ Π½Π° Π±Π°Π·Π΅ Mediatek mt8186 ΠΈ Qualcomm Snapdragon X1, ΡΠΌΠ°ΡΡΡΠΎΠ½Ρ ΠΈ ΠΏΠ»Π°Π½ΡΠ΅ΡΡ Π½Π° Π±Π°Π·Π΅ SoC mt6572, tegra30 ΠΈ msm8976.
ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π»Π°ΡΠΈΠ½ΠΎΠ°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΈΠΉ Π€ΠΎΠ½Π΄ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΠ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π» Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° 6.17 β Linux-libre 6.17-gnu, ΠΎΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ
Π½Π΅ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΎΠ±Π»Π°ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ
ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ. Π Π²ΡΠΏΡΡΠΊΠ΅ 6.17 ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½ ΠΊΠΎΠ΄ ΡΠΈΡΡΠΊΠΈ blob-ΠΎΠ² Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ
amdgpu, prueth, iwlwifi, btusb, pci mhi host, adreno a6xx, nova-core ΠΈ Intel AVS. ΠΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΠΈΡΡΠΊΠ° ΠΈΠΌΡΠ½ blob-ΠΎΠ² Π² dts-ΡΠ°ΠΉΠ»Π°Ρ
(devicetree) Π΄Π»Ρ ARM-ΡΠΈΠΏΠΎΠ² ΠΈ Intel IPU7. ΠΠ΅ΠΉΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π·Π°Π³ΡΡΠ·ΠΊΠ° blob-ΠΎΠ² Π² Π½ΠΎΠ²ΡΡ
Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ
pci hda. ΠΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΡΠΈΡΡΠΊΠ° Π±Π»ΠΎΠ±ΠΎΠ² Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ QLogic infiniband, ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠΌ ΠΈΠ· ΡΠ΄ΡΠ°.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
