Π‘Π»Π΅Π΄ ΡΠ°Π»Π°Π½ΡΠ»ΠΈΠ²Π°ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»Π΄Ρ Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π° . Π‘ΡΠ΅Π΄ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ: Π½ΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π΅Π½ Π²Ρ ΠΎΠ΄/ΠΈΠ·Ρ ΠΎΠ΄ io_uring, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° NVDIMM ΠΊΠ°ΡΠΎ RAM, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΏΠ°ΠΌΠ΅Ρ Π² Nouveau, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΡΠ΅Π· fanotify, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π½ΠΈΠ²Π° Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Zstd Π² Btrfs, Π½ΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ cpuidle TEO, ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ Π·Π° ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΡ 2038 Π³ΠΎΠ΄ΠΈΠ½Π°, Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ ΠΎΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° device-mapper Π±Π΅Π· initramfs, LSM ΠΌΠΎΠ΄ΡΠ» SafeSetID, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½ΠΈ live ΠΏΠ°ΡΠΎΠ²Π΅.
:
- ΠΠΈΡΠΊΠΎΠ²Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°, Π²Ρ
ΠΎΠ΄/ΠΈΠ·Ρ
ΠΎΠ΄ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΅ Π½ΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π΅Π½ Π²Ρ
ΠΎΠ΄/ΠΈΠ·Ρ
ΠΎΠ΄ β , ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΠΈΡΠ° Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° polling Π½Π° Π²Ρ
ΠΎΠ΄/ΠΈΠ·Ρ
ΠΎΠ΄ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ°Π±ΠΎΡΠ° ΠΊΠ°ΠΊΡΠΎ Ρ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ, ΡΠ°ΠΊΠ° ΠΈ Π±Π΅Π· Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ. ΠΠ°ΠΏΠΎΠΌΠ½ΡΠΌΠ΅, ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π½ΠΈΡΡ ΠΏΠΎ-ΡΠ°Π½ΠΎ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΡΠΌ Π·Π° Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π΅Π½ Π²Ρ
ΠΎΠ΄/ΠΈΠ·Ρ
ΠΎΠ΄ Β«aioΒ» Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ΅ Π±ΡΡΠ΅ΡΠΈΠ·ΠΈΡΠ°Π½Π° Π²Ρ
ΠΎΠ΄/ΠΈΠ·Ρ
ΠΎΠ΄, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΡΠ°ΠΌΠΎ Π² ΡΠ΅ΠΆΠΈΠΌ O_DIRECT (Π±Π΅Π· Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ ΠΈ Π² ΠΎΠ±Ρ
ΠΎΠ΄ Π½Π° ΠΊΠ΅ΡΠ°), ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ°ΠΊΠ°Π½Π΅ Π·Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡ Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ°ΡΠ΅ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ°Π·Ρ
ΠΎΠ΄ΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°.
Π ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° API
io_uring ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ°Ρ Π° Π΄Π° ΠΎΡΡΡΡΠ°Π½ΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΡΠΈΡΠ΅ Π½Π° ΡΡΠ°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ aio. ΠΠΎ io_uring Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π±Π»ΠΈΠ·ΡΠΊ Π΄ΠΎ ΠΈ ΡΡΡΠ΅ΡΡΠ²Π΅Π½ΠΎ ΠΈΠ·ΠΏΡΠ΅Π²Π°ΡΠ²Π° libaio ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ polling. ΠΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° io_uring Π² ΠΊΡΠ°ΠΉΠ½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° , ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΠ° Π²ΠΈΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π° ΠΎΠ±Π²ΠΈΠ²ΠΊΠ° Π½Π°Π΄ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ; - Π ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ±ΠΈΡΠΈΡ Π² ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° fanotify() ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ°ΡΠΈΠΈ Π½Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΡΠΏΠ΅ΡΠ±Π»ΠΎΠΊΠ° ΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° (ΡΡΠ±ΠΈΡΠΈΡ ΠΎΡ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅, ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ ΠΈ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ). ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠΌΠ°Π³Π°Ρ Π·Π° ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ Ρ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ, ΠΏΡΠΎΠΈΠ·ΡΠΈΡΠ°ΡΠΈ ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΠΈ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½ΠΈΡ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΡΠ΅Π· ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° 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 Π·Π° Π·Π°Π΄Π°Π΄Π΅Π½ ΡΠ°ΠΉΠ»;
- ΠΡ ΡΠ΄ΡΠΎΡΠΎ Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° , ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π°ΡΠ° Π²Π°ΡΠΈΠ°Π½Ρ Π½Π° ext2, Π°Π΄Π°ΠΏΡΠΈΡΠ°Π½ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΎΠ±Π΅ΠΊΡΠ½ΠΎ-Π±Π°Π·ΠΈΡΠ°Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ OSD (Object-based Storage Device). ΠΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ° Π΅ ΡΡΡΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° SCSI ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π·Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ;
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΅ Π½ΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π΅Π½ Π²Ρ
ΠΎΠ΄/ΠΈΠ·Ρ
ΠΎΠ΄ β , ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΠΈΡΠ° Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° polling Π½Π° Π²Ρ
ΠΎΠ΄/ΠΈΠ·Ρ
ΠΎΠ΄ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ°Π±ΠΎΡΠ° ΠΊΠ°ΠΊΡΠΎ Ρ Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ, ΡΠ°ΠΊΠ° ΠΈ Π±Π΅Π· Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ. ΠΠ°ΠΏΠΎΠΌΠ½ΡΠΌΠ΅, ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π½ΠΈΡΡ ΠΏΠΎ-ΡΠ°Π½ΠΎ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΡΠΌ Π·Π° Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π΅Π½ Π²Ρ
ΠΎΠ΄/ΠΈΠ·Ρ
ΠΎΠ΄ Β«aioΒ» Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ΅ Π±ΡΡΠ΅ΡΠΈΠ·ΠΈΡΠ°Π½Π° Π²Ρ
ΠΎΠ΄/ΠΈΠ·Ρ
ΠΎΠ΄, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΡΠ°ΠΌΠΎ Π² ΡΠ΅ΠΆΠΈΠΌ O_DIRECT (Π±Π΅Π· Π±ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΈΡ ΠΈ Π² ΠΎΠ±Ρ
ΠΎΠ΄ Π½Π° ΠΊΠ΅ΡΠ°), ΠΈΠΌΠ°ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ°ΠΊΠ°Π½Π΅ Π·Π° Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡ Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠ°ΡΠ΅ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ°Π·Ρ
ΠΎΠ΄ΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°.
- ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ
- Π prctl() Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΎΠΏΡΠΈΡ PR_SPEC_DISABLE_NOEXEC Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° ΠΈΠ·Π±ΡΠ°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ. ΠΠΎΠ²Π°ΡΠ° ΠΎΠΏΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠ΅Π»Π΅ΠΊΡΠΈΠ²Π½ΠΎ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΏΠ΅ΠΊΡΠ»Π°ΡΠΈΠ²Π½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π° ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π°ΡΠ°ΠΊΡΠ²Π°Π½ΠΈ ΡΡΠ΅Π· Spectre Π°ΡΠ°ΠΊΠ°. ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΡΠ° Π΄Π΅ΠΉΡΡΠ²Π° Π΄ΠΎ ΠΏΡΡΠ²ΠΎΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° exec();
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΅ LSM-ΠΌΠΎΠ΄ΡΠ» , ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π΄Π° ΡΠΏΡΠ°Π²Π»ΡΠ²Π°Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π±Π΅Π· ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅ (CAP_SETUID) ΠΈ Π±Π΅Π· ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΎΠΌΠΎΡΠΈΡΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ root. ΠΠ°Π·Π½Π°ΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° ΡΡΠ΅Π· ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π² securityfs ΠΏΡΠ°Π²ΠΈΠ»Π° Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π±ΡΠ» ΡΠΏΠΈΡΡΠΊ Π½Π° Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΈΡΠ΅ Π²ΡΡΠ·ΠΊΠΈ (Π²ΡΠ² ΡΠΎΡΠΌΠ° Β«UID1:UID2Β»);
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΈΡΠΊΠΎ Π½ΠΈΠ²ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΡΡΠ΅ΠΊΠ° Π½Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ (LSM). ΠΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΡΡ Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ "lsm", ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ²Π°, ΠΊΠΎΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π°Ρ ΠΈ Π² ΠΊΠ°ΠΊΡΠ² ΡΠ΅Π΄;
- Π ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΎΠ΄ΠΈΡ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½Π°;
- Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° GCC ΠΏΠ»ΡΠ³ΠΈΠ½Π° structleak, ΠΊΠΎΠΉΡΠΎ Π±Π»ΠΎΠΊΠΈΡΠ° ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΈ ΠΈΠ·ΡΠΈΡΠ°Π½ΠΈΡ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ ΠΎΡ ΠΏΠ°ΠΌΠ΅ΡΡΠ°. ΠΡΠΈΠ³ΡΡΠ΅Π½Π° Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π² ΠΊΠΎΠ΄Π° ΡΡΠ΅Π· ΡΠ΅ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Π² ΡΡΠ΅ΠΊΠ°;
- ΠΡΠ΅ΠΆΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°
- ΠΠ° ΡΠΎΠΊΠ΅ΡΠΈΡΠ΅ Π½ΠΎΠ²Π° ΠΎΠΏΡΠΈΡ "SO_BINDTOIFINDEX", ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π°
"SO_BINDTODEVICE", Π½ΠΎ ΠΏΡΠΈΠ΅ΠΌΠ°ΡΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ½ΠΈΡ Π½ΠΎΠΌΠ΅Ρ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°; - Π ΡΡΠ΅ΠΊΠ° mac80211 Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π½Π°Π·Π½Π°ΡΠ°Π²Π°Π½Π΅ Π½Π° Π΅Π΄Π½ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ BSSID (MAC Π°Π΄ΡΠ΅ΡΠ°). Π ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° WiFi Π² ΡΡΠ΅ΠΊΠ° mac80211 Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π²ΡΠ·Π΄ΡΡΠ½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ·Π΄ΡΡΠ½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΠ°Π½ΡΠΈΠΈ (ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΠΎΡΠΊΠ° Π·Π° Π΄ΠΎΡΡΡΠΏ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠΉΠΊΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π±Π°Π²Π½ΠΈ Π±Π΅Π·ΠΆΠΈΡΠ½ΠΈ ΡΡΠ°Π½ΡΠΈΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°Π²Π½ΠΎ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°Π½ΡΠΈΠΈ);
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ "", ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΈΠ·Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ;
- ΠΠ° ΡΠΎΠΊΠ΅ΡΠΈΡΠ΅ Π½ΠΎΠ²Π° ΠΎΠΏΡΠΈΡ "SO_BINDTOIFINDEX", ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π°
- ΠΠ°ΠΌΠ΅Ρ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ
- Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π½Π° ΡΠΈΠ³Π½Π°Π»ΠΈ, ΠΊΠΎΡΡΠΎ Π²Π·Π΅ΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° PID. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ kill ΠΏΡΠ΅Π΄ΠΈ Π΅ ΠΌΠΎΠ³Π»Π° Π΄Π° Π²ΡΠ·Π½ΠΈΠΊΠ½Π΅ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΏΡΠΈ ΠΊΠΎΡΡΠΎ Π²Π΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΠΈΠ³Π½Π°Π»Π°, ΡΠ΅Π»Π΅Π²ΠΈΡΡ PID Π΅ ΠΌΠΎΠ³ΡΠ» Π΄Π° Π±ΡΠ΄Π΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΏΡΠΈΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° ΠΈ Π·Π°Π΅Ρ ΠΎΡ Π΄ΡΡΠ³ ΠΏΡΠΎΡΠ΅Ρ, ΠΈ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠΈΠ³Π½Π°Π»ΡΡ Π΅ Π±ΠΈΠ» ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ Π½Π° Π΄ΡΡΠ³ ΠΏΡΠΎΡΠ΅Ρ. ΠΠ° ΠΈΠ·Π±ΡΠ³Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ Π½ΠΎΠ² ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ ΠΏΠΎΠ²ΠΈΠΊ pidfd_send_signal, ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΈ ΠΎΡ /proc/pid Π·Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ°Π±ΠΈΠ»Π½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Ρ ΠΏΡΠΎΡΠ΅ΡΠ°. ΠΠΎΡΠΈ Π°ΠΊΠΎ PID Π±ΡΠ΄Π΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ ΠΏΠΎΠ²ΠΈΠΊ, ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡ Π½ΡΠΌΠ° Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΠΈΠ³Π½Π°Π» Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ°;
- Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΠΏΠ΅ΡΠΌΠ°Π½Π΅Π½ΡΠ½Π° ΠΏΠ°ΠΌΠ΅Ρ (persistent-memory, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ) ΠΊΠ°ΡΠΎ RAM. ΠΠΎΡΠ΅Π³Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ Π° Π² ΡΠ΄ΡΠΎΡΠΎ ΠΊΠ°ΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅, Π½ΠΎ ΡΠ΅Π³Π° ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΈ ΠΊΠ°ΡΠΎ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π° ΠΏΠ°ΠΌΠ΅Ρ. Π’Π°Π·ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π² ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π½Π° ΠΆΠ΅Π»Π°Π½ΠΈΡΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅, Π³ΠΎΡΠΎΠ²ΠΈ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²ΡΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΈ ΠΆΠ΅Π»Π°Π΅ΡΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ API Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux, Π²ΠΌΠ΅ΡΡΠΎ Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π²ΡΡΡ Ρ mmap Π·Π° dax-ΡΠ°ΠΉΠ»Π°;
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° Π±Π΅Π·Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π° CPU (cpuidle, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ΡΠ°Π²Π° ΠΊΠΎΠ³Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ Π² Π΄ΡΠ»Π±ΠΎΠΊΠΈ ΡΠ΅ΠΆΠΈΠΌΠΈ Π½Π° ΠΈΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π½Π° Π΅Π½Π΅ΡΠ³ΠΈΡ, ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΠΎ-Π΄ΡΠ»Π±ΠΎΠΊ Π΅ ΡΠ΅ΠΆΠΈΠΌΡΡ β ΡΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ° Π΅ ΠΈΠΊΠΎΠ½ΠΎΠΌΠΈΡΡΠ°, Π½ΠΎ ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° ΠΈΠ·Π»ΠΈΠ·Π°Π½Π΅ ΠΎΡ ΡΠ΅ΠΆΠΈΠΌΠ°) β TEO (Π’Π°ΠΉΠΌΠ΅ΡΠΈ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ΠΈ ΠΊΡΠΌ ΡΡΠ±ΠΈΡΠΈΡ). ΠΠΎΡΠ΅Π³Π° Π±ΡΡ
Π° ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π½ΠΈ Π΄Π²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° cpuidle β βmenuβ ΠΈ βladderβ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π²Π°Ρ
Π° Ρ Ρ
Π΅Π²ΡΠΈΡΡΠΈΠΊΠ°ΡΠ° ΡΠΈ. Π ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° βmenuβ ΠΈΠΌΠ° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Π²Π·Π΅ΠΌΠ°Π½Π΅ΡΠΎ Π½Π° Ρ
Π΅Π²ΡΠΈΡΡΠΈΡΠ½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ, Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠΈΡΠΎ Π±Π΅ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²ΠΈ Π½ΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ. TEO ΡΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠ° ΠΊΠ°ΡΠΎ Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° βmenuβ, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎ-Π²ΠΈΡΠΎΠΊΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ ΠΏΡΠΈ ΡΡΡΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° Π΅Π½Π΅ΡΠ³ΠΎΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅.
ΠΠΎΠ²ΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° ΡΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ βcpuidle.governor=teoβ; - Π ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΏΠΎ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° , ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°Π½Π° ΠΎΡ ΠΏΡΠ΅Π»ΠΈΠ²Π°Π½Π΅ Π½Π° 32-Π±ΠΈΡΠΎΠ²ΠΈΡ ΡΠΈΠΏ time_t, Π²Π»Π΅Π·Π»ΠΈ Π² ΡΡΡΡΠ°Π²Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ, ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΠΉΠΊΠΈ Π·Π° 32-Π±ΠΈΡΠΎΠ²ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ 64-Π±ΠΈΡΠΎΠ²ΠΈ ΡΠ°ΠΉΠΌΠ΅ΡΠΈ. Π ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΡΠΎΠ²Π° 64-Π±ΠΈΡΠΎΠ²Π°ΡΠ° ΡΡΡΡΠΊΡΡΡΠ° time_t ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° Π½Π° Π²ΡΠΈΡΠΊΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΡΡΠΎ ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π² ΠΌΡΠ΅ΠΆΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΎΠΏΡΠΈΠΈΡΠ΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡΠ΅ ΡΠΎΠΊΠ΅ΡΠΈ;
- ΠΠΎΡΡΠ΅ΠΏΠ΅Π½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° Π½Π°Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΡΡΠΈ (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 ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° 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 Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π·Π° ΡΡΠΊΠΎΡΠΈΡΠ΅Π»ΠΈ Π½Π° Π΅ΠΊΡΠ°Π½Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (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.
Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΠ°ΡΠΈΠ½ΠΎΠ°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΈΡΡ Π€ΠΎΠ½Π΄ Π·Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ ΡΠΎΡΡΡΠ΅Ρ
Π²Π°ΡΠΈΠ°Π½Ρ β , ΠΏΠΎΡΠΈΡΡΠ΅Π½ΠΎ ΠΎΡ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π½Π° ΡΡΡΠΌΡΠ΅Ρ ΠΈ Π΄ΡΠ°ΠΉΠ²ΡΡΠΈ, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ Π½Π΅ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΡΡΠΈ ΠΎΡ ΠΊΠΎΠ΄, ΡΠΈΡΡΠΎ ΠΎΠ±Π»Π°ΡΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ. Π Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π±Π»ΠΎΠ±ΠΎΠ²Π΅ Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅ mt7603 ΠΈ goya. ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΅ ΠΊΠΎΠ΄ΡΡ Π·Π° ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° Π±Π»ΠΎΠ±ΠΎΠ²Π΅ Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅ ΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ wilc1000, iwlwifi, soc-acpi-intel, brcmfmac, mwifiex, btmrvl, btmtk ΠΈ touchscreen_dmi. ΠΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΎ Π΅ ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π±Π»ΠΎΠ±ΠΎΠ²Π΅ Π² Π·Π°ΡΠ΅ΠΆΠ΄Π°ΡΠ° Π½Π° ΡΡΡΠΌΡΠ΅ΡΠ° lantiq xrx200 ΠΏΠΎΡΠ°Π΄ΠΈ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π°Π½Π΅ ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
