Miguel Ojeda, เบเบนเปเบเบฝเบเบเบญเบเปเบเบเบเบฒเบ Rust-for-Linux, เปเบเปเบชเบฐเปเบซเบเบตเบเบฒเบเบเปเบญเบเบญเบปเบเบเบฐเบเบญเบ v6 เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบเปเบงเบตเบญเบธเบเบฐเบเบญเบเปเบเบเบฒเบชเบฒ Rust เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบดเบเบฒเบฅเบฐเบเบฒเปเบเบเบเบนเปเบเบฑเบเบเบฐเบเบฒ Linux kernel. เบเบตเปเปเบกเปเบเบชเบฐเบเบฑเบเบเบตเปเบเบฑเบเบเบญเบ patches, เบเบดเบเบฒเบฅเบฐเบเบฒเบชเบฐเบเบฑเบเบเปเบฒเบญเบดเบ, เบเบฑเบเบเบตเบกเบกเบฒเปเบเบเบเปเปเบกเบตเบเบฒเบเบซเบกเบฒเบเปเบฅเบเบชเบฐเบเบฑเบ. เบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ Rust เปเบกเปเบเบเบทเบงเปเบฒเปเบเบฑเบเบเบฒเบเบเบปเบเบฅเบญเบ, เปเบเปเปเบเปเบเบทเบเบฅเบงเบกเบขเบนเปเปเบเบชเบฒเบเบฒเบเปเปเปเบเบเบญเบ linux เปเบฅเบฐเปเบเปเบเบทเบเบเบฑเบเบเบฐเบเบฒเบขเปเบฒเบเบเบฝเบเบเปเปเบเบทเปเบญเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเบเบฒเบเบชเปเบฒเบเบเบฑเปเบ abstraction เปเบเบดเบเบฅเบฐเบเบปเบเบเปเบญเบ kernel, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฒเบเบเบฝเบเปเบเปเบงเบตเปเบฅเบฐเปเบกเบเบนเบ. เบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบกเปเบเปเบเปเบฎเบฑเบเบเบถเบเบเบฒเบ Google เปเบฅเบฐ ISRG (เบเบธเปเบกเบเบปเปเบเบเปเบงเบฒเบเบงเบฒเบกเบเบญเบเปเบเบญเบดเบเปเบเบตเปเบเบฑเบ), เปเบเบดเปเบเปเบเบฑเบเบเบนเปเบเปเปเบเบฑเปเบเปเบเบเบเบฒเบ Let's Encrypt เปเบฅเบฐเบชเบปเปเบเปเบชเบตเบก HTTPS เปเบฅเบฐเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบเบฑเบเปเบเปเบฅเบขเบตเปเบเบทเปเบญเบเบฑเบเบเบธเบเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบเบญเบดเบเปเบเบตเปเบเบฑเบ.
เปเบโเบชเบฐโเบเบฑเบโเปเบซเบกเปโ:
- เบเบธเบเปเบเบทเปเบญเบเบกเบทเปเบฅเบฐเบเบปเบงเปเบเบเบญเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบฑเบเบชเบฑเบ, เบเบปเบเบเปเบญเบเบเบฒเบเบเบฒเบเบเบฐเบฅเบดเบเบเบตเปเปเบเบฑเบเปเบเปเบเปเบเบญเบเบชเบฐเบเบฒเบเบฐ "panic" เปเบกเบทเปเบญเบกเบตเบเปเปเบเบดเบเบเบฒเบเปเบเบตเบเบเบทเปเบ, เปเบเปเบเบทเบเบเบฑเบเบเบธเบเปเบเบฑเบเบเบฒเบเบเปเบญเบ Rust 1.60, เปเบเบดเปเบเปเบฎเบฑเบเปเบซเปเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเปเบฒเบฅเบฑเบ "maybe_uninit_extra" เบฎเบนเบเปเบเบเบเบตเปเบเปเบฒเปเบเปเปเบ kernel patches.
- เปเบเบตเปเบกเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฒเบเปเบญเบเบฐเบชเบฒเบ (เบเบฒเบเบเบปเบเบชเบญเบเบเบตเปเบเบฑเบเบเบทเบเบเปเบฒเปเบเปเปเบเบฑเบเบเบปเบงเบขเปเบฒเบเปเบเปเบญเบเบฐเบชเบฒเบ), เปเบเบเบเปเบฒเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเปเบงเบฅเบฒเบเบฒเบเบเปเบฝเบเบเบฒเบเบเบปเบเบชเบญเบเบเบตเปเบเบดเบเบเบฑเบ kernel API เปเบเบปเปเบฒเปเบเปเบเบเบฒเบเบเบปเบเบชเบญเบ KUnit เบเบตเปเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบฅเบฐเบซเบงเปเบฒเบเบเบฒเบเปเบซเบฅเบเปเบเปเบ.
- เบเบงเบฒเบกเบเปเบญเบเบเบฒเบเปเบเปเบเบทเบเบฎเบฑเบเบฎเบญเบเปเบญเบปเบฒเบงเปเบฒเบเบฒเบเบเบปเบเบชเบญเบเบเปเปเบเบงเบเบชเบปเปเบเบเบปเบเปเบซเปเบเปเบฒเปเบเบทเบญเบ Clippy linter, เบเบทเบเบฑเบเบเบฑเบเบฅเบฐเบซเบฑเบ Rust kernel.
- เบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบเบทเปเบญเบเบเบปเปเบเบเบญเบเปเบกเบเบนเบ "เบชเบธเบเบเบด" เบเบตเปเบกเบตเบซเบเปเบฒเบเบตเปเปเบเบทเบญเบเปเบฒเบเปเบกเปเบเบชเบฐเปเบซเบเบต. เบฅเบฐเบซเบฑเบ Rust เบกเบตเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเปเบเบเบชเปเบฒเบเปเบเบทเบญเบเปเบฒเบ kernel เปเบเบฑเปเบ: Namespace (เบญเบตเบเปเบชเปเปเบเบเบชเปเบฒเบเบเบญเบเปเบเปเบเบชเบธเบเบเบด), SkBuff (struct sk_buff), TcpListener, TcpStream (struct socket), Ipv4Addr (struct in_addr), SocketAddrV4 (struct sockaddr_in) เปเบฅเบฐ IPents เบเบญเบเปเบเบปเบฒเปเบเบปเปเบฒ. .
- เบกเบตเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบเบทเปเบญเบเบเบปเปเบเบชเปเบฒเบฅเบฑเบเปเบเบฑเบเบเบดเบเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบก asynchronous (async), เบเบฐเบเบดเบเบฑเบเปเบเบฎเบนเบเปเบเบเบเบญเบเปเบกเบเบนเบ kasync. เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฝเบเบฅเบฐเบซเบฑเบ asynchronous เปเบเบทเปเบญเบเบฑเบเบเบฒเบเบเปเบญเบเบชเบฝเบ TCP: async fn echo_server(stream: TcpStream) -> เบเบปเบเปเบเปเบฎเบฑเบ { let mut buf = [0u8; 1024]; loop { เปเบซเป n = stream.read(&mut buf).เบฅเปเบเปเบฒ?; เบเปเบฒ n == 0 {เบเบฑเบเบเบทเบ Ok(()); } stream.write_all(&buf[..n]).เบฅเปเบเปเบฒเบขเบนเป?; } }
- เปเบเบตเปเบก net :: เปเบกเบเบนเบเบเบฒเบเบเบฑเปเบเบเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบเบเบปเบงเบเบญเบเปเบเบฑเบเปเบเบฑเบเปเบเบทเบญเบเปเบฒเบ. เปเบเบตเปเบกเบเบปเบงเบขเปเบฒเบ rust_netfilter.rs เบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบเบฑเปเบเบเบญเบเปเบเบเบฒเบชเบฒ Rust.
- เปเบเบตเปเบกเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบ mutex smutex เบเปเบฒเบเบเบฒเบ::Mutex, เปเบเบดเปเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบ pinning.
- เปเบเบตเปเบก NoWaitLock, เปเบเบดเปเบเบเปเปเปเบเบตเบเบฅเปเบเปเบฒเบเบฒเบเบฅเบฑเบญเบ, เปเบฅเบฐเบเปเบฒเบเบทเบเบเบญเบเบเบญเบเปเบเบเบเบฐเบเบนเปเบญเบทเปเบ, เปเบฎเบฑเบเปเบซเปเปเบเบตเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบตเปเบเบฐเบเบทเบเบฅเบฒเบเบเบฒเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบฐเบเบฒเบเบฒเบกเบเบตเปเบเบฐเปเบเปเบฎเบฑเบ lock เปเบเบเบเบตเปเบเบฐเบขเบธเบเบเบนเปเปเบ.
- เปเบเบตเปเบก RawSpinLock, เบฅเบฐเบเบธเปเบเบ raw_spinlock_t เปเบ kernel, เปเบเบทเปเบญเบเปเบฒเปเบเปเบเบฑเบเบเบฒเบเบชเปเบงเบเบเบตเปเบเปเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเป.
- เปเบเบตเปเบกเบเบฐเปเบเบ ARef เบชเบณเบฅเบฑเบเบเบฒเบเบญเปเบฒเบเบญเบตเบเปเบเบดเบเบงเบฑเบเบเบธเบเบตเปเบเบปเบเปเบเบเบฒเบเบเบฑเบเบเบฒเบเบญเปเบฒเบเบญเบตเบเบเบทเบเบเบณเปเบเป (เบเบทเบเบเบฑเบเบเบทเบเบชเบฐเปเปเบต).
- backend rustc_codegen_gcc, เปเบเบดเปเบเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเปเบเปเบซเปเบญเบเบชเบฐเบซเบกเบธเบ libgccjit เบเบฒเบเปเบเบเบเบฒเบ GCC เปเบเบฑเบเบเบปเบงเบชเปเบฒเบเบฅเบฐเบซเบฑเบเปเบ rustc เปเบเบทเปเบญเปเบซเป rustc เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเปเบฅเบฐเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบตเปเบกเบตเบขเบนเปเปเบ GCC, เปเบเปเบเบฐเบเบดเบเบฑเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบ bootstrapping the rustc compiler. เบเบฒเบเบชเบปเปเบเปเบชเบตเบกเบเบฒเบเบฅเบงเบเบฅเบงเบกเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบเบชเปเบฒเบเบฅเบฐเบซเบฑเบเบเบตเปเบญเบตเบเปเบชเป GCC เปเบ rustc เปเบเบทเปเบญเบชเปเบฒเบเบเบปเบงเบฅเบงเบเบฅเบงเบกเบเปเปเบกเบนเบ rustc เบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบ. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเบฒเบเบเปเบญเบ GCC 12.1 เบเบตเปเบเปเบฒเบเบกเบฒเบเบฐเบเบญเบเบกเบตเบเบฒเบเปเบเปเปเบ libgccjit เบเบตเปเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเปเบซเป rustc_codegen_gcc เปเบฎเบฑเบเบงเบฝเบเบขเปเบฒเบเบเบทเบเบเปเบญเบ. เบเบฒเบเบเบฐเบเบฝเบกเบเปเบฒเบฅเบฑเบเบเปเบฒเปเบเบตเบเปเบเบทเปเบญเบชเบฐเบซเบเบญเบเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบเบดเบเบเบฑเปเบ rustc_codegen_gcc เปเบเบเปเบเป rustup utility.
- เบเบงเบฒเบกเบเบทเบเบซเบเปเบฒเปเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒ GCC frontend gccrs เบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบฅเบงเบเบฅเบงเบกเบเบฒเบชเบฒ Rust เปเบเบเบญเบตเบเปเบชเป GCC เปเบกเปเบเบชเบฑเบเปเบเบเปเบซเบฑเบ. เปเบเบเบฑเบเบเบธเบเบฑเบเบกเบตเบเบนเปเบเบฑเบเบเบฐเบเบฒเปเบเบฑเบกเปเบงเบฅเบฒเบชเบญเบเบเบปเบเปเบฎเบฑเบเบงเบฝเบเบเปเบฝเบงเบเบฑเบ gccrs.
เบเบทเปเปเบงเปเบงเปเบฒเบเบฒเบเบเปเบฝเบเปเบเบเบเบตเปเบชเบฐเปเบซเบเบตเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเป Rust เปเบเบฑเบเบเบฒเบชเบฒเบเบตเบชเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบเปเบงเบตเปเบฅเบฐเปเบกเบเบนเบ kernel. เบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ Rust เปเบเปเบเบทเบเบเปเบฒเบชเบฐเปเบซเบเบตเปเบเบฑเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบเปเปเปเบเปเปเบเบตเบเปเบเปเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบฅเบฐเบเปเปเปเบเปเบชเบปเปเบเบเบปเบเปเบซเป Rust เบเบทเบเบฅเบงเบกเปเบเบปเปเบฒเปเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบตเปเบเปเบญเบเบเบฒเบเบชเปเบฒเบฅเบฑเบ kernel. เบเบฒเบเบเปเบฒเปเบเป Rust เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบปเบเบเบฑเบเบเบฐเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเปเบฒเบเปเบเปเบงเบตเบเบตเปเบเบญเบเปเบเปเบฅเบฐเบเบตเบเบงเปเบฒเบเปเบงเบเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเบซเบเปเบญเบเบเบตเปเบชเบธเบ, เปเบเบเบเปเปเบกเบตเบเบฑเบเบซเบฒเปเบเบฑเปเบ: เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเปเบญเบเบเบปเบง, เบเบฒเบเบเบฐเบเบดเปเบชเบเบเบปเบงเบเบตเป null, เปเบฅเบฐ buffer overruns.
Rust เบเบฑเบเบเบฑเบเปเบเปเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบเปเบงเบฅเบฒเบฅเบงเบเบฅเบงเบกเปเบเบเบเปเบฒเบเบเบฒเบเบเบงเบเบชเบญเบเบเบฒเบเบญเปเบฒเบเบญเบดเบ, เบเบฒเบเปเบเบฑเบเปเบเบปเปเบฒเบเบญเบเบงเบฑเบเบเบธเปเบฅเบฐเบเบฒเบเบเบดเบเบเบฒเบกเบเบฐเบซเบผเบญเบเบเบตเบงเบดเบเบเบญเบเบงเบฑเบเบเบธ (เบเบญเบเปเบเบ), เปเบฅเบฐเปเบเบเบเบฒเบเบเบฐเปเบกเบตเบเบเบงเบฒเบกเบเบทเบเบเปเบญเบเบเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบเปเบงเบฅเบฒเปเบฅเปเบ. Rust เบเบฑเบเบชเบฐเบซเบเบญเบเบเบฒเบเบเปเบญเบเบเบฑเบเบเบฒเบ overflows integer, เบฎเบฝเบเบฎเปเบญเบเปเบซเปเบเปเบฒเบเบปเบงเปเบเปเบเปเบเบทเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเบญเบเบเบตเปเบเบฐเบเปเบฒเปเบเป, เบกเบตเบเบฒเบเบเบฑเบเบเบฒเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบตเปเบเบตเบเบงเปเบฒเปเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบกเบฒเบเบเบฐเบเบฒเบ, เปเบเปเปเบเบงเบเบงเบฒเบกเบเบดเบเบเบญเบเบเบฒเบเบญเปเบฒเบเบญเบตเบเบเบตเปเบเปเปเบเปเบฝเบเปเบเบเปเบฅเบฐเบเบปเบงเปเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เปเบฅเบฐเบชเบฐเบซเบเบญเบเบเบฒเบเบเบดเบกเบเบปเบเบเบตเปเบเบตเปเปเบเบฑเปเบกเปเบเบเปเบเบทเปเบญเบซเบผเบธเบเบเปเบญเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบขเปเบฒเบเบกเบตเปเบซเบเบเบปเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru