Π‘Π»Π΅Π΄ Π΄Π²Π° ΠΌΠ΅ΡΠ΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»Π΄Ρ
- ΠΠΈΡΠΊΠΎΠ²Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°, I/O ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π½ΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π΅Π½ I/O -
io_uring , ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π²Π° Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° ΡΠΈ Π·Π° I/O Π°Π½ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΈΠ»ΠΈ Π±Π΅Π· Π±ΡΡΠ΅ΡΠΈΡΠ°Π½Π΅. ΠΠ΅ΠΊΠ° ΡΠΈ ΠΏΡΠΈΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΏΠΎ-ΡΠ°Π½ΠΎ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π΅Π½ I/O ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ βaioβ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ΅ Π±ΡΡΠ΅ΡΠΈΡΠ°Π½ I/O, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΡΠ°ΠΌΠΎ Π² ΡΠ΅ΠΆΠΈΠΌ O_DIRECT (Π±Π΅Π· Π±ΡΡΠ΅ΡΠΈΡΠ°Π½Π΅ ΠΈ Π·Π°ΠΎΠ±ΠΈΠΊΠ°Π»ΡΠ½Π΅ Π½Π° ΠΊΠ΅ΡΠ°), ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅ Π½Π° Π½Π°Π»ΠΈΡΠ½ΠΎΡΡ Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ ΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ΅ΠΆΠΈΠΉΠ½ΠΈ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°.Π ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° API
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° io_uring ΡΠ΅ ΠΎΠΏΠΈΡΠ°Ρ Π° Π΄Π° ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈΡΠ΅ Π½Π° ΡΡΠ°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π½Π° aio. ΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ io_uring Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΈΠ·ΠΎ Π΄ΠΎSPDK ΠΈ Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-Π½Π°ΠΏΡΠ΅Π΄ ΠΎΡ libaio ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ Π³Π»Π°ΡΡΠ²Π°Π½Π΅. ΠΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½Π° Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° io_uring Π² ΠΊΡΠ°ΠΉΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΠ»ΠΈΠ±ΡΡΠΈΠ½Π³ , ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ°ΠΌΠΊΠ° Π½Π° Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π²ΡΡΡ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ; - Π ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ±ΠΈΡΠΈΡ Π²ΡΠ² FS fanotify()
Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ°ΡΠΈΠΈ Π½Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΡΠΏΠ΅ΡΠ±Π»ΠΎΠΊ ΠΈ ΡΡΡΡΠΊΡΡΡΠ°Π΄ΠΈΡΠ΅Π½Ρ (ΡΡΠ±ΠΈΡΠΈΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅, ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ ΠΈ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ). ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠΌΠ°Π³Π°Ρ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Ρ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΡΠ°, ΠΊΠΎΠΈΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Ρ ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° inotify (Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π° ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ ΡΡΠ΅Π· inotify, Π½ΠΎ
ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π² ΡΡΠ»ΠΎΠ²ΠΈΡ Π½Π° ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ Π²Π»ΠΎΠΆΠ΅Π½ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΎΡΡΠ°Π²Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π° ΡΠ΅ ΠΆΠ΅Π»Π°Π΅). Π‘Π΅Π³Π° ΡΠ°ΠΊΡΠ² ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΌΠΎΠΆΠ΅ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΡΠ΅Π· fanotify; - ΠΡΠ² ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Btrfs
Π΄ΠΎΠ±Π°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Π·Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° zstd, ΠΊΠΎΠ΅ΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠΈΡΠ° Π·Π° ΠΎΠΏΡΠΈΠΌΠ°Π»Π΅Π½ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΡΡΠ·Π°ΡΠ°, Π½ΠΎ Π½Π΅Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½Π° lz4 ΠΈ Π±Π°Π²Π½Π°ΡΠ°, Π½ΠΎ Π΄ΠΎΠ±ΡΠ° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ xz. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° Π½Π°ΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΠΈ Π±Π΅ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ Π·Π°Π΄Π°Π΄Π΅ Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° zlib, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° ΠΎΠΏΡΠΈΡΡΠ° Π·Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ β-o compress=zstd:levelβ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π·Π° zstd. ΠΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎΡΠΎ ΠΏΡΡΠ²ΠΎ Π½ΠΈΠ²ΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ 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; -
ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΎΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ ΠΎΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ Π·Π° ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° initramfs. ΠΠ°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ Ρ ΡΠ΅ΠΊΡΡΠ°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠ΄ΡΠΎΡΠΎ, ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ° Π·Π° ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠ°ΡΠΎ Π΄ΡΠ» Ρ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ°. Π Π°Π·Π΄Π΅Π»ΡΡ ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ βdm-mod.createβ. ΠΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Π·Π° ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈ Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅, Π²ΠΊΠ»ΡΡΠ²Π°Ρ: βcryptβ, βdelayβ, βlinearβ, βsnapshot-originβ ΠΈ βverityβ; - Π€Π»Π°Π³ΡΡ F2FS_NOCOW_FL Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΊΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° F2FS, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½Π° ΠΊΡΠΌ ΡΠ»Π°Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡ Π·Π° Π΄Π°Π΄Π΅Π½ ΡΠ°ΠΉΠ»;
- Π€Π°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π°ΡΠ° ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ
Exofs , ΠΊΠΎΠΉΡΠΎ Π΅ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π° ext2, Π°Π΄Π°ΠΏΡΠΈΡΠ°Π½ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΎΠ±Π΅ΠΊΡΠ½ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° OSD (Object-based Storage Device). ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° SCSI ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π·Π° ΡΠ°ΠΊΠΈΠ²Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ ΡΡΡΠΎ Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ°;
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π½ΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π΅Π½ I/O -
- ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡ PR_SPEC_DISABLE_NOEXEC ΠΊΡΠΌ prctl() Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΠΈΠ·Π±ΡΠ°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ. ΠΠΎΠ²Π° ΠΎΠΏΡΠΈΡ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ΅Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π° ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ Π±ΠΈΡ Π° ΠΌΠΎΠ³Π»ΠΈ Π΄Π° Π±ΡΠ΄Π°Ρ Π°ΡΠ°ΠΊΡΠ²Π°Π½ΠΈ ΠΎΡ Π°ΡΠ°ΠΊΠ° Π½Π° Spectre. ΠΠ°ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° Π΄ΠΎ ΠΏΡΡΠ²ΠΎΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° exec();
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ LSM ΠΌΠΎΠ΄ΡΠ»
SafeSetID , ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ ΡΠΈΠ³ΡΡΠ½ΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π±Π΅Π· Π΅ΡΠΊΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ (CAP_SETUID) ΠΈ Π±Π΅Π· ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° root ΠΏΡΠ°Π²Π°. ΠΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π°Ρ ΡΡΠ΅Π· Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π° Π² securityfs Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π±ΡΠ» ΡΠΏΠΈΡΡΠΊ Ρ Π²Π°Π»ΠΈΠ΄Π½ΠΈ ΠΎΠ±Π²ΡΡΠ·Π²Π°Π½ΠΈΡ (Π²ΡΠ² ΡΠΎΡΠΌΠ°ΡΠ° βUID1:UID2β); - ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π½Π° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° ΡΡΠ΅ΠΊ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ (LSM). ΠΡΠ²Π΅Π΄Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΡΡΠ° Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ "lsm", Π·Π° Π΄Π° ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ° ΠΊΠΎΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π°Ρ ΠΈ Π² ΠΊΠ°ΠΊΡΠ² ΡΠ΅Π΄;
- ΠΡΠΌ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΎΠ΄ΠΈΡ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅;
-
Π Π°Π·ΡΠΈΡΠ΅Π½ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΏΠ»ΡΠ³ΠΈΠ½Π° GCC structleak, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΈ ΡΠ΅ΡΠΎΠ²Π΅ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² ΠΊΠΎΠ΄Π° ΡΡΠ΅Π· ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΠ΅ΠΊΠ°;
- ΠΡΠ΅ΠΆΠΎΠ²Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°
- ΠΠ° Π³Π½Π΅Π·Π΄Π°
ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ Π½ΠΎΠ²Π° ΠΎΠΏΡΠΈΡ "SO_BINDTOIFINDEX", ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π°
"SO_BINDTODEVICE", Π½ΠΎ Π²Π·Π΅ΠΌΠ°ΠΉΠΊΠΈ ΠΊΠ°ΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΈΡ Π½ΠΎΠΌΠ΅Ρ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°; - Π‘ΡΠ΅ΠΊΡΡ mac80211 Π΄ΠΎΠ±Π°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ BSSID (MAC Π°Π΄ΡΠ΅ΡΠΈ) Π½Π° Π΅Π΄Π½ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ. ΠΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° WiFi, ΡΡΠ΅ΠΊΡΡ mac80211 Π΄ΠΎΠ±Π°Π²ΠΈ ΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π΅ΡΠΈΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π΅ΡΠΈΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ°Π½ΡΠΈΠΈ (ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΠΎΡΠΊΠ° Π·Π° Π΄ΠΎΡΡΡΠΏ, ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π±Π°Π²Π½ΠΈ Π±Π΅Π·ΠΆΠΈΡΠ½ΠΈ ΡΡΠ°Π½ΡΠΈΠΈ, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°Π½ΡΠΈΠΈ);
- ΠΠΎΠ±Π°Π²Π΅Π½ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΡΠΌ "
devlink Π·Π΄ΡΠ°Π²Π΅ β, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΈΠ·Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ;
- ΠΠ° Π³Π½Π΅Π·Π΄Π°
- ΠΠ°ΠΌΠ΅Ρ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ
-
ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΎ ΡΠΈΠ³ΡΡΠ½Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π½Π° ΡΠΈΠ³Π½Π°Π», ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° PID. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° kill ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΡΠ·Π½ΠΈΠΊΠ½Π΅ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΏΡΠΈ ΠΊΠΎΡΡΠΎ Π²Π΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΠΈΠ³Π½Π°Π» ΡΠ΅Π»Π΅Π²ΠΈΡΡ PID ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΏΡΠ΅ΠΊΡΠ°ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° ΠΈ Π·Π°Π΅Ρ ΠΎΡ Π΄ΡΡΠ³ ΠΏΡΠΎΡΠ΅Ρ, Π° ΡΠΈΠ³Π½Π°Π»ΡΡ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ Π½Π° Π΄ΡΡΠ³ ΠΏΡΠΎΡΠ΅Ρ. ΠΠ° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ, Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΎ Π½ΠΎΠ²ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ pidfd_send_signal, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΈ ΠΎΡ /proc/pid, Π·Π° Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈ ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°. ΠΠΎΡΠΈ Π°ΠΊΠΎ PID ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅, ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π½ΡΠΌΠ° Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΠΈΠ³Π½Π°Π» ΠΊΡΠΌ ΠΏΡΠΎΡΠ΅ΡΠ°; -
ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΎΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½Π° ΠΏΠ°ΠΌΠ΅Ρ (ΠΏΠΎΡΡΠΎΡΠ½Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅ΡNVDIMM ΠΌΠΎΠ΄ΡΠ»ΠΈ ) ΠΊΠ°ΡΠΎ RAM. ΠΠΎΡΠ΅Π³Π° ΡΠ΄ΡΠΎΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ΅ ΡΠ°ΠΊΠΈΠ²Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΊΠ°ΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅, Π½ΠΎ ΡΠ΅Π³Π° ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΈ ΠΊΠ°ΡΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° RAM ΠΏΠ°ΠΌΠ΅Ρ. Π€ΡΠ½ΠΊΡΠΈΡΡΠ° Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½Π° Π² ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π½Π° ΠΆΠ΅Π»Π°Π½ΠΈΡΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΆΠ΅Π»Π°ΡΡ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠΌΠΈΡΡΡ ΡΡΡ Π·Π°Π±Π°Π²ΡΠ½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΈ ΠΈΡΠΊΠ°Ρ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡ API Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π²ΡΡΡ Ρ mmap Π·Π° dax ΡΠ°ΠΉΠ»; - ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ Π½Π° ΠΏΡΠ°Π·Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° (cpuidle, ΡΠ΅ΡΠ°Π²Π° ΠΊΠΎΠ³Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΡΡΠ°Π²Π΅Π½ Π² ΡΠ΅ΠΆΠΈΠΌΠΈ Π·Π° Π΄ΡΠ»Π±ΠΎΠΊΠΎ ΠΏΠ΅ΡΡΠ΅Π½Π΅ Π½Π° Π΅Π½Π΅ΡΠ³ΠΈΡ; ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎ-Π΄ΡΠ»Π±ΠΎΠΊ Π΅ ΡΠ΅ΠΆΠΈΠΌΡΡ, ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ° ΡΠΏΠ΅ΡΡΡΠ²Π°Π½ΠΈΡΡΠ°, Π½ΠΎ ΡΡΡΠΎ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ ΠΎΡΠ½Π΅ΠΌΠ° ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ΡΠΎ ΠΎΡ ΡΠ΅ΠΆΠΈΠΌΠ°) - TEO (ΡΠ΅Π³ΡΠ»Π°ΡΠΎΡ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ ΠΊΡΠΌ ΡΡΠ±ΠΈΡΠΈΡ Π½Π° ΡΠ°ΠΉΠΌΠ΅ΡΠ° ). ΠΠΎΡΠ΅Π³Π° Π±ΡΡ
Π° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ Π΄Π²Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠ° Π½Π° cpuidle - βΠΌΠ΅Π½Ρβ ΠΈ βΡΡΡΠ»Π±Π°β, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π°Ρ ΠΏΠΎ Π΅Π²ΡΠΈΡΡΠΈΠΊΠ°. ΠΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΡΡ Π½Π° "ΠΌΠ΅Π½ΡΡΠΎ" ΠΈΠΌΠ° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Π²Π·Π΅ΠΌΠ°Π½Π΅ΡΠΎ Π½Π° Π΅Π²ΡΠΈΡΡΠΈΡΠ½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠΈΡΠΎ Π±Π΅ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈ Π½ΠΎΠ² ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ. TEO ΡΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠ° ΠΊΠ°ΡΠΎ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π½Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠ° "ΠΌΠ΅Π½Ρ", ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΠΊΠ°ΡΠΎ ΡΡΡΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΡΡΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡ Π½Π° Π΅Π½Π΅ΡΠ³ΠΈΡ.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ Π½ΠΎΠ²ΠΈΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ βcpuidle.governor=teoβ; - ΠΠ°ΡΠΎ ΡΠ°ΡΡ ΠΎΡ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΏΠΎ ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π°Π½Π΅
ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΎΡ 2038 Π³ , ΠΏΡΠΈΡΠΈΠ½Π΅Π½ΠΎ ΠΎΡ ΠΏΡΠ΅ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° 32-Π±ΠΈΡΠΎΠ² ΡΠΈΠΏ time_t, Π²ΠΊΠ»ΡΡΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ 32-Π±ΠΈΡΠΎΠ²ΠΈ Π±ΡΠΎΡΡΠΈ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π·Π° 64-Π±ΠΈΡΠΎΠ²ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° 64-Π±ΠΈΡΠΎΠ²Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° time_t Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π° Π²ΡΠΈΡΠΊΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ. ΠΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΠ° Π²ΡΠ²Π΅Π΄Π΅Π½ΠΈ ΠΈ Π² ΠΌΡΠ΅ΠΆΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΎΠΏΡΠΈΠΈΠΊΠ»Π΅ΠΉΠΌΠΎΡΠΎ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠΈ; - Π ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π³ΠΎΡΠ΅ΡΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π·Π° ΡΠ΄ΡΠΎΡΠΎ (ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π½Π° ΠΆΠΈΠ²ΠΎ)
Π΄ΠΎΠ±Π°Π²ΠΈ Π€ΡΠ½ΠΊΡΠΈΡ βAtomic Replaceβ Π·Π° Π°ΡΠΎΠΌΠ½ΠΎ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΊΡΠΌ Π΅Π΄Π½Π° ΡΡΠ½ΠΊΡΠΈΡ. Π’Π°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°ΡΠ΅ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈ ΠΏΠ°ΡΠΎΠ²Π΅, ΠΎΠ±Ρ Π²Π°ΡΠ°ΡΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π½Π°Π²Π΅Π΄Π½ΡΠΆ, Π²ΠΌΠ΅ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠ° Π½Π° ΠΏΠΎΠ΅ΡΠ°ΠΏΠ½ΠΎ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΆΠΈΠ²ΠΈ ΠΏΠ°ΡΠΎΠ²Π΅ Π² ΡΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠ΅Π΄, ΠΊΠΎΠΉΡΠΎ Π΅ Π΄ΠΎΡΡΠ° ΡΡΡΠ΄Π΅Π½ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅. ΠΠΎΠΊΠ°ΡΠΎ ΠΏΠΎ-ΡΠ°Π½ΠΎ Π²ΡΡΠΊΠ° ΡΠ»Π΅Π΄Π²Π°ΡΠ° ΠΏΡΠΎΠΌΡΠ½Π° ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π°Π²Π° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° ΡΠ»Π΅Π΄ ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΏΡΠΎΠΌΡΠ½Π°, ΡΠ΅Π³Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π΅Π΄Π½ΠΎ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π°Π²Π΅Π΄Π½ΡΠΆ (Ρ.Π΅. ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Π΅Π΄Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈΠ΄ΠΈΡΠ°Π½Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ ΡΠΏΡΡΠΌΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΡΠ΄ΡΠΎ ββΠ²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ²Π° Π½Π° Π²Π΅ΡΠΈΠ³Π° ΠΎΡ ΠΏΠ°ΡΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π·Π°Π²ΠΈΡΡΡ Π΅Π΄ΠΈΠ½ ΠΎΡ Π΄ΡΡΠ³); -
ΠΠ±ΡΠ²Π΅Π½ΠΈ ΠΎΡΡΠ°ΡΡΠ»Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ» a.out ΠΈ
ΠΎΡΡΡΡΠ°Π½Π΅Π½ΠΈ ΠΊΠΎΠ΄ Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π²ΡΠ² ΡΠΎΡΠΌΠ°Ρ a.out, ΠΊΠΎΠΉΡΠΎ Π΅ Π² ΠΈΠ·ΠΎΡΡΠ°Π²Π΅Π½ΠΎ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅. Π€ΠΎΡΠΌΠ°ΡΡΡ a.out Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² Linux ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΎΡ Π΄ΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° a.out ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡΠ΄Π°Π²Π½Π° Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΡ ΡΡΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈΡΠ΅ Π½Π° Linux ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΡΠΎΠ²Π°ΡΠ°ΡΡΡ Π·Π° a.out ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½ ΠΈΠ·ΡΡΠ»ΠΎ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ; - ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° Π½Π΅ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ ΠΊΠΎΠ΄ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΊΡΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° BPF. Π―Π΄ΡΠΎΡΠΎ ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π²ΠΊΠ»ΡΡΠ²Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° spinlock Π·Π° BPF ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠΉΠΊΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ;
-
- ΠΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ Nouveau
Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Ρ Π΅ΡΠ΅ΡΠΎΠ³Π΅Π½Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° CPU ΠΈ GPU Π΄Π° ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΠ±ΡΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°. Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΏΠ°ΠΌΠ΅Ρ (SVM, ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΏΠ°ΠΌΠ΅Ρ) Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° HMM (Heterogeneous memory management), ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° (MMU, memory management unit), ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΠ»Π°Π²Π½Π° ΠΏΠ°ΠΌΠ΅Ρ. ΠΠΎ-ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΎ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ HMM, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΎ Π°Π΄ΡΠ΅ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ GPU ΠΈ CPU, Π² ΠΊΠΎΠ΅ΡΠΎ GPU ΠΈΠΌΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°. ΠΠΎΠ½Π°ΡΡΠΎΡΡΠ΅ΠΌ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° SVM Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π° ΡΠ°ΠΌΠΎ Π·Π° GPU ΠΎΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ Pascal, Π²ΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ΠΈ Π·Π° GPU Volta ΠΈ Turing. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π² NouveauΠ΄ΠΎΠ±Π°Π²Π΅Π½ΠΎ Π½ΠΎΠ² ioctl Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° ΠΊΡΠΌ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° GPU; - Π Intel DRM Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π·Π° GPU Skylake ΠΈ ΠΏΠΎ-Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ (gen9+)
Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ΅ΠΆΠΈΠΌΡΡ Π·Π° Π±ΡΡΠ·ΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ° Π½Π΅Π½ΡΠΆΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅.ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ Π½ΠΎΠ²ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈΡΠ΅ Π½Π° Coffelake ΠΈ Ice Lake. ΠΠ° ΡΠΈΠΏΡ CoffelakeΠ΄ΠΎΠ±Π°Π²ΠΈ GVT ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° (GPU Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ). ΠΠ° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ VFIO EDID ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°. ΠΠ° LCD ΠΏΠ°Π½Π΅Π»ΠΈ MIPI/DSIΠ΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ACPI/PMIC Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ.ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΎ Π½ΠΎΠ²ΠΈ Π’Π ΡΠ΅ΠΆΠΈΠΌΠΈ 1080p30/50/60 Π’Π; - ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Vega10/20 BACO GPU ΠΊΡΠΌ amdgpu Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°. ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Ρ
ΡΠ°Π½Π²Π°Π½Π΅ΡΠΎ Vega 10/20 ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ Π·Π° ΠΎΡ
Π»Π°ΠΆΠ΄Π°Π½Π΅ Vega 10. ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° PCI ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π·Π° Picasso GPU.
ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π·Π° ΠΈΠ·Π±ΡΠ³Π²Π°Π½Π΅ Π½Π° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ; -
ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ DRM/KMS Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π·Π° Π΅ΠΊΡΠ°Π½Π½ΠΈ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»ΠΈΠΠ Π ΠΠΎΠΌΠ΅Π΄Π° (ΠΠ°Π»ΠΈ 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