From: Sergey Matveev Date: Wed, 14 Jan 2026 11:35:14 +0000 (+0300) Subject: Rust в Linux: разница идеологий X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=e6e92d2c9be2788072caa9bf30ae79bdb7664882;p=stargrave-blog.git Rust в Linux: разница идеологий https://felipec.wordpress.com/2025/02/13/rust-not-for-linux/ https://rust-unofficial.github.io/too-many-lists/ Автор статьи рассуждает о Rust в Linux: что это, в первую очередь, спор идеологий. Автор трогал Rust и заявляется что в нём нельзя сделать связанные списки. А в Linux их 10k+. Если Rust нацеливается заменить Си, то он должен мочь выполнять те же самые задачи. Rust люди постоянно любят говорить другим что им надо делать, как что-либо надо делать. И они говорят о том, что просто не надо использовать связанные списки. Вот так вот просто. Ещё приводит пример простой структуры на Си и Rust: C: struct person { char name[50]; int age; struct person *boss; }; struct person john = { .name = "John Doe", .age = 25 }; Rust: struct Person<'a> { name: &'a str, age: u32, boss: Option<&'a Person<'a>>, } let john = Person { name: "John Doe", age: 25, boss: None }; причём в Си это же самое определение структуры может использоваться и для переменных как в стэке, так и куче. В Rust же нужно другую структуру написать для использования в куче. Си-шники обычно предлагают какое-то рабочее решение, которое после оценок, если годится и хорошее, начинает внедряться в Linux. Типа снизу вверх внедрение идёт. Rust хотят услышать слово подтверждения от Линуса, и только после этого начинать вносить правки в ядро. Типа сверху вниз внедрение. Последователи Rust ведут себя точно также как и всякие борцы за "they" вместо "she", "main" вместо "master" (думаю, что можно и не сомневаться в том, что эти множества борцов сильно пересекаются между собой) -- агрессивно и активно продавливают (включая угрозы, шантаж) эти изменения в конечный софт/инструменты, вместо того, чтобы люди плавно самостоятельно понимали, принимали и использовали что-то более корректно. Касательно связанных списков в Rust: прочитал статью на которую автор ссылается. Начало мне уже "понравилось": чтобы реализовать список, вам понадобится изучить следующее: * The following pointer types: &, &mut, Box, Rc, Arc, *const, *mut, NonNull(?) * Ownership, borrowing, inherited mutability, interior mutability, Copy * All The Keywords: struct, enum, fn, pub, impl, use, ... * Pattern matching, generics, destructors * Testing, installing new toolchains, using miri * Unsafe Rust: raw pointers, aliasing, stacked borrows, UnsafeCell, variance ---