Miguel Ojeda, เบเบนเปเบเบฝเบเปเบเบเบเบฒเบ Rust-for-Linux, เบชเบฐเปเบซเบเบตเบเบฒเบเบเปเบญเบเบญเบปเบเบเบฐเบเบญเบ v8 เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบเปเบงเบตเบญเบธเบเบฐเบเบญเบเปเบเบเบฒเบชเบฒ Rust เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบดเบเบฒเบฅเบฐเบเบฒเปเบเบเบเบนเปเบเบฑเบเบเบฐเบเบฒ Linux kernel. เบเบตเปเปเบกเปเบเบชเบฐเบเบฑเบเบเบฑเบเบเบธเบเบเบญเบ patches, เบเบดเบเบฒเบฅเบฐเบเบฒเบชเบฐเบเบฑเบเบเปเบฒเบญเบดเบ, เบเบฑเบเบเบตเบกเบกเบฒเปเบเบเบเปเปเบกเบตเบเบปเบงเปเบฅเบเบชเบฐเบเบฑเบ. เบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ Rust เปเบเปเบเบทเบเบเบดเบเบฒเบฅเบฐเบเบฒเปเบเบฑเบเบเบฒเบเบเบปเบเบฅเบญเบ, เปเบเปเปเบเปเบเบทเบเบฅเบงเบกเบขเบนเปเปเบเบชเบฒเบเบฒเบเปเปเปเบเบเบญเบ linux, เบญเปเบฒเบเบงเปเบฒเปเบเปเบเบทเบเบฅเบงเบกเปเบเบปเปเบฒเปเบเบเบฒเบเบเปเบญเบเบซเบผเบธเบเบฅเบปเบเบเบญเบ 5.20/6.0, เปเบฅเบฐเปเบเบฑเบเบเบนเปเปเบซเบเปเบเบฝเบเบเปเบเบตเปเบเบฐเปเบฅเบตเปเบกเปเบฎเบฑเบเบงเบฝเบเปเบเบเบฒเบเบชเปเบฒเบเบเบฑเปเบ abstraction เบซเบผเบฒเบเบเบงเปเบฒเบฅเบฐเบเบปเบเบเปเบญเบ kernel, เปเบเบฑเปเบเบเบฝเบงเบเบฑเบเบเบฑเบเบเบฒเบเบเบฝเบเปเบเปเบงเบต. เปเบฅเบฐเปเบกเบเบนเบ. เบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบกเปเบเปเบเปเบฎเบฑเบเบเบถเบเบเบฒเบ Google เปเบฅเบฐ ISRG (เบเบธเปเบกเบเบปเปเบเบเปเบงเบฒเบเบงเบฒเบกเบเบญเบเปเบเบญเบดเบเปเบเบตเปเบเบฑเบ), เปเบเบดเปเบเปเบเบฑเบเบเบนเปเบเปเปเบเบฑเปเบเปเบเบเบเบฒเบ Let's Encrypt เปเบฅเบฐเบชเบปเปเบเปเบชเบตเบก HTTPS เปเบฅเบฐเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบเบฑเบเปเบเปเบฅเบขเบตเปเบเบทเปเบญเบเบฑเบเบเบธเบเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบเบญเบดเบเปเบเบตเปเบเบฑเบ.
เปเบโเบชเบฐโเบเบฑเบโเปเบซเบกเปโ:
- เบเบธเบเปเบเบทเปเบญเบเบกเบทเปเบฅเบฐเบเบปเบงเปเบเบเบญเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบเบฑเบเบชเบฑเบ, เปเบเบเบเปเปเบกเบตเบเบฒเบเบชเปเบฒเบเบชเบฐเบเบฒเบเบฐ "เบเบปเบเปเบ" เบเบตเปเปเบเบฑเบเปเบเปเบเปเปเบกเบทเปเบญเบกเบตเบเปเปเบเบดเบเบเบฒเบเปเบเบตเบเบเบทเปเบ, เปเบเปเบเบทเบเบเบฑเบเบเบธเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบญเบ Rust 1.62. เปเบกเบทเปเบญเบเบฝเบเบเบฝเบเบเบฑเบเบฎเบธเปเบเบเบตเปเปเบเปเปเบเปเบกเบทเปเบญเบเปเบญเบ, เบเบธเบเปเบเบทเปเบญเบเบกเบท Rust เปเบเปเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบชเบฐเบเบฝเบเบฅเบฐเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบ const_fn_trait_bound เบเบตเปเปเบเปเปเบ kernel patches.
- เบฅเบฐเบซเบฑเบเบเบฒเบเบเบนเบเบกเบฑเบเบเบทเบเปเบเบเบญเบญเบเปเบเบฑเบเบเบธเบ crate เปเบเบเบเปเบฒเบเบซเบฒเบ "bindings", เปเบเบดเปเบเปเบฎเบฑเบเปเบซเปเบเปเบฒเบเบเบฒเบเบเบฒเบเบเปเปเบชเปเบฒเบเปเบซเบกเปเบเปเบฒเบซเบฒเบเบงเปเบฒเบเบฒเบเบเปเบฝเบเปเบเบเปเบกเปเบเปเบฎเบฑเบเบเบฝเบเปเบเปเบเบฑเบเบเบธเบเบเบปเปเบเบเป "kernel".
- เบเบฒเบเบเบฐเบเบดเบเบฑเบเบกเบฐเบซเบฒเบเบฒเบ "concat_idents!" เบเบฝเบเบเบทเบเปเบซเบกเปเปเบเบฎเบนเบเปเบเบเบเบญเบ macro เบเบฑเปเบเบเบญเบเบเบตเปเบเปเปเบเบดเบเบเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบ concat_idents เปเบฅเบฐเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเปเบเปเบเบฒเบเบญเปเบฒเบเบญเบตเบเปเบเบดเบเบเบปเบงเปเบเบเปเบญเบเบเบดเปเบ.
- เบกเบฐเบซเบฒเบเบฒเบ "static_assert!" เปเบเปเบเบทเบเบเบฝเบเบเบทเบเปเบซเบกเป, เบญเบฐเบเบธเบเบฒเบเปเบซเปเปเบเป "core:: assert!()" เปเบเบชเบฐเบเบฒเบเบเบฒเบเปเบเบเบถเปเบเปเบเบเบเบตเปเบเบฐเปเบเบฑเบเบเปเบฒเบเบปเบเบเบตเป.
- Macro "build_error!" เบเบฑเบโเปเบซเปโเปเบซเบกเบฒเบฐโเบชเบปเบกโเบเบฑเบโเบเบฒเบโเปเบฎเบฑเบโเบงเบฝเบโเปเบโเปเบงโเบฅเบฒโเบเบตเปโเบฎเบนเบโเปเบเบ โRUST_BUILD_ASSERT_{WARN, ALLOW}โ เบเบทเบโเบเบฑเปเบโเปเบงเปโเบชเปเบฒโเบฅเบฑเบโเปเบกโเบเบนเบโ.
- เปเบเบตเปเบกเปเบเบฅเปเปเบเบเบเปเบฒเบเบซเบฒเบเบเปเบงเบเบเบฒเบเบเบฑเปเบเบเปเบฒ โkernel/configs/rust.configโ.
- เปเบเบฅเป โ*.iโ เบเบตเปเบเบฐเบกเบงเบเบเบปเบเปเบเบเบฒเบเบเบปเบเปเบเบเบกเบฐเบซเบฒเบเบฒเบเปเบเปเบเบทเบเบเปเบฝเบเบเบทเปเปเบเบฑเบ โ*.rsiโ.
- เบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเบเปเปเบชเปเบฒเบเบญเบปเบเบเบฐเบเบญเบ Rust เบเบตเปเบกเบตเบฅเบฐเบเบฑเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฒเบเบเบตเปเปเบเปเบชเปเบฒเบฅเบฑเบเบฅเบฐเบซเบฑเบ C เปเบเปเบเบทเบเบขเบธเบเปเบเบปเบฒ.
- เปเบเบตเปเบกเปเบกเบเบนเบ fs, เปเบเบดเปเบเบชเบฐเบซเบเบญเบเบเบฒเบเบเบนเบเบกเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบฅเบฐเบเบปเบเปเบเบฅเป. เบเบปเบงเบขเปเบฒเบเบเบญเบเบฅเบฐเบเบปเบเปเบเบฅเปเบเบตเปเบเปเบฒเบเบเบฒเบเบเบตเปเบเบฝเบเปเบ Rust เปเบกเปเบเบชเบฐเบซเบเบญเบเปเบซเป.
- เปเบเบตเปเบกเปเบกเบเบนเบ workqueue เบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเปเบเบงเบฅเบฐเบเบปเบ (เบชเบฐเบซเบเบญเบเบเบฒเบเบเบนเบเบกเบฑเบเปเบเปเบฅเบเบฐ work_struct เปเบฅเบฐ workqueue_struct kernel เปเบเบเบชเปเบฒเบ).
- เบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบญเบเปเบกเบเบนเบ kasync เบชเบทเบเบเปเปเบเปเบงเบเบเบฒเบเบเบฑเบเบเบฑเปเบเบเบฐเบเบดเบเบฑเบเบงเบดเบเบตเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบก asynchronous (async). เปเบเบตเปเบกเบเบปเบงเบขเปเบฒเบเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ TCP เบฅเบฐเบเบฑเบเบซเบผเบฑเบเบเบตเปเบเบฝเบเปเบ Rust.
- เปเบเบตเปเบกเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบเบเบฑเบเบเบงเบฒเบเปเบเบเบฒเบชเบฒ Rust เปเบเบเปเบเปเบเบฐเปเบเบ [Threaded]Handler เปเบฅเบฐ [Threaded]Registration`.
- เปเบเบตเปเบกเบเบฐเบเบงเบเบเบฒเบ macro "#[vtable]" เปเบเบทเปเบญเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบเปเบฒเบเบเปเปเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบฒเบเบฐเบฅเบฒเบเบเบญเบเบเบปเบงเบเบตเปเบเบฑเบเบเบฑเบ, เปเบเบฑเปเบเปเบเบเบชเปเบฒเบ file_operations.
- เปเบเบตเปเบกเบเบฒเบเบเบฑเบเบเบฑเปเบเบเบฐเบเบดเบเบฑเบเบฅเบฒเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบเบเบชเบญเบเบเบดเบเบเบฒเบ "unsafe_list::List".
- เปเบเบตเปเบกเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเปเบเบทเปเบญเบเบเบปเปเบเบชเปเบฒเบฅเบฑเบ RCU (Read-copy-update) เปเบฅเบฐเบเบฐเปเบเบ Guard เปเบเบทเปเบญเบเบงเบเปเบเบดเปเบเบงเปเบฒเบเบฒเบเบญเปเบฒเบ lock เบเบทเบเบเบนเบเบกเบฑเบเบเบฑเบเบเบฐเบเบนเปเปเบเบเบฐเบเบธเบเบฑเบ.
- เปเบเบตเปเบกเปเปเบฒเบงเบฝเบ::spawn() เบเบฑเบเบเบฑเบเปเบเบทเปเบญเบชเปเบฒเบ เปเบฅเบฐเปเบฅเบตเปเบกเบเบฐเบเบนเป kernel เปเบเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ. เบเบญเบเบเบฒเบเบเบตเปเบเบฑเบเปเบเปเปเบเบตเปเบกเบงเบดเบเบตเบเบฒเบ Task::wake_up() .
- เปเบเบตเปเบกเปเบกเบเบนเบเบเบฒเบเบเบฑเบเบเปเบฒเบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเปเบเปเบเบฒเบเบเบฑเบเบเปเบฒ (wrapper over msleep()).
เบเบฒเบเบเปเบฝเบเปเบเบเบเบตเปเบชเบฐเปเบซเบเบตเปเบฎเบฑเบเปเบซเปเบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเปเบเป Rust เปเบเบฑเบเบเบฒเบชเบฒเบเบตเบชเบญเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเปเบเปเบงเบตเปเบฅเบฐเปเบกเบเบนเบ kernel. เบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ Rust เปเบเปเบเบทเบเบเปเบฒเบชเบฐเปเบซเบเบตเปเบเบฑเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบเปเปเปเบเปเปเบเบตเบเปเบเปเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบฅเบฐเบเปเปเปเบเปเบชเบปเปเบเบเบปเบเปเบซเป Rust เบเบทเบเบฅเบงเบกเปเบเบปเปเบฒเปเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบตเปเบเปเบญเบเบเบฒเบเบชเปเบฒเบฅเบฑเบ kernel. เบเบฒเบเบเปเบฒเปเบเป Rust เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบฐเบเบฒเบเบปเบเบเบฑเบเบเบฐเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเปเบฒเบเปเบเปเบงเบตเบเบตเปเบเบญเบเปเบเปเบฅเบฐเบเบตเบเบงเปเบฒเบเปเบงเบเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเบซเบเปเบญเบเบเบตเปเบชเบธเบ, เปเบเบเบเปเปเบกเบตเบเบฑเบเบซเบฒเปเบเบฑเปเบ: เบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเบซเบผเบฑเบเบเบฒเบเบเบฒเบเบเบปเบเบเปเบญเบ, เบเบฒเบเบเบฐเบเบดเปเบชเบเบเบปเบงเบเบตเป null, เปเบฅเบฐ buffer overruns.
Rust เบเบฑเบเบเบฑเบเปเบเปเบเบงเบฒเบกเบเบญเบเปเบเบเบญเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบเปเบงเบฅเบฒเบฅเบงเบเบฅเบงเบกเปเบเบเบเปเบฒเบเบเบฒเบเบเบงเบเบชเบญเบเบเบฒเบเบญเปเบฒเบเบญเบดเบ, เบเบฒเบเปเบเบฑเบเปเบเบปเปเบฒเบเบญเบเบงเบฑเบเบเบธเปเบฅเบฐเบเบฒเบเบเบดเบเบเบฒเบกเบเบฐเบซเบผเบญเบเบเบตเบงเบดเบเบเบญเบเบงเบฑเบเบเบธ (เบเบญเบเปเบเบ), เปเบฅเบฐเปเบเบเบเบฒเบเบเบฐเปเบกเบตเบเบเบงเบฒเบกเบเบทเบเบเปเบญเบเบเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบซเบเปเบงเบเบเบงเบฒเบกเบเปเบฒเปเบเปเบงเบฅเบฒเปเบฅเปเบ. Rust เบเบฑเบเบชเบฐเบซเบเบญเบเบเบฒเบเบเปเบญเบเบเบฑเบเบเบฒเบ overflows integer, เบฎเบฝเบเบฎเปเบญเบเปเบซเปเบเปเบฒเบเบปเบงเปเบเปเบเปเบเบทเบเปเบฅเบตเปเบกเบเบปเปเบเบเปเบญเบเบเบตเปเบเบฐเบเปเบฒเปเบเป, เบกเบตเบเบฒเบเบเบฑเบเบเบฒเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบตเปเบเบตเบเบงเปเบฒเปเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบกเบฒเบเบเบฐเบเบฒเบ, เปเบเปเปเบเบงเบเบงเบฒเบกเบเบดเบเบเบญเบเบเบฒเบเบญเปเบฒเบเบญเบตเบเบเบตเปเบเปเปเบเปเบฝเบเปเบเบเปเบฅเบฐเบเบปเบงเปเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ, เปเบฅเบฐเบชเบฐเบซเบเบญเบเบเบฒเบเบเบดเบกเบเบปเบเบเบตเปเบเบตเปเปเบเบฑเปเบกเปเบเบเปเบเบทเปเบญเบซเบผเบธเบเบเปเบญเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบขเปเบฒเบเบกเบตเปเบซเบเบเบปเบ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru