Π’ ядро Linux 6.8 Π½Π°ΠΌΠ΅Ρ‡Π΅Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ сСтСвого Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π½Π° языкС Rust

Π’ Π²Π΅Ρ‚ΠΊΡƒ net-next, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ измСнСния для ядра Linux 6.8, Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ измСнСния, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π² состав ядра Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Rust-обвязку Π½Π°Π΄ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ абстракции phylib ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½ΡƒΡŽ обвязку Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ax88796b_rust, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ PHY-интСрфСйса Ethernet-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Asix AX88772A (100MBit). Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ 135 строк ΠΊΠΎΠ΄Π° ΠΈ позиционируСтся ΠΊΠ°ΠΊ простой Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для создания сСтСвых Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² Π½Π° языкС Rust, Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ для использования с Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.

По Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π½Π° Rust ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ эквивалСнтСн старому Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρƒ ax88796b, написанному Π½Π° языкС Π‘ΠΈ, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использован с сСтСвыми ΠΊΠ°Ρ€Ρ‚Π°ΠΌΠΈ X-Surf 100, оснащёнными Ρ‡ΠΈΠΏΠΎΠΌ AX88796B. Оба Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°, Π½Π° Π‘ΠΈ ΠΈ Π½Π° Rust, Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² ядрС, ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ прСдпочтСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π½Π° Rust Π² Kconfig прСдусмотрСна настройка AX88796B_RUST_PHY, вмСстС с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° RUST_PHYLIB_ABSTRACTIONS Ρ‚Π°ΠΊΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Rust-обвязку Π½Π°Π΄ phylib.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π° языкС Rust Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Ethernet-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Realtek Generic FE-GE, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² состав ядра. Π Π°Π½Π΅Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π» прСдставлСн ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° rust-e1000 для Ethernet-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠ² Intel, пСрСписанный Π½Π° Rust.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru