LINUXTALKS.CO

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

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 ()

Rust будет принят в состав ядра Linux 6.1. Создан Rust-драйвер для Ethernet-чипов Intel

Группа Ядро Linux

На мероприятии Kernel Maintainers Summit Линус Торвальдс объявил, что, если не всплывут непредвиденные проблемы, патчи для поддержки разработки драйверов на языке Rust будут включены в состав ядра Linux 6.1, релиз которого ожидается в декабре.

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

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

 

crypt ()

Восьмая версия патчей для ядра Linux с поддержкой языка Rust

Группа Ядро Linux

Мигель Охеда (Miguel Ojeda), автор проекта Rust-for-Linux, предложил для рассмотрения разработчиками ядра Linux выпуск v8 компонентов для разработки драйверов устройств на языке Rust. Это девятая редакция патчей с учётом первого варианта, опубликованного без номера версии. Поддержка Rust рассматривается как экспериментальная, но уже включена в ветку linux-next, претендует на интеграцию в осенний выпуск 5.20/6.0 и достаточно развита для начала работы по созданию слоёв абстракции над подсистемами ядра, а также для написания драйверов и модулей. Разработка финансируется компанией Google и организацией ISRG (Internet Security Research Group), которая является учредителем проекта Let's Encrypt и способствует продвижению HTTPS и развитию технологий для повышения защищённости интернета.

В новой версии:

  • Инструментарий и вариант библиотеки alloc, избавленный от возможных генераций состояния "panic" при возникновении ошибок, обновлены до выпуска Rust 1.62. По сравнению с ранее используемой версией в инструментарии Rust стабилизирована поддержка функциональности const_fn_trait_bound, используемой в патчах к ядру.
  • Код привязок выделен в отдельный crate-пакет "bindings", что упрощает пересборку в случае внесения изменений только в основной пакет "kernel".
  • Реализация макроса "concat_idents!" переписана в форме процедурного макроса, не привязанного к функциональности concat_idents и допускающего применение ссылок на локальные переменные.
  • Переписан макрос "static_assert!", что позволило использовать "core::assert!()" в любом контексте вместо констант.
  • Макрос "build_error!" адаптирован для работы при выставлении для модулей режима "RUST_BUILD_ASSERT_{WARN,ALLOW}".
  • Добавлен отдельный файл с настройками "kernel/configs/rust.config".
  • Обрабатываемые в макроподстановках файлы "*.i" переименованы в "*.rsi".
  • Прекращена поддержка сборки Rust-компонентов с уровнями оптимизации, отличными от применяемых для кода на языке Си.
  • Добавлен модуль fs, предоставляющий обвязки для работы с файловыми системами. Предложен пример простой файловой системы, написанной на языке Rust.
  • Добавлен модуль workqueue для работы с системными очередями (предоставляет обвязки над структурами ядра work_struct и workqueue_struct).
  • Продолжено развитие модуля kasync с реализацией методов асинхронного программирования (async). Добавлен пример работающего на уровне ядра TCP-сервера, написанного на Rust.
  • Добавлена возможность обработки прерываний на языке Rust при помощи типажей [Threaded]Handler и типов [Threaded]Registration`.
  • Добавлен процедурный макрос "#[vtable]", упрощающий работу с таблицами указателей на функции, такими как структура file_operations.
  • Добавлена реализация двунаправленных связных списков "unsafe_list::List".
  • Добавлена начальная поддержка RCU (Read-copy-update) и тип Guard для проверки привязки блокировки на чтение к текущему потоку.
  • Добавлена функция Task::spawn() для создания и автоматического запуска потоков ядра. Также добавлен метод Task::wake_up().
  • Добавлен модуль delay, позволяющий использовать задержки (обёртка над msleep()).

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

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

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

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

 ,

crypt ()

Veloren 0.13 Release

Группа Игры

Команда разработчиков игры Veloren выпустила новую версию 0.13.

Veloren — это многопользовательская воксельная ролевая игра, написанная на языке Rust. Она вдохновлена такими играми, как Cube World, Legend of Zelda: Breath of the Wild, Dwarf Fortress и Minecraft.

Проект Veloren полностью с открытым исходным кодом и лицензией GPL 3. В игре используется оригинальная графика, музыка и другие ресурсы, созданные сообществом. Будучи ориентированным на контрибьюторов, сообщество разработчиков и сообщество пользователей – это одно и то же: разработчики, игроки, художники и музыканты объединяются для создания игры.

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

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

 , , ,

cocucka ()