ΠΡΠΈΡΡΠΎΡ Π₯Π΅Π»Π²ΠΈΠ³ (Christoph Hellwig), ΠΌΡΠΉΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌ DMA, KVM, Slab Allocator ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ PowerPC Π² ΡΠ΄ΡΠ΅ Linux, Π² ΡΠ²ΠΎΡ Π²ΡΠ΅ΠΌΡ Π²Ρ ΠΎΠ΄ΠΈΠ²ΡΠΈΠΉ Π² ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΊΠΎΠΌΠΈΡΠ΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Linux Foundation ΠΈ Π²ΡΡΡΡΠΏΠ°Π²ΡΠΈΠΉ ΠΈΡΡΡΠΎΠΌ Π² ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΌ Ρ GPL ΡΡΠ΄Π΅Π±Π½ΠΎΠΌ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π΅ Ρ VMware, ΠΎΡΠΊΠ°Π·Π°Π»ΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ ΠΏΠ°ΡΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ Rust. ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΏΠ°ΡΡΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ»ΠΈ ΠΎΠ±Π²ΡΠ·ΠΊΠΈ Π½Π°Π΄ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ DMA, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ DMA Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΎΡΠΊΠ°Π·Π° ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΠ΅ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΎΠ±Π²ΡΠ·ΠΎΠΊ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΊ DMA Π² ΡΠΈΡΠ°Π΅ΠΌΠΎΠΌ Π²ΠΈΠ΄Π΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ, Π±Π΅Π· ΡΠ°Π·ΠΌΠ°Π·ΡΠ²Π°Π½ΠΈΡ ΠΏΠΎ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ ΠΎΠ±Π²ΡΠ·ΠΊΠ°ΠΌ. ΠΡΠΈΡΡΠΎΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» Π½Π°ΠΏΡΡΠΌΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ Π‘ΠΈ API DMA Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust, ΡΡΠΎΠ±Ρ Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΉ, ΠΎΡ ΠΊΠΎΡΠΎΡΡΡ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Ρ Π±ΡΠ΄ΡΡ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΠ΅ ΡΠ΄ΡΠ°.
Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠ°ΡΡΠ΅ΠΉ ΡΠΊΠ°Π·Π°Π»ΠΈ, ΡΡΠΎ ΠΎΠ½ΠΈ Π²ΠΎΠ·ΡΠΌΡΡ Π½Π° ΡΠ΅Π±Ρ Π²ΡΡ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° Rust, Π³ΠΎΡΠΎΠ²Ρ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡ ΡΡΠΈ ΠΏΠ°ΡΡΠΈ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΠΈ Π²ΡΠ½Π΅ΡΠ»ΠΈ ΠΎΠ±Π²ΡΠ·ΠΊΠΈ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ (rust/kernel/dma.rs). Π ΠΎΡΠ²Π΅Ρ ΠΡΠΈΡΡΠΎΡ Π½Π°Π»ΠΎΠΆΠΈΠ» Π²Π΅ΡΠΎ (Β«Nacked-byΒ») Π½Π° ΠΏΡΠΈΡΠΌ ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Rust ΠΏΠ°ΡΡΠ΅ΠΉ ΠΈ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ Π΅ΠΌΡ Π½Π΅ Π½ΡΠΆΠ΅Π½ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΠΉ. ΠΡΠΈΡΡΠΎΡ Π·Π°ΡΠ²ΠΈΠ», ΡΡΠΎ Π΅ΡΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΎΠ±Π²ΡΠ·ΠΎΠΊ Ρ ΠΎΡΡΡ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Linux ΠΈΠ·-Π·Π° ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅, ΠΈΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π² ΡΠ²ΠΎΡΠΌ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅, Π° Π½Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΡΡ ΡΡΡ ΡΠ°ΠΊΠΎΠ²ΡΡ ΠΎΠΏΡΡ ΠΎΠ»Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΄ΡΠ°.
ΠΡΠΈ ΡΡΠΎΠΌ ΠΡΠΈΡΡΠΎΡ ΡΡΠΎΡΠ½ΠΈΠ», ΡΡΠΎ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠΈΠ² ΡΠ·ΡΠΊΠ° Rust ΠΈ ΡΡΠΈΡΠ°Π΅Ρ Π΅Π³ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π»ΡΡΡΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠ·ΡΠΊΠΎΠ², Π½ΠΎ ΠΎΠ½ ΠΏΡΠΎΡΠΈΠ² ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ°Π·Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ . ΠΠΎ ΡΠ»ΠΎΠ²Π°ΠΌ ΠΡΠΈΡΡΠΎΡΠ° ΠΎΠ½ Π·Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π° Rust, Π½ΠΎ ΠΏΡΠΎΡΠΈΠ² ΠΏΡΠΈΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ Rust ΠΊ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠ²ΡΠΌ Π±Π°Π·Π°ΠΌ Π½Π° Π‘ΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΊΠΎΠ΅ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΄ΡΠ°, ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π‘ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Π² ΡΠΎΠΌ, ΡΡΠΎ Rust-ΠΎΠ±Π²ΡΠ·ΠΊΠΈ ΡΡΠ°Π²ΡΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ ΠΎΡ ΠΊΠΎΠ΄Π° Π½Π° ΡΠ·ΡΠΊΠ΅ Rust. ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΎΠ±Π²ΡΠ·ΠΊΠΈ Π»ΠΈΡΡ Π½Π°Π΄ΡΡΡΠΎΠΉΠΊΠΈ Π½Π° Π‘ΠΈ-ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π²Π»ΠΈΡΡΡ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° Π‘ΠΈ. ΠΠΎ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ. ΠΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΠ±Π²ΡΠ·ΠΎΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° Π‘ΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ Π²Π»ΠΈΡΠ½ΠΈΠ΅ ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΎΠ±Π²ΡΠ·ΠΎΠΊ. ΠΡΠ±ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π° Π‘ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΎΠ±Π²ΡΠ·ΠΎΠΊ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Π»ΠΈΡΡΡΠΈΠ΅ Π½Π° ΠΎΠ±Π²ΡΠ·ΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π‘ΠΈ ΠΊΠΎΠ΄Π΅ Π½ΡΠΆΠ½ΠΎ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° Rust. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΠ΅ Π½Π΅ Π³ΠΎΡΠΎΠ²Ρ Π±ΡΠ°ΡΡ Π½Π° ΡΠ΅Π±Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π·Π° ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΡ Π² ΠΊΠΎΠ΄Π΅ Π½Π° Rust, ΠΈ Π½Π΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½Ρ ΡΡΠ°ΡΠΈΡΡ ΡΠ²ΠΎΡ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Rust-ΠΎΠ±Π²ΡΠ·ΠΎΠΊ.
Π‘ΠΈΡΡΠ°ΡΠΈΡ Ρ ΡΡΠ»ΠΎΠΆΠ½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π½Π΅ ΡΠΌΠΎΠ·ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ. Π Π΄ΠΈΡΠΊΡΡΡΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΡΡ ΠΠΆΠ΅ΠΉΡΠΎΠ½ ΠΠ°Π½ΡΠΎΡΠΏ (Jason Gunthorpe), ΠΌΡΠΉΠ½ΡΠ΅ΠΉΠ½Π΅Ρ TPM, VFIO ΠΈ Infiniband ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ NVIDIA, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΠ²ΡΠ» ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ ΠΠΈΠ½ΡΡΠΎΠΌ Π’ΠΎΡΠ²Π°Π»ΡΠ΄ΡΠΎΠΌ pull-Π·Π°ΠΏΡΠΎΡΠ° Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π² ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ ΡΠ±ΠΎΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ° Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Rust. Π‘Π±ΠΎΠΉ Π²ΠΎΠ·Π½ΠΈΠΊ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΠ΅ ΠΊΠΎΠ΄ Π½Π° Rust Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ ΠΎΠ±Π²ΡΠ·ΠΎΠΊ (bindgen). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ ΠΏΡΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° Π‘ΠΈ ΠΈ ΡΠ΄ΡΠ° Π² ΡΠ΅Π»ΠΎΠΌ, ΠΎΠΊΠ°Π·Π°Π»ΠΈΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΡ ΠΎΡ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΡΠΎΠ½Π½Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π² ΡΠ΄ΡΠ΅, Π·Π° ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π»ΡΠ΄ΠΈ.
ΠΡΠΊΠ°Π· ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΊΠΎΠ΄ ΠΎΠ±Π²ΡΠ·ΠΊΠΈ Π½Π°Π΄ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ DMA ΠΏΠΎΡΡΠ°Π²ΠΈΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ° Rust for Linux Π² ΡΡΠΏΠΈΠΊ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π±Π΅Π· ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΠ±Π²ΡΠ·ΠΎΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² Π½Π° ΡΠ·ΡΠΊΠ΅ Rust Π±ΡΠ΄Π΅Ρ Π·Π°ΡΡΡΠ΄Π½Π΅Π½Π°. ΠΠ΅ΠΊΡΠΎΡ ΠΠ°ΡΡΠΈΠ½ (Hector Martin), ΠΌΡΠΉΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈ ARM-ΡΠΈΠΏΠΎΠ² Apple ΠΈ Π»ΠΈΠ΄Π΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° Ashai Linux, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Π°ΡΠΈΠ°Π½ΡΠ° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ» Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΡΠΈΠ½ΡΡΠΈΡ ΠΎΠ±Π²ΡΠ·ΠΊΠΈ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ΅ΡΠ΅Π· ΠΠΈΠ½ΡΡΠ° Π’ΠΎΡΠ²Π°Π»ΡΠ΄ΡΠ°, Π² ΠΎΠ±Ρ ΠΎΠ΄ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ DMA. ΠΡΠ»ΠΈ ΠΠΈΠ½ΡΡ ΡΠΎΠ³Π»Π°ΡΠΈΡΡΡ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ±ΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΠΈ ΠΈ ΡΠ»ΠΎΠΆΠΈΠ²ΡΠ΅ΠΉΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΊΡΠΈΠ·ΠΈΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΠ΄ΡΠ°, Π° Π΅ΡΠ»ΠΈ ΠΎΡΠΊΠ°ΠΆΠ΅ΡΡΡ β ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Rust Π² ΡΠ΄ΡΠΎ.
ΠΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΠ΅ΠΊΡΠΎΡ ΡΠΏΠΎΠΌΡΠ½ΡΠ» ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΡΠΈΡΡΠΎΡΠ° ΠΊ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ Π·Π° Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π΅ΠΊΡΠ° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΠ·-Π·Π° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΡΠΈΡΡΠΎΡ ΡΡΠ°Π²Π½ΠΈΠ» Rust Ρ ΡΠ°ΠΊΠΎΠ²ΠΎΠΉ ΠΎΠΏΡΡ ΠΎΠ»ΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΠ΅ΠΊΡΠΎΡ Π½Π°ΠΏΠΈΡΠ°Π», ΡΡΠΎ ΡΡΡΠ°Π» ΠΎΡ Π²ΡΠ΅Ρ Π±ΡΡΠΎΠΊΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΠ²ΠΎΠ»ΠΎΡΠ΅ΠΊ, Π½Π΅ Π³ΠΎΡΠΎΠ² ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠ²Π΅ΡΠΈΡΡΡΡ ΡΠ»ΠΎΠΆΠΈΠ²ΡΠΈΠΌΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ ΠΈ Π½Π°ΠΌΠ΅ΠΊΠ½ΡΠ» Π½Π° ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΠ΅ΠΉ. ΠΡΠΉΠ² ΠΠΉΡΠ»ΠΈ (Dave Airlie), ΠΌΡΠΉΠ½ΡΠ΅ΠΉΠ½Π΅Ρ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ DRM, ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°Π» Π½Π΅ ΡΠ°Π·Π΄ΡΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡ ΠΈ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΡΠΎΠΊΡΠΈΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ Ρ ΠΎΠ±Π΅ΠΈΡ ΡΡΠΎΡΠΎΠ½, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΏΡΠ°Π² ΠΈΠ»ΠΈ Π½Π΅ ΠΏΡΠ°Π² ΡΡΠ°ΡΡΠ½ΠΈΠΊ Π΄ΠΈΡΠΊΡΡΡΠΈΠΈ.
Π ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΠ»ΡΡ ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»ΡΠ΄Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² ΡΠ°ΠΌΠΎΠΌ ΠΠ΅ΠΊΡΠΎΡΠ΅ ΠΈ Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΠΈ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ Π·Π½Π°Π΅Ρ ΡΡΠΎ-ΡΠΎ Π»ΡΡΡΠ΅ Π΄ΡΡΠ³ΠΈΡ , Π° Π½Π΅ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Π£ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ° Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½ΠΎ ΡΡΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½Π°Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎΡΡΡ β Π² ΠΆΠΈΠ·Π½ΠΈ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ. ΠΠΎΠΏΡΡΠΊΠΈ ΡΡΠ°Π²Π»ΠΈ ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠΈ β ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΠΎΡΠ±ΠΈΠ²Π°Π΅Ρ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Ρ ΠΠΈΠ½ΡΡΠ° ΠΈΠΌΠ΅ΡΡ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡΠ΅Π΅ Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠΌ ΠΠ΅ΠΊΡΠΎΡΠ°. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΠΈΠ½ΡΡΠ° ΠΈΠΌΠ΅ΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ ΠΏΠ°ΡΡΠΈ, Π° Π½Π΅ ΠΎΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π΄Π°Π²Π»Π΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠΈ.
Π ΠΎΡΠ²Π΅Ρ ΠΠ΅ΠΊΡΠΎΡ ΠΎΡΠΏΡΠ°Π²ΠΈΠ» Π·Π°ΠΏΡΠΎΡ Π½Π° ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠ΅Π±Ρ ΠΈΠ· ΡΠΈΡΠ»Π° ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΡ
ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ARM/APPLE, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΠΎΡΠ΅ΡΡΠ» Π²Π΅ΡΡ Π² ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Π² ΡΠ΄ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ. ΠΠ½ ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΡΠ²ΠΈΠ», ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ARM/Apple Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° Π²Π½Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠ΄ΡΠ° Linux. Π£ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ARM/Apple Π² ΡΠ΄ΡΠ΅ ΠΎΡΡΠ°Π»ΡΡ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΌΡΠΉΠ½ΡΠ΅ΠΉΠ½Π΅Ρ β Π‘Π²Π΅Π½ ΠΠΈΡΠ΅Ρ (Sven Peter), ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΠΌΠ΅ΡΠ΅Π½ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Π² ΡΠ΄ΡΠ΅.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
