ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»ΡΠ΄Ρ ΠΈΠ·ΡΠ°Π·ΠΈ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡ Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ΅ ΠΏΠ°ΡΡΠΎΠ²Π΅ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° Β«sched_extΒ» (SCX) Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux 6.11, ΡΠΈΠΉΡΠΎ ΡΠ΅Π»ΠΈΠ· ΡΠ΅ ΠΎΡΠ°ΠΊΠ²Π° Π² ΠΊΡΠ°Ρ Π½Π° ΡΠ΅ΠΏΡΠ΅ΠΌΠ²ΡΠΈ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° eBPF Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΡΠΈ Π½Π° CPU, ΠΏΠΎΠΊΡΠΈΠ²Π°ΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΈΡΠΊΠΈ Π°ΡΠΏΠ΅ΠΊΡΠΈ Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π·Π°Π΄Π°ΡΠΈ ΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π½Π° CPU. ΠΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΡΠΈ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux Π² Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° eBPF, Π² ΠΊΠΎΡΡΠΎ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° JIT-ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ, Π±Π°ΠΉΡΠΊΠΎΠ΄ΡΡ ΡΠ΅ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠ° Π² ΠΌΠ°ΡΠΈΠ½Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ ΠΊΠΎΠ΄.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠΎΠ²Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π½ΠΎΠ² ΠΊΠ»Π°Ρ ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅ SCHED_EXT, Π·Π° ΠΊΠΎΠΉΡΠΎ Π΅ Π·Π°Π΄Π°Π΄Π΅Π½ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ ΠΎΡ ΡΠ΄ΡΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»Π°ΡΠΎΠ²Π΅ΡΠ΅ SCHED_IDLE ΠΈ SCHED_NORMAL, ΠΊΠΎΠ΅ΡΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π² BPF-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ SCHED_EXT, Π΄Π° ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° Π·Π°Π΄Π°ΡΠΈΡΠ΅, Π²Π΅ΡΠ΅ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΊΡΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π° Π·Π°Π΄Π°ΡΠΈ (SCHED_NORMAL), Π½ΠΎ Π΄Π°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΏΡΠΈΠΊΡΠ΅ΠΏΡΠ½Π΅ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΊΡΠΌ SCHED_EXT ΠΈΠ»ΠΈ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ ΠΏΠΎ-Π½ΠΈΡΡΠΊ ΠΎΡ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅. ΠΠΊΠΎ ΠΊΡΠΌ SCHED_EXT Π½Π΅ ΡΠ° ΡΠ²ΡΡΠ·Π°Π½ΠΈ BPF-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ, ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½ΠΈ Π² ΠΊΠ»Π°Ρ SCHED_EXT, ΡΠ΅ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° SCHED_NORMAL. Π Π°Π±ΠΎΡΠ°ΡΠ° Π½Π° BPF-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ ΡΠ΅ ΡΡΡΡΠΎΠΈ Π² Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΠΎΠΏΠ°ΡΠΊΠΈΡΠ΅ ΠΎΡ Π·Π°Π΄Π°ΡΠΈ, ΡΠ°ΠΊΠ°ΡΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° CPU (Π΅Π΄Π½Π° Π³Π»ΠΎΠ±Π°Π»Π½Π° ΠΎΠΏΠ°ΡΠΊΠ° ΠΈ ΠΏΠΎ Π΅Π΄Π½Π° ΠΎΠΏΠ°ΡΠΊΠ° Π·Π° Π²ΡΡΠΊΠΎ CPU ΡΠ΄ΡΠΎ) ΠΈ ΠΈΠ·Π±ΠΎΡΠ° Π½Π° Π·Π°Π΄Π°ΡΠ°, Π½Π° ΠΊΠΎΡΡΠΎ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ Π½Π° CPU, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈ ΡΠ΄ΡΠΎΡΠΎ Π½Π° CPU.
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ sched_ext ΠΎΠΏΡΠΎΡΡΡΠ²Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΡΠΈ, Π΄Π°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ°Π½Π΅ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π·Π° ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π±ΡΡΠ·ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈ ΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ½Π΅ Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΡΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π² ΡΠ°Π±ΠΎΡΠ½ΠΈΡΠ΅ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° sched_ext ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ, ΠΊΠΎΠΉΡΠΎ Π²Π·Π΅ΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΏΡΠΎΠΌΠ΅Π½Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΡΠ° Π·Π° ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ°ΠΊΡΠΎΡΠΈ.
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ ΠΎΠΊΠΎΠ»ΠΎ Π΄Π΅ΡΠ΅ΡΠΈΠ½Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΡΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° sched_ext, Π»ΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π² ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈ ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π° Π² ΡΠ΄ΡΠΎΡΠΎ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° BPF-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ:
- scx_layered β Ρ ΠΈΠ±ΡΠΈΠ΄Π΅Π½ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π° Π·Π°Π΄Π°ΡΠΈ, ΡΠ°Π·Π΄Π΅Π»ΡΡ Π·Π°Π΄Π°ΡΠΈΡΠ΅ Π½Π° ΡΠ»ΠΎΠ΅Π²Π΅, Π·Π° Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, scx_layered ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΎΡΠ΄Π΅Π»ΡΠ½Π΅ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ Π² ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΠ»ΠΎΠΉ, Π·Π° ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Π½ΠΈ ΡΠ΅ΡΡΡΡΠΈ Π½Π° CPU, ΠΈΠ»ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΡΡ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Meta. ΠΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° BPF, ΡΠ°Π±ΠΎΡΠ΅ΡΠ° Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Π΅Π·ΠΈΠΊΠ° Rust.
- scx_rustland β ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π·Π° ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ Π½Π° ΡΠΎΠ½Π° Π½Π° Π·Π°Π΄Π°ΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ½ΡΠ΅Π½Π·ΠΈΠ²Π½ΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Ρ CPU. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ΅ΡΡΠ° Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ³ΡΠ°Π»Π½ΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Terraria, ΡΡΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΡΡΡ ΡΠ±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ, ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΡΡ scx_rustland ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° ΠΏΠΎ-Π²ΠΈΡΠΎΠΊ FPS Π² ΠΈΠ³ΡΠ°ΡΠ° Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ EEVDF. ΠΡΠΎΠ΅ΠΊΡΡΡ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΎΡ ΡΠ»ΡΠΆΠΈΡΠ΅Π» Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Canonical. ΠΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° BPF, ΡΠ°Π±ΠΎΡΠ΅ΡΠ° Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Π΅Π·ΠΈΠΊΠ° Rust.
- scx_lavd β ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ° Π·Π° ΠΏΠ»Π°Π½ΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°Π΄Π°ΡΠΈ LAVD (Latency-criticality Aware Virtual Deadline), ΠΊΠΎΠΉΡΠΎ ΠΎΡΡΠΈΡΠ° Π²Π°ΠΆΠ½ΠΎΡΡΡΠ° Π½Π° Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡΡΠ° Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° Ρ ΠΎΠ΄Π° Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΏΡΠΈ Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ Π½Π° CPU. ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΡΡ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡΠ΅ Igalia ΠΈ Valve Ρ ΡΠ΅Π» Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡΡΠ° Π² ΠΊΠΎΠΌΠΏΡΡΡΡΠ½ΠΈΡΠ΅ ΠΈΠ³ΡΠΈ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΈ Π·Π°Π΄Π°ΡΠΈ. ΠΠΎΠ³ΠΈΠΊΠ°ΡΠ° Π·Π° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° BPF, ΡΠ°Π±ΠΎΡΠ΅ΡΠ° Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Π΅ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° Π΅Π·ΠΈΠΊΠ° Rust.
- scx_rusty, scx_rlfifo, scx_mitosis β ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΡΠΈ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° Π΅Π·ΠΈΠΊΠ° Rust, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΡΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠ°Π½Π΅ ΠΌΠ΅ΠΆΠ΄Ρ Π³ΡΡΠΏΠΈ Π·Π°Π΄Π°ΡΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ, Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΈΡΡ FIFO-ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π·Π° ΠΏΡΠΈΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° Π³ΡΡΠΏΠΈ Π·Π°Π΄Π°ΡΠΈ ΠΊΡΠΌ ΡΠ΄ΡΠ° Π½Π° CPU.
- scx_central, scx_flatcg, scx_nest, scx_pair, scx_qmap, scx_simple, scx_userland β ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°ΡΠΈΡΠ΅ Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π² ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° Π΅Π·ΠΈΠΊΠ° C, ΠΈΠ»ΡΡΡΡΠΈΡΠ°ΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° sched-ext.
ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ sched_ext Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π·Π° ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΠΏΡΠ΅Π· 2022 Π³ΠΎΠ΄ΠΈΠ½Π°, ΡΠ»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ Π±ΡΡ Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΈ ΡΠ΅ΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΈΠΈ Π½Π° ΠΏΠ°ΡΡΠ°. ΠΡΠΏΡΠ΅ΠΊΠΈ Π»ΠΈΠΏΡΠ°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΡΡΡΡΠ°Π² Π½Π° ΡΠ΄ΡΠΎΡΠΎ, Π·Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈΡΠ΅ Ubuntu, Arch Linux, Fedora ΠΈ NixOS Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ Π½Π° sched_ext ΡΡΠ΅Π· Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ. ΠΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Canonical ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈΡΠ΅ Π½Π° sched-ext Π² ΡΡΡΡΠ°Π²Π° Π½Π° Ubuntu 24.10, Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Valve ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ° Π½Π° sched_ext Π² Steam Deck. Π ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Meta ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΡΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° sched_ext Π²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΡΠ°Π±ΠΎΡΠ½Π°ΡΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°.
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Google Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ° Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½ ΡΡΠ΅ΠΉΠΌΡΡΡΠΊ ghOSt, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π²ΡΡΡ
Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡΡΠ° Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π½Π° Π·Π°Π΄Π°ΡΠΈ ΡΡΠ΅Π· BPF ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π·Π°ΠΏΠΎΡΠ½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π΅ Π½Π° ghOSt Π½Π° sched_ext. Google ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ°Π·Π²ΠΈΠ²Π° ΠΏΠΎΡΡ Π½Π° sched_ext Π·Π° ChromeOS Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° Ρ
ΠΈΠ±ΡΠΈΠ΄Π½ΠΈΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ scx_layered Ρ ΡΠ΅Π» Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡΡΠ° Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π·Π° ΡΠ°Π±ΠΎΡΠ° Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅. ΠΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Oculus ΡΠ°Π·Π²ΠΈΠ²Π° ΠΏΠΎΡΡ Π½Π° sched_ext Π·Π° Android.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
