ΠΠΎΡΠ»Π΅ Π΄Π²ΡΡ
ΠΌΠ΅ΡΡΡΠ΅Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»ΡΠ΄Ρ
- ΠΠΈΡΠΊΠΎΠ²Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°, Π²Π²ΠΎΠ΄/Π²ΡΠ²ΠΎΠ΄ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½ΠΎΠ²ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° —
io_uring , ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»Π΅Π½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΏΠΎΠ»Π»ΠΈΠ½Π³Π° Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠ°ΠΊ Ρ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΡΠ°ΠΊ ΠΈ Π±Π΅Π· Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ ΡΠ°Π½Π΅Π΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° «aio» Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π» Π±ΡΡΠ΅ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π²Π²ΠΎΠ΄/Π²ΡΠ²ΠΎΠ΄, ΠΌΠΎΠ³ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ O_DIRECT (Π±Π΅Π· Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π² ΠΎΠ±Ρ ΠΎΠ΄ ΠΊΡΡΠ°), ΠΈΠΌΠ΅Π» ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ΠΌ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΠΈΠ·-Π·Π° ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π» Π±ΠΎΠ»ΡΡΠΈΠ΅ Π½Π°ΠΊΠ»Π°Π΄Π½ΡΠ΅ ΡΠ°ΡΡ ΠΎΠ΄Ρ ΠΈΠ·-Π·Π° ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ.Π ΡΠ°ΠΌΠΊΠ°Ρ API
io_uring ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠΎΠΏΡΡΠ°Π»ΠΈΡΡ ΡΡΡΡΠ°Π½ΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° aio. ΠΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ io_uring ΠΎΡΠ΅Π½Ρ Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊSPDK ΠΈ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°Π΅Ρ libaio ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ ΠΏΠΎΠ»Π»ΠΈΠ½Π³ΠΎΠΌ. ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ io_uring Π² ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°liburing , ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ°Ρ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΠΎΠ±Π²ΡΠ·ΠΊΡ Π½Π°Π΄ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΡΠ΄ΡΠ°; - Π ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ Π² Π€Π‘ fanotify()
Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΏΠ΅ΡΠ±Π»ΠΎΠΊΠ° ΠΈ ΡΡΡΡΠΊΡΡΡΡdirent (ΡΠΎΠ±ΡΡΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ, ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ²). ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΡ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΡ Π€Π‘ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° inotify (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ dirent ΡΠ°Π½Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· inotify, Π½ΠΎ
ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ² ΠΎΡΡΠ°Π²Π»ΡΠ»Π° ΠΆΠ΅Π»Π°ΡΡ Π»ΡΡΡΠ΅Π³ΠΎ). Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΡΠ΅Π· fanotify; - Π ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Btrfs
Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΡΠΎΠ²Π½Ρ ΡΠΆΠ°ΡΠΈΡ Π΄Π»Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° zstd, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡ, ΠΌΠ΅ΠΆΠ΄Ρ Π±ΡΡΡΡΡΠΌ Π½ΠΎ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ lz4 ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ Π½ΠΎ Ρ ΠΎΡΠΎΡΠΎ ΡΠΆΠΈΠΌΠ°ΡΡΠΈΠΌ xz. ΠΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ ΡΠ΅ΠΌ ΠΊΠ°ΠΊ ΡΠ°Π½ΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΡΡΠΎΠ²Π΅Π½Ρ ΡΠΆΠ°ΡΠΈΡ ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ zlib Π΄Π»Ρ zstd Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠΏΡΠΈΠΈ ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ «-o compress=zstd:level». ΠΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ» ΡΠΆΠ°ΡΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² 2.658 ΡΠ°Π· ΠΏΡΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠΆΠ°ΡΠΈΡ 438.47 MB/s, ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ 910.51 MB/s ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ 780 MB, Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ 15 ΡΡΠΎΠ²Π΅Π½Ρ — Π² 3.126 ΡΠ°Π·, Π½ΠΎ ΠΏΡΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠΆΠ°ΡΠΈΡ Π² 37.30 MB/s, ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ 878.84 MB/s ΠΈ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠΈ ΠΏΠ°ΠΌΡΡΠΈ 2547 MB; -
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°Π·ΠΌΠ΅ΡΡΠ½Π½ΠΎΠΉ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ device-mapper, Π±Π΅Π· ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ initramfs. ΠΠ°ΡΠΈΠ½Π°Ρ Ρ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π²ΡΠΏΡΡΠΊΠ° ΡΠ΄ΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π° device-mapper ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΡΠ°Π·Π΄Π΅Π» Ρ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ Π€Π‘. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ°Π·Π΄Π΅Π»Π° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° «dm-mod.create». Π‘ΡΠ΅Π΄ΠΈ ΡΠ°Π·ΡΠ΅ΡΡΠ½Π½ΡΡ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ device-mapper: «crypt», «delay», «linear», «snapshot-origin» ΠΈ «verity»; - Π ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π½Π° Flash-Π½Π°ΠΊΠΎΠΏΠΈΡΠ΅Π»ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ F2FS Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ»Π°Π³ F2FS_NOCOW_FL, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ copy-on-write Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°;
- ΠΠ· ΡΠ΄ΡΠ° ΡΠ΄Π°Π»Π΅Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°
Exofs , ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠ°Ρ ΡΠΎΠ±ΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ext2, Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² OSD (Object-based Storage Device). Π’Π°ΠΊΠΆΠ΅ ΡΠ΄Π°Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° SCSI-ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π΄Π»Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² Ρ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²;
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½ΠΎΠ²ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π° —
- ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
- Π prctl() Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΎΠΏΡΠΈΡ PR_SPEC_DISABLE_NOEXEC Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΏΠ΅ΠΊΡΠ»ΡΡΠΈΠ²Π½ΡΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ Π΄Π»Ρ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎΠ²Π°Ρ ΠΎΠΏΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡ ΡΠΏΠ΅ΠΊΡΠ»ΡΡΠΈΠ²Π½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π°ΡΠ°ΠΊΠΎΠ²Π°Π½Ρ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π°ΡΠ°ΠΊΠΈ ΡΠΈΠΏΠ° Spectre. ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π΄ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° exec();
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ LSM-ΠΌΠΎΠ΄ΡΠ»Ρ
SafeSetID , ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ Π±Π΅Π· ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ (CAP_SETUID) ΠΈ Π±Π΅Π· ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ root. ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π² securityfs ΠΏΡΠ°Π²ΠΈΠ» Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π±Π΅Π»ΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΎΠΊ (Π² ΡΠΎΡΠΌΠ΅ «UID1:UID2»); - ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ ΡΡΠ΅ΠΊΠΎΠ²ΠΎΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ (LSM). ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΄ΡΠ° «lsm», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ΅ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅;
- Π ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Π°ΡΠ΄ΠΈΡΠ° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΡΠ½ ΡΠ°ΠΉΠ»ΠΎΠ²;
-
Π Π°ΡΡΠΈΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ GCC-ΠΏΠ»Π°Π³ΠΈΠ½Π° structleak, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅ΡΠΊΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΏΠ°ΠΌΡΡΠΈ ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π»ΡΠ±ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΊΠΎΠ΄Π΅ ΡΠ΅ΡΠ΅Π· ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π² ΡΡΠ΅ΠΊΠ΅;
- Π‘Π΅ΡΠ΅Π²Π°Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°
- ΠΠ»Ρ ΡΠΎΠΊΠ΅ΡΠΎΠ²
ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½ΠΎΠ²Π°Ρ ΠΎΠΏΡΠΈΡ «SO_BINDTOIFINDEX», ΠΏΠΎΡ ΠΎΠΆΠ°Ρ Π½Π°
«SO_BINDTODEVICE», Π½ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠ°Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°; - Π ΡΡΠ΅ΠΊ mac80211 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΡΡΡΠΎΠΉΡΡΠ²Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ BSSID (MAC-Π°Π΄ΡΠ΅ΡΠΎΠ²). Π ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΏΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ WiFi Π² ΡΡΠ΅ΠΊ mac80211 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΡΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠΈΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΠΈΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΡΠ°Π½ΡΠΈΡΠΌΠΈ (ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ° Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΡΠΌ ΡΡΠ°Π½ΡΠΈΡΠΌ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠ΅ΠΌΠΈ ΡΡΠ°Π½ΡΠΈΡΠΌΠΈ);
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ «
devlink health «, ΠΏΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ;
- ΠΠ»Ρ ΡΠΎΠΊΠ΅ΡΠΎΠ²
- ΠΠ°ΠΌΡΡΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ
-
Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠ° ΡΠΈΠ³Π½Π°Π»ΠΎΠ², ΡΡΠΈΡΡΠ²Π°ΡΡΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ PID. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²ΡΠ·ΠΎΠ²Π° kill ΡΠ°Π½Π΅Π΅ ΠΌΠΎΠ³Π»Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΈΠ³Π½Π°Π»Π° ΡΠ΅Π»Π΅Π²ΠΎΠΉ PID ΠΌΠΎΠ³ Π±ΡΡΡ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄ΡΠ½ ΠΈΠ·-Π·Π° Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈ Π·Π°Π½ΡΡ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ, ΠΈ Π² ΠΈΡΠΎΠ³Π΅ ΡΠΈΠ³Π½Π°Π» ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π»ΡΡ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΡΠΎΡΠ΅ΡΡΡ. ΠΠ»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² pidfd_send_signal, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΡ ΠΈΠ· /proc/pid Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΡ. ΠΠ°ΠΆΠ΅ Π΅ΡΠ»ΠΈ PID Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°, ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠΉ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΈΠ³Π½Π°Π»Π° ΠΏΡΠΎΡΠ΅ΡΡΡ; -
ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ² ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (persistent-memory, Π½Π°ΠΏΡΠΈΠΌΠ΅ΡNVDIMM ) Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΠΠ£. ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ Π² ΡΠ΄ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΈΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΡΡΡΠΎΠΉΡΡΠ² Ρ ΡΠ°Π½Π΅Π½ΠΈΡ, Π½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΊΠ°ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² ΠΎΡΠ²Π΅Ρ Π½Π° ΠΏΠΎΠΆΠ΅Π»Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π³ΠΎΡΠΎΠ²ΡΡ ΠΌΠΈΡΠΈΡΡΡΡ Ρ ΠΎΡΡΡΠ°Π²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΆΠ΅Π»Π°ΡΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°ΡΠ½ΡΠΉ API ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ ΡΠ΄ΡΠ° Linux Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ ΠΏΠΎΠ²Π΅ΡΡ mmap Π΄Π»Ρ dax-ΡΠ°ΠΉΠ»Π°; - ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΏΡΠΎΡΡΠΎΡ CPU (cpuidle, ΡΠ΅ΡΠ°Π΅Ρ ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ CPU Π² Π³Π»ΡΠ±ΠΎΠΊΠΈΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΡΠ½Π΅ΡΠ³ΠΈΠΈ, ΡΠ΅ΠΌ Π³Π»ΡΠ±ΠΆΠ΅ ΡΠ΅ΠΆΠΈΠΌ — ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ°Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ, Π½ΠΎ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΡ
ΠΎΠ΄Π° ΠΈΠ· ΡΠ΅ΠΆΠΈΠΌΠ°) — TEO (Timer Events Oriented Governor). ΠΠΎ ΡΠΈΡ
ΠΏΠΎΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π»ΠΎΡΡ Π΄Π²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° cpuidle — «menu» ΠΈ «ladder», ΠΎΡΠ»ΠΈΡΠ°ΡΡΠΈΠ΅ΡΡ ΡΠ²ΡΠΈΡΡΠΈΠΊΠΎΠΉ. Π ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ «menu» ΠΈΠΌΠ΅ΡΡΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠΈΠ½ΡΡΠΈΠ΅ΠΌ ΡΠ²ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, Π΄Π»Ρ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ
Π±ΡΠ»ΠΎ ΡΠ΅ΡΠ΅Π½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ. TEO ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ «menu», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Ρ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΡΠΎΠ²Π½Ρ ΡΠ½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ.
ΠΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π·Π°Π³ΡΡΠ·ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° «cpuidle.governor=teo»; - Π ΡΠ°ΠΌΠΊΠ°Ρ
ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ 2038 Π³ΠΎΠ΄Π° , Π²ΡΠ·Π²Π°Π½Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ 32-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° time_t, Π² ΡΠΎΡΡΠ°Π² Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΠΈΠ΅ Π΄Π»Ρ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅ ΡΡΡΡΡΠΈΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ . Π ΠΈΡΠΎΠ³Π΅, 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΡΡΡΡΠΊΡΡΡΡ time_t ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π½Π° Π²ΡΠ΅Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°Ρ . ΠΠ½Π°Π»ΠΎΠΈΡΠ½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΉtimestamp ΡΠ΅ΡΠ΅Π²ΡΡ ΡΠΎΠΊΠ΅ΡΠΎΠ²; - Π ΡΠΈΡΡΠ΅ΠΌΡ Π³ΠΎΡΡΡΠ΅Π³ΠΎ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠ°ΡΡΠ΅ΠΉ Π½Π° ΡΠ΄ΡΠΎ (live patching)
Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ «Atomic Replace» Π΄Π»Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π£ΠΊΠ°Π·Π°Π½Π½Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΡΠ²ΠΎΠ΄Π½ΡΠ΅ ΠΏΠ°ΡΡΠΈ, ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡΠΈΠ΅ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π²ΠΌΠ΅ΡΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΠΎΡΡΠ°ΠΏΠ½ΠΎΠ³ΠΎ Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΡ live-ΠΏΠ°ΡΡΠ΅ΠΉ Π² ΡΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΡΠ»ΠΈ ΡΠ°Π½ΡΡΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ (Ρ.Π΅. ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ²ΠΎΠ΄Π½ΡΠΉ ΠΏΠ°ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° Π²ΠΌΠ΅ΡΡΠΎ ΡΠ΅ΠΏΠΎΡΠΊΠΈ ΠΈΠ· Π·Π°Π²ΠΈΡΡΡΠΈΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° ΠΏΠ°ΡΡΠ΅ΠΉ); -
ΠΠ±ΡΡΠ²Π»Π΅Π½Π° ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΡΠΌΠ°ΡΠ° ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² a.out ΠΈ
ΡΠ΄Π°Π»ΡΠ½ ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ core-ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΠΎΡΠΌΠ°ΡΠ΅ a.out, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π·Π°Π±ΡΠΎΡΠ΅Π½Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ. Π€ΠΎΡΠΌΠ°Ρ a.out Π΄Π°Π²Π½ΠΎ Π½Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π° ΡΠΈΡΡΠΌΠ°Ρ Ρ Linux, Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² a.out ΡΠΆΠ΅ Π΄Π°Π²Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ Π΄Π»Ρ Linux ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ Π΄Π»Ρ a.out ΡΠ°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ; - Π ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ BPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π ΡΠΎΡΡΠ°Π² ΡΠ΄ΡΠ° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΠΏΠ°ΡΡΠΈ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ spinlock Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ BPF, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°Π»Π΅Π»Π»ΡΠ½ΡΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ BPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ;
-
- ΠΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ Nouveau
Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π³Π΅ΡΠ΅ΡΠΎΠ³Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ CPU ΠΈ GPU ΠΊ ΠΎΠ±ΡΠΈΠΌ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΎΠ±Π»Π°ΡΡΡΠΌ ΠΏΠ°ΠΌΡΡΠΈ. Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ (SVM, shared virtual memory) ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π½Π° Π±Π°Π·Π΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ HMM (Heterogeneous memory management), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ (MMU, memory management unit), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. Π ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ HMM ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ GPU ΠΈ CPU, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ GPU ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° SVM ΠΏΠΎΠΊΠ° Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ GPU ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Pascal, Ρ ΠΎΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΈ Π΄Π»Ρ GPU Volta ΠΈ Turing. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² NouveauΠ΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ioctl Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ΠΏΠ°ΠΌΡΡΡ GPU; - Π DRM-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ Intel Π΄Π»Ρ GPU Skylake ΠΈ Π½ΠΎΠ²Π΅Π΅ (gen9+)
Π²ΠΊΠ»ΡΡΡΠ½ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ΅ΠΆΠΈΠΌ fastboot, ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΠΈΠΉ Π»ΠΈΡΠ½ΠΈΠ΅ ΡΠΌΠ΅Π½Ρ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ.ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ Coffelake ΠΈ Ice Lake. ΠΠ»Ρ ΡΠΈΠΏΠΎΠ² CoffelakeΠ΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° GVT (Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ GPU ). ΠΠ»Ρ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ GPUΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° VFIO EDID. ΠΠ»Ρ LCD ΠΏΠ°Π½Π΅Π»Π΅ΠΉ MIPI/DSIΠ΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ACPI/PMIC.Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½ΠΎΠ²ΡΠ΅ TV-ΡΠ΅ΠΆΠΈΠΌΡ 1080p30/50/60 TV; - Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ amdgpu Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° GPU Vega10/20 BACO. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΡΠ΅Π΄ΡΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ Vega 10/20 ΠΈ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΡΠ»Π΅ΡΠΎΠΌ Vega 10. ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ PCI-ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΡΡΡΡΠΎΠΉΡΡΠ² Π΄Π»Ρ GPU Picasso.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌΡΠΌΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ Π΄Π»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠ½ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ; -
ΠΠΎΠ±Π°Π²Π»Π΅Π½ DRM/KMS-Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π΄Π»Ρ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»Π΅ΠΉ ΡΠΊΡΠ°Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉARM Komeda (Mali D71); - ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΊΡΠ°Π½Π½ΡΡ ΠΏΠ°Π½Π΅Π»Π΅ΠΉ Toppoly TPG110, Sitronix ST7701, PDA 91-00156-A0, LeMaker BL035-RGB-002 3.5 ΠΈ Kingdisplay kd097d04;
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π·Π²ΡΠΊΠΎΠ²ΡΡ ΠΊΠΎΠ΄Π΅ΠΊΠΎΠ² Rockchip RK3328, Cirrus Logic CS4341 ΠΈ CS35L36, MediaTek MT6358, Qualcomm WCD9335 ΠΈ Ingenic JZ4725B, Π° ΡΠ°ΠΊΠΆΠ΅ Π·Π²ΡΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Mediatek MT8183;
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° NAND-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² Flash STMicroelectronics FMC2, Amlogic Meson;
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠΊΠΎΡΠΈΡΠ΅Π»Π΅ΠΉ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Habana AI;
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π³ΠΈΠ³Π°Π±ΠΈΡΠ½ΡΡ Ethernet-ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² NXP ENETC ΠΈ Π±Π΅ΡΠΏΡΠΎΠ²ΠΎΠ΄Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² MediaTek MT7603E (PCIe) ΠΈ MT76x8.
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ Nouveau
ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΠ°ΡΠΈΠ½ΠΎΠ°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΈΠΉ Π€ΠΎΠ½Π΄ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΠ
Π²Π°ΡΠΈΠ°Π½Ρ
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru