Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π΄Π²Π° ΠΌΠ΅ΡΠ΅ΡΠ°, ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»Π΄Ρ Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠ΄ΡΠΎΡΠΎ . Π‘ΡΠ΅Π΄ Π½Π°ΠΉ-Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ: ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π²Π½ΠΎΡΠ° Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ ΠΎΡ ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² GPL-ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ ΠΏΠΎ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ FSGSBASE, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Π½Π° ΠΎΠ±ΡΠ°Π·Π° Π½Π° ΡΠ΄ΡΠΎΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Zstd, ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΈΡΠ΅ Π·Π° ΠΏΠΎΡΠΎΡΠΈ Π² ΡΠ΄ΡΠΎΡΠΎ, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ» PRP (Parallel Redundancy Protocol), ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅ Ρ ΠΎΠ³Π»Π΅Π΄ Π½Π° ΠΏΡΠΎΠΏΡΡΠΊΠ°ΡΠ΅Π»Π½Π°ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ Π² ΠΏΠ»Π°Π½ΠΈΡΠ°ΡΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ deadline, ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎ ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½Π΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΏΠ°ΠΌΠ΅Ρ, capability-ΡΠ»Π°Π³ CAP_CHECKPOINT_RESTOR, ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ ΠΏΠΎΠ²ΠΈΠΊ close_range(), ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° dm-crypt, ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° Π·Π° 32-Π±ΠΈΡΠΎΠ²ΠΈ Π³ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΠΈ Xen PV, Π½ΠΎΠ² ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° slab, ΠΎΠΏΡΠΈΡ βrescueβ Π² Btrfs, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° inline-ΡΠΈΡΡΠΈΡΠ°Π½Π΅ Π² ext4 ΠΈ F2FS.
Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ ΡΠ° ΠΏΡΠΈΠ΅ΡΠΈ 16074 ΠΏΠΎΠΏΡΠ°Π²ΠΊΠΈ ΠΎΡ 2011 ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ,
ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° ΠΏΠ°ΡΠ° Π΅ 62 ΠΠ (ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π°ΡΠ΅Π³Π½Π°Ρ
Π° 14548 ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° 782155 ΡΠ΅Π΄Π° ΠΊΠΎΠ΄, ΠΈΠ·ΡΡΠΈΡΠΈ ΡΠ° 314792 ΡΠ΅Π΄Π°). ΠΠΊΠΎΠ»ΠΎ 45% ΠΎΡ Π²ΡΠΈΡΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² 5.9
ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ 15% ΠΎΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΠΌΠ°Ρ
ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΌ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΊΠΎΠ΄, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅Π½ Π·Π° Ρ
Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΈ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠΈ, 13%
ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Ρ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΡΡΠ΅ΠΊ, 3% β Ρ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ 3% c Π²ΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅
ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ.
:
- ΠΠ°ΠΌΠ΅Ρ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΡΠ»ΡΠ³ΠΈ
- Π·Π°ΡΠΈΡΠ° ΡΡΠ΅ΡΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° GPL-ΠΏΡΠΎΡΠ»ΠΎΠ΅ΠΊΠΈ Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ, Π΄ΠΎΡΡΡΠΏΠ½ΠΈ ΡΠ°ΠΌΠΎ Π·Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ Ρ Π»ΠΈΡΠ΅Π½Π· GPL. Π€Π»Π°Π³ΡΡ TAINT_PROPRIETARY_MODULE Π²Π΅ΡΠ΅ ΡΠ΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π° Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°ΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ ΠΎΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Ρ ΡΠΎΠ·ΠΈ ΡΠ»Π°Π³. ΠΠΊΠΎ GPL-ΠΌΠΎΠ΄ΡΠ»ΡΡ ΡΠ΅ ΠΎΠΏΠΈΡΠ° Π΄Π° ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ ΠΎΡ Π½Π΅-GPL ΠΌΠΎΠ΄ΡΠ», ΡΠΎ ΡΠΎΠ·ΠΈ GPL-ΠΌΠΎΠ΄ΡΠ» Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π° Π΅ΡΠΈΠΊΠ΅ΡΠ° TAINT_PROPRIETARY_MODULE ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ, Π½Π°Π»ΠΈΡΠ½ΠΈ ΡΠ°ΠΌΠΎ Π·Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ Ρ Π»ΠΈΡΠ΅Π½Π· GPL, Π΄ΠΎΡΠΈ Π°ΠΊΠΎ ΠΌΠΎΠ΄ΡΠ»ΡΡ ΠΏΡΠ΅Π΄ΠΈ ΡΠΎΠ²Π° Π΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π» ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ ΠΎΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΡΠ° βgplonlyβ. ΠΠ±ΡΠ°ΡΠ½Π°ΡΠ° Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° (Π΅ΠΊΡΠΏΠΎΡΡ ΡΠ°ΠΌΠΎ Π½Π° EXPORT_SYMBOL_GPL Π² ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΈΠΌΠΏΠΎΡΡΠΈΡΠ°Π»ΠΈ EXPORT_SYMBOL_GPL), ΠΊΠΎΡΡΠΎ Π±ΠΈ ΠΌΠΎΠ³Π»Π° Π΄Π° Π½Π°ΡΡΡΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ, Π½Π΅ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° (Π½Π°ΡΠ»Π΅Π΄ΡΠ²Π° ΡΠ΅ ΡΠ°ΠΌΠΎ ΡΠ»Π°Π³ΡΡ Π½Π° ΠΏΡΠΎΠΏΡΠΈΠ΅ΡΠ°ΡΠ½ΠΈΡ ΠΌΠΎΠ΄ΡΠ», Π½ΠΎ Π½Π΅ ΠΈ GPL-ΠΏΡΠΈΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ).
- ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° kcompactd Π·Π° Π² ΡΠΎΠ½ΠΎΠ² ΡΠ΅ΠΆΠΈΠΌ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈ Π±ΡΠΎΡΡ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΏΠ°ΠΌΠ΅Ρ, Π½Π°Π»ΠΈΡΠ½ΠΈ Π·Π° ΡΠ΄ΡΠΎΡΠΎ. Π‘ΠΏΠΎΡΠ΅Π΄ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ ΠΎΡΠ΅Π½ΠΊΠΈ, ΡΠΎΠ½ΠΎΠ²Π°ΡΠ° ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΡΠ°Π·Ρ ΠΎΠ΄ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° 70-80 ΠΏΡΡΠΈ Π΄Π° ΡΠ΅ Π½Π°ΠΌΠ°Π»ΡΡ Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡΡΠ° ΠΏΡΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΏΠ°ΠΌΠ΅Ρ (huge-page) Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΏΡΠ΅Π΄Ρ ΠΎΠ΄Π½ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π½Π° ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ°, Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ (on-demand). ΠΠ° Π·Π°Π΄Π°Π²Π°Π½Π΅ Π½Π° Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° Π²ΡΠ½ΡΠ½Π°ΡΠ° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠΈ kcompactd, Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ sysctl vm.compaction_proactiveness.
- ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Π½Π° ΠΎΠ±ΡΠ°Π·Π° Π½Π° ΡΠ΄ΡΠΎΡΠΎ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌ (zstd).
- ΠΠ° ΡΠΈΡΡΠ΅ΠΌΠΈ x86 Π΅ Π²Π½Π΅Π΄ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½Π° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ , ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΡΠ΅ΡΠ΅Π½Π΅ ΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ΅ FS/GS ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. Π ΡΠ΄ΡΠΎΡΠΎ FSGSBASE ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΡΡΠΊΠΎΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π·Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° ΡΡΠ΅Π· ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·Π»ΠΈΡΠ½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° Π·Π°ΠΏΠΈΡ Π½Π° MSR Π·Π° GSBASE, Π° Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π°Ρ ΠΈΠ·Π»ΠΈΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΏΠΎΠ²ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° FS/GS.
- ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΡΡ βallow_writesβ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π·Π°Π±ΡΠ°Π½Π° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π½Π° MSR-ΡΠ΅Π³ΠΈΡΡΡΠΈ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π² ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ΅ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΡΠΎΠΌΡΠ½Π°ΡΠ° Π½Π° MSR ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. ΠΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π·Π°ΠΏΠΈΡΡΡ Π½Π΅ Π΅ Π·Π°Π±ΡΠ°Π½Π΅Π½, Π° ΠΏΡΠΎΠΌΡΠ½Π°ΡΠ° Π½Π° MSR ΡΠ΅ ΠΎΡΡΠ°Π·ΡΠ²Π° Π² Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅, Π½ΠΎ Π² Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠ° Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ Π² ΡΠ΅ΠΆΠΈΠΌ ΡΠ°ΠΌΠΎ Π·Π° ΡΠ΅ΡΠ΅Π½Π΅ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅.
- Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈΡ Π²Ρ ΠΎΠ΄/ΠΈΠ·Ρ ΠΎΠ΄ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π·Π° Π±ΡΡΠ΅ΡΠΈΡΠ°Π½ΠΎ ΡΠ΅ΡΠ΅Π½Π΅, Π½Π΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°ΡΠΈ Π°Π½Π³Π°ΠΆΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠΎΡΠΎΡΠΈ ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π·Π°ΠΏΠΈΡ ΡΠ΅ ΠΎΡΠ°ΠΊΠ²Π° Π² ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡ ΡΠ΅Π»ΠΈΠ·.
- Π ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π·Π° Π²Ρ ΠΎΠ΄/ΠΈΠ·Ρ ΠΎΠ΄ deadline ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅ΡΠΎ Ρ ΠΎΠ³Π»Π΅Π΄ Π½Π° ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ, Π΄Π° Π²Π·Π΅ΠΌΠ° ΠΏΡΠ°Π²ΠΈΠ»Π½ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Π°ΡΠΈΠΌΠ΅ΡΡΠΈΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΡΠ°ΠΊΠΈΠ²Π° ΠΊΠ°ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠΈ ARM, Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ ΠΈ big.LITTLE, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΡΠΈ Π² Π΅Π΄ΠΈΠ½ ΡΠΈΠΏ ΠΌΠΎΡΠ½ΠΈ ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΈ Π΅Π½Π΅ΡΠ³ΠΈΠΉΠ½ΠΎ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ ΡΠ΄ΡΠ° Π½Π° CPU. Π ΡΠ°ΡΡΠ½ΠΎΡΡ, Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π°Ρ Π½Π΅ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΠΏΡΠΈ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅ΡΠΎ, ΠΊΠΎΠ³Π°ΡΠΎ Π±Π°Π²Π½ΠΎΡΠΎ ΡΠ΄ΡΠΎ Π½Π° CPU Π½Π΅ ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π° Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΡΠ΅ΡΡΡΡΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π΄Π°ΡΠ°ΡΠ° Π² Π·Π°Π΄Π°Π΄Π΅Π½ΠΈΡ ΡΡΠΎΠΊ.
- ΠΠΎΠ΄Π΅Π»ΡΡ Π·Π° ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΅Π½Π΅ΡΠ³ΠΈΡ Π² ΡΠ΄ΡΠΎΡΠΎ (Energy Model framework) ΡΠ΅Π³Π° Π½Π΅ ΡΠ°ΠΌΠΎ ΠΎΠ±Ρ Π²Π°ΡΠ° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΅Π½Π΅ΡΠ³ΠΈΠΉΠ½ΠΎΡΠΎ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° CPU, Π½ΠΎ ΠΈ ΠΏΠ΅ΡΠΈΡΠ΅ΡΠ½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΅ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ ΠΏΠΎΠ²ΠΈΠΊ close_range(), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π΄Π° Π·Π°ΡΠ²ΠΎΡΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΈ.
- ΠΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ΅ΠΊΡΡΠΎΠ²Π°ΡΠ° ΠΊΠΎΠ½Π·ΠΎΠ»Π° ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° fbcon , ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½ΠΎ ΠΏΡΠ΅Π²ΡΡΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΠΊΡΡΠ° Π½Π°Π·Π°Π΄ (CONFIG_VGACON_SOFT_SCROLLBACK) Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ ΠΎΠ±Π΅ΠΌΠ° Π½Π° Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΠ΅ΡΡΠ° Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈΡ ΡΠ΅ΠΆΠΈΠΌ VGA.
- Π°Π»Π³ΠΎΡΠΈΡΡΠΌ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΈΡΠ΅ Π·Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ Π²ΡΡΡΠ΅ Π² ΡΠ΄ΡΠΎΡΠΎ. ΠΠΎΠ²ΠΈΡΡ Π²Π°ΡΠΈΠ°Π½Ρ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ Π²ΡΠ² Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΏΡΠΈ Π·Π°Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠΈ Π·Π° Π·Π°Π΄Π°ΡΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅.
- ΠΠΎΠ±Π°Π²Π΅Π½ sysctl Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π·Π° ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅Π³ΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° Π½Π° CPU Π·Π° Π·Π°Π΄Π°ΡΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΡΠΏΠ΅ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π΅Π½Π΅ΡΠ³ΠΈΡ ΠΏΡΠΈ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° Π·Π°Ρ ΡΠ°Π½Π²Π°Π½Π΅ ΠΎΡ Π±Π°ΡΠ΅ΡΠΈΡ ΠΈΠ»ΠΈ Π½Π° ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ).
- ΠΠ·Π²ΡΡΡΠ΅Π½Π° Π΅ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° Π·Π° Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° Transparent Huge Pages Π² ΡΡΡΠ°Π½ΠΈΡΠ½ΠΈΡ ΠΊΠ΅Ρ.
- Π ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° fanotify ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π½ΠΎΠ²ΠΈ ΡΠ»Π°Π³ΠΎΠ²Π΅ FAN_REPORT_NAME ΠΈ FAN_REPORT_DIR_FID Π·Π° ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΈΠΌΠ΅ ΠΈ ΡΠ½ΠΈΠΊΠ°Π»Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ FID ΠΏΡΠΈ Π½Π°ΡΡΡΠΏΠ²Π°Π½Π΅ Π½Π° ΡΡΠ±ΠΈΡΠΈΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅, ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ ΠΈΠ»ΠΈ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΈ Π½Π΅ ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ.
- ΠΠ° cgroups Π½ΠΎΠ² ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π·Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° slab (ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π·Π° ΠΏΠ°ΠΌΠ΅Ρ slab), ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π²Π° Ρ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ΡΠΎ Π½Π° ΠΎΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° slab ΠΎΡ Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΏΠ°ΠΌΠ΅Ρ ΠΊΡΠΌ Π½ΠΈΠ²ΠΎΡΠΎ Π½Π° ΠΎΠ±Π΅ΠΊΡΠΈ Π² ΡΠ΄ΡΠΎΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΠ½Π΅ Π½Π° slab-ΡΡΡΠ°Π½ΠΈΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ cgroup, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ ΠΎΡΠ΄Π΅Π»ΡΡ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΊΠ΅ΡΠΎΠ²Π΅ slab Π·Π° Π²ΡΡΠΊΠ° cgroup. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΠΈΡΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° slab, Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΠΉΠΊΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°ΡΠ° ΠΏΠ°ΠΌΠ΅Ρ Π·Π° slab Ρ 30-45%, Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΠΉΠΊΠΈ ΠΎΠ±ΡΠΎΡΠΎ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π°ΠΉΠΊΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°.
- Π Π·Π²ΡΠΊΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ΠΈ ΠΏΡΠ΅ΠΏΠΎΡΡΠΊΠΈΡΠ΅ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΈΠ½ΠΊΠ»ΠΈΠ·ΠΈΠ²Π½Π° ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux, ΠΈΠ·Π²ΡΡΡΠ΅Π½Π° Π΅ ΠΏΡΠ΅ΡΠΈΡΡΠΊΠ° Π½Π° Π½Π΅ΠΏΠΎΠ»ΠΈΡΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΈ ΡΠ΅ΡΠΌΠΈΠ½ΠΈ. ΠΠΎΠ΄ΡΡ Π΅ ΠΈΠ·ΡΠΈΡΡΠ΅Π½ ΠΎΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΡΠΌΠΈΡΠ΅ βslaveβ, βmasterβ, βblacklistβ ΠΈ βwhitelistβ. ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° Clang
- ΠΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ
- Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° (CONFIG_INIT_STACK_ALL_ZERO) Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½Π°ΡΠ° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Ρ Π½ΡΠ»Π΅Π²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ, ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½ΠΈ Π² ΡΡΠ΅ΠΊΠ° (ΠΏΡΠΈΠ³ΠΎΡΠ²Ρ ΡΠ΅ Ρ β-ftrivial-auto-var-init=zeroβ). Π ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° seccomp, ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΠΆΠΈΠΌΠ° Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΠΏΡΠΎΡΠ΅ΡΠ° Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ,
- Π ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° seccomp, ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΆΠΈΠΌΠ° Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Π²ΠΌΡΠΊΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΈ Π·Π° ΠΏΡΠ»Π½Π° Π΅ΠΌΡΠ»ΡΡΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ, Π²ΠΎΠ΄Π΅ΡΠΈ Π΄ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΈ. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΠΏΡΡΡΡΠ½ΠΈΠΊ Π·Π° Chrome.
- ΠΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ xtensa ΠΈ csky Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½ΠΈΡ ΡΡΠ΅Π· ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° seccomp. ΠΠ° xtensa Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Π·Π° ΠΎΠ΄ΠΈΡ.
- Π½ΠΎΠ² ΡΠ»Π°Π³ Π·Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ CAP_CHECKPOINT_RESTORE, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ΡΠΎ Π½Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΡΡΡ Π·Π°ΠΌΡΠ°Π·ΡΠ²Π°Π½Π΅ ΠΈ Π²ΡΡΡΠ°Π½Π΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅, Π±Π΅Π· ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ.
- Π GCC 11 ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈ Π·Π°
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ KCSAN (Kernel Concurrency Sanitizer), ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π·Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΠ»ΠΎΠ²ΠΈΡ Π½Π° Π³ΠΎΠ½ΠΊΠ° Π² ΡΠ΄ΡΠΎΡΠΎ. ΠΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ KCSAN Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ ΡΠ΄ΡΠ°, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ΠΈ Π² GCC. - ΠΠ° AMD Zen ΠΈ ΠΏΠΎ-Π½ΠΎΠ²ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ CPU ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ° Π·Π° P2PDMA ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° DMA Π·Π° Π΄ΠΈΡΠ΅ΠΊΡΠ΅Π½ ΡΡΠ°Π½ΡΡΠ΅Ρ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π½Π° Π΄Π²Π΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΠΊΡΠΌ PCI ΡΠΈΠ½Π°.
- Π dm-crypt Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡΡΠ° ΡΡΠ΅Π· ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΡΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΎΠΏΠ°ΡΠΊΠΈ. Π’ΠΎΠ·ΠΈ ΡΠ΅ΠΆΠΈΠΌ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΈ Π·Π° ΠΏΡΠ°Π²ΠΈΠ»Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ° Ρ Π±Π»ΠΎΡΠ½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (ΡΡΡΡΠΎΠΉΡΡΠ²Π° Ρ ΠΎΠ±Π»Π°ΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ Ρ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»Π°ΡΠ° Π³ΡΡΠΏΠ° Π±Π»ΠΎΠΊΠΎΠ²Π΅). ΠΠ·Π²ΡΡΡΠ΅Π½Π° Π΅ ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΏΡΡΠΊΠ½Π°ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡΡΠ° Π² dm-crypt.
- ΠΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ Π΅ ΠΊΠΎΠ΄ΡΡ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° 32-Π±ΠΈΡΠΎΠ²ΠΈ Π³ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΏΠ°ΡΠ°Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Ρ ΠΈΠΏΠ΅ΡΠ²ΠΈΠ·ΠΎΡΠ° Xen. ΠΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° 64-Π±ΠΈΡΠΎΠ²ΠΈ ΡΠ΄ΡΠ° Π² Π³ΠΎΡΡ ΠΎΠΏΡΠΈΠΈ ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²ΠΌΠ΅ΡΡΠΎ ΠΏΠ°ΡΠ°Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ (PV) ΡΠ΅ΠΆΠΈΠΌΠΈΡΠ΅ Π½Π° ΠΏΡΠ»Π½Π° (HVM) ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½Π° (PVH) Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ.
- ΠΠΈΡΠΊΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°, Π²Ρ
ΠΎΠ΄/ΠΈΠ·Ρ
ΠΎΠ΄ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ
- Π ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Btrfs ΠΎΠΏΡΠΈΡ Π·Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ βrescueβ, ΡΠ½ΠΈΡΠΈΡΠΈΡΠ°ΡΠ° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ Π²ΡΠΈΡΠΊΠΈ Π΄ΡΡΠ³ΠΈ ΠΎΠΏΡΠΈΠΈ Π·Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅. ΠΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠ° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΎΠΏΡΠΈΠΈΡΠ΅ βalloc_startβ ΠΈ βsubvolrootidβ, ΠΎΠ±ΡΠ²Π΅Π½Π° Π·Π° ΠΎΡΡΠ°ΡΡΠ»Π° ΠΎΠΏΡΠΈΡΡΠ° βinode_cacheβ. ΠΠ·Π²ΡΡΡΠ΅Π½Π° Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΎ Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ fsync(). Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° ΡΡΠΌΠΈ, ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΎΡ CRC32c.
- Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° inline ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ (Inline Encryption) Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ ext4 ΠΈ F2FS, Π·Π° Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π° ΠΎΠΏΡΠΈΡ Π·Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ "inlinecrypt". Π Π΅ΠΆΠΈΠΌΡΡ Π½Π° inline ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠ° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°ΡΠΈ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ ΠΈ Π΄Π΅ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° Π²Ρ ΠΎΠ΄ΡΡΠΈ/ΠΈΠ·Ρ ΠΎΠ΄ΡΡΠΈ Π΄Π°Π½Π½ΠΈ.
- Π XFS ΠΈΠ·Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π½Π° inode (flush) Π² Π½Π°ΠΏΡΠ»Π½ΠΎ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ, Π±Π΅Π· Π΄Π° Π±Π»ΠΎΠΊΠΈΡΠ° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎ ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ°. Π Π΅ΡΠ΅Π½ Π΅ Π΄ΡΠ»Π³ΠΎΠ³ΠΎΠ΄ΠΈΡΠ½ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΊΠ²ΠΎΡΠΈΡΠ΅, ΠΏΠΎΡΠ°Π΄ΠΈ ΠΊΠΎΠΉΡΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΡΠ° Π·Π° ΠΏΡΠ΅Π²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΌΠ΅ΠΊΠΈΡ Π»ΠΈΠΌΠΈΡ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΡΠ° Π·Π° Π±ΡΠΎΠΉ inode Π½Π΅ ΡΠ΅ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Ρ Π° ΠΊΠΎΡΠ΅ΠΊΡΠ½ΠΎ. Π£Π½ΠΈΡΠΈΡΠΈΡΠ°Π½Π° Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° DAX Π·Π° ext4 ΠΈ xfs.
- Π Ext4 ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π±ΠΈΡΠΎΠ²ΠΈ ΠΊΠ°ΡΡΠΈ Π·Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²Π΅ΡΠ΅. Π ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠΊΠ°Π½ΠΈΡΠ°Π½Π΅ Π½Π° Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ Π³ΡΡΠΏΠΈ, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ° Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠΊΡΠ°ΡΠ°Π²Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄ΡΠ»ΠΎΠ²Π΅.
- Π F2FS ioctl F2FS_IOC_SEC_TRIM_FILE, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ TRIM/discard Π·Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎ Π½ΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΊΠ°Π·Π°Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π² ΡΠ°ΠΉΠ»Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΠΏΡΠ΅ΠΌΠ°Ρ
Π²Π°Π½Π΅ Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π΅ Π·Π° Π΄ΠΎΡΡΡΠΏ Π±Π΅Π· ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ.
Π F2FS ΡΡΡΠΎ Π½ΠΎΠ² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ GC_URGENT_LOW, ΠΊΠΎΠΉΡΠΎ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ-Π°Π³ΡΠ΅ΡΠΈΠ²Π½ΠΎ, ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° Π±Π΅Π·Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ (idle) ΠΏΡΠ΅Π΄ΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ±ΠΈΡΠ°ΡΠ° Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ. - Π bcache ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° bucket_size Π·Π° Π΅ΠΊΡΡΠ΅Π½ΡΠΈΡΠ΅ Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ ΠΎΡ 16 Π½Π° 32 Π±ΠΈΡΠ° Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°ΡΠ° Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΊΡΡ Π·Π° Π·ΠΎΠ½ΠΈΡΠ°Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
- Π ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° SCSI Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° inline ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° Π±Π°Π·Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° Ρ Π°ΡΠ΄ΡΠ΅ΡΠ½ΠΎ ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΠΎΡ UFS ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΡΠΈ ().
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ Π½Π° ΡΠ΄ΡΠΎΡΠΎ "debugfs", ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠΈΠΌΡΠ½Π½Π°ΡΠ° ΠΏΡΠ΅Π²Π΄ΠΎ-FS.
- Π ΠΊΠ»ΠΈΠ΅Π½ΡΠ° NFSv4.2 Π΅ ΠΎΡΠΈΠ³ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈ Π°ΡΡΠΈΠ±ΡΡΠΈ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ (xattr).
- Π dm-dust ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠΏΠΈΡΡΠΊ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΎΡΠΊΡΠΈΡΠΈ bad-Π±Π»ΠΎΠΊΠΎΠ²Π΅ Π½Π° Π΄ΠΈΡΠΊΠ° ("dmsetup message dust1 0 listbadblocks").
- ΠΠ° md/raid5 Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ /sys/block/md1/md/stripe_size Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ° Π½Π° STRIPE Π±Π»ΠΎΠΊΠ°.
- ΠΠ° NVMe ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° Π·ΠΎΠ½ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ (ZNS, NVM Express Zoned Namespace), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΡΠ°Π·Π΄Π΅Π»ΡΠ½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π·ΠΎΠ½ΠΈ, ΡΡΡΡΠ°Π²Π»ΡΠ²Π°ΡΠΈ Π³ΡΡΠΏΠΈ Π±Π»ΠΎΠΊΠΎΠ²Π΅, Π·Π° ΠΏΠΎ-ΠΏΡΠ»Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ.
- ΠΡΠ΅ΠΆΠΎΠ²Π° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ°
- Π Netfilter Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΎΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π½Π° Π΅ΡΠ°ΠΏΠ° ΠΏΡΠ΅Π΄ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡΡΠ° (ΠΈΠ·ΡΠ°Π·ΡΡ REJECT Π²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π΅ ΡΠ°ΠΌΠΎ Π² Π²Π΅ΡΠΈΠ³ΠΈΡΠ΅ INPUT, FORWARD ΠΈ OUTPUT, Π½ΠΎ ΠΈ Π½Π° Π΅ΡΠ°ΠΏ PREROUTING Π·Π° icmp ΠΈ tcp).
- Π nftables Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΎΠ΄ΠΈΡ Π½Π° ΡΡΠ±ΠΈΡΠΈΡ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ.
- Π nftables Π² API netlink ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΈ Π²Π΅ΡΠΈΠ³ΠΈ, ΡΠΈΡΡΠΎ ΠΈΠΌΠ΅Π½Π° ΡΠ΅ Π½Π°Π·Π½Π°ΡΠ°Π²Π°Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΎΡ ΡΠ΄ΡΠΎ. ΠΡΠΈ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΠ²ΡΡΠ·Π°Π½ΠΎ Ρ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Π° Π²Π΅ΡΠΈΠ³Π° ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΠ΅ ΠΈΠ·ΡΡΠΈΠ²Π° ΠΈ ΡΠ°ΠΌΠ°ΡΠ° Π²Π΅ΡΠΈΠ³Π°.
- Π BPF Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΈΡΠ΅ΡΠ°ΡΠΎΡΠΈ Π·Π° ΠΎΠ±Ρ ΠΎΠ΄, ΡΠΈΠ»ΡΡΠΈΡΠ°Π½Π΅ ΠΈ ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π² Π°ΡΠΎΡΠΈΠ°ΡΠΈΠ²Π½ΠΈ ΠΌΠ°ΡΠΈΠ²ΠΈ (map) Π±Π΅Π· ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ. ΠΡΠ΅ΡΠ°ΡΠΎΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π° TCP ΠΈ UDP ΡΠΎΠΊΠ΅ΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ΅ Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Ρ ΠΏΡΠ΅Π· ΡΠΏΠΈΡΡΡΠΈ Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈ ΡΠΎΠΊΠ΅ΡΠΈ ΠΈ Π΄Π° ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΡΡΡ .
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π½ΠΎΠ² ΡΠΈΠΏ BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ BPF_PROG_TYPE_SK_LOOKUP, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΄ΡΠΎΡΠΎ ΡΡΡΡΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ ΡΠ»ΡΡΠ°Ρ ΡΠΎΠΊΠ΅Ρ Π·Π° Π²Ρ ΠΎΠ΄ΡΡΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅. Π§ΡΠ΅Π· ΡΠ°ΠΊΠ°Π²Π° BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π²Π·Π΅ΠΌΠ°Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π° ΡΠΎΠ²Π° Ρ ΠΊΠΎΠΉ ΡΠΎΠΊΠ΅Ρ Π΄Π° ΡΠ΅ Π°ΡΠΎΡΠΈΠΈΡΠ° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ, Π±Π΅Π· ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ ΠΏΠΎΠ²ΠΈΠΊ bind(). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΅Π΄ΠΈΠ½ ΡΠΎΠΊΠ΅Ρ Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ Π°Π΄ΡΠ΅ΡΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠΎΠ²Π΅. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π² bpf_setsockopt() Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ»Π°Π³Π° SO_KEEPALIVE ΠΈ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ BPF_CGROUP_INET_SOCK_RELEASE, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ ΠΏΡΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠΎΠΊΠ΅ΡΠ°.
- Π Π΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ» (ΠΠ°ΡΠ°Π»Π΅Π»Π΅Π½ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π·Π° ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠ°Π½Π΅), ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° Π±Π°Π·Π° Ethernet ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° Π΄Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π° Π½Π° ΡΠ΅Π·Π΅ΡΠ²Π΅Π½ ΠΊΠ°Π½Π°Π» Π² ΡΠ»ΡΡΠ°ΠΉ Π½Π° Π½Π΅ΠΈΠ·ΠΏΡΠ°Π²Π½ΠΎΡΡ Π½Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΎΡ ΠΌΡΠ΅ΠΆΠ°ΡΠ°.
- Π ΡΡΠ΅ΠΊ mac80211 ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ΅ΡΠΈΡΠΈΡΡΠ΅ΠΏΠ΅Π½Π½Π° Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½ΠΎΡΡ Π·Π° ΠΊΠ°Π½Π°Π»Π° WPA/WPA2-PSK Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΠΎΡΠΊΠ° Π·Π° Π΄ΠΎΡΡΡΠΏ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° qdisc (queuing discipline) Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡΠ΅ ΠΎΠΏΠ°ΡΠΊΠΈ FQ-PIE (Flow Queue PIE), Π½Π°ΡΠ΅Π»Π΅Π½ Π½Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π½Π΅Π³Π°ΡΠΈΠ²Π½ΠΎΡΠΎ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΎΡΠΎ Π±ΡΡΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅ Π²ΡΡΡ Ρ Π³ΡΠ°Π½ΠΈΡΠ½ΠΎΡΠΎ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅ (bufferbloat) Π² ΠΌΡΠ΅ΠΆΠΈ Ρ ΠΊΠ°Π±Π΅Π»Π½ΠΈ ΠΌΠΎΠ΄Π΅ΠΌΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² MPTCP (MultiPath TCP), ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° TCP ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° TCP-ΡΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΡΠΎ Ρ Π΄ΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠ°ΡΡΡΡΡΠ° ΠΏΡΠ΅Π· ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ IP-Π°Π΄ΡΠ΅ΡΠΈ. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° syn cookie, DATA_FIN, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Π±ΡΡΠ΅ΡΠΈΡΠ΅, Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° Π½Π° ΡΠΎΠΊΠ΅ΡΠΈΡΠ΅ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ»Π°Π³ΠΎΠ²Π΅ΡΠ΅ REUSEADDR, REUSEPORT ΠΈ V6ONLY Π² setsockopt.
- ΠΠ° Π²ΠΈΡΡΡΠ°Π»Π½ΠΈΡΠ΅ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°ΡΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ VRF (Virtual Routing and Forwarding), ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° Π½Π° ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°Π½Π΅ Π² Π΅Π΄Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΡΠ΅ΠΆΠΈΠΌ βΡΡΡΠΎΠ³β. Π ΡΠΎΠ·ΠΈ ΡΠ΅ΠΆΠΈΠΌ Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π°ΡΠΎΡΠΈΠΈΡΠ°Π½Π° ΡΠ°ΠΌΠΎ Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·ΠΈΡΠ°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ°, ΠΊΠΎΡΡΠΎ Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² Π΄ΡΡΠ³ΠΈ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ.
- Π Π±Π΅Π·ΠΆΠΈΡΠ½ΠΈΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ath11k ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ΅ΡΡΠΎΡΠ° 6GHz ΠΈ .
- ΠΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅
- ΠΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ Π΅ ΠΊΠΎΠ΄ΡΡ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° UniCore, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π° Π² ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΠΎΡΠ½ΠΈΡ ΡΠ΅Π½ΡΡΡ Π½Π° ΠΠ΅ΠΊΠΈΠ½ΡΠΊΠΈΡ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅Ρ ΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux ΠΏΡΠ΅Π· 2011 Π³ΠΎΠ΄ΠΈΠ½Π°. Π’Π°Π·ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΎΡ 2014 Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π΅ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΈ Π½ΡΠΌΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π² GCC.
- ΠΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° RISC-V Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° (debugfs-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΏΠΎΠΊΡΠΈΡΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄Π° Π½Π° ΡΠ΄ΡΠΎΡΠΎ), kmemleak (ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΎΡΠΊΡΠΈΠ²Π°Π½Π΅ Π½Π° ΡΡΠ΅ΡΠΊΠΈ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ), Π·Π°ΡΠΈΡΠ° Π½Π° ΡΡΠ΅ΠΊΠ°, ΠΌΠ΅ΡΠΊΠΈ Π½Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ ΠΈ tickless-ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ (Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠ° ΠΎΡ ΡΠΈΠ³Π½Π°Π»ΠΈΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΠ½Π° ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°ΡΠ½ΠΎΡΡ).
- ΠΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° PowerPC Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΎΠΏΠ°ΡΠΊΠΈ Π·Π° spinlock, ΠΊΠΎΠ΅ΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π² ΡΠΈΡΡΠ°ΡΠΈΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ ΠΏΡΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
- ΠΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈΡΠ΅ ARM ΠΈ ARM64 ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΡΠ΅Π³ΡΠ»ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ° (cpufreq governor), ΠΊΠΎΠΉΡΠΎ Π·Π° Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΠ΅ΡΡΠΎΡΠ°ΡΠ° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΡ ΠΏΠ»Π°Π½ΠΈΡΠ°ΡΠΈΡ ΠΏΡΠΎΡΠ΅Ρ ΠΈ ΠΌΠΎΠΆΠ΅ Π²Π΅Π΄Π½Π°Π³Π° Π΄Π° ΡΠ΅ ΡΠ²ΡΡΠΆΠ΅ Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅ cpufreq Π·Π° Π±ΡΡΠ·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΠ΅ΡΡΠΎΡΠ°ΡΠ°, ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ Π½Π°ΡΡΡΠΎΠΉΠ²Π°ΠΉΠΊΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° CPU ΡΠΏΡΡΠΌΠΎ ΡΠ΅ΠΊΡΡΠΎΡΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅.
- Π DRM-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° i915 Π·Π° Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΠΈ Intel Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΠ²Π΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π½Π°ΡΠ°Π»Π΅Π½ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΈ ΠΊΠ°ΡΡΠΈ .
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° amdgpu Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π½Π°ΡΠ°Π»Π΅Π½ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° GPU AMD (Navy Flounder) ΠΈ (Sienna Cichlid). ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° ΡΡΠΊΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ UVD/VCE Π·Π° GPU Southern Islands (Radeon HD 7000).
ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎΡΡ Π·Π° Π·Π°Π²ΡΡΡΠ°Π½Π΅ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅Ρ Π½Π° 90, 180 ΠΈΠ»ΠΈ 270 Π³ΡΠ°Π΄ΡΡΠ°.ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΅, ΡΠ΅ Π΄ΡΠ°ΠΉΠ²Π΅ΡΡΡ Π·Π° GPU AMD Π½Π°ΠΉ-Π³ΠΎΠ»ΡΠΌΠΈΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π² ΡΠ΄ΡΠΎΡΠΎ β Π²ΠΊΠ»ΡΡΠ²Π° ΠΎΠΊΠΎΠ»ΠΎ 2.71 ΠΌΠ»Π½. ΡΠ΅Π΄Π° ΠΊΠΎΠ΄, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ 10% ΠΎΡ ΠΎΠ±ΡΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ Π½Π° ΡΠ΄ΡΠΎΡΠΎ (27.81 ΠΌΠ»Π½. ΡΠ΅Π΄Π°). ΠΡ ΡΠ΅Π·ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅, 1.79 ΠΌΠ»Π½. ΡΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½ΠΈ Π·Π°Π³Π»Π°Π²Π½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Ρ Π΄Π°Π½Π½ΠΈ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ΅ Π½Π° GPU, Π° Π‘ΠΈ-ΠΊΠΎΠ΄ΡΡ Π²ΠΊΠ»ΡΡΠ²Π° 366 Ρ ΠΈΠ»ΡΠ΄ΠΈ ΡΠ΅Π΄Π° (Π·Π° ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅, Π΄ΡΠ°ΠΉΠ²Π΅ΡΡΡ Intel i915 ΡΡΠ΄ΡΡΠΆΠ° 209 Ρ ΠΈΠ»ΡΠ΄ΠΈ ΡΠ΅Π΄Π°, Π° Nouveau β 149 Ρ ΠΈΠ»ΡΠ΄ΠΈ).
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Nouveau ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΠΎΠΊΠ°Π΄ΡΠΎΠ²Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π° ΡΡΠ»ΠΎΡΡ ΡΡΠ΅Π· (Cyclic Redundancy Checks) Π² Π΄ΠΈΡΠΏΠ»Π΅ΠΉΠ½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π° GPU NVIDIA. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π΅ Π±Π°Π·ΠΈΡΠ°Π½Π° Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° ΠΎΡ NVIDIA.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ Π·Π° LCD ΠΏΠ°Π½Π΅Π»ΠΈ: Frida FRD350H54004, KOE TX26D202VM0BWA, CDTech S070PWS19HP-FC21, CDTech S070SWV29HG-DC44, Tianma TM070JVHG33 ΠΈ Xingbangda XBD599.
- Π Π·Π²ΡΠΊΠΎΠ²Π°ΡΠ° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ALSA Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° (ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π΅ Π½Π° Π·Π°Ρ ΡΠ°Π½Π²Π°Π½Π΅ Π·Π° Π²ΡΠ½ΡΠ½ΠΈ HDMI ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π·Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅ Π·Π°Π±Π°Π²ΡΠ½Π΅ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ) ΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° Π±ΡΡΠΎΠ½ΠΈΡΠ΅ Π·Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠΈΠΊΡΠΎΡΠΎΠ½Π° ΠΈ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° Π·Π²ΡΠΊΠ°, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π½ΠΎΠ²ΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ .
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ARM ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ: Pine64 PinePhone v1.2, Lenovo IdeaPad Duet 10.1, ASUS Google Nexus 7, Acer Iconia Tab A500, Qualcomm Snapdragon SDM630 (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² Sony Xperia 10, 10 Plus, XA2, XA2 Plus ΠΈ XA2 Ultra), Jetson Xavier NX, Amlogic WeTek Core2, Aspeed EthanolX, ΠΏΠ΅Ρ Π½ΠΎΠ²ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° NXP i.MX6, MikroTik RouterBoard 3011, Xiaomi Libra, Microsoft Lumia 950, Sony Xperia Z5, MStar, Microchip Sparx5, Intel Keem Bay, Amazon Alpine v3, Renesas RZ/G2H.
ΠΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π»Π°ΡΠΈΠ½ΠΎΠ°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΈ Π€ΠΎΠ½Π΄ Π·Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ ΡΠΎΡΡΡΠ΅Ρ
Π²Π°ΡΠΈΠ°Π½Ρ β , ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ΠΎ ΠΎΡ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π½Π° ΡΡΡΠΌΡΠ΅ΡΠΈ ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ Π½Π΅ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΡΡΠΈ ΠΎΡ ΠΊΠΎΠ΄, ΡΠΈΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ ΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ. Π Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π΅ Π·Π°Π±ΡΠ°Π½Π΅Π½ΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π±Π»ΠΎΠ±ΠΎΠ²Π΅ Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅ Π·Π° WiFi rtw8821c ΠΈ SoC MediaTek mt8183. ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π΅ ΠΊΠΎΠ΄ΡΡ Π·Π° ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° Π±Π»ΠΎΠ±ΠΎΠ²Π΅ΡΠ΅ Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅ ΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Habanalabs, Wilc1000, amdgpu, mt7615, i915 CSR, Mellanox mlxsw (Spectrum3), r8169 (rtl8125b-2) ΠΈ x86 touchscreen.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
