LINUXTALKS.CO

1
Всего сообщений: 28

Кризис в продвижении Rust в ядро из-за опасений усложнения сопровождения

Группа Ядро Linux

Кристоф Хелвиг (Christoph Hellwig), мэйнтейнер подсистем DMA, KVM, Slab Allocator и архитектуры PowerPC в ядре Linux, в своё время входивший в управляющий технический комитет организации Linux Foundation и выступавший истцом в связанном с GPL судебном разбирательстве с VMware, отказался подтверждать патчи, связанные с поддержкой разработки драйверов на языке Rust. Предложенные патчи добавляли обвязки над несколькими функциями подсистемы DMA, позволяющие использовать DMA в драйверах на языке Rust.

( читать дальше... )

>>> Подробности

 , ,

MrSugoma ()

На базе Clang для языка Си реализован режим проверки границ буферов

Группа Безопасность

Инженеры из компании Apple объявили о готовности для тестирования режима "-fbounds-safety" для компилятора Clang, предоставляющего гарантии безопасной работы с буферами в коде на языке Си. Режим включён в состав форка LLVM, поддерживаемого компанией Apple для проекта Swift. В дальнейшем запланирована постепенная передача функциональности "-fbounds-safety" в основную кодовую базу LLVM/Clang.

( читать дальше... )

>>> Подробности

 , ,

MrSugoma ()

Выпуск Rust 1.84. Ядра Tock и Vekos, написанные на Rust. Диалект Mini-C

Группа Open Source

Опубликован релиз языка программирования общего назначения Rust 1.84, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

Методы работы с памятью в Rust избавляют разработчика от ошибок при манипулировании указателями и защищают от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.

Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.

Основные новшества:

  • В пакетном менеджере Cargo стабилизирован механизм обработки зависимостей, выбирающий версии зависимых компонентов с учётом совместимости с версиями компилятора Rust, заявленными как минимально поддерживаемые проектом (MSRV, Minimum Supported Rust Version). Новая возможность позволяет избавить сопровождающих от необходимости ручного выбора старых версий каждой зависимости в проектах, сохраняющих совместимость со старыми версиями инструментария Rust. Новый режим определения зависимостей будет активирован по умолчанию в выпуске Rust 1.85, а пока доступен в формате опции, для включения которой в секции "[resolver]" в файле ".cargo/config.toml" следует указать 'incompatible-rust-versions = "fallback"'.
  • Начат перевод компилятора на новый обработчик типов (trait solver), предназначенный для проверки границ применимости типажей, нормализации типов и оценки совместимости типов.В версии 1.84 новый обработчик задействован для проверки согласованности реализаций типажей, т.е. оценки существования не более одного типажа для рассматриваемого типа с учётом кода из других crate-пакетов. Указанная проверка позволила избавиться от проблем в старой реализации обработчика типов, потенциально способных привести к появлению конфликтов из-за пересечения разных реализаций типажей.
  • Предложен новый API "Strict Provenance", который можно использовать для приведения указателя к целому числу и обратно с учётом прикреплённых к указателю метаданных с информацией о его происхождении и области использования (помимо адреса к указателю прикрепляется значение "provenance" с информацией о связи с другими указателями, позволяющей определить где и когда указатель может обращаться к памяти). При приведении указателя к целому числу и обратно возникает неопределённое поведение из-за проблематичности отследить происхождение результирующего указателя. Новый API позволяет выполнять низкоуровневые операции с указателями, такие как сохранение дополнительной информации в младших битах указателя, без приведения указателя к целому числу.
  • В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:
  • Ipv6Addr::is_unique_local
  • Ipv6Addr::is_unicast_link_local
  • core::ptr::with_exposed_provenance
  • core::ptr::with_exposed_provenance_mut
  • <ptr>::addr
  • <ptr>::expose_provenance
  • <ptr>::with_addr
  • <ptr>::map_addr
  • <int>::isqrt
  • <int>::checked_isqrt
  • <uint>::isqrt
  • NonZero::isqrt
  • core::ptr::without_provenance
  • core::ptr::without_provenance_mut
  • core::ptr::dangling
  • core::ptr::dangling_mut
  • Pin::as_deref_mut
  • Признак "const" применён в функциях:
  • AtomicBool::from_ptr
  • AtomicPtr::from_ptr
  • AtomicU8::from_ptr
  • AtomicU16::from_ptr
  • AtomicU32::from_ptr
  • AtomicU64::from_ptr
  • AtomicUsize::from_ptr
  • AtomicI8::from_ptr
  • AtomicI16::from_ptr
  • AtomicI32::from_ptr
  • AtomicI64::from_ptr
  • AtomicIsize::from_ptr
  • <ptr>::is_null
  • <ptr>::as_ref
  • <ptr>::as_mut
  • Pin::new
  • Pin::new_unchecked
  • Pin::get_ref
  • Pin::into_ref
  • Pin::get_mut
  • Pin::get_unchecked_mut
  • Pin::static_ref
  • Pin::static_mut
  • Стабилизирована поддержка ассемблерных inline-вставок для архитектур s390x и Arm64EC.
  • Для целевой платформы WebAssembly стабилизирована поддержка функциональности multivalue, reference-types и tail-call.
  • Реализован второй уровень поддержки платформы wasm32v1-none. Второй уровень поддержки подразумевает гарантию сборки.

Дополнительно можно отметить несколько проектов, связанных с Rust:

  • Опубликован релиз операционной системы Tock 2.2, написанной на языке Rust и ориентированного на использование в микроконтроллерах. Система позволяет организовать одновременное выполнение нескольких не заслуживающих доверия приложений на встраиваемых устройствах, имеющих ограниченный размер ОЗУ, таких как датчики, TPM (Trusted Platform Module), брелоки аутентификации и носимые устройства. Поддерживаются платформы с микроконтроллерами на базе архитектур ARM Cortex-M и RISC-V. Ключевой особенностью Tock является изоляция уровней приложений, ядра и слоя с драйверами, а также изоляция каждого приложения и драйвера по отдельности. Для изоляции используются как возможности языка Rust, так и разделение на уровне защиты памяти.

  • Проект VEKOS (Verified Experimental Kernel OS) развивает ядро операционной системы на языке Rust, обеспечивающее верификацию выполняемых компонентов. При каждой операции с файловой системой, создании процесса и выделении памяти формируется криптографическое подтверждение, позволяющее верифицировать операцию во время выполнения (реализация сравнивается с применением блокчейна для верификации действий в операционной системе). В файловой системе VKFS для обеспечения целостности и защиты от искажения задним числом задействована структура "дерево Меркла" (Merkle Tree), каждая ветка в котором верифицирует все нижележащие ветки и узлы, благодаря древовидному хешированию. Выделение памяти производится в режиме COW (Copy-On-Write).

  • Группа исследователей из Microsoft и Inria развивает подмножество языка Си - Mini-C, предназначенное для автоматической трансляции программ на языке Си в представление на языке Rust. В отличие от компилятора c2rust, новый проект позволяет генерировать Rust-код без использования unsafe, но нацелен главным образом на преобразование Си-проектов, имеющих формальное доказательство надёжности. Подразумевается, что будет проще вначале перевести Си-проект в представление на Mini-C, в котором не допускаются арифметические операции с указателями, чем переписывание unsafe-блоков после прямой компиляции из Си в Rust.
    Реализация компилятора базируется на инструментарии KaRaMeL. Mini-C разработан и опробован в рамках проекта по переписыванию на Rust криптографической библиотеки HACL*, для которой предоставлено формальное доказательство надёжности. Подобное доказательство было использовано для демонстрации возможности генерировать из Mini-C безопасный код на Rust.

  • Дэниел Cтенберг (Daniel Stenberg), автор утилиты curl, объявил о прекращении разработки и поддержки проектом Curl альтернативного HTTP-бэкенда, написанного на Rust с использованием библиотеки Hyper. В качестве причины указано отсутствие интереса со стороны разработчиков и пользователей.

  • Анонсирован бета-выпуск командной оболочки Fish 4.0, переписанный на языке Rust. Отмечается, что после двух лет разработки кодовая база Fish была полностью переведена с С++ на Rust.Переход на Rust позволил решить проблемы с многопоточностью, получить современный инструментарий, выявляющий ошибки на этапе компиляции, повысить безопасность работы с памятью и сделать проект более привлекательным для новых разработчиков.

  • Проект Tor опубликовал выпуск Arti 1.3.2, альтернативной реализации Tor-клиента на языке Rust.Arti предоставляет встраиваемую библиотеку, которую могут использовать различные приложения. При создании Arti учтён прошлый опыт разработки Tor для того, чтобы избежать известных архитектурных проблем, сделать проект более модульным и эффективным. Ветка 1.x отмечена как пригодная для использования обычными пользователями и обеспечивающая тот же уровень конфиденциальности, юзабилити и стабильности, что и основная реализация на языке Си. В новой версии продолжена разработка RPC, поведена подготовка в реализации поддержки релеев и добавлена защита от DoS-атак на Onion-сервисы.

  • Опубликован выпуск игрового движка Bevy 0.15, написанного на Rust. В движке применяется датацентричная модель (Data Driven) определения игровой логики, построенная поверх набора готовых компонентов Bevy ECS (Entity Component System), которые могут выполняться параллельно. Поддерживается 2D и 3D рендеринг, скелетная анимация, определение графа рендеринга, система формирования сцен, фреймворк для построения интерфейса пользователя, внесение изменений в сцены и ресурсы без необходимости перезапуска.

  • Опубликован консольный текстовый редактор Helix 25.01, написанный на Rust и расширяющий идеи, заложенные в vim и neovim. Поддерживается интеграция с LSP-серверами и с Tree-sitter, одновременное выделение нескольких блоков, использование нескольких курсоров при редактировании, темы оформления, отладочный протокол DAP (Debug Adapter Protocol).

  • В браузерный движок Servo, написанный на Rust, добавлена поддержка тёмного режима оформления. На 20% сокращён размер браузера ServoShell. Поддержка web-спецификаций доведена до возможность входа и чтения сообщений в Discord (отправка сообщений пока невозможна).

  • Компания Mozilla представила инструментарий Uniffi for React Native для создания модулей к React Native на языке Rust.

  • Проведено тестирование производительности кодировщиков изображений в формате PNG. Декодировщики на Rust (png, zune-png, wuffs) оказались быстрее декодировщиков на Си (libpng, spng, stb_image). Например, crate-пакет png (image-rs) обогнал libpng в 1.8 раза на системе x86 и в 1.5 раза на системе ARM.

image-rs:375.401 MP/s (average) 318.632 MP/s (geomean)
zune-png:376.649 MP/s (average) 302.529 MP/s (geomean)
wuffs:376.205 MP/s (average) 287.181 MP/s (geomean)
libpng:208.906 MP/s (average) 173.034 MP/s (geomean)
spng:299.515 MP/s (average) 235.495 MP/s (geomean)
stb_image:234.353 MP/s (average) 171.505 MP/s (geomean)

>>> Подробности

 , ,

MrSugoma ()

Google выделил миллион долларов на улучшение переносимости между С++ и Rust

Группа Корпорации

Компания Google предоставила организации Rust Foundation целевой грант, размером 1 млн долларов, который позволит профинансировать работу по улучшению взаимодействия кода на языке Rust с кодовыми базами, написанными на языке C++. Грант рассматривается как инвестиция, которая в будущем позволит расширить применение Rust в различных компонентах платформы Android.

( читать дальше... )

>>> Подробности

 

crypt ()

Линус Торвальдс сказал что не будет больше показывать пальцем...

Группа Персоналии

На саммите Open Source в Японии Линус Торвальдс в беседе с главой Verizon по Open Source Дирком Хонделом, сказал что не будет «показывать пальцем на какую-то компанию. Я усвоил урок».

Ещё:

Торвальдс ответил: «Найти разработчиков гораздо проще; у нас много разработчиков. Некоторые люди думают, что нужно быть суперразработчиком, который может делать все, чтобы быть сопровождающим, но на самом деле это не так». «Чтобы быть сопровождающим, нужно обладать определённым хорошим вкусом, чтобы судить о коде других людей. Некоторые из этих качеств могут быть врождёнными, но многое просто требует практики», — ответил Торвальдс. По его мнению, сопровождающие должны уметь смотреть на код других людей и возможностью ответить на вопрос: «Это хороший или плохой подход». Торвальдс пояснил, что «обычно это просто вопрос того, что мы делали это в течение многих лет».

Тем не менее, Торвальдс добавил: «У нас действительно много отличных сопровождающих, но с другой стороны, вам нужно быть там все время или вам нужно найти других сопровождающих, с которыми вы можете работать, чтобы составить график своих отпусков и тому подобные вещи».

Что касается Торвальдса: «Быть там все время не проблема, потому что мне нравится делать то, что я делаю». «Несколько месяцев назад я был в отпуске, и у меня есть ноутбук. И если бы у меня не было с собой ноутбука, мне бы было так скучно. Это то, чем я занимаюсь. Но я понял, что такая жизнь не для всех, особенно когда на это приходится тратить годы своей жизни», — рассказал Торвальдс.

Подводя итог, Торвальдс сказал: «Это одна из тех вещей, когда многие люди думают, что открытый исходный код — это все о программировании, но во многом это также и общение. Я необязательно имею в виду язык. Я имею в виду контекст, причину создания кода. Это сложная работа. Но если вы хотите быть сопровождающим, поверьте мне, наверху есть место».

Хондел прокомментировал, что старение сообщества ядра — это «палка о двух концах». Торвальдс согласился с этим, но отметил, что сообщество Linux меняется. «Одна из вещей, которые мне понравились в части ядра Rust, заключалась в том, что там был один сопровождающий, который явно был намного моложе большинства сопровождающих. Мы ясно видим, что определённые области ядра привносят среди большего количества молодых людей. Например, что касается драйверов, вам будет гораздо легче найти молодых людей, и именно так мы традиционно вырастили множество сопровождающих, включая Грега Кроа-Хартмана, мейнтейнера стабильной ветки ядра Linux», — уточнил Торвальдс.

>>> Источник

 , , ,

rezedent12 ()

Открытие кода Rust-компилятора Ferrocene

Группа Open Source

Компания Ferrous Systems объявила о начале преобразования Ferrocene, проприетарного дистрибутива с Rust-компилятором для критически важных систем, в открытый проект. Код Ferrocene опубликован под лицензиями Apache 2.0 и MIT. Ferrocene предоставляет инструментарий для разработки на языке Rust приложений для защиты информации и критически важных систем, требующих повышенной надёжности (Safety-Critical Systems), сбой в которых может угрожать жизни людей, нанести вред окружающей среде или привести к серьёзным повреждениям оборудования.

( читать дальше... )

>>> Подробности

 

crypt ()

JetBrains представил IDE RustRover и прекратил разработку открытого плагина intellij-rust

Группа Open Source

Компания JetBrains представила новую интегрированную среду разработку RustRover, ориентированную на написание приложений на языке Rust. Среда RustRover нацелена на повышение эффективности разработки на языке Rust, удовлетворение потребностей связанной с Rust экосистемы и первичную поддержку данного языка. Проект будет развиваться как коммерческий продукт, но похожее окружение можно сформировать на основе бесплатной community-версии среды IntelliJ IDEA с плагином intellij-rust. В настоящее время для тестирования без ограничений доступен пререлиз RustRover, сборки которого подготовлены для Linux, macOS и Windows. Первый стабильный релиз RustRover планируют опубликовать до сентября 2024 года.

( читать дальше... )

>>> Подробности

 

crypt ()

Выпуск набора утилит GNU Coreutils 9.4 и его варианта на языке Rust

Группа Open Source

Опубликована стабильная версия набора базовых системных утилит GNU Coreutils 9.4, в состав которого входят такие программы, как sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln, ls и т.д.

( читать дальше... )

>>> Подробности

 

crypt ()

Вирус на Rust, атакующее серверы Redis

Группа Анонимность и P2P

Исследователи из группы Unit 42 обнаружили новый червь P2PInfect, создающий свою P2P-сеть для распространения вредоносного ПО без применения централизованных управляющих серверов. После компрометации хост подключается к созданной P2P-сети, загружает образ с реализацией P2PInfect для необходимой операционной системы (поддерживается Linux и Windows) и переходит в режим сканирования других уязвимых хостов для совершения на них атаки и включения их в цепочку распространения червя. При сканировании выявляются уязвимые серверы Redis и проверяется наличие доступа по SSH. Код червя написан на языке Rust.

( читать дальше... )

>>> Подробности

 

crypt ()

Выпуск языка программирования Rust 1.71

Группа Open Source

Опубликован релиз языка программирования общего назначения Rust 1.71, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

( читать дальше... )

>>> Подробности

 

crypt ()

Выпуск языка программирования Rust 1.70

Группа Open Source

Опубликован релиз языка программирования общего назначения Rust 1.70, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

( читать дальше... )

>>> Подробности

 

crypt ()

Проект по реализации утилит sudo и su на языке Rust

Группа Open Source

Организация ISRG (Internet Security Research Group), которая является учредителем проекта Let's Encrypt и способствует продвижению HTTPS и развитию технологий для повышения защищённости интернета, представила проект Sudo-rs по созданию написанных на языке Rust реализаций утилит sudo и su, позволяющих выполнять команды от имени других пользователей. Под лицензиями Apache 2.0 и MIT уже опубликована предварительная версия Sudo-rs, пока не готовая к повсеместному использованию. Проект, работа над которым началась в декабре 2022 года, планируют завершить в сентябре 2023 года.

( читать дальше... )

>>> Подробности

 

crypt ()

Компания Microsoft добавит код на Rust в ядро Windows 11

Группа Корпорации

Дэвид Вестон, вице-президент Microsoft, отвечающий за безопасность операционной системы Windows, в своём докладе на конференции BlueHat IL 2023 поделился информацией о развитии механизмов защиты Windows. Среди прочего упомянут прогресс в задействовании языка Rust для повышения безопасности ядра Windows. Более того, заявлено, что написанный на Rust код будет добавлен ядро Windows 11 возможно уже через несколько месяцев или даже недель.

( читать дальше... )

>>> Подробности

 

crypt ()

Инициатива по переработке инструментария для гипервизора Xen на языке Rust

Группа Open Source

Разработчики платформы XCP-ng, развиваемой под крылом проекта Xen, опубликовали план по созданию на языке Rust замены различных компонентов программного стека Xen. Непосредственно гипервизор Xen пока перерабатывать не собираются, работа сосредоточена в основном на переделке отдельных компонентов инструментария.

( читать дальше... )

>>> Подробности

 

crypt ()

Командную оболочку Fish планируют переписать на языке Rust

Группа Open Source

Петер Аммон (Peter Ammon), лидер команды разработчиков интерактивной командной оболочки Fish, опубликовал план перевода разработки проекта на язык Rust. Оболочку планируют не переписать с нуля, а постепенно, модуль за модулем, переводить с C++ на язык Rust. По мнению разработчиков Fish применение Rust позволит решить проблемы с многопоточностью, получить более современный и качественно выявляющий ошибки инструментарий, повысить безопасность работы с памятью и избавиться от ошибок, таких как обращение к памяти после её освобождения, при обработке строк, для которых в Fish используется тип wchar_t.

( читать дальше... )

>>> Подробности

 

crypt ()

Создатель C++ раскритиковал навязывание безопасных языков программирования

Группа Персоналии

Бьёрн Страуструп (Bjarne Stroustrup), создатель языка C++, опубликовал возражения против выводов, сделанных в отчёте АНБ, в котором организациям было рекомендовано отойти от использования языков программирования, таких как Си и Си++, перекладывающих управление памятью на разработчика, в пользу языков, таких как C#, Go, Java, Ruby, Rust и Swift, обеспечивающих автоматическое управление памятью или выполняющих проверки безопасной работы с памятью во время компиляции.

По мнению Страуструпа упомянутые в отчёте АНБ безопасные языки на деле не превосходят C++ в важных с его точки зрения применениях. В частности, развиваемые последние годы базовые рекомендации по использованию C++ (C++ Core Guidelines) охватывают методы безопасного программирование и предписывают применение средств, гарантирующих безопасную работу с типами и ресурсами. При этом разработчикам, которым не требуются подобные строгие гарантии безопасности, оставляется возможность продолжения использования старых методов разработки.

Страуструп считает, что хороший статический анализатор, соответствующий рекомендациям C++ Core Guidelines, может обеспечить необходимые гарантии безопасности C++ кода, требуя значительно меньше затрат, чем переход на новые безопасные языки программирования. Например, большинство рекомендаций Core Guidelines уже реализованы в статическом анализаторе и профиле безопасной работы с памятью из состава Microsoft Visual Studio. Часть рекомендаций также учтена в статическом анализаторе Clang tidy.

Объектом критики также стало акцентирование отчёта АНБ только на проблемах работы с памятью, оставляя без внимания многие другие проблемы языков программирования, влияющие на безопасность и надёжность. Страуструп рассматривает безопасность как более широкое понятие, различные грани которого могут быть достигнуты комбинацией стиля написания кода, библиотек и статических анализаторов. Для управления включением правил, обеспечивающих безопасность работы с типами и ресурсами, предлагается использовать аннотации в коде и опции компиляторов.

В приложениях, в которых производительность важнее безопасности, подобный подход даёт возможность выборочного применения средств, гарантирующих безопасность только там, где это необходимо. Инструменты повышения безопасности также можно применять частично, например, вначале ограничиться правилами проверки диапазонов и инициализации, а затем постепенно адаптировать код для более строгих требований.

( читать дальше... )

>>> Подробности

 

crypt ()

Возобновлена активная разработка браузерного движка Servo

Группа Open Source

Разработчики браузерного движка Servo, написанного на языке Rust, объявили о получении финансирования, которое поможет возродить проект. В качестве первых задач упоминается возвращение к активной разработке движка, восстановление сообщества и привлечение новых участников. В течение 2023 года планируется заняться улучшением системы компоновки страниц (layout system) и добиться рабочей поддержки CSS2.

Стагнация проекта продолжалась с 2020 года, после того как компания Mozilla уволила команду, развивавшую Servo, и передала проект организации Linux Foundation, в которой для разработки планировалось сформировать сообщество из заинтересованных разработчиков и компаний. До преобразования в независимый проект движок развивался работниками Mozilla в сотрудничестве с компанией Samsung.

Движок написан на языке Rust и отличается поддержкой многопоточного рендеринга web-страниц, а также распараллеливанием операций с DOM (Document Object Model). Кроме эффективного распараллеливания операций, используемые в Rust технологии безопасного программирования позволяют поднять уровень безопасности кодовой базы. Изначально браузерный движок Firefox не мог в полной мере задействовать потенциал современных многоядерных систем из-за использования однопоточных схем обработки контента. Servo позволяет разбить код DOM и рендеринга на более мелкие подзадачи, которые могут выполняться параллельно и более эффективно использовать ресурсы многоядерных CPU. В Firefox уже интегрированы некоторые части Servo, такие как многопоточный CSS-движок и система отрисовки WebRender.

( читать дальше... )

>>> Подробности

 

crypt ()

В кодовой базе Chromium разрешено использование языка Rust

Группа Chromium совместимые

Компания Google объявила о включении языка программирования Rust в число языков, допустимых в коде проекта Chromium. Существующий код пока не планируют переписывать на Rust, но отныне будет разрешена интеграция в кодовую базу сторонних библиотек, написанных на Rust. В сборочную систему уже добавлен инструментарий для компиляции кода на языке Rust, проведения тестов и интеграции компонентов на Rust с кодом на C++. Появление кода на Rust в составе выпусков Chrome ожидается в следующем году.

( читать дальше... )

>>> Подробности

 ,

crypt ()

Релиз ядра Linux 6.1

Группа Ядро Linux

( читать дальше... )

  • Добавлена возможность использования языка Rust в качестве второго языка для разработки драйверов и модулей ядра. Основным мотивом поддержки Rust является упрощение написания безопасных и качественных драйверов устройств за счёт снижения вероятности совершения ошибок при работе с памятью. Поддержка Rust неактивна по умолчанию и не приводит к включению Rust в число обязательных сборочных зависимостей к ядру. В ядро пока принят минимальный урезанный вариант патчей, который сокращён с 40 до 13 тысяч строк кода и обеспечивает только необходимый минимум, достаточный для сборки простого модуля ядра, написанного на языке Rust. В дальнейшем планируется постепенно наращивать имеющуюся функциональность, перенося и другие изменения из ветки Rust-for-Linux. Параллельно развиваются проекты по использованию предложенной инфраструктуры для разработки на языке Rust драйверов накопителей NVMe, сетевого протокола 9p и GPU Apple M1.

( читать дальше... )

>>> Подробности

 ,

crypt ()

Около 21% нового компилируемого кода в Android 13 написано на языке Rust

Группа Корпорации

Инженеры из компании Google подвели первые итоги внедрения в платформу Android поддержки разработки на языке Rust. В Android 13 примерно 21% от добавленного нового компилируемого кода написано на Rust, а 79% на C/C++. В репозитории AOSP (Android Open Source Project), в котором развиваются исходные тексты платформы Android, насчитывается примерно 1.5 млн строк кода на Rust, связанного с такими новыми компонентам, как хранилище криптографических ключей Keystore2, стек для UWB-чипов (Ultra-Wideband), реализация протокола DNS-over-HTTP3, фреймворк виртуализации AVF (Android Virtualization Framework), экспериментальные стеки для Bluetooth и Wi-Fi.

( читать дальше... )

>>> Подробности

 

crypt ()