ΠΡΠ΅Π³ ΠΡΠΎΠ°-Π₯Π°ΡΡΠΌΠ°Π½ (Greg Kroah-Hartman), ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ Π·Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ Π²Π΅ΡΠΊΠΈ ΡΠ΄ΡΠ° Linux, Π²ΡΡΠΊΠ°Π·Π°Π»ΡΡ Π² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΡΠ΄ΡΠ° Π½Π° ΡΠ·ΡΠΊΠ΅ Rust. ΠΠ°ΠΊ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ 15 Π»Π΅Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΡ Π² ΡΠ΄ΡΠ΅ Linux, ΠΎΠ½ ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΡΠ΄ΡΠ΅ Π²ΡΠ·Π²Π°Π½Ρ Π½Π΅ΡΡΠΈΡΡΠ²Π°Π΅ΠΌΡΠΌΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ ΡΠ·ΡΠΊΠ° Π‘ΠΈ (corner case), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½Ρ Π² ΠΊΠΎΠ΄Π΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Rust ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΡΠ»Π΅ Π΅Ρ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ, Π²ΡΡ ΠΎΠ΄ Π½Π° Π³ΡΠ°Π½ΠΈΡΡ Π±ΡΡΠ΅ΡΠ° (ΡΠ°ΡΡΠΈΡΠ½ΠΎ), Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π·Π°Π±ΡΡΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΡΠΈΠ±ΠΎΠΊ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΌΡΠΉΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠΈΡΡΡΡ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΠ°Ρ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π³ΠΎΠ½ΠΊΠΈ ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ, Π° Π½Π΅ ΡΠ°ΡΡΠ΅ΠΈΠ²Π°ΡΡ ΠΏΡΠΈ ΡΠ΅ΡΠ΅Π½Π·ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠ΅Π»ΠΎΡΠ°ΠΌ.
Π£ΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΠΈΠΉΡΡ ΡΡΠ°ΡΡΠΉ ΠΊΠΎΠ΄ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ Π΄Π΅Π½Π΅ΡΡΡ, Π° Π²ΠΎΡ Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Π½ΠΎΠ²ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Rust ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ΄Π½ΡΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ. ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Rust ΡΠ°ΠΊΠΆΠ΅ Π΄Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΡΠ΄ΡΠ° ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎ Π±ΡΠ΄ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ API β Π² ΡΠ΄ΡΠ΅ Π½Π°ΠΊΠΎΠΏΠΈΠ»ΠΎΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΡ ΠΈ Π·Π°ΠΏΡΡΠ°Π½Π½ΡΡ API, ΡΠΎΠ·Π΄Π°ΡΡΠΈΡ Π±ΠΎΠ»ΡΡΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ Π½Π° ΠΌΡΠΉΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² Π² ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅ ΠΏΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ API ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ Rust-ΠΎΠ±Π²ΡΠ·ΠΎΠΊ Ρ ΠΌΡΠΉΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΡΠΌΡΡΠ»ΠΈΡΡ ΠΈ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ Π² ΠΏΠΎΡΡΠ΄ΠΎΠΊ API, ΡΡΠΎ ΠΏΡΠΈΠ½Π΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ , Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΠ·ΡΠΊ Π‘ΠΈ.
ΠΡΠ΅Π³ Π½Π΅ ΡΡΠΈΡΠ°Π΅Ρ Rust Β«ΡΠ΅ΡΠ΅Π±ΡΡΠ½ΠΎΠΉ ΠΏΡΠ»Π΅ΠΉΒ», ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ΅ΡΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΡΠ΄ΡΠ΅, Π½ΠΎ Π΄Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π² ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΌ ΡΠΈΡΠ»Π΅ ΡΠΈΡΡΠ°ΡΠΈΠΉ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Rust ΡΠ°ΠΊΠΆΠ΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π΄Π΅ΡΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΈΡ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ, ΠΈΡΠΊΠ»ΡΡΠ°Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΈΠΏΡ ΠΎΡΠΈΠ±ΠΎΠΊ. Π§ΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ, ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ², ΠΡΠ΅Π³ Π½Π΅ Π²ΠΈΠ΄ΠΈΡ Π² ΡΡΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎ Π΅Π³ΠΎ ΠΌΠ½Π΅Π½ΠΈΡ, Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ΄ΡΠ° ΡΠΏΡΠ°Π²Π»ΡΠ»ΠΈΡΡ ΠΈ Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΡΡΡΠ·Π½ΡΠΌΠΈ Π·Π°Π΄Π°ΡΠ°ΠΌΠΈ, ΠΈ Π½Π΅Ρ ΠΏΠΎΠ²ΠΎΠ΄Π° ΠΎΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ ΠΎΡ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΄ΡΠΎ Π½ΠΎΠ²ΡΡ Ρ ΠΎΡΠΎΡΠΈΡ ΠΈΠ΄Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΡΠΏΠ΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ 20+ Π»Π΅Ρ.
Π ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΡΡ ΠΠ΅ΠΉΡ ΠΡΠΊ (Kees Cook), Π±ΡΠ²ΡΠΈΠΉ Π³Π»Π°Π²Π½ΡΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ kernel.org ΠΈ Π»ΠΈΠ΄Π΅Ρ Ubuntu Security Team. ΠΠ΅ΠΉΡ ΡΡΠΎΡΠ½ΠΈΠ», ΡΡΠΎ ΡΠ΅ΡΡ Π½Π΅ ΠΏΡΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°Π½ΠΈΠ΅ ΡΠΆΠ΅ ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π° Π² ΡΠ΄ΡΠ΅, Π° Π² ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Rust Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² ΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌ. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Rust Π΄Π»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΠΈΡΠ»ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΠ°ΠΌΡΡΡΡ, Π½ΠΎ ΠΈ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. Π‘ΠΊΠΎΡΠΎΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΡΠ΄ΠΎΠ·Π°ΡΡΠ°Ρ Π½Π° ΠΎΡΠ»Π°Π΄ΠΊΡ ΠΈ Π½Π°Π»ΠΈΡΠΈΡ Π² ΡΠ·ΡΠΊΠ΅ ΡΡΡΠΎΠ³ΠΈΡ Π³Π°ΡΠ°Π½ΡΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ Π²ΡΡΠ²Π»ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π° ΡΠ°Π½Π½Π΅ΠΉ ΡΡΠ°Π΄ΠΈΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°, Π΅ΡΡ Π΄ΠΎ Π½Π°ΡΠ°Π»Π° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°.
ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ ΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Rust Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠΆΠ΅ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½Π° Google Π² ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Android. ΠΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄, ΠΈ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ΄Π΅Π»ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. ΠΠ»Ρ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π°Π±Π»ΡΠ΄Π°Π΅ΡΡΡ ΡΠΊΡΠΏΠΎΠ½Π΅Π½ΡΠΈΠ°Π»ΡΠ½Π°Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 5-Π»Π΅ΡΠ½ΠΈΠΉ ΠΊΠΎΠ΄ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ ΠΈΠΌΠ΅Π΅Ρ Π² 3.4 ΡΠ°Π·Π° ΠΌΠ΅Π½ΡΡΡΡ ΠΏΠ»ΠΎΡΠ½ΠΎΡΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΊΠΎΠ΄).
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru