Π‘Π»Π΅Π΄ Π΄Π²Π° ΠΌΠ΅ΡΠ΅ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»Π΄Ρ
ΠΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π²ΠΊΠ»ΡΡΠ²Π° 15033 1961 ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ ΠΎΡ XNUMX XNUMX ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ,
ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΠΊΠΎΡΠ΅ΠΊΡΠΈΡΡΠ° - 39 MB (ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π°ΡΠ΅Π³Π½Π°Ρ
Π° 11590 ΡΠ°ΠΉΠ»Π°, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ 570560 ΡΠ΅Π΄Π° ΠΊΠΎΠ΄,
297401 ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π°ΡΠΈ ΡΠ΅Π΄Π°). ΠΠΊΠΎΠ»ΠΎ 41% ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π΅Π½ΠΈ Π² 5.7
ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ 16% ΠΎΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ°
ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΌ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅Π½ Π·Π° Ρ
Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠΈ, 13%
ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΡΡΠ΅ΠΊ, 4% Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ 4% Ρ Π²ΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅
ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ.
- ΠΠΈΡΠΊΠΎΠ²Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°, I/O ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° exFAT Π΄ΡΠ°ΠΉΠ²Π΅Ρ,
ΠΎΡΠ½ΠΎΠ²Π°Π½ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π° βsdfatβ (2.x), ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π° ΠΎΡ Samsung Π·Π° ΡΠ²ΠΎΠΈΡΠ΅ ΡΠΌΠ°ΡΡΡΠΎΠ½ΠΈ Ρ Android. ΠΡΠ°ΠΉΠ²Π΅ΡΡΡ, Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΠΊΡΠΌ ΡΠ΄ΡΠΎΡΠΎ, Π±Π΅ΡΠ΅ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Π½Π°ΡΠ»Π΅Π΄Π΅Π½ ΠΊΠΎΠ΄ Π½Π° Samsung (Π²Π΅ΡΡΠΈΡ 1.2.9) ΠΈ Π±Π΅ΡΠ΅ Ρ ΠΎΠΊΠΎΠ»ΠΎ 10% Π·Π°Π΄ Π½ΠΎΠ²ΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΏΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°. ΠΠ΅ΠΊΠ° ΠΏΡΠΈΠΏΠΎΠΌΠ½ΠΈΠΌ, ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° exFAT ΠΊΡΠΌ ΡΠ΄ΡΠΎΡΠΎ ΡΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ MicrosoftΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΎ ΠΏΡΠ±Π»ΠΈΡΠ½ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ Π½Π°ΠΏΡΠ°Π²ΠΈ exFAT ΠΏΠ°ΡΠ΅Π½ΡΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° Π±Π΅Π·Π²ΡΠ·ΠΌΠ΅Π·Π΄Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Linux. - Btrfs ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° Π½ΠΎΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ioctl() - BTRFS_IOC_SNAP_DESTROY_V2, ΠΊΠΎΡΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·ΡΡΠΈΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π» ΠΏΠΎ Π½Π΅Π³ΠΎΠ²ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ. ΠΡΠΈΠ³ΡΡΠ΅Π½Π° Π΅ ΠΏΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΊΠ»ΠΎΠ½ΠΈΡΠ°Π½Π΅ Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ Π΅ΠΊΡΡΠ΅Π½ΡΠΈ. ΠΡΠΎΡΡ Π½Π° ΡΠΎΡΠΊΠΈΡΠ΅ Π·Π° Π°Π½ΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ ΠΏΠΎ ΠΏΡΠ΅ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½, ΠΊΠΎΠ΅ΡΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π° Π΄ΡΠ»Π³ΠΈΡΠ΅ ΡΠ°ΠΊΠ°Π½ΠΈΡ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° 'ΠΎΡΠΌΡΠ½Π° Π½Π° Π±Π°Π»Π°Π½ΡΠ°'. Π£ΡΠΊΠΎΡΠ΅Π½ΠΎ Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΠΏΡΠ΅ΠΏΡΠ°ΡΠΊΠΈ ΠΊΡΠΌ Π΅ΠΊΡΡΠ΅Π½ΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΈΡ ΡΠΊΡΠΈΠΏΡ Π΅ Π½Π°ΠΌΠ°Π»ΡΠ»ΠΎ ΠΎΡ Π΅Π΄ΠΈΠ½ ΡΠ°Ρ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠΈΠ½ΡΡΠΈ). ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠΈΠΊΠ°ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ Π΅ΠΊΡΡΠ΅Π½ΡΠΈ ΠΊΡΠΌ Π²ΡΠ΅ΠΊΠΈ inode Π½Π° Π΄ΡΡΠ²ΠΎ. Π‘Ρ Π΅ΠΌΠ°ΡΠ° Π·Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΏΡΠΈ Π·Π°ΠΏΠΈΡ Π² ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π»ΠΈ ΠΈ ΠΏΡΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° NOCOW, Π΅ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½Π°. ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° fsync Π·Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ.
- XFS ΠΈΠΌΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ ΠΈ fsck Π·Π° Π°ΠΊΡΠΈΠ²Π½ΠΈ Π΄ΡΠ»ΠΎΠ²Π΅. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° btree ΡΡΡΡΠΊΡΡΡΠΈ, ΠΊΠΎΡΡΠΎ Π² Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ Π½Π° xfs_repair ΠΈ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π±Π΅Π· Π΄Π΅ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄ΡΠ»Π°.
- ΠΡΠΌ CIFS Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΡΡΠ°ΠΏ Π΄ΡΠ» Π² SMB3 Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°. ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈ POSIX ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π·Π° readdir, Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° SMB3.1.1. ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° Π·Π°ΠΏΠΈΡ Π·Π° 64KB ΡΡΡΠ°Π½ΠΈΡΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ ΡΠ΅ΠΆΠΈΠΌ cache=strict ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° 2.1+.
- FS EXT4 Π΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»Π΅Π½ ΠΎΡ bmap ΠΈ iopoll ΠΊΡΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° iomap.
- F2FS ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ Π½Π΅Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° zstd. ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π°Π»Π³ΠΎΡΠΈΡΡΠΌΡΡ LZ4 ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° "chattr -c commit". ΠΡΠΈΠ³ΡΡΠ΅Π½ Π΅ Π΄ΠΈΡΠΏΠ»Π΅ΠΉ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΌΠΎΠ½ΡΠ°ΠΆ. ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ioctl F2FS_IOC_GET_COMPRESS_BLOCKS Π·Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Π±ΡΠΎΡ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π±Π»ΠΎΠΊΠΎΠ²Π΅. ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡΠ°Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΡΡΠ΅Π· statx.
- Π€Π°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Ceph Π΄ΠΎΠ±Π°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ ΠΈ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ (ΠΏΡΠ΅ΠΊΡΠ°ΡΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ°), Π±Π΅Π· Π΄Π° ΡΠ°ΠΊΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡ ΠΎΡ ΡΡΡΠ²ΡΡΠ° (ΡΠ°Π±ΠΎΡΠΈ Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ). ΠΡΠΎΠΌΡΠ½Π°ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΠΌΠΎΡΠ½Π°ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° rsync.
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° virtiofs ΠΊΠ°ΡΠΎ ΡΠ°ΠΉΠ»ΠΎΠ²Π° ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΡ Π½Π°ΠΉ-Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΊΡΠΌ OVERLAYFS.
-
ΠΡΠ΅Π½Π°ΠΏΠΈΡΠ°Π½ ΠΊΠΎΠ΄ Π·Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΡΡ Π²ΡΠ² VFS, ΠΊΠΎΠ΄ΡΡ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»Π½Π° Π²ΡΡΠ·ΠΊΠ° Π΅ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΈ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ Π΅ ΡΠ½ΠΈΡΠΈΡΠΈΡΠ°Π½ΠΎ. - Π ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° scsi Π·Π° Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ
ΠΏΠΎΠ·Π²ΠΎΠ»Π΅Π½ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ZBC ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. - Π dm_writecache
ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΠΈΠ·ΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠ΅ΡΠ° Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° max_age, ΠΊΠΎΠΉΡΠΎ Π·Π°Π΄Π°Π²Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡ ΠΆΠΈΠ²ΠΎΡ Π½Π° Π±Π»ΠΎΠΊ. - Π dm_integrity
Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° "ΠΈΠ·Ρ Π²ΡΡΠ»ΡΠ½Π΅". - Π null_blk
Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π·Π°ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π·Π° ΡΠΈΠΌΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ΅ΡΡΠ²Π°Π½Π΅. -
ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΎΡ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° udev ΠΈΠ·Π²Π΅ΡΡΠΈΡ Π·Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΎΡΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° exFAT Π΄ΡΠ°ΠΉΠ²Π΅Ρ,
- ΠΡΠ΅ΠΆΠΎΠ²Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°
- ΠΠΊΠ»ΡΡΠ΅Π½ Netfilter
ΠΏΡΠΎΠΌΠ΅Π½ΠΈ , ΠΊΠΎΠ΅ΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠΊΠΎΡΡΠ²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠΏΠΈΡΡΡΠΈ ΡΡΡ ΡΡΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ (nftables Π½Π°Π±ΠΎΡΠΈ), ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΎΡ ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠΈ, ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠΎΡΡΠΎΠ²Π΅, ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΈ MAC Π°Π΄ΡΠ΅ΡΠΈ.
ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈ Π² ΠΌΠΎΠ΄ΡΠ»Π° nft_set_pipapo (PIle PAcket POlicies), ΠΊΠΎΠΉΡΠΎ ΡΠ΅ΡΠ°Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΡ ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠ»Π΅ΡΠΎ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅, ΠΊΠ°ΡΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ Π½Π° IP ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΏΠΎΡΡΠΎΠ²Π΅ (nft_set_rbtree ΠΈ nft_set_hash ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ°Ρ ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΡΡΠ°Π·ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ ). ΠΠ΅ΡΡΠΈΡΡΠ° Π½Π° pipapo, Π²Π΅ΠΊΡΠΎΡΠΈΠ·ΠΈΡΠ°Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° 256-Π±ΠΈΡΠΎΠ²ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ AVX2 Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΠΏΡΠΎΡΠ΅ΡΠΎΡ AMD Epyc 7402, ΠΏΠΎΠΊΠ°Π·Π° 420% ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° 30 Ρ ΠΈΠ»ΡΠ΄ΠΈ Π·Π°ΠΏΠΈΡΠ°, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΏΠΎΡΡ-ΠΏΡΠΎΡΠΎΠΊΠΎΠ». Π£Π²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΡΠΈ ΡΡΠ°Π²Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΎΡ ΠΏΠΎΠ΄ΠΌΡΠ΅ΠΆΠ° ΠΈ Π½ΠΎΠΌΠ΅Ρ Π½Π° ΠΏΠΎΡΡ ΠΏΡΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° 1000 Π·Π°ΠΏΠΈΡΠ° Π΅ 87% Π·Π° IPv4 ΠΈ 128% Π·Π° IPv6. -
ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ bareudp ΠΌΠΎΠ΄ΡΠ», ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ°ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ L3 ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ, ΠΊΠ°ΡΠΎ MPLS, IP ΠΈ NSH, Π² UDP ΡΡΠ½Π΅Π». - ΠΡΠΎΠ΄ΡΠ»ΠΆΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ MPTCP (MultiPath TCP), ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° TCP ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° TCP Π²ΡΡΠ·ΠΊΠ° Ρ Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ°ΡΡΡΡΡΠ° ΠΏΡΠ΅Π· ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ IP Π°Π΄ΡΠ΅ΡΠΈ.
-
ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΎΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° Ethernet ΡΠ°ΠΌΠΊΠΈ Π² 802.11 (Wi-Fi). - ΠΠΎΠ³Π°ΡΠΎ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΎΡ Π΅Π΄Π½ΠΎ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° ΠΈΠΌΠ΅Π½Π° Π² Π΄ΡΡΠ³ΠΎ, ΠΏΡΠ°Π²Π°ΡΠ° Π·Π° Π΄ΠΎΡΡΡΠΏ ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΡΡΠ° Π½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² sysfs ΡΠ΅ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Ρ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ»Π°Π³Π° SO_BINDTODEVICE Π·Π° Π½Π΅-root ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ.
- Π’ΡΠ΅ΡΠ°ΡΠ° ΡΠ°ΡΡ ΠΎΡ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈΡΠ΅ Π΅ ΠΏΡΠΈΠ΅ΡΠ°, ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°ΠΉΠΊΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠ° ethtool ΠΎΡ ioctl() ΠΊΡΠΌ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° netlink. ΠΠΎΠ²ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΡΠ»Π΅ΡΠ½ΡΠ²Π° Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Π³ΡΠ΅ΡΠΊΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ ΠΈΠ·Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ, ΠΎΠΏΡΠΎΡΡΡΠ²Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΄ΡΠΎΡΠΎ ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π° Π±ΡΠΎΡ Π½Π° ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½ΠΈΡΠ΅ ΡΠΏΠΈΡΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠ°Π½ΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»ΠΈ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΡΠ·ΠΊΠ°ΡΠ°.
- Π netfilter
Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΊΡΠΊΠ° Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΠΊΠ»Π°ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈ Π½Π° ΠΈΠ·Ρ ΠΎΠ΄ΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ (egress), ΠΊΠΎΡΡΠΎ Π΄ΠΎΠΏΡΠ»Π²Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ°ΡΠ° ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° ΠΊΡΠΊΠ° Π·Π° Π²Ρ ΠΎΠ΄ΡΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ (ingress).
- ΠΠΊΠ»ΡΡΠ΅Π½ Netfilter
- ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Ρ
Π°ΡΠ΄ΡΠ΅ΡΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ (
Π£Π΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠΊΠ°Π·Π°Π»Π΅Ρ ), ΠΊΠΎΠΉΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ARM64 CPU ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π·Π° Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ Π°ΡΠ°ΠΊΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ Π·Π° ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ΠΎ ΠΊΡΠΌ Π²ΡΡΡΠ°Π½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ (ROP), ΠΏΡΠΈ ΠΊΠΎΠΈΡΠΎ Π°ΡΠ°ΠΊΡΠ²Π°ΡΠΈΡΡ Π½Π΅ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π° Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈ ΠΊΠΎΠ΄Π° ΡΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π° ΡΠ°Π±ΠΎΡΠΈ Ρ ΡΠ°ΡΡΠΈ ΠΎΡ ΠΌΠ°ΡΠΈΠ½Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ ΡΠ° Π½Π°Π»ΠΈΡΠ½ΠΈ Π² Π·Π°ΡΠ΅Π΄Π΅Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π·Π°Π²ΡΡΡΠ²Π°ΠΉΠΊΠΈ Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π·Π° Π²ΡΡΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π°. Π‘ΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ° ΡΠ΅ ΡΠ²Π΅ΠΆΠ΄Π° Π΄ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΈΡΡΠΎΠ²ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π°Π΄ΡΠ΅ΡΠΈΡΠ΅ Π·Π° Π²ΡΡΡΠ°Π½Π΅ Π½Π° Π½ΠΈΠ²ΠΎ ΡΠ΄ΡΠΎ. Π‘ΠΈΠ³Π½Π°ΡΡΡΠ°ΡΠ° ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π² Π½Π΅ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΠ΅ Π³ΠΎΡΠ½ΠΈ Π±ΠΈΡΠΎΠ²Π΅ Π½Π° ΡΠ°ΠΌΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π». ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΡ ΡΠΎΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠΎΠ²ΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°. -
ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΎΡ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ Π·Π°ΡΠΈΡΠΈ ΠΎΠ±Π»Π°ΡΡ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΎΡ Π·Π°ΠΏΠΈΡ ΡΡΠ΅Π· ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ userfaultfd(), ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° Π³ΡΠ΅ΡΠΊΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° (Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΡΠ°Π½ΠΈΡΠΈ Ρ Π½Π΅ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ) Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. ΠΠ΄Π΅ΡΡΠ° Π΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° userfaultfd() ΠΊΠ°ΠΊΡΠΎ Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° Π½Π°ΡΡΡΠ΅Π½ΠΈΡ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΡΡΡΠ°Π½ΠΈΡΠΈ, ΠΌΠ°ΡΠΊΠΈΡΠ°Π½ΠΈ ΠΊΠ°ΡΠΎ Π·Π°ΡΠΈΡΠ΅Π½ΠΈ ΠΎΡ Π·Π°ΠΏΠΈΡ, ΡΠ°ΠΊΠ° ΠΈ Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° ΠΎΠΏΠΈΡΠΈ Π·Π° Π·Π°ΠΏΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΆΠΈΠ²ΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠ½ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ»Π°Π²ΡΠ½Π΅ ΠΏΡΠΈ ΠΈΠ·Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° Π΄ΡΠΌΠΏΠΎΠ²Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° Π΄ΠΈΡΠΊ, Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°). Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ mprotect() Π²ΡΠ² Π²ΡΡΠ·ΠΊΠ° Ρ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠ° Π½Π° ΡΠΈΠ³Π½Π°Π»Π° SIGSEGV, Π½ΠΎ ΡΠ°Π±ΠΎΡΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎ-Π±ΡΡΠ·ΠΎ. - SELinux Π΅ ΠΎΡΡ Π²ΡΡΠ»ΠΈΠ» ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° "checkreqprot", ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈΡΠ΅ Π·Π° Π·Π°ΡΠΈΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π° (ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ°, ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈ Π² ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ°). Kernfs ΡΠΈΠΌΠ²ΠΎΠ»Π½ΠΈΡΠ΅ Π²ΡΡΠ·ΠΊΠΈ ΠΈΠΌΠ°Ρ ΠΏΡΠ°Π²ΠΎ Π΄Π° Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠ΅Ρ Π½ΠΈΡΠ΅ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΊΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
- Π‘ΡΡΡΠΊΡΡΡΠ°ΡΠ°
Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΌΠΎΠ΄ΡΠ»KRSI , ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠΈΠΊΠ°ΡΠΈΡΠ΅ BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΊΡΠΌ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ LSM ΠΊΡΠΊΠΈΡΠΊΠΈ Π² ΡΠ΄ΡΠΎΡΠΎ. ΠΡΠΎΠΌΡΠ½Π°ΡΠ° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ LSM ΠΌΠΎΠ΄ΡΠ»ΠΈ (Linux Security Module) ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π·Π° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ ΠΎΠ΄ΠΈΡΠ° ΠΈ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π΄ΠΎΡΡΡΠΏΠ°. -
ΠΡΠΎΠ²Π΅Π΄Π΅Π½ΠΎ ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° /dev/random ΡΡΠ΅Π· Π³ΡΡΠΏΠΈΡΠ°Π½Π΅ Π½Π° CRNG ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° RNG ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠΎΠΎΡΠ΄Π΅Π»Π½ΠΎ. ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π½Π° getrandom ΠΈ /dev/random Π½Π° ARM64 ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠΈ RNG ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. - Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π΅Π»ΠΈΠΏΡΠΈΡΠ½Π° ΠΊΡΠΈΠ²Π° Curve25519
Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΈ Π·Π° ΠΎΠΏΡΠΈΡΡΠ° ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ°HACL , Π·Π° ΠΊΠΎΠ΅ΡΠΎΠ·Π°Π΄ΡΡΠΆΠ°Π½ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎ Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΠ²ΠΎ Π·Π° ΡΠΎΡΠΌΠ°Π»Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡΡΠ°. -
ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ Π·Π° ΡΡΡΠ°Π½ΠΈΡΠΈ ΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π° ΠΏΠ°ΠΌΠ΅Ρ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΡΠΎΠ·ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ, ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π·Π° Π³ΠΎΡΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠ΅Π΄Π°Π²Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΡΡΠ°Π½ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½Π° Ρ ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, Π° Ρ ΠΎΡΡΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°. - Π vfio/pci
Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° SR-IOV (Single-Root I/O Virtualization).
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Ρ
Π°ΡΠ΄ΡΠ΅ΡΠ½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ (
- ΠΠ°ΠΌΠ΅Ρ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ
- ΠΡ 80 Π΄ΠΎ 100 Π·Π½Π°ΠΊΠ°
ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π°ΡΠ° Π΄ΡΠ»ΠΆΠΈΠ½Π° Π½Π° ΡΠ΅Π΄Π° Π² ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡΠ΅ ΡΠ΅ΠΊΡΡΠΎΠ²Π΅. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π²ΡΠ΅ ΠΎΡΠ΅ ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π° Π΄Π° ΠΎΡΡΠ°Π²Π°Ρ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° 80 Π·Π½Π°ΠΊΠ° Π½Π° ΡΠ΅Π΄, Π½ΠΎ ΡΠΎΠ²Π° Π²Π΅ΡΠ΅ Π½Π΅ Π΅ ΡΠ²ΡΡΠ΄ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅. Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΠΏΡΠ΅Π²ΠΈΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π° ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΡΠ΅Π΄Π° Π²Π΅ΡΠ΅ ΡΠ΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ checkpatch ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Ρ ΠΎΠΏΡΠΈΡΡΠ° β--strictβ. ΠΡΠΎΠΌΡΠ½Π°ΡΠ° ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° Π½Π΅ ΡΠ΅ ΡΠ°Π·ΡΠ΅ΠΉΠ²Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΠΎΡΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΈΡ Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ ΠΈ Π΄Π° ΡΠ΅ ΡΡΠ²ΡΡΠ²Π°ΡΠ΅ ΠΏΠΎ-ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΈ ΠΏΡΠΈ ΠΏΠΎΠ΄ΡΠ°Π²Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π°, ΠΊΠ°ΠΊΡΠΎ ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈ ΠΏΡΠ΅ΠΊΠΎΠΌΠ΅ΡΠ½ΠΎ ΠΏΡΠ΅ΠΊΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅Π΄Π°,ΠΎΠ±Π΅Π·ΠΏΠΎΠΊΠΎΠΈΡΠ΅Π»Π΅Π½ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° ΠΈ ΡΡΡΡΠ΅Π½Π΅. -
ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΎΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° EFI ΡΠΌΠ΅ΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π·Π°ΡΠ΅Π΄ΠΈΡΠ΅ 64-Π±ΠΈΡΠΎΠ²ΠΎ ΡΠ΄ΡΠΎ ββΠΎΡ 32-Π±ΠΈΡΠΎΠ² ΡΡΡΠΌΡΠ΅Ρ, ΡΠ°Π±ΠΎΡΠ΅Ρ Π½Π° 64-Π±ΠΈΡΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΠΎΡ, Π±Π΅Π· Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π±ΡΡΡΠ»ΠΎΡΠ΄ΡΡ. -
ΠΠΊΠ»ΡΡΠ΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ Π½Π° ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ ΠΊΠ»ΡΡΠ°Π»ΠΊΠΈ (βΡΠ°Π·Π΄Π΅Π»Π΅Π½Π° ΠΊΠ»ΡΡΠ°Π»ΠΊΠ° "), ΠΊΠΎΠ΅ΡΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π° ΠΏΡΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½Π΅ΠΏΠΎΠ΄ΡΠ°Π²Π½Π΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π°ΡΠΎΠΌΠ°ΡΠ½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΏΡΠ΅ΡΠΈΡΠ°Ρ Π΄Π²Π΅ Π»ΠΈΠ½ΠΈΠΈ Π½Π° ΠΊΠ΅ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°. Π’Π°ΠΊΠΎΠ²Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π΅Π½ ΡΠ΄Π°Ρ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° (1000 ΡΠΈΠΊΡΠ»Π° ΠΏΠΎ-Π±Π°Π²Π½ΠΎ ΠΎΡ Π°ΡΠΎΠΌΠ°ΡΠ½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²ΡΡΡ Ρ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Ρ Π² Π΅Π΄ΠΈΠ½ ΠΊΠ΅Ρ ΡΠ΅Π΄). Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ° Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ "split_lock_detect", ΡΠ΄ΡΠΎΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡΠΊΡΠΈΠ΅ ΡΠ°ΠΊΠΈΠ²Π° Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½ΠΈΡ Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄Π° ΠΈΠ·Π΄Π°Π΄Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈ SIGBUS ΡΠΈΠ³Π½Π°Π» ΠΊΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΏΡΠΈΡΠΈΠ½ΡΠ²Π°ΡΠΎ Π·Π°ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ. - ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΡΡ Π½Π° Π·Π°Π΄Π°ΡΠΈ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΌΠΏΠ΅ΡΠ°ΡΡΡΠ½ΠΈ ΡΠ΅Π½Π·ΠΎΡΠΈ (
Π’Π΅ΡΠΌΠΈΡΠ½ΠΎ Π½Π°Π»ΡΠ³Π°Π½Π΅ ) ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°, ΠΊΠ°ΡΠΎ ΡΠ΅ Π²Π·Π΅ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΏΡΠ΅Π³ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΏΡΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ. ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π°ΡΠ° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ°, ΡΠ΅ΡΠΌΠΈΡΠ½ΠΈΡΡ ΡΠ΅Π³ΡΠ»Π°ΡΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅Π³ΡΠ»ΠΈΡΠ° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π°ΡΠ° ΡΠ΅ΡΡΠΎΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΏΡΠΈ ΠΏΡΠ΅Π³ΡΡΠ²Π°Π½Π΅ ΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΡΡ Π½Π° Π·Π°Π΄Π°ΡΠΈ Π²Π΅ΡΠ΅ Π²Π·Π΅ΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅Π»Π½Π°ΡΠ° ΠΌΠΎΡΠ½ΠΎΡΡ ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ°ΠΊΠΎΠ²Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΡΠ°ΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠ»Π°Π½ΠΈΡΠ° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π·Π°Π΄Π°ΡΠΈ (ΠΏΡΠ΅Π΄ΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΡΡ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡΠ΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ΅ΡΡΠΎ Ρ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π·Π°Π±Π°Π²ΡΠ½Π΅, Π·Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π·Π°Π²ΠΈΡΠ΅Π½ΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΠΈΠ·ΡΠΈΡΠ»ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ). - ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΡΡ Π½Π° Π·Π°Π΄Π°ΡΠΈ Π²ΠΊΠ»ΡΡΠ²Π°
ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΈ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΎΡΠ΅Π½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ½Π° ΡΠ΅ΡΡΠΎΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°. ΠΡΠΎΠΌΡΠ½Π°ΡΠ° Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΠΎ-ΡΠΎΡΠ½ΠΎ Π΄Π° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°Π΄Π°ΡΠΈΡΠ΅ ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΡ Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² Π½Π°ΠΏΡΠ΅ΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π°Π΄Π°ΡΠ°, ΠΊΠΎΡΡΠΎ Π΅ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ°Π»Π° 1/3 ΠΎΡ ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΏΡΠΈ 1000 MHz, ΡΠ΅ ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° 2/3 ΠΎΡ ΡΠ΅ΡΡΡΡΠΈΡΠ΅, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° ΠΏΠ°Π΄Π½Π΅ Π΄ΠΎ 500 MHz, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π΅ ΡΡΠ·Π΄Π°Π»ΠΎ Π½Π΅Π²ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π½Π° ΠΏΡΠ»Π΅Π½ ΠΊΠ°ΠΏΠ°ΡΠΈΡΠ΅Ρ (Ρ.Π΅. Π·Π°Π΄Π°ΡΠΈΡΠ΅ ΡΠ΅ ΠΏΠΎΡΠ²ΡΠ²Π°Ρ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌ Π·Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΡΠ°ΠΌΠΎ ΡΡΠ΅Π· Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΡΠ°ΡΠ°, ΠΊΠΎΠ΅ΡΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² ΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ Π½Π° schedutil cpufreq). - ΠΡΠ°ΠΉΠ²Π΅ΡΡΡ Π½Π° Intel P-state, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΠΈΠ·Π±ΠΎΡΠ° Π½Π° ΡΠ΅ΠΆΠΈΠΌΠΈ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ Π² ΡΠΏΠΎΡΡΠ΅Π±Π°
Π³ΡΠ°ΡΠΈΠΊ . - ΠΡΠ²Π΅Π΄Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° BPF, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΄ΡΠΎΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ (PREEMPT_RT). ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π°, ΠΊΠΎΠ³Π°ΡΠΎ PREEMPT_RT Π±Π΅ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½, BPF ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½.
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² ΡΠΈΠΏ BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° - BPF_MODIFY_RETURN, ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ΅Π½Π° ΠΊΡΠΌ ΡΡΠ½ΠΊΡΠΈΡ Π² ΡΠ΄ΡΠΎΡΠΎ ΠΈ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ°, Π²ΡΡΠ½Π°ΡΠ° ΠΎΡ ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΡ.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΎΡ
Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ clone3() Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅Ρ Π² cgroup, ΠΊΠΎΠΉΡΠΎ Π΅ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ ΠΎΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΊΠ°ΡΠ° cgroup, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΊΠΈΡ ΠΏΡΠΎΡΠ΅Ρ Π΄Π° ΠΏΡΠΈΠ»Π°Π³Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΈ Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ° ΠΎΡΡΠΈΡΠ°Π½Π΅ Π²Π΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ² ΠΏΡΠΎΡΠ΅Ρ ΠΈΠ»ΠΈ Π½ΠΈΡΠΊΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡΡ Π½Π° ΡΡΠ»ΡΠ³ΠΈ ΠΌΠΎΠΆΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π΄Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΠΈ Π½ΠΎΠ²ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΊΡΠΌ ΠΎΡΠ΄Π΅Π»Π½ΠΈ cgroups ΠΈ Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ Π±ΡΠ΄Π°Ρ ΠΏΠΎΡΡΠ°Π²Π΅Π½ΠΈ Π² βΠ·Π°ΠΌΡΠ°Π·Π΅Π½ΠΈβ cgroups, Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΠΏΡΠ΅Π½ΠΈ. - Π² Kbuild
Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° "LLVM=1" Π·Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ ΠΊΡΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠ° Clang/LLVM ΠΏΡΠΈ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ. ΠΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π·Π° Π²Π΅ΡΡΠΈΡΡΠ° binutils ΡΠ° ΠΏΠΎΠ²ΠΈΡΠ΅Π½ΠΈ (2.23). - ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΡΠ°Π·Π΄Π΅Π» /sys/kernel/debug/kunit/ ΠΊΡΠΌ debugfs Ρ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ Π½Π° kunit.
- ΠΠΎΠ±Π°Π²Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ pm_debug_messages (Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ Π½Π° /sys/power/pm_debug_messages), ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Ρ ΡΠ°Π½Π²Π°Π½Π΅ΡΠΎ (ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ Ρ ΠΈΠ±Π΅ΡΠ½Π°ΡΠΈΡ ΠΈ ΡΠ΅ΠΆΠΈΠΌ Π½Π° Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡ).
- ΠΡΠΌ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΈΡ I/O ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
io_uring Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ½Π°ΠΆΠ΄Π°Π½Π΅() ΠΈΠΈΠ·Π±ΠΎΡ Π½Π° Π°ΡΠΎΠΌΠ΅Π½ Π±ΡΡΠ΅Ρ . - ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΎ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° cgroup Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅. ΠΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° perf ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ° ΡΠ°ΠΌΠΎ Π·Π°Π΄Π°ΡΠΈ Π² ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° cgroup ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΠΊΡΠΈΠ΅ ΠΊΡΠΌ ΠΊΠΎΡ cgroup ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ ΡΠ΅ΠΊΡΡΠ°ΡΠ° ΠΏΡΠΎΠ±Π°. perf Π²Π΅ΡΠ΅ ΠΈΠ·Π²Π»ΠΈΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° cgroup Π·Π° Π²ΡΡΠΊΠ° ΠΏΡΠΎΠ±Π°, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ Π΅Π΄Π½Π° cgroup ΠΈ Π΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΠ΅ ΡΠΎΡΡΠΈΡΠ°Π½Π΅ ΠΏΠΎ
cgroup Π² ΠΎΡΡΠ΅ΡΠΈΡΠ΅. - cgroupfs, ΠΏΡΠ΅Π²Π΄ΠΎ-FS Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° cgroups, Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΈ (xattrs), Ρ ΠΊΠΎΠΈΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ.
- Π ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° cgroup
Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½Π° Π·Π°ΡΠΈΡΠ° Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° βmemory.lowβ, ΠΊΠΎΡΡΠΎ ΡΠ΅Π³ΡΠ»ΠΈΡΠ° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ RAM, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΎ Π½Π° ΡΠ»Π΅Π½ΠΎΠ²Π΅ΡΠ΅ Π½Π° Π³ΡΡΠΏΠ°ΡΠ°. ΠΠΎΠ³Π°ΡΠΎ ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ ΠΉΠ΅ΡΠ°ΡΡ ΠΈΡ Π½Π° cgroup Ρ ΠΎΠΏΡΠΈΡΡΠ° "memory_recursiveprot", ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° "memory.low", ΠΊΠΎΡΡΠΎ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½Π° Π·Π° ΠΏΠΎ-Π½ΠΈΡΠΊΠΈΡΠ΅ Π²ΡΠ·Π»ΠΈ, ΡΠ΅ Π±ΡΠ΄Π΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΊΡΠΌ Π²ΡΠΈΡΠΊΠΈ Π΄ΡΡΠ΅ΡΠ½ΠΈ Π²ΡΠ·Π»ΠΈ. -
ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ Uacce (Unified/User-space-access-intended Accelerator Framework) ΡΠ°ΠΌΠΊΠ° Π·Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΠ½Π΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ Π°Π΄ΡΠ΅ΡΠΈ (SVA, ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ΠΎ Π²ΠΈΡΡΡΠ°Π»Π½ΠΎ Π°Π΄ΡΠ΅ΡΠΈΡΠ°Π½Π΅) ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈΡΠ΅ ΡΡΠΊΠΎΡΠΈΡΠ΅Π»ΠΈ Π΄Π° ΠΈΠΌΠ°Ρ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² Π³Π»Π°Π²Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΠΎΡ.
- ΠΡ 80 Π΄ΠΎ 100 Π·Π½Π°ΠΊΠ°
- Π₯Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠΈ
- ΠΠ° ARM Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π³ΠΎΡΠ΅ΡΠΎ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°.
- ΠΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° RISC-V Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π³ΠΎΡΠ΅ΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ ΠΈ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ (CPU hotplug). ΠΠ° 32-Π±ΠΈΡΠΎΠ² RISC-V Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½ eBPF JIT.
- ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° 32-Π±ΠΈΡΠΎΠ²ΠΈ ARM ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° KVM ΡΡΠ΅Π΄ΠΈ Π·Π° Π³ΠΎΡΡΠΈ Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ°.
- ΠΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠΎ Π΅ βΡΠΈΠΊΡΠΈΠ²Π½ΠΎΡΠΎβ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° NUMA Π·Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° s390, Π·Π° ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ ΡΠ° Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈ ΡΠ»ΡΡΠ°ΠΈ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π·Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°.
- ΠΠ° ARM64 Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ AMU (ΠΌΠΎΠ½ΠΈΡΠΎΡ Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ°), Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΎ Π² ARMv8.4 ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡΠΎ Π±ΡΠΎΡΡΠΈ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° ΠΈΠ·ΡΠΈΡΠ»ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΅ΡΠΈΡΠΈΠ΅Π½ΡΠΈΡΠ΅ Π·Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° Π² ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π° Π·Π°Π΄Π°ΡΠΈ.
- ΠΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
-
ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΎΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° vDPA ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΊΠ°Π½Π°Π» Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΉΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ Π½Π° virtio. vDPA ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΡΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ»ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅, ΠΈΠ»ΠΈ ΡΠΎΡΡΡΠ΅ΡΠ½ΠΎ Π΅ΠΌΡΠ»ΠΈΡΠ°Π½ΠΈ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. - Π ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° GPIO
ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π½ΠΎΠ²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ioctl() Π·Π° Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅, ΠΊΠΎΡΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠ°ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΠ° Π·Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° Π²ΡΡΠΊΠ° GPIO Π»ΠΈΠ½ΠΈΡ. ΠΠ°ΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΠΏΠΎΠΌΠΎΡΠ½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° gpio-watch. - Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° i915 DRM Π·Π° Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠ°ΡΡΠΈ Intel
Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π° ΡΠΈΠΏΠΎΠ²Π΅ Tigerlake (βGen12β) ΠΈ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° OLED. ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠΈΠΏΠΎΠ²Π΅ Ice Lake, Elkhart Lake, Baytrail ΠΈ Haswell. - Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° amdgpu
Π΄ΠΎΠ±Π°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΡΠΌΡΠ΅Ρ Π² USBC ΡΠΈΠΏΠ° Π·Π° ASIC. ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠΈΠΏΠΎΠ²Π΅ AMD Ryzen 4000 "Renoir". ΠΠ΅ΡΠ΅ ΠΈΠΌΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° OLED ΠΏΠ°Π½Π΅Π»ΠΈ. ΠΡΠΈΠ³ΡΡΠ΅Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΡΠΌΡΠ΅ΡΠ° Π² debugfs. - ΠΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° OpenGL 4 Π² ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π³ΠΎΡΡΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΊΡΠΌ vmwgfx DRM Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° VMware (ΠΏΠΎ-ΡΠ°Π½ΠΎ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΡΠ΅ OpenGL 3.3).
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² DRM Π΄ΡΠ°ΠΉΠ²Π΅Ρ tidss Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° TI Keystone.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π·Π° LCD ΠΏΠ°Π½Π΅Π»ΠΈ: Feixin K101 IM2BA02, Samsung s6e88a0-ams452ef01, Novatek NT35510, Elida KD35T133, EDT, NewEast Optoelectronics WJFH116008A, Rocktech RK101II01D-CT, Frida FRD350H54004.
- ΠΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΎΡΠ½ΠΎΡΡΡΠ°
Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π±Π°Π·ΠΈΡΠ°Π½Π°ΡΠ° Π½Π° Atom ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Intel Jasper Lake (JSL). - ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π»Π°ΠΏΡΠΎΠΏ Pinebook Pro, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Rockchip RK3399, Pine64 PineTab ΡΠ°Π±Π»Π΅Ρ ΠΈ ΡΠΌΠ°ΡΡΡΠΎΠ½
PinePhone Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Allwinner A64. - ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π½ΠΎΠ²ΠΈ Π°ΡΠ΄ΠΈΠΎ ΠΊΠΎΠ΄Π΅ΡΠΈ ΠΈ ΡΠΈΠΏΠΎΠ²Π΅:
Amlogic AIU, Amlogic T9015, Texas Instruments TLV320ADCX140, Realtek RT5682, ALC245, Broadcom BCM63XX I2S, Maxim MAX98360A, Presonus Studio 1810c, MOTU MicroBook IIc. - ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ARM ΠΏΠ»Π°ΡΠΊΠΈ ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ Qualcomm Snapdragon 865 (SM8250), IPQ6018, NXP i.MX8M Plus, Kontron βsl28β, 11 ΠΎΠΏΡΠΈΠΈ Π·Π° ΠΏΠ»Π°ΡΠΊΠΈ i.MX6 TechNexion Pico, ΡΡΠΈ Π½ΠΎΠ²ΠΈ ΠΎΠΏΡΠΈΠΈ Toradex Colibri, Samsung S7710 Galaxy Xcover 2, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° ST -Ericsson u8500, DH Electronics DHCOM SoM ΠΈ PDK2, Renesas M3ULCB, Hoperun HiHope, Linutronix Testbox v2, PocketBook Touch Lux 3.
-
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru