ΠΠΎΡΠ»Π΅ Π΄Π²ΡΡ ΠΌΠ΅ΡΡΡΠ΅Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»ΡΠ΄Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» ΡΠ΅Π»ΠΈΠ· ΡΠ΄ΡΠ° Linux 6.19. Π‘ΡΠ΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅ΡΠ½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Live Update Orchestrator, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° PCIe Link Encryption, ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² listns, ΡΠ΅ΠΆΠΈΠΌ Zero-Copy Receive Π² io_uring, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ARM-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ MPAM, klp-build Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ live-ΠΏΠ°ΡΡΠ΅ΠΉ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ LoongArch32, QoS Π΄Π»Ρ s2idle, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Π°ΡΠ΄ΠΈΡΠ°, Intel LASS Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ Spectre, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Ρ ΡΡΠ΅ΠΉ SHA-3 ΠΈ BLAKE2b, ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Confidential VMBus, TX-ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΏΡΠΎΡΠΎΠΊΠΎΠ» CAN XL, API Π΄Π»Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ HDR-Π²ΡΠ²ΠΎΠ΄Π°.
Π Π°Π½ΠΎΠ½ΡΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΠΈΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠΈΠ», ΡΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ Π²ΡΠΏΡΡΠΊΡ ΡΠ΄ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ Π½ΠΎΠΌΠ΅Ρ 7.0, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² Π²Π΅ΡΠΊΠ΅ 6.x Π½Π°ΠΊΠΎΠΏΠΈΠ»ΠΎΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΡΡΠΊΠΎΠ² Π΄Π»Ρ ΡΠΌΠ΅Π½Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π² Π½ΠΎΠΌΠ΅ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ (Π² ΡΠ²ΠΎΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΡΡΠΊ 6.0 Π±ΡΠ» ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ ΡΠ»Π΅Π΄ΠΎΠΌ Π·Π° 5.19). Π‘ΠΌΠ΅Π½Π° Π½ΡΠΌΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ· ΡΡΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠ°Π³ΠΎΠΌ, ΡΠ½ΠΈΠΌΠ°ΡΡΠΈΠΌ Π΄ΠΈΡΠΊΠΎΠΌΡΠΎΡΡ ΠΈΠ·-Π·Π° Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° Π²ΡΠΏΡΡΠΊΠΎΠ² Π² ΡΠ΅ΡΠΈΠΈ. ΠΠΈΠ½ΡΡ ΠΏΠΎΡΡΡΠΈΠ», ΡΡΠΎ Π΅Π³ΠΎ ΡΠ±ΠΈΠ²Π°ΡΡ Ρ ΡΠΎΠ»ΠΊΡ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠΈΡΠ»Π° Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ Ρ Π²Π°ΡΠ°Π΅Ρ ΠΏΠ°Π»ΡΡΠ΅Π² Π½Π° ΡΡΠΊΠ°Ρ ΠΈ Π½ΠΎΠ³Π°Ρ . ΠΡΠΈ ΡΡΠΎΠΌ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΠΎΠ²ΠΎΠ΄ Π΄Π»Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½ΠΎΠΌΠ΅ΡΠ° Π²Π΅ΡΡΠΈΠΈ Π΅ΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΡΠΈΠ½Π°Ρ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π²ΡΠΏΡΡΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Rust ΡΠ΅ΡΠ΅Π½ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ ΠΈΠ· ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ΄ΡΠ°.
Π Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠ½ΡΡΠΎ 15657 ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΎΡ 2237 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΡΡΠ° β 52 ΠΠ (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°ΡΡΠΎΠ½ΡΠ»ΠΈ 13682 ΡΠ°ΠΉΠ»Π°, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 794649 ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°, ΡΠ΄Π°Π»Π΅Π½ΠΎ 335498 ΡΡΡΠΎΠΊ). Π ΠΏΡΠΎΡΠ»ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ Π±ΡΠ»ΠΎ 15035 ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ ΠΎΡ 2217 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΡΡΠ° β 45 ΠΠ. ΠΠΊΠΎΠ»ΠΎ 40% Π²ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π² 6.19 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠ²ΡΠ·Π°Π½Ρ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°ΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ², ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ 13% ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠΌΠ΅ΡΡ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ, 12% ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΡΡΠ΅ΠΊΠΎΠΌ, 5% β Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΠΈ 3% c Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΡΠ΄ΡΠ°.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π° Π² ΡΠ΄ΡΠ΅ 6.19 (1, 2, 3):
- ΠΠΈΡΠΊΠΎΠ²Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°, Π²Π²ΠΎΠ΄/Π²ΡΠ²ΠΎΠ΄ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ
- Π Btrfs ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π€Π‘ (scrub) ΠΈ Π·Π°ΠΌΠ΅Π½Ρ ΡΡΡΡΠΎΠΉΡΡΠ² Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠΏΡΡΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ (ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΡΡΠΏΠ°Π½ΠΈΠ΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ scrub-ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ; ΠΏΠΎΡΠ»Π΅ Π²ΡΡ ΠΎΠ΄Π° ΠΈΠ· ΡΠ½Π° scrub-ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ, Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π°ΠΌΠ΅Π½Ρ ΡΡΡΡΠΎΠΉΡΡΠ² Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π·Π°Π½ΠΎΠ²ΠΎ). Π ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ RAID56 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±Π»ΠΎΠΊΠΎΠ², ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ fscrypt. ΠΠΎΠ²ΡΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΡΠ°. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ioctl-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ shutdown, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ Π€Π‘ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΏΠΎΠΏΡΡΠΊΠ° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΆΠ΅ Π·Π°ΠΏΡΡΠ΅Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, Π½ΠΎ Π±Π»ΠΎΠΊΠΈΡΡΡΡΡΡ Π²ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
- Π ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Ext4 Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±Π»ΠΎΠΊΠΎΠ², ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠ°ΠΌΡΡΠΈ (>4KB Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ x86). ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΡΡΠΏΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ²ΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±ΡΡΠ΅ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ Π½Π° 50%, Π½ΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ·-Π·Π° ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ°ΡΡΡΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΌΠΌ. Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, ΠΏΠΎΠ²ΡΡΠΈΠ²ΡΠΈΠ΅ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ online-Π΄Π΅ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
- Π ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅ FUSE ΡΠ»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π±ΡΡΠ΅ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΎΠ»ΠΈΠ°Π½ΡΠΎΠ² ΡΡΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ (large folios). Π§Π΅ΡΠ΅Π· iomap ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠ°ΡΡΠΈΡΠ½ΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΎΠ»ΠΈΠ°Π½ΡΠΎΠ² Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π°Π½Π½ΡΡ , ΠΎΡΡΡΡΡΡΠ²ΡΡΡΠΈΡ Π² Π±ΡΡΠ΅ΡΠ΅.
- Π VFS Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠ΅ΠΉ (recallable directory delegation), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² NFS ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠ΅ΠΉ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΡ, ΡΡΠΎΠ±Ρ NFS-ΠΊΠ»ΠΈΠ΅Π½Ρ Π±Π΅Π· ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊ NFS-ΡΠ΅ΡΠ²Π΅ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π» ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΡΡΠ°. ΠΡΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ NFS-ΠΊΠ»ΠΈΠ΅Π½Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΡΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠ΅ΠΉ, Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ·Π²Π°Π½ΠΎ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°.
- ΠΠ»Ρ NFS Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠ΅Π½ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° (direct I/O). Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ /sys/kernel/debug/nfsd/io_cache_read ΠΈ /sys/kernel/debug/nfsd/io_cache_write Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°, ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ½ΠΈΠ·ΠΈΡΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ NFS-ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΡΡΠΏΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°.
- Π NTFS ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ioctl-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ shutdown, Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠΏΡΠΈΠΈ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ acl ΠΈ prealloc, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄ΠΎ 1 ΡΠ½Π²Π°ΡΡ 1970 Π³ΠΎΠ΄Π°.
- ΠΠ»Ρ Π±Π»ΠΎΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ Π€Π‘ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎΠ΅ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ CPU ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Β«bioΒ» (Block I/O), ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°.
- ΠΠ°ΠΌΡΡΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ
-
Π ΡΠ΄ΡΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Live Update Orchestrator (LUO), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ΄ΡΠΎ Π±Π΅Π· ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°Π±ΠΎΡΡ ΠΈ Π½Π΅ ΡΠ΅ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ². ΠΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° LUO Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ Π½Π° ΡΠ°Π½Π΅Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΌ Π² ΡΠ΄ΡΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ΅ KHO (Kexec HandOver) ΠΈ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°ΠΏΡΡΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° ΠΈΠ· ΡΡΠ°ΡΠΎΠ³ΠΎ Π±Π΅Π· ΠΏΠΎΡΠ΅ΡΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΡΠ°Π΅Ρ ΡΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ, ΠΊΠ°ΠΊ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ DMA ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ. Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π΄ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π° Π½ΠΎΠ²ΠΎΠ΅ ΡΠ΄ΡΠΎ ΠΈ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° Π±Π΅Π· Π½Π°ΡΡΡΠ΅Π½ΠΈΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
-
ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² listns() Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΡΠΏΠΈΡΠΊΠ° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΡΠ½ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°ΡΡ /proc/<pid>/ns/ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
Π ΡΠΈΡΡΠ΅ΠΌΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° io_uring Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ (SQE, Submission Queue Entry), ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ Π²ΡΠΏΡΡΠΊΠ΅ Π±ΡΠ»ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΎ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² (CQE, Completion Queue Event). ΠΠΎ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ»ΠΈ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·ΠΌΠ΅Ρ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ ΠΈΠ·Π»ΠΈΡΠ½Π΅ΠΌΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ·-Π·Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.
Π io_uring ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° zcrx (Zero-Copy Receive) Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π±Π΅Π· ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΄ΡΠΎΠΌ ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ² ΡΠ°ΡΠΊΠ»Π°Π΄ΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ SQ (Submission Queue) ΠΈ CQ (Completion Queue), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ ΠΊΠΎΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ Π±ΡΡΠ΅ΡΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ»Π°Π³ΠΎΠ² IORING_SETUP_NO_MMAP ΠΈ IORING_MEM_REGION_TYPE_USER.
ΠΠ»Ρ Π±ΡΡΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠ΅ΠΊΠ° ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΡΠΈΠ»ΠΈΡ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ perf, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΡΠΌΠ°ΡΠ° SFrame Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΡΠ°ΡΠΊΡΡΡΠΊΠ΅ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² (unwind). SFrame ΡΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π² GCC ΠΈ binutils, Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ, Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠΎΡΠΌΠ°ΡΠ° DWARF, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π΄Π»Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠ΅ΠΊΠ°.
-
Π ΡΡΠΈΠ»ΠΈΡΡ perf Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΉ ΠΌΠ΅ΡΡΠΈΠΊ ΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΡΠ°ΡΠΊΡΡΡΠΊΠΈ (deferred unwinding) ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² AMD ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π΄Π°Π½Π½ΡΡ Π² ΠΊΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° Π½Π°ΠΏΡΡΠΌΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² L3-ΠΊΡΡ CPU Π±Π΅Π· ΠΈΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΠΠ£.
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° MPAM (Memory System Resource Partitioning and Monitoring), ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π½Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ ARMv8-A Π΄Π»Ρ ΠΏΠΎΠΌΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ ΡΠ΅ΠΊΡΠΈΠΈ (PARTID, Partition ID) ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠΌ Π³ΡΡΠΏΠΏΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° (PMG, Monitoring Group ID). Π ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ΅ ΠΊ PARTID ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΡΡΠ°, ΡΡΠΎ Π±Ρ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ Π³ΡΡΠΏΠΏΠ° Π·Π°Π΄Π°Ρ Π½Π΅ Π·Π°Π½ΡΠ»Π° Π²ΡΠ΅ ΡΠ΅ΡΡΡΡΡ. Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠ΅ PMG ΠΈ PARTID ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ Π²ΠΈΠ΄Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠΈ.
Π ΡΠ»ΡΡΠ°Π΅ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠ³Π½Π°Π»Π°, Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ pidfd Π·Π°Π²Π΅ΡΡΠΈΠ²ΡΠ΅Π³ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½ΠΎΠΌΠ΅Ρ ΡΠΈΠ³Π½Π°Π»Π°, ΠΏΡΠΈΠ²Π΅Π΄ΡΠ΅Π³ΠΎ ΠΊ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
ΠΠ΅ΡΠ΅ΡΠ°Π±ΠΎΡΠ°Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ (restartable sequences), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π²Π΄ΠΎ-Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΠ΅ Π½Π΅ ΠΏΡΠ΅ΡΡΠ²Π°Π΅ΠΌΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π³ΡΡΠΏΠΏΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ (Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠΌ, ΠΏΡΠ΅Π΄ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½Π°Ρ ΠΏΠΎΠΏΡΡΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ). ΠΠΎΠ²Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ.
-
ΠΠ»Ρ BPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ BPF_JMP, BPF_X ΠΈ BPF_JA Π΄Π»Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠ²Π΅Π½Π½ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ². ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ (dynptr), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΠΏΠ°ΠΊΠ΅ΡΠ°ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π±Π°ΠΉΡΠΎΠ² Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ.
ΠΠΎΠ΄ΡΠ»ΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ Python, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ ΡΠ΄ΡΡ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ tools/lib/python.
-
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ mempool_alloc_bulk() Π΄Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΠ· ΠΏΡΠ»Π° ΠΏΠ°ΠΌΡΡΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΠ΄ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
-
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠ· Π²Π΅ΡΠΊΠΈ Rust-for-Linux, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ·ΡΠΊΠ° Rust Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΄ΡΠ° (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Rust Π½Π΅ Π°ΠΊΡΠΈΠ²Π½Π° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΈ Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Rust Π² ΡΠΈΡΠ»ΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ ΡΠ±ΠΎΡΠΎΡΠ½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΊ ΡΠ΄ΡΡ). Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π² ΡΠΎΡΡΠ°Π² ΡΠ΄ΡΠ° Π²ΡΡΡΠΎΠ΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Β«synΒ» Ρ ΠΏΠ°ΡΡΠ΅ΡΠΎΠΌ Rust-ΠΊΠΎΠ΄Π°, ΡΠΏΡΠΎΡΠ°ΡΡΠΈΠΌ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠΎΠ². Π Π°ΡΡΠΈΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ kernel, pin-init ΠΈ rbtree. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° num Ρ ΡΠΈΠΏΠ°ΠΆΠΎΠΌ Integer Π΄Π»Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ ΡΠ΅Π»ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ. Π ΠΌΠ°ΠΊΡΠΎΡ module! Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΄ΡΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° Rust. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌ I2C ΠΈ PWM (Pulse Width Modulation).
-
ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ°ΠΊΡΠΎΡ at_least (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, param[at_least 7], ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΡΡΠΈΠΉ ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π² ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠ»ΠΈ Π² ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ ΠΌΠ°ΡΡΠΈΠ² Ρ ΠΌΠ΅Π½ΡΡΠΈΠΌ ΡΠΈΡΠ»ΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΡΠ²Π΅Π΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅.
-
Π ΡΠΎΡΡΠ°Π² Π²ΠΊΠ»ΡΡΡΠ½ ΡΠΊΡΠΈΠΏΡ klp-build Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΄ΡΠ°, Π²Π½ΠΎΡΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π΅ ΡΠ΄ΡΠΎ (livepatch), Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°ΠΉΠ»Π° Ρ ΠΏΠ°ΡΡΠ΅ΠΌ. Π ΡΡΠΈΠ»ΠΈΡΡ objtool Π²Π½Π΅ΡΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ live-ΠΏΠ°ΡΡΠ΅ΠΉ.
-
Π User-mode Linux (Π·Π°ΠΏΡΡΠΊ ΡΠ΄ΡΠ° ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΡΡΠΈ, Π½ΠΎ ΠΏΠΎΡΠΎΠΊΠΈ Π²Π½ΡΡΡΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΠΊΠ° Π½Π΅ ΠΌΠΎΠ³ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠ°ΡΠ°Π»ΠΎΡΡ ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ User-mode Linux Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ nolibc.
-
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ LoongArch32 (LA32R, LA32S) Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ LoongArch64.
-
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΡΡΠ°Π²Π»Π΅Π½ΠΈΡ QoS-Π»ΠΈΠΌΠΈΡΠΎΠ² Π½Π° ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ ΠΏΡΠΎΠ±ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΡΠ½Π΅ΡΠ³ΠΈΠΈ s2idle (Suspend-To-Idle), Π·Π°ΠΌΠΎΡΠ°ΠΆΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π½ΠΎ ΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ Π°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π² ΡΠ΄ΡΠ΅.
-
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² IOMMU (Input-Output Memory Management Unit), Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠΎΠ², Π²ΠΈΠ΄ΠΈΠΌΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ, Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ°, Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ DMA ΠΏΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ Π°Π΄ΡΠ΅ΡΠ°ΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°.
Π ΡΠΎΠ±ΡΡΠΈΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠ΅Π½ΠΈΡ Π±ΡΡΠ΅ΡΠΎΠ² ΠΈΠ· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΡΠ½ ΡΠ°ΠΉΠ»ΠΎΠ²) Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ.
-
**Π‘ΡΠΎΡΠΎΠΆΠ΅Π²ΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠ°ΠΌΡΡΠΈ(( (guard page), ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° (SIGSEGV), ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΎΡΠΎΠ±ΠΎΠΉ ΠΌΠ΅ΡΠΊΠΎΠΉ Π² ΡΠ°ΠΉΠ»Π΅ /proc/PID/smaps.
-
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΡΡΠΏΠ½ΡΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ (transparent huge page) Π² ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ Π·ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ².
-
Π ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ zram, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΌ Π΄Π»Ρ ΡΠΆΠ°ΡΠΎΠ³ΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π° ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΡΡΠ΅ΡΠ½Π΅Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΡΠΊΡΡΡ Β«bioΒ» (Block I/O) Π² ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ (writeback batching).
Π ΡΠΎΡΡΠ°Π² Π²ΠΊΠ»ΡΡΡΠ½ ΡΡΠΈΡΡ Β«Terminus 10Γ18Β», ΡΠ»ΡΡΡΠ°ΡΡΠΈΠΉ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π½Π° ΡΠΊΡΠ°Π½Π°Ρ Π½ΠΎΡΡΠ±ΡΠΊΠΎΠ² ΡΠΎ ΡΡΠ΅Π΄Π½ΠΈΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ (1440Γ900).
-
ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Π°ΡΠ΄ΠΈΡΠ°Β β ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² Π² Π΄Π²Π° ΡΠ°Π·Π°.
-
- ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ Intel Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π°Π΄ΡΠ΅ΡΠΎΠ² (LASS, linear address-space separation), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ ΡΠ°Π·Π΄Π΅Π»ΠΈΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΠ΄ΡΠ° Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΠ΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΡΠ°ΡΡΠ΅ΠΌΡ Π±ΠΈΡΡ Π°Π΄ΡΠ΅ΡΠ° β ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Ρ ΡΡΡΠ°Π½ΠΎΠ²ΒΠ»Π΅Π½Π½ΡΠΌ ΡΡΠ°ΡΡΠΈΠΌ Π±ΠΈΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ΄ΡΠ°, Π° Π½ΠΈΠΆΠ½ΡΡ β Π΄Π»Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠ° ΡΠ°Π½Π½Π΅ΠΌ ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ (Π½Π° ΡΡΠ°Π΄ΠΈΠΈ Π΄ΠΎ ΡΠΏΠ΅ΠΊΡΠ»ΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ) ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΡΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊ Π°Π΄ΡΠ΅ΡΠ°ΠΌ Ρ Π²ΡΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ ΡΡΠ°ΡΡΠΈΠΌ Π±ΠΈΡΠΎΠΌ ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΡΠ΄ΡΠ° Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΌ ΠΊΠ°Π½Π°Π»Π°ΠΌ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΡΠΏΠ΅ΠΊΡΠ»ΡΡΠΈΠ²Π½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, ΡΡΠΎ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ LASS Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ Π°ΡΠ°ΠΊ ΠΊΠ»Π°ΡΡΠ° Meltdown ΠΈ Spectre, Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠ΅ΠΉ ΠΊ Π±ΠΎΠ»ΡΡΠΈΠΌ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠΌ ΡΠ°ΡΡ ΠΎΠ΄Π°ΠΌ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ ΡΡΠΈΠ»Π΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΡΠΈΠ½Ρ PCI Express β PCIe Link Encryption ΠΈ PCIe Device Authentication, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ ΠΏΠΎΠ΄Π»ΠΈΠ½Π½ΠΎΡΡΡ ΠΈ ΡΠΈΡΡΠΎΠ²Π°ΡΡ ΠΊΠ°Π½Π°Π» ΡΠ²ΡΠ·ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ PCIe ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½ΠΎΠΉ, Π·Π°ΡΠΈΡΡΠ½Π½ΠΎΠΉ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² Intel TDX (Trusted Domain Extensions) ΠΈ AMD SEV-SNP (Secure Nested Paging). Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π²Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΡΠ°ΡΠΈΠΊ DMA ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Ρ ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ.
- ΠΠΎ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² SHA-3 (SHA3-224, SHA3-256, SHA3-384, SHA3-512) SHAKE128, SHAKE256 ΠΈ BLAKE2b.
- ΠΠ»Ρ LSM-ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ (Linux Security Modules) ΠΈ, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ SELinux, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² memfd Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΊ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ Ρ Π½ΠΈΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ.
- Π LSM-ΠΌΠΎΠ΄ΡΠ»Ρ IPE (Integrity Policy Enforcement), ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΠΎΠ±ΡΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ»Π°Π³Π° AT_EXECVE_CHECK Π² ΡΡΠ½ΠΊΡΠΈΠΈ execveat(), Π²ΠΊΠ»ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΡΠΊΡΠΈΠΏΡΠ° ΠΏΠ΅ΡΠ΅Π΄ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Ρ scoped_user_read_access(), scoped_user_write_access ΠΈ scoped_user_rw_access() Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ Ρ Π·Π°ΡΠΈΡΠΎΠΉ ΡΠΏΠ΅ΠΊΡΠ»ΡΡΠΈΠ²Π½ΡΡ Π°ΡΠ°ΠΊ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Confidential VMBus, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ΅ HyperV Π΄Π»Ρ Π·Π°ΡΠΈΡΡΠ½Π½ΠΎΠ³ΠΎ ΠΎΡ Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π° Π³ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π³ΠΎΡΡΠ΅Π²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ Π² ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ (Ρ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠ΅ΠΉ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π½Π° Π±Π°Π·Π΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ AMD SNP ΠΈ Intel TDX), ΠΈ paravisor-ΠΎΠΌ, ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΌ Π·Π° ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌ, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠΌ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠΈΠ²ΡΠ΅ΠΌΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ (Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ coredump) ΡΠ΅ΡΠ΅Π· ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ pidfd. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ PIDFD ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΈ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ PID ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ ΡΡΠΈΠΌ PID. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ pidfd ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΠ΅ Π°ΡΠ°ΠΊ ΠΏΠΎ ΠΏΠΎΠ΄ΠΌΠ΅Π½Π΅ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠΈΠ²ΡΠ΅Π³ΠΎΡΡ suid-ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, Π΄ΠΎΠ±ΠΈΠ²Π°ΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π³ΠΎΠ½ΠΊΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ»Π΅ Π½Π°ΡΠ°Π»Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠΎΠΌ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ, Π½ΠΎ Π΄ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠ°.
- Π‘Π΅ΡΠ΅Π²Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°
- Π ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Π²Π½Π΅ΡΠ΅Π½Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π΄Π°Π½Π½ΡΡ (TX). ΠΠ·Π±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ __dev_queue_xmit() ΠΎΡ spin-Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΡΡΡΡΠΊΡΡΡΡ llist ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π² 4 ΡΠ°Π·Π° ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΈ ΡΠ΄Π²ΠΎΠΈΡΡ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΏΡΠΈ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° CPU Π² Π΄Π²Π° ΡΠ°Π·Π°.
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠΎΠΊΠ΅ΡΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π»ΠΈΠΌΠΈΡΠΎΠ² Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΠΈ (Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΠΎΠ±ΡΠΈΠ΅ Π»ΠΈΠΌΠΈΡΡ Π½Π° ΠΏΠ°ΠΌΡΡΡ, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ²). ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π»ΠΈΠΌΠΈΡΠΎΠ² ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ sysctl net.core.bypass_prot_mem ΠΈ ΡΠ»Π°Π³ SK_BPF_BYPASS_PROT_MEM Π² ΡΡΠ½ΠΊΡΠΈΠΈ bpf_setsockopt.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ RFC 5837, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΠ΅Π³ΠΎ Π² ICMP-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Time Exceeded, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΠ΅ ΠΏΡΠΈ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ (TTL) ΠΏΠ°ΠΊΠ΅ΡΠ°, Π΄Π°Π½Π½ΡΠ΅ ΠΎ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΠΌΠ°ΡΡΡΡΡΠΎΠ² ΡΡΠΈΠ»ΠΈΡΠΎΠΉ traceroute.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½ΠΎΠ³ΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΈΠ½Π³Π° (busy polling) Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΠΎΠΊΠ΅ ΡΠ΄ΡΠ° Ρ ΡΠ΅Π»ΡΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ² ΠΈΠ· RX/TX-ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΡΠ΅Π±ΡΡΡΠΈΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° CAN XL (Controller Area Network eXtended Length), Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠΎΠ»Ρ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ Π΄ΠΎ 2048 Π±Π°ΠΉΡ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Ρ ΡΠ΅ΡΡΠΌΠΈ TCP/IP, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠ½Π½Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ethernet-ΠΊΠ°Π΄ΡΠΎΠ² ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΈΡΠΎΡΠ½ΠΎ-ΠΈΠΌΠΏΡΠ»ΡΡΠ½ΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»ΡΡΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ²ΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡΡ 20 ΠΠ±ΠΈΡ/Ρ ΠΈ Π²ΡΡΠ΅.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΡΡΠΊΡΡΡΡ sockaddr_unsized, Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΡΡΡΠΊΡΡΡΡ sockaddr, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠ΅Π³ΠΎ ΠΌΠ°ΡΡΠΈΠ² Ρ Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° (sa_data[] Π²ΠΌΠ΅ΡΡΠΎ sa_data[14], ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎ ΡΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π΄Π»Ρ ΡΡΡΠ»ΠΎΠΊ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ getsockname ΠΈ getpeername ΡΠ΅ΡΠ΅Π· ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ io_uring.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ sysctl net.ipv4.tcp_rcvbuf_low_rtt ΠΈ net.ipv4.tcp_comp_sack_rtt_percent Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ TCP.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π»ΠΈΠ½ΠΊΠΎΠ² Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΡ 1600 Gbps (1.6T).
- ΠΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
- Π ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ DRM (Direct Rendering Manager) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ API Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²Π΅ΡΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΠΉΠ΄Π΅ΡΡ ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° CPU. ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π½Π° HDR-ΠΌΠΎΠ½ΠΈΡΠΎΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΠ²Π΅ΡΠΎΠ²ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ Π½Π° ΡΡΠ°Π΄ΠΈΠΈ Π΄ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ ΡΠ»ΠΎΡΠ² (blending), Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠ½Π³Π° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π² ΡΠΈΠ½Π°Π»ΡΠ½ΡΠΉ Π±ΡΡΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠΌΠΈΠΌΠΎ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ΠΎΠ² ΠΈ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΏΡΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ²ΠΎΠ΄Π° Π² HDR, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ²Π΅ΡΠΎΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°Ρ Π²ΠΈΠ΄Π΅ΠΎ ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ethosu Π΄Π»Ρ NPU Arm Ethos U65 ΠΈ U85, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ AI-ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ i915 Π΄Π»Ρ GPU Lunar Lake ΠΈ Π½ΠΎΠ²Π΅Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΡΠΊΠΎΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ (Sharpening).
- ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π°Π΄ drm-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ (Direct Rendering Manager) Xe Π΄Π»Ρ GPU Π½Π° Π±Π°Π·Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Intel Xe, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΠ°Ρ Intel ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Arc ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠ΅, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Tiger Lake. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Xe3P, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π² GPU Crescent Island ΠΈ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ Nova Lake.
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ AMDGPU ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡ AMD ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° GCN 1.0 Β«Southern IslandΒ» ΠΈ 1.1 Β«Sea IslandsΒ», Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ°Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Radeon. ΠΡΠ°ΠΉΠ²Π΅Ρ AMDGPU Π΄ΠΎΠ²Π΅Π΄ΡΠ½ Π΄ΠΎ ΠΏΠ°ΡΠΈΡΠ΅ΡΠ° ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠΌ Radeon ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ GPU ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΠ°ΡΡΡ GCN 1.x Π²ΡΠΏΡΡΠΊΠ°Π»ΠΈΡΡ Ρ 2012 ΠΏΠΎ 2019 Π³ΠΎΠ΄ ΠΈ ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΠΊΠ°ΠΊ Radeon HD 77xx/78xx/79xx/87xx/88xx/89xx, Radeon R9 280, FirePro W4000-W9000, Radeon Sky 700/900, Radeon R9 265/270/370, Radeon R9 290/390, HD 7790 / 8870 ΠΈ ΠΈΠ½ΡΠ΅ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ² Radeon Rx 200 / Rx 300. ΠΠΎΠΌΠΈΠΌΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ Π½Π° 24%, ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° AMDGPU ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π΄Π°Π½Π½ΡΡ GPU ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ API Vulkan 1.3. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² AMDGPU Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΊΠΎΠ½Π½Π΅ΠΊΡΠΎΡΠΎΠ² ΠΈ Video Coding Engine 1.0, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠ΅ΠΊ DC (Display Core) Π΄Π»Ρ GPU Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Bonaire (Radeon HD 7790).
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ Nouveau ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»Ρ NVJPG, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π² SoC Tegra210.
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ Panthor Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° GPU Mali-G1 ΠΈ Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΈΠΏΠ° MediaTek MT8196.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π·Π²ΡΠΊΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΈΠΏΠΎΠ² Intel Nova Lake S, Π½ΠΎΡΡΠ±ΡΠΊΠΎΠ² HP Ρ HDA CS35L41, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π²ΡΠΊΠΎΠ²ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² CIX IPBLOQ HD ΠΈ Onkyo SE-300PCIE.
- ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Nova Π΄Π»Ρ GPU NVIDIA, ΠΎΡΠ½Π°ΡΡΠ½Π½ΡΡ GSP-ΠΏΡΠΎΡΠΈΠ²ΠΊΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΌΠΈ Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΡΠ΅ΡΠΈΠΈ NVIDIA GeForce RTX 2000 Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Turing. ΠΡΠ°ΠΉΠ²Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust. Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π½Π°ΡΠ°Π»Π°ΡΡ ΡΠ°Π±ΠΎΡΠ° Π½Π°Π΄ RPC ΠΈ Π·Π°Π²Π΅ΡΡΠ΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° GSP (GPU System Processor).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ARM-ΠΏΠ»Π°Ρ, SoC ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²: Bananapi r4 pro, LinkEase EasePi R1, Qualcomm MSM8937 (Snapdragon 430), Renesas R-Car X5H, FriendlyElec NanoPi R76S, TI AM62L, Black Sesame Technologies C1200, Aspeed AST2600, Genio 1200 EVK, grinn geniosbc-510/700, Tanix TX9 Pro, Radxa Dragon Q6A, Tinker Board 3/3S, Aquila AM69, phyBOARD-Segin-i.MX91, i.MX 95 Verdin Evaluation Kit, Toradex SMARC iMX95, VIDIA Jetson Nano 2GB, Renesas rz/g3s, Indiedroid Nova, 24 Π²Π°ΡΠΈΠ°Π½ΡΠ° ΠΏΠ»Π°Ρ Enclustra Mercury.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΌΠ°ΡΡΡΠΎΠ½ΠΎΠ² ΠΈ ΠΏΠ»Π°Π½ΡΠ΅ΡΠΎΠ² Π½Π° Π±Π°Π·Π΅ SoC Mediatek MT6582 (Alcatel yarisxl), Nvidia Tegra124 (Xiaomi Mi Pad) ΠΈ Qualcomm MSM8939 (ASUS ZenFone 2). ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½ΠΎΡΡΠ±ΡΠΊΠΎΠ² Π½Π° SoC Qualcomm sdm850, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Huawei MateBook E 2019.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° SoC ΠΈ ΠΏΠ»Π°Ρ Π½Π° Π±Π°Π·Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ RISC-V: OrangePi R2S, OrangePi RV, Anlogic dr1v90, Tenstorrent Blackhole.
ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π»Π°ΡΠΈΠ½ΠΎΠ°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΈΠΉ Π€ΠΎΠ½Π΄ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΠ ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π» Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° 6.19 β Linux-libre 6.19-gnu, ΠΎΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ Π½Π΅ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΎΠ±Π»Π°ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ. Π Π²ΡΠΏΡΡΠΊΠ΅ 6.19 ΠΈΠ· Π·Π²ΡΠΊΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ SDCA ΡΠ΄Π°Π»ΡΠ½ ΠΊΠΎΠ΄ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ. ΠΠ±Π½ΠΎΠ²Π»ΡΠ½ ΠΊΠΎΠ΄ ΡΠΈΡΡΠΊΠΈ blob-ΠΎΠ² Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ Intel XE, Nova-Core, Qualcomm Iris, Venus and Q6V5, TI PRUeth, Intel iwlwifi, Marvell mwifiex, FourSemi fs210x, Realtek rt1320 ΠΈ Π·Π²ΡΠΊΠΎΠ²ΡΡ ΠΊΠΎΠ΄Π΅ΠΊΠ°Ρ TI tas2783. ΠΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΠΈΡΡΠΊΠ° ΠΈΠΌΡΠ½ blob-ΠΎΠ² Π² dts-ΡΠ°ΠΉΠ»Π°Ρ (devicetree) Π΄Π»Ρ ARM-ΡΠΈΠΏΠΎΠ². ΠΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΡΠΈΡΡΠΊΠ° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° STM C8SECTPFE DVB, ΡΠ΄Π°Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠ΄ΡΠ°.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: linux.org.ru

