Email или имя пользователя:

Пароль:

Забыли пароль?
Всего 416 записей
opennet

Доступен офисный пакет ONLYOFFICE 8.2

Опубликован выпуск ONLYOFFICE DocumentServer 8.2 с реализацией сервера для online-редакторов ONLYOFFICE и организации совместной работы. Редакторы можно использовать для работы с текстовыми документами, таблицами и презентациями. Код проекта распространяется под свободной лицензией AGPLv3.

Одновременно сформирован выпуск продукта ONLYOFFICE DesktopEditors 8.2, построенного на единой кодовой базе с online-редакторами. Десктоп-редакторы оформлены в виде приложений для рабочего стола, которые написаны на JavaScript с использованием web-технологий, но объединяют в одном наборе клиентские и серверные компоненты, оформленные для самодостаточного использования на локальной системе пользователя, без обращения к внешнему сервису. Для совместной работы на своих мощностях также можно использовать платформу Nextcloud Hub, в которой обеспечена полная интеграция с ONLYOFFICE. Готовые сборки сформированы для Linux, Windows и macOS.

В ONLYOFFICE заявлена полная совместимость с форматами MS Office и OpenDocument. Среди поддерживаемых форматов: DOC, DOCX, ODT, RTF, TXT, PDF, HTML, EPUB, XPS, DjVu, XLS, XLSX, ODS, CSV, PPT, PPTX, ODP. Предусмотрена возможность расширения функциональности редакторов через плагины, например, доступны плагины для создания шаблонов и добавления видео с YouTube. Готовые сборки сформированы для Windows и Linux (deb- и rpm-пакеты).

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

- Модернизирован интерфейс пользователя. Предоставлена возможность выбора стиля отображений вкладок - помимо использования традиционных заполненных кнопок (Fill tab), для выделения активной вкладки теперь также можно выбрать стиль c подчёркиванием заголовка вкладки линией (Line tab). Также можно использовать цвет панели инструментов в качестве фонового цвета вкладок. https://honk.any-key.press/d/G68Zq3R3nL81h4m7pqWRq.png
- Добавлена возможность работы с документами с управлением через сенсорные экраны. https://honk.any-key.press/d/G68gHV4Bpk3GBZ84l9pD6.png
- Изменено оформление окна с историей версий и переделано меню File, в котором также задействованы новые пиктограммы. https://honk.any-key.press/d/G68P15RNnDz6TJ2ZDq8bG.png
- Добавлена серая тема оформления, которая дополнила собой светлую и тёмную темы. https://honk.any-key.press/d/G685yNH4n4gdjgP9WQ44j.png
- В редакторе файлов в формате PDF реализована возможность совместного редактирования документов. Доступно два режима совместной работы: строгий режим (по умолчанию), при котором выполняется блокировка редактируемых каждым участником абзацев с сохранением изменений только после нажатия кнопки Save, и быстрый режим, при котором редактирование осуществляется в реальном времени. Кроме того, в редактор PDF добавлена поддержка градиентов, улучшено распознавание текста и обеспечена корректная работа с обрезанными или комбинированными фигурами. Реализована возможность подписывания PDF-форм через прикрепление изображения подписи или использования цифровой подписи. https://honk.any-key.press/d/G682qyK1jg1Mllv7zHSb4.png
- Добавлена поддержка локальных шаблонов, возможности которых пока ограничены использованием нескольких предустановленных шаблонов для создания документов. https://honk.any-key.press/d/G68B6bx5XnP2DTXBg2zjR.png
- Изменения в редакторе документов:

- Добавлена поддержка полей-заполнителей (Field codes), позволяющих включать в документ автоматически обновляемые данные, такие как номер страницы, имя авторов, дата и время. https://honk.any-key.press/d/G681f2hltPJR754Q4r4pG.png
- Улучшены средства для совместного редактирования: в интерфейс просмотра истории изменений добавлена опция, включающая показ удалённого текста и предоставляющая возможность его восстановления. https://honk.any-key.press/d/G68djNgyv4b7yZ3fbLR1R.png
- Добавлена возможность вставки текста из внешних источников, таких как файл на диске или удалённом хранилище, а также содержимое, загружаемое по URL. https://honk.any-key.press/d/G68shqN6RSWB9cC41WKhD.png


- Изменения в табличном процессоре:

- Добавлена поддержка повторяемых вычислений - в настройках формулы можно указать число итераций для её повторного выполнения. https://honk.any-key.press/d/G68K4dqTWwj89b6mzsDL1.png
- Внесены изменения, связанные со сводными таблицами (Pivot Table). Вкладка с операциями для сводных таблиц теперь по умолчанию скрывается и видна только при открытии сводной таблицы. При создании новой сводной таблицы обеспечен автоматический вывод боковой панели с настройками. https://honk.any-key.press/d/G684xXHVQw43nj68nmzg3.png
- Реализована более плавная прокрутка содержимого электронных таблиц, особенно при работе с большими и сложными комбинациями ячеек.
- В панель инструментов добавлены кнопки для быстрой настройки стиля разделителя в числах (выделение разрядов запятой для наглядности). https://honk.any-key.press/d/G68qtps5z3wzM3j1csWsC.png
- Добавлена поддержка предпросмотра содержимого локальных CSV-файлов перед импортом. https://honk.any-key.press/d/G68TYg4k7G89fXrTm8jSr.png
- Добавлен режим для выравнивания электронных таблиц по правому краю и обратным порядком следования столбцов. https://honk.any-key.press/d/G68p67V9gBw37C23kM8D2.png


- Изменения в редакторе презентаций:

- Предоставлена возможность добавления поверх слайда произвольных рисунков, созданных при помощи цифрового пера, например, для добавления меток от руки. https://honk.any-key.press/d/G68lr7D34VDx1Trhds4j6.png
- Добавлен режим случайного выбора эффекта перехода от одного слайда к другому. https://honk.any-key.press/d/G68Cv27zSx39259T1WX4f.png
- Предложен более интуитивно понятный способ выбора анимации из списка.


- Добавлена поддержка генерации визуального представления для некоторых Smart Art, у которых визуальные данные отсутствуют в файле. https://honk.any-key.press/d/G68z93GzS1WkDQbRNS1pl.png
- Добавлены дополнительные типы диаграмм: гистограмма, воронка и каскадная диаграмма. https://honk.any-key.press/d/G68f12VqTG33yVx921yY6.png
- Обновлены словари и улучшена проверка правописания для всех поддерживаемых языков.
- Ускорена загрузка файлов: открытие документов теперь занимает на 21% меньше времени, а презентаций - на 17%.
- Добавлена возможность обновления online-редакторов без остановки работы пользователей (доступно при развёртывании ONLYOFFICE Docs в контейнере на базе Kubernetes).



Источник: https://www.opennet.ru/opennews/art.shtml?num=62085

Доступен офисный пакет ONLYOFFICE 8.2

Опубликован выпуск ONLYOFFICE DocumentServer 8.2 с реализацией сервера для online-редакторов ONLYOFFICE и организации совместной работы. Редакторы можно использовать для работы с текстовыми документами, таблицами и презентациями. Код проекта распространяется под свободной лицензией AGPLv3.
opennet

Выпуск IWD 3.0, пакета для организации подключения к Wi-Fi в Linux

Доступен выпуск Wi-Fi демона IWD 3.0 (iNet Wireless Daemon), развиваемого компанией Intel в качестве альтернативы инструментария wpa_supplicant для организации подключения Linux-систем к беспроводной сети. IWD может использоваться как самодостаточно, так и выступать в качестве бэкенда для сетевых конфигураторов Network Manager и ConnMan. Проект подходит для применения на встраиваемых устройствах и оптимизирован для минимального потребления памяти и дискового пространства. IWD не использует внешних библиотек и обращается только к возможностям, предоставляемым штатным ядром Linux (для работы достаточно ядра Linux и Glibc). В состав входит собственная реализация DHCP-клиента и набор криптографических функций. Код проекта написан на языке Си и поставляется под лицензией LGPLv2.1.

В новом выпуске помимо исправления ошибок добавлена поддержка режима внешней аутентификации на системах с чипами на базе архитектуры FullMAC, подразумевающей реализацию беспроводного стека на стороне прошивки чипа, а не системного драйвера. Режим внешний аутентификации (CMD_EXTERNAL_AUTH) может применяться с драйверами, которые не поддерживают полную обработку протокола аутентификации SAE (Simultaneous Authentication of Equals) на стороне прошивки и при этом не предоставляют команды CMD_ASSOCIATE и CMD_AUTHENTICATE. В этом случае прошивка может предоставлять команду CMD_EXTERNAL_AUTH для задействования внешнего аутентификатора для обработки кадров SAE в пространстве пользователя.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62083

Выпуск IWD 3.0, пакета для организации подключения к Wi-Fi в Linux

Доступен выпуск Wi-Fi демона IWD 3.0 (iNet Wireless Daemon), развиваемого компанией Intel в качестве альтернативы инструментария wpa_supplicant для организации подключения Linux-систем к беспроводной сети. IWD может использоваться как самодостаточно, так и выступать в качестве бэкенда для сетевых конфигураторов Network Manager и ConnMan. Проект подходит для применения на встраиваемых устройствах и оптимизирован для минимального потребления...
opennet

Выпуск web-браузера Chrome 130

Компания Google опубликовала релиз web-браузера Chrome 130. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 131 запланирован на 12 ноября.

Основные изменения в Chrome 130:

- Добавлена новая форма компактных уведомлений о совершённых операциях, показываемых под адресной строкой в виде небольшой полоски, перекрывающей контент. Например, подобный диалог может информировать пользователя об успешном добавлении элемента в список чтения и показывать кнопку для открытия списка для чтения в боковой панели. Внедрение новой формы уведомлений будет производиться постепенно, для управления показом предложена настройка "chrome://flags/#top-chrome-toasts". https://honk.any-key.press/d/G68KH8cRT2Jz38B6w4pj1.png
- При включённом режиме экономии потребления энергии (Energy saver) реализована экспериментальная поддержка автоматической заморозки вкладок, потребляющих много ресурсов CPU, но при этом не выводящих звук и скрытых в течение более 5 минут. Исключение делается только для вкладок, связанных с управлением внешними устройствами или проведением видео и аудио конференций (подобные вкладки определяются на основании доступа к API для работы с USB, Bluetooth, камерой, устройствами ввода и микрофоном, а также организации канала связи с использованием RTCDataChannel или MediaStreamTrack). Для включения автозаморозки добавлены настройки "chrome://flags/#freezing-on-energy-saver" и "chrome://flags/#freezing-on-energy-saver-testing". В Chrome 131 автозаморозку планируют постепенно активировать по умолчанию, начав с 1% пользователей.
- В версии для платформы Android реализован встроенный просмотрщик документов в формате PDF, не требующий вызова внешних приложений (в качестве опции оставлены возможности для загрузки PDF и открытия в стороннем приложении).
- Предоставлена возможность открытия в режиме "картинка в картинке" (picture-in-picture) не только видео, но и любых элементов для показа произвольного контента поверх другого содержимого. Например, в режиме "картинка в картинке" теперь можно отображать интерфейсы для видеоконференций, собственные проигрыватели видео, системы создания заметок, чаты, инструменты для разработчиков и т.п. Открытие содержимого в режиме "картинка в картинке" осуществляется при помощи метода documentPictureInPicture.requestWindow(), возвращающего объект, через который можно добавлять контент при помощи метода .document.body.append(). https://honk.any-key.press/d/G68Hnz6kdTH8b4fy2P1D2.png
- Добавлена возможность обращения к внешним словарям со сжатием ответов при помощи алгоритмов Brotli и Zstandard.
- Добавлена поддержка активации областей прокрутки при навигации с использованием клавиатуры, что позволяет пользователям без мыши вначале переключиться в нужную область клавишей Tab, а затем прокрутить её содержимое стрелками управления курсором.
- Добавлена поддержка разбора неспециальных схем URL (не включённых в список типовых схем) с разделением хоста и пути. Например, при разборе URL "git://example.com/path" значение "example.com" будет определено как хост, а "/path" как путь (до этого "//example.com/path" обрабатывался как один путь).
- В версии для Android появилась интегрированная поддержка подключения сторонних провайдеров автоматического заполнения форм и сохранения паролей, не завязанная на API Accessibility.
- Поведение элемента ‹meter› приведено к соответствию Safari и Firefox - в режиме видимости "none" элемент теперь не скрывается, а переключается на отдельный стиль.
- Реализованы новые рекомендации CSS Working Group по обработке вложенных правил в CSS-блоках, которые теперь учитывают порядок определения CSS-свойств и CSS-правил в блоке (раньше все CSS-правила обрабатывались в первую очередь, что приводило к нелогичным с точки зрения разработчика результатам). Например, показанный ниже CSS-блок раньше выставлял красный цвет фона, а теперь будет выставлять зелёный:

   .foo {
       width: fit-content;

       @media screen {
           background-color: red;
       }
       background-color: green;
   }

- Реализовано CSS-свойство box-decoration-break, указывающее как отрисовывать элемент в случае, когда его части оказываются разделены в разных строках, столбцах или страницах. Доступно два режима отрисовки: slice - элемент вначале полностью отрисовывается целиком, а потом разрезается на части; clone - каждый фрагмент отрисовывается отдельно со своими границами и отступами. В Firefox данной свойство поддерживается с 2014 года. https://honk.any-key.press/d/G68RvrgH4yh78h438CtnF.pnghttps://honk.any-key.press/d/G68tqqVkN3GR44QRWL8yc.png
- В API WebGPU добавлен режим "dual-source-blending" для смешивания вывода из двух фрагментных шейдеров c записью результата в один фреймбуфер.
- В режиме "Origin trials" реализован API Language Detector, позволяющий определять язык по фрагменту текста.
- Расширены возможности инструментов для web-разработчиков. В панель анализа сетевой активности добавлено выпадающее меню с дополнительными фильтрами. Добавлена опция для чистки конфиденциальных данных перед сохранением HTTP-сеанса в формате HAR (HTTP Archive).

https://honk.any-key.press/d/G68r37v25cNX4V5Kx7T23.png

<iframe src="https://www.youtube.com/embed/_AERyyyBxWM?si=s1VKUvQXIdtC5Vrj">

Кроме нововведений и исправления ошибок в новой версии устранены 17 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Одной проблеме присвоен высокий уровень опасности (обращение к уже освобождённой памяти в коде, связанном с AI). Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 13 премий на сумму 72 тысячи долларов США (по одной премии $36000, $4000 и $3000, по две премии $6000, $5000 и $2000, три премии $1000). Размер одного вознаграждения пока не определён.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62080

Выпуск web-браузера Chrome 130

Компания Google опубликовала релиз web-браузера Chrome 130. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google...
opennet

Выпуск сборочной системы Meson 1.6.0

Опубликован релиз сборочной системы Meson 1.6.0, которая используется для сборки таких проектов, как X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK. Код Meson написан на языке Python и поставляется под лицензией Apache 2.0.

Ключевой целью развития Meson является обеспечение высокой скорости сборочного процесса в сочетании с удобством и простотой использования. Вместо утилиты make при сборке по умолчанию применяется инструментарий Ninja, но возможно применение и других бэкендов, таких как xcode и VisualStudio. В систему встроен многоплатформенный обработчик зависимостей, позволяющий использовать Meson для сборки пакетов для дистрибутивов. Правила сборки задаются на упрощённом предметно-ориентированном языке, отличаются хорошей читаемостью и понятны пользователю (по задумке авторов разработчик должен тратить минимум времени на написание правил).

Поддерживается кросс-компиляция и сборка в Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS и Windows с использованием GCC, Clang, Visual Studio и других компиляторов. Возможна сборка проектов на различных языках программирования, включая C, C++, Fortran, Java и Rust. Поддерживается инкрементальный режим сборки, при котором пересобираются только компоненты, напрямую связанные с изменениями, внесёнными с момента прошлой сборки. Meson можно использовать для формирования повторяемых сборок, при которых запуск сборки в разных окружениях приводит к генерации полностью идентичных исполняемых файлов.

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

- Добавлена команда "meson reprotest" для тестирования повторяемых сборок.
- Добавлена поддержка компилятора flang, развиваемого проектом LLVM.
- Добавлена поддержка SDK DIA (Debug Interface Access), позволяющего читать отладочную информацию в формате PDB, используемом на платформе Windows.
- В компиляторах nvc и nvc++ от компании NVIDIA обеспечена возможность выбора стандартов Си и Си++. В nvc: c89, c90, c99, c11, c17, c18, gnu90, gnu89, gnu99, gnu11, gnu17, gnu18. В nvc++: c++98, c++03, c++11, c++14, c++17, c++20, c++23, gnu++98, gnu++03, gnu++11, gnu++14, gnu++17, gnu++20.
- Предоставлена возможность определения наличия специфичных для Qt утилит (moc, uic, rcc и lrelease) через вызов функции has_tools() для импортированных модулей сборки Qt.
- Реализована возможность использования компилятора OpenXL на платформе AIX (помимо ранее поддерживаемого GCC).
- По умолчанию включён вывод предупреждений о всех устаревших возможностях, если в функции project() для собираемого проекта не указана минимальная версия Meson.
- Добавлена поддержка использования переменных в системных зависимостях (в методе get_variable()).
- Добавлено предупреждение об экспериментальном характере поддержки субпроектов Cargo.
- В зависимостях, полученных из субпроектов CMake, теперь разрешено использование только флагов компоновки, помеченных в CMake как PUBLIC или INTERFACE (флаги помеченные как PRIVATE применяются только при сборке библиотеки субпроекта, а не при использовании в роли зависимости).
- Добавлена опция default_both_libraries, позволяющая переопределить поведение по умолчанию сборочной цели both_libraries.
- Для внутренних зависимостей, возвращаемых функцией declare_dependency(), реализованы методы as_static и as_shared для преобразования списка зависимостей с учётом статического или динамического связывания.
- В функциях test() и benchmark() добавлена возможность определения того, что проверяемый исполняемый файл является обёрткой для вызова других программ. Например:

   test('some_test', find_program('sudo'), args : [ find_program('sh'), 'script.sh' ])

- Добавлена поддержка использования вместо Clang фронтэнда компилятора C/C++, предоставляемого в инструментарии к языку Zig 0.11.



Источник: https://www.opennet.ru/opennews/art.shtml?num=62081

Выпуск сборочной системы Meson 1.6.0

Опубликован релиз сборочной системы Meson 1.6.0, которая используется для сборки таких проектов, как X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK. Код Meson написан на языке Python и поставляется под лицензией Apache 2.0.

Ключевой целью развития Meson является обеспечение высокой скорости сборочного процесса в сочетании с удобством и простотой использования. Вместо утилиты make при сборке по умолчанию применяется инструментарий Ninja,...

opennet

Нападки производителя ноутбуков Malibal на проект CoreBoot

Компания Malibal, выпускающая ноутбуки, выступила с жёсткой критикой сообщества CoreBoot и призвала прекратить использование проекта. Кроме того, компания Malibal отказалась от использования процессоров AMD, так как лидер CoreBoot трудоустроен в AMD, и прекратила поставки продукции в Германию, Польшу и штат Техас, так как там зарегистрированы компании 9Elements, AMD и 3mdeb, взаимодействием c которыми представитили Malibal осталась недовольны. Более того, в Malibal пообещали банить любого, кто поддерживает проект CoreBoot, передаёт ему код, отправляет пожертвования или участвует в его работе. Также представитель Malibal посетовал на высокую стоимость услуг по консалтингу, связанному с CoreBoot, и заявил, что за более чем 6 месяцев совместной работы так и не было написано не одной строчки кода, связанного адаптацией CoreBoot для ноутбуков Malibal.

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

Кристиан Уолтер (Christian Walter), глава отдела разработки прошивок в компании 9elements и основатель организации OSFW Foundation, извинился, что его участие в обсуждениях могло быть воспринято как высокомерие (английский для него не является родным языком и он часто отвечает с телефона, что приводит к отправке сообщений с опечатками), и пояснил некоторые технические детали.

Утверждение Malibal, что они предоставили уже готовое решение, которое нужно было лишь отладить, не соответствует действительности, так как присланный вариант прошивки был не рабочим и не загружался на предоставленном ноутбуке. Сотрудникам 9elements пришлось самостоятельно собирать и устанавливать прошивку для того, чтобы загрузить с ней ноутбук, и, судя по всему, предложенная прошивка ранее ни разу не загружалась на устройстве, т.е. был предоставлен код ни разу не проверенный в работе.

После загрузки подозрение подтвердилось, прошивка оказалась не рабочая и плата не выходила из состояния сброса, т.е. на ни о какой финальной отладке на данной стадии разработки прошивки речи не могло быть. Никаких денег за проведённые с предложенной прошивкой манипуляции компания 9elements не брала, т.е. по сути провела бесплатную экспертизу, а присланное устройство вернула. Архив переписки и разговоры сохранены и Кристиан готов предоставить их в качестве доказательства беспочвенности заявлений Malibal.

Дополнительно можно отметить сообщение от проекта GNU Boot с информацией о выявлении несвободного микрокода в первом предварительной выпуске GNU Boot. Проект GNU Boot развивает сборку на базе кода проектов CoreBoot, LibreBoot и Canoeboot, содержащую только свободное ПО и исключающую любые проприетарные компоненты. Проблема выявлена в пакете vboot, используемом в CoreBoot, и пакете vboot-utils, входящем в состав многих дистрибутивов GNU/Linux. В данных для проведения тестов (tests/futility/data) присутствовал несвободный микрокод, прошивки и компоненты BIOS. Поставка данных компонентов в дистрибутивах может нарушать правила, ограничивающие включение проприетарного кода в репозитории с открытым кодом.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62079

Нападки производителя ноутбуков Malibal на проект CoreBoot

Компания Malibal, выпускающая ноутбуки, выступила с жёсткой критикой сообщества CoreBoot и призвала прекратить использование проекта. Кроме того, компания Malibal отказалась от использования процессоров AMD, так как лидер CoreBoot трудоустроен в AMD, и прекратила поставки продукции в Германию, Польшу и штат Техас, так как там зарегистрированы компании 9Elements, AMD и 3mdeb, взаимодействием c которыми представитили Malibal осталась недовольны....
opennet

Intel начал продвигать решения на базе CoreBoot для систем с процессорами Intel Xeon 6

Компания Intel объявила о работе по добавлению поддержки платформ на базе процессоров Intel Xeon 6 ("Granite Rapids") в проект CoreBoot, развивающий свободную альтернативу проприетарным прошивкам и BIOS. Работа ведётся совместно с компанией 9elements, специализирующейся на адаптации CoreBoot для различного оборудования. Для CoreBoot планируется подготовить пакет FSP (Firmware Support Package), включающий реализацию процедур, необходимых для инициализации и настройки систем с процессорами Intel Xeon 6.

Предполагается, что проведённая работа сделает решения на базе CoreBoot более привлекательными для корпоративных систем и доведёт их до уровня проектов Open Platform Firmware (OPF) от сообщества Open Compute. Отмечается, что использование CoreBoot даёт возможность компаниям упростить процесс инициализации оборудования, снизить издержки на сопровождение и адаптировать компоненты начальной загрузки под свои потребности, что особенно актуально при внедрении программно определяемых инфраструктур (SDI, Software-Defined Infrastructure) в датацентрах. Из достоинств применения CoreBoot также отмечается возможность добиться высокой производительности, эффективности и безопасности рабочих нагрузок, и способствование развитию инноваций и более активной совместной работе в отрасли.

Более высокая производительность по сравнению с проприетарными прошивками UEFI достигается в CoreBoot благодаря минималистичной модульной архитектуре, позволяющей инициализировать только необходимые аппаратные компоненты. CoreBoot также позволяет сократить время, используя LinuxBoot для прямой передачи управления ядру Linux, без привлечения дополнительных загрузчиков и прошивок.

Эффективность сопровождения при использовании CoreBoot обеспечивается за счёт повторного использования кода и применения единого программного каркаса при обеспечении поддержки различного оборудования. Для поддержания безопасности для CoreBoot доступны компоненты, позволяющие организовать верифицированную загрузку системы и позволяющие использовать такие технологии, как TPM (Trusted Platform Module), Intel TXT (Trusted Execution Technology) и Intel CBnT (Converged Boot Guard and TXT). Открытый характер проекта позволяет добиться прозрачности при принятии решений и приёме изменений, а также, благодаря большому сообществу, добиться более быстрого исправления ошибок и уязвимостей.

https://honk.any-key.press/d/G678jzr9LLJ34bbxy4LD3.png

Источник: https://www.opennet.ru/opennews/art.shtml?num=62078

Intel начал продвигать решения на базе CoreBoot для систем с процессорами Intel Xeon 6

Компания Intel объявила о работе по добавлению поддержки платформ на базе процессоров Intel Xeon 6 ("Granite Rapids") в проект CoreBoot, развивающий свободную альтернативу проприетарным прошивкам и BIOS. Работа ведётся совместно с компанией 9elements, специализирующейся на
opennet

Дистрибутиву Ubuntu Linux исполнилось 20 лет

Двадцать лет назад, 20 октября 2004 года, была опубликована первая версия дистрибутива Ubuntu 4.10 "Warty Warthog". Проект был основан Марком Шаттлвортом, миллионером из Южной Африки, принимавшим участие в разработке Debian и воодушевлённым идеей создания доступного для конечных пользователей настольного дистрибутива, обладающего предсказуемым фиксированным циклом разработки. К работе было привлечено несколько разработчиков из проекта Debian, некоторые из которых до сих пор принимают участие в развитии обоих проектов. Выпуск Ubuntu 4.10, в котором поставлялись GNOME 2.8, Firefox 0.9 и OpenOffice.org 1.1.2, остаётся доступен для загрузки и может быть использован для оценки как система выглядела 20 лет назад. https://honk.any-key.press/d/G67QpVGzX7J33hhPvYW4h.png

Источник: https://www.opennet.ru/opennews/art.shtml?num=62077

Дистрибутиву Ubuntu Linux исполнилось 20 лет

Двадцать лет назад, 20 октября 2004 года, была опубликована первая версия дистрибутива Ubuntu 4.10 "Warty Warthog". Проект был основан Марком Шаттлвортом, миллионером из Южной Африки, принимавшим участие в разработке Debian и воодушевлённым идеей создания доступного для конечных пользователей настольного дистрибутива, обладающего предсказуемым фиксированным циклом разработки. К работе было привлечено несколько разработчиков из проекта Debian, некоторые...
opennet

Выпуск сетевого стека F-Stack 1.24, выполняемого в пространстве пользователя

Опубликован сетевой стек F-Stack 1.24, представляющий собой редакцию сетевого стека FreeBSD, работающую в пространстве пользователя и использующую фреймворк DPDK для достижения максимальной производительности. Проект создан крупнейшей в Китае телекоммуникационной компанией Tencent и используется в её продуктах и сервисах. Код написан на языке Си и распространяется под лицензией BSD. Поддерживается работа в Linux и FreeBSD.

F-Stack позволяет задействовать в приложениях собственный локальный сетевой стек, не зависящий от сетевого стека операционной системы, функционирующий в пространстве пользователя и напрямую работающий с сетевым оборудованием. F-Stack позиционируется как решение, позволяющее повысить производительность обработчиков сетевых запросов в условиях, когда штатный TCP/IP стек ядра Linux становится узким местом и ограничивает масштабирование - в некоторых ситуациях проект даёт возможность в разы увеличить число обрабатываемых мелких сетевых запросов. Теоретически F-Stack позволяет достигнуть потолка сетевой производительности, возможного для используемой сетевой карты.

Повышение производительности достигается за счёт исключения таких операций, как копирования сетевых пакетов, планирование потоков, обработка прерываний и применение системных вызовов. Для взаимодействия с сетевой картой, минуя интерфейсы ядра операционной системы, применяется фреймворк DPDK (Data Plane Development Kit), развивающий набор библиотек для низкоуровневой работы с сетевыми адаптерами. DPDK даёт возможность снизить накладные расходы и уложиться в минимальное число циклов CPU при приёме или отправке сетевых пакетов.

Функциональность TCP/IP стека соответствует сетевому стеку FreeBSD 13 и выделена из данной операционной системы в независимую библиотеку. Для разработки приложений можно использовать стандартный API POSIX (socket, epoll, kqueue) или собственный программный интерфейс на основе микропотоков, упрощающий создание сетевых приложений и позволяющий обойтись без сложной логики асинхронной обработки запросов.

Проектом поддерживаются переведённые на использование F-Stack редакции многопротокольного сервера Nginx 1.25.2 и СУБД Redis 6.2.6, демонстрирующие производительность выше обычных сборок, работающих поверх системного сетевого стека.

Наиболее заметные изменения в новом выпуске:

- В файле конфигурации config.ini предоставлена возможность выбора между использованием KNI (Kernel NIC Interface) и virtio_user в качестве транспорта для передачи пакетов между ядром и приложением обработки пакетов на базе DPDK. Добавлена возможность использования ratelimit для KNI.
- Добавлена поддержка включения настройки сетевого стека "net.add_addr_allfibs=1" для добавления адресов во все таблицы маршрутизации.
- Добавлен API ff_get_traffic для получения трафика, например, для реализации QoS (Quality of Service).
- Добавлены функции pthread_create и pthread_join, напоминающие аналогичные функции из POSIX.
- Добавлен API ff_dpdk_raw_packet_send для отправки приложением raw-пакетов напрямую через DPDK, а не через сокет.
- Реализована поддержка автоматической настройки VLAN, маршрутизации и policy routing.
- Осуществлён переход на версию DPDK 22.11.6 LTS.
- В реализации Nginx поверх F-Stack добавлена поддержка модуля stream.



Источник: https://www.opennet.ru/opennews/art.shtml?num=62076

Выпуск сетевого стека F-Stack 1.24, выполняемого в пространстве пользователя

Опубликован сетевой стек F-Stack 1.24, представляющий собой редакцию сетевого стека FreeBSD, работающую в пространстве пользователя и использующую фреймворк DPDK для достижения максимальной производительности. Проект создан крупнейшей в Китае телекоммуникационной компанией
opennet

Выпуск Wine 9.20 и Wine staging 9.20

Опубликован экспериментальный выпуск открытой реализации Win32 API - Wine 9.20. С момента выпуска 9.19 было закрыто 15 отчётов об ошибках и внесено 198 изменений.

Наиболее важные изменения:

- В состав встроена библиотека Capstone, через которую реализовано дизассемблирование в WineDbg.
- В D3DX9 реализована поддержка форматов X8L8V8U8, A2W10V10U10, A8P8, V16U16 и Q16W16V16U16.
- В систему непрерывной интеграции на базе Gitlab добавлена поддержка статического анализа с использованием Clang и отчётов о прохождении тестов JUnit.
- В API DirectPlay продолжена реализация поддержки сетевых сеансов.
- Обновлены версии используемых библиотек: faudio 24.10, mpg123 1.32.7, png 1.6.44, tiff 4.7.0, ldap 2.5.18, fluidsynth 2.3.6, xslt 1.1.42 и xml2 2.12.8.
- Закрыты отчёты об ошибках, связанные с работой приложений: Rhinoceros, Helicon Focus 8.2.0, Notepad++, Nikon NX Studio.
- Закрыты отчёты об ошибках, связанные с работой игр: Victoria 2, Just Cause, BeamNG.drive, Wargaming.net, KnightOfKnights.

Кроме того, сформирован выпуск проекта Wine Staging 9.20, предоставляющего расширенные сборки Wine, включающие не полностью готовые или рискованные патчи, пока непригодные для принятия в основную ветку Wine. По сравнению с Wine в Wine Staging предоставляется 357 дополнительных патчей. В новом выпуске Wine Staging осуществлена синхронизация с кодовой базой Wine 9.20 и перенесены свежие изменения из vkd3d. В основной состав Wine перенесено исправление, решающее проблему с отрисовкой повёрнутого и отмасштабированного текста в win32u (проблема оставалась нерешённой с 2013 года).

Дополнительно можно отметить обновление ветки Proton Experimental, в которой компанией Valve развивается пакет, основанный на кодовой базе Wine и позволяющий запускать в Linux игровые приложения, изначально созданные для Windows и представленные в каталоге Steam. В Proton Experimental добавлена поддержка игр:

- APB Reloaded
- Conqueror's Blade
- Hard Chip Demo
- Onimusha: Warlords
- Sniper Elite: Nazi Zombie Army 2
- Test Drive Unlimited Solar Crown
- Total War: SHOGUN 2
- Warhammer 40k: Space Marine 2
- Welcome to Dustown

Исправлены проблемы в играх:

- Age of Empires II: Definitive Edition
- B-17 Flying Fortress
- Bloodstained: Ritual of the Night
- Clash for Crust
- Curse of Brotherhood
- Devil May Cry 3 Special Edition
- Diablo IV
- Dog Brew
- DOOM Eternal
- Fablecraft
- Fallout: New Vegas
- Final Fantasy XVI
- For Honor
- GreedFall
- Hotshot Racing
- Hunt: Showdown 1896
- March of Empires
- Mary Skelter 2
- Microsoft Flight Simulator
- Oddworld: Stranger's Wrath HD
- Pharaoh Rebirth+
- Phasmophobia
- Red Dead Redemption 2
- Resident Evil 2
- Shadow Warrior 2
- SpellForce 3: Versus Edition
- The Finals
- Tomb Raider
- Trackmania Nations Forever
- Trackmania United Forever
- Twisted Sails
- UNO
- WARRIORS ALL-STARS
- Yakuza 3
- Yakuza 4
- Yakuza 6



Источник: https://www.opennet.ru/opennews/art.shtml?num=62075

Выпуск Wine 9.20 и Wine staging 9.20

Опубликован экспериментальный выпуск открытой реализации Win32 API - Wine 9.20. С момента выпуска 9.19 было закрыто 15 отчётов об ошибках и внесено 198 изменений.

Наиболее важные изменения:

- В состав встроена библиотека Capstone, через которую реализовано дизассемблирование в WineDbg.
- В D3DX9 реализована поддержка форматов X8L8V8U8, A2W10V10U10, A8P8, V16U16 и Q16W16V16U16.
- В систему непрерывной интеграции на базе Gitlab добавлена поддержка статического...

opennet

Обход защиты от атак Spectre и эксплоит для извлечения данных из памяти другого процесса

Исследователи из Швейцарской высшей технической школы Цюриха выявили два способа обхода защиты от атак класса Spectre, основанной на использовании процессорных инструкций IBPB (Indirect Branch Prediction Barriers) для сброса состояния блока предсказания переходов при каждом переключении контекста (например, при передаче управления между пространством пользователя в ядром или между гостевой системой и хост окружением). Первый способ затрагивает процессоры Intel, а второй - процессоры AMD. Кроме того, исследователи впервые реализовали рабочий эксплоит, использующий уязвимость Spectre для организации утечки содержимого памяти между процессами, и продемонстрировали его применение для извлечения паролей из памяти suid-процессов, таких как sudo, su и polkit.

Первый способ обхода защиты от Spectre вызван ошибкой в микрокоде процессоров Intel и проявляется на системах с 12, 13 и 14 поколением процессоров Intel Core и 5 и 6 поколением процессоров Intel Xeon. Проблема устранена в обновлении микрокода, выпущенном компанией Intel в марте. Из-за ошибки результаты предсказания переходов сохранялись после выполнения инструкции IBPB, которая должна была их аннулировать, что позволяло определить данные, оставшиеся после спекулятивного выполнения инструкций в других процессах или виртуальных машинах.

В ходе исследования отдельное внимание было уделено разработке метода для организации утечки содержимого памяти других процессов, в том числе привилегированных, таких как sudo. Так как до сих пор не существовало рабочих техник эксплуатации уязвимостей класса Spectre, нацеленных на преодоление изоляции между процессами, реализация защиты была сосредоточена главным образом на ядрах и гипервизоре, а связанные со спекулятивным выполнением проблемы в процессах, манипулирующих конфиденциальными данными, были оставлены без должного внимания. Таким образом, для атаки на процессы, как правило, не требуется обходить защиту на базе IBPB, так как подобная защита на уровне процессов применялась лишь в единичных случаях. Подготовленный в ходе исследования эксплоит продемонстрировал возможность применения уязвимостей Spectre для атаки на процессы, использующие suid-бит для выполнения с повышением привилегий.

<iframe src="https://www.youtube.com/embed/VYEVcj-vnbs?feature=oembed">

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

https://honk.any-key.press/d/G66j1vXrqZ85SKbY737lF.png

Второй способ обхода защиты от Spectre вызван тем, что детали использования инструкций IBPB отличаются в процессорах от различных производителей и в разных поколениях процессоров одного производителя. Из-за того, что семантика IBPB в прошлых поколениях процессоров AMD отличается от семантики в CPU Intel и новых поколений CPU AMD, в ядре Linux имеющиеся отличия не были учтены и некоторые конфигурации были не защищены должным образом. Вероятно, аналогичные проблемы присутствуют в других операционных системах и в гипервизорах, но в ходе исследования было изучено только ядро Linux, в силу доступности его исходного кода. Проблема подтверждена в процессорах AMD поколения Zen, Zen2 и Zen3 (проблемы на системах с Zen3 не подтверждены исследователями, но упомянуты в отчёте AMD) и устраняется через установку обновления ядра (указано, что для исправления подготовлен патч, который пока не принят в основной состав ядра Linux).

Для защиты от уязвимостей, вызванных спекулятивным выполнением инструкций, при каждой передаче управления ядро вызывает процедуру, выполняющую инструкцию IBPB для сброса буфера предсказаний переходов. Проблема вызвана тем, что на некоторых системах AMD помимо очистки предсказания переходов требуется отдельная очистка предсказания адресов возврата, используемых в инструкциях RET. Для совершения атаки на системах с CPU AMD Zen и Zen2 атакующий может инициировать ложное предсказание адреса возврата до завершения операции IBPB. В качестве демонстрации метода подготовлен эксплоит, извлекающий содержимое произвольных областей памяти ядра, который можно использовать для извлечения хэша пароля пользователя root из страничного кэша операционной системы.

<iframe src="https://www.youtube.com/embed/eODoOyhqtaQ?feature=oembed">

Источник: https://www.opennet.ru/opennews/art.shtml?num=62073

Обход защиты от атак Spectre и эксплоит для извлечения данных из памяти другого процесса

Исследователи из Швейцарской высшей технической школы Цюриха выявили два способа обхода защиты от атак класса Spectre, основанной на использовании процессорных инструкций IBPB (Indirect Branch Prediction Barriers) для сброса состояния блока предсказания переходов при каждом переключении контекста (например, при передаче управления между пространством пользователя в ядром или между гостевой системой и хост окружением)....
opennet

Выпуск Rust 1.82. Новый браузер на Rust. Использование Rust в Volvo

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

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

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

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

- В пакетный менеджер cargo добавлена команда "info" для вывода информации о пакете в репозитории.
- Добавлена поддержка синтаксиса "use‹..›" в "impl Trait", определяющего информацию о скрытых типах. Например, "impl Trait + use‹'x, T›" указывает, что в скрытом типе разрешено использовать только параметры "x" и "T".
- Предложен отдельный синтаксис для создания raw-указателей, пришедший на смену ранее применяемым макросам: на смену макросу "addr_of!(expr)" теперь оператор "&raw const expr", а на смену макросу "addr_of_mut!(expr)" - оператор "&raw mut expr".

   struct Packed {
       not_aligned_field: i32,
   }
   fn main() {
       let p = Packed { not_aligned_field: 1_82 };

       // Старый способ создания raw-указателя
       let ptr = std::ptr::addr_of!(p.not_aligned_field);

       // Новый способ создания raw-указателя
       let ptr = &raw const p.not_aligned_field;

       let val = unsafe { ptr.read_unaligned() };
   }

- Предоставлена возможность определения безопасных (safe) функций и констант со временем жизни 'static' внутри extern-блоков с признаком "unsafe" (ранее все элементы в "unsafe extern" могли иметь только признак "unsafe"):
   unsafe extern {
       pub safe static TAU: f64;
       pub safe fn sqrt(x: f64) -> f64;
       pub unsafe fn strlen(p: *const u8) -> usize;
   }

- Атрибуты no_mangle, link_section и export_name, которые могут привести к неопределённому поведению, теперь считаются небезопасными и требуют явной пометки признаком "unsafe", например:
   #[unsafe(no_mangle)]
   pub fn my_global_function() { }

- При сопоставлением с образцом разрешено пропускать пустые типы, такие как "enum Void {}" или структуры с видимым пустым полем.
   use std::convert::Infallible;
   pub fn unwrap_without_panic‹T›(x: Result‹T, Infallible›) -› T {
       let Ok(x) = x; // "Err" можно пропустить
       x
   }

- В типах для чисел с плавающей запятой (f32 и f64) стандартизировано поведения при обработке нечисловых значений NaN (0.0/0.0), а также разрешено использование операций с плавающей запятой в const fn.
- В ассемблерных вставках предоставлена возможность использования операндов с признаком "const" для непосредственного использования целых числовых значений без их предварительного сохранения в регистре.
   const MSG: &str = "Hello, world!\n";

   unsafe {
       core::arch::asm!(
           "mov rdx, {LEN}  // будет сформирована инструкций 'mov     rdx, 14'",
            LEN = const MSG.len(),
   ...
       );
   }

- Разрешена адресация выражений с признаком "static" в безопасном контексте без определения блока unsafe (операторы "&raw mut" и "&raw const" не влияют на значение операнда и лишь создаёт указатель на него):
   static mut STATIC_MUT: Type = Type::new();
   extern "C" {
       static EXTERN_STATIC: Type;
   }
   fn main() {
        let static_mut_ptr = &raw mut STATIC_MUT;
        let extern_static_ptr = &raw const EXTERN_STATIC;
   }

- В разряд стабильных переведена новая порция API, в том числе стабилизированы методы и реализации типажей:

- std::thread::Builder::spawn_unchecked
- std::str::CharIndices::offset
- std::option::Option::is_none_or
- [T]::is_sorted
- [T]::is_sorted_by
- [T]::is_sorted_by_key
- Iterator::is_sorted
- Iterator::is_sorted_by
- Iterator::is_sorted_by_key
- std::future::Ready::into_inner
- std::iter::repeat_n
- impl DoubleEndedIterator for Take
- impl ExactSizeIterator for Take
- impl ExactSizeIterator for Take
- impl Default for std::collections::binary_heap::Iter
- impl Default for std::collections::btree_map::RangeMut
- impl Default for std::collections::btree_map::ValuesMut
- impl Default for std::collections::vec_deque::Iter
- impl Default for std::collections::vec_deque::IterMut
- Rc‹T›::new_uninit
- Rc‹T›::assume_init
- Rc‹[T]›::new_uninit_slice
- Rc‹[MaybeUninit‹T›]›::assume_init
- Arc‹T›::new_uninit
- Arc‹T›::assume_init
- Arc‹[T]›::new_uninit_slice
- Arc‹[MaybeUninit‹T›]›::assume_init
- Box‹T›::new_uninit
- Box‹T›::assume_init
- Box‹[T]›::new_uninit_slice
- Box‹[MaybeUninit‹T›]›::assume_init
- core::arch::x86_64::_bextri_u64
- core::arch::x86_64::_bextri_u32
- core::arch::x86::_mm_broadcastsi128_si256
- core::arch::x86::_mm256_stream_load_si256
- core::arch::x86::_tzcnt_u16
- core::arch::x86::_mm_extracti_si64
- core::arch::x86::_mm_inserti_si64
- core::arch::x86::_mm_storeu_si16
- core::arch::x86::_mm_storeu_si32
- core::arch::x86::_mm_storeu_si64
- core::arch::x86::_mm_loadu_si16
- core::arch::x86::_mm_loadu_si32
- core::arch::wasm32::u8x16_relaxed_swizzle
- core::arch::wasm32::i8x16_relaxed_swizzle
- core::arch::wasm32::i32x4_relaxed_trunc_f32x4
- core::arch::wasm32::u32x4_relaxed_trunc_f32x4
- core::arch::wasm32::i32x4_relaxed_trunc_f64x2_zero
- core::arch::wasm32::u32x4_relaxed_trunc_f64x2_zero
- core::arch::wasm32::f32x4_relaxed_madd
- core::arch::wasm32::f32x4_relaxed_nmadd
- core::arch::wasm32::f64x2_relaxed_madd
- core::arch::wasm32::f64x2_relaxed_nmadd
- core::arch::wasm32::i8x16_relaxed_laneselect
- core::arch::wasm32::u8x16_relaxed_laneselect
- core::arch::wasm32::i16x8_relaxed_laneselect
- core::arch::wasm32::u16x8_relaxed_laneselect
- core::arch::wasm32::i32x4_relaxed_laneselect
- core::arch::wasm32::u32x4_relaxed_laneselect
- core::arch::wasm32::i64x2_relaxed_laneselect
- core::arch::wasm32::u64x2_relaxed_laneselect
- core::arch::wasm32::f32x4_relaxed_min
- core::arch::wasm32::f32x4_relaxed_max
- core::arch::wasm32::f64x2_relaxed_min
- core::arch::wasm32::f64x2_relaxed_max
- core::arch::wasm32::i16x8_relaxed_q15mulr
- core::arch::wasm32::u16x8_relaxed_q15mulr
- core::arch::wasm32::i16x8_relaxed_dot_i8x16_i7x16
- core::arch::wasm32::u16x8_relaxed_dot_i8x16_i7x16
- core::arch::wasm32::i32x4_relaxed_dot_i8x16_i7x16_add
- core::arch::wasm32::u32x4_relaxed_dot_i8x16_i7x16_add


- Признак "const", определяющий возможность использования в любом контексте вместо констант, применён в функциях:

- std::task::Waker::from_raw
- std::task::Context::from_waker
- std::task::Context::waker
- $integer::from_str_radix
- std::num::ParseIntError::kind


- Реализован первый уровень поддержки для платформы macOS на 64-рядных процессорах Apple Silicon на базе архтитектуры ARM64 (aarch64-apple-darwin). Первый уровень поддержки подразумевает формирование бинарных сборок проведение досконального тестирования и предоставление наивысшей гарантии поддержки платформы - каждое изменение в компиляторе проверяется выполнением полного тестового набора.
- Реализован второй уровень поддержки платформ aarch64-apple-ios-macabi и x86_64-apple-ios-macabi, отождествлённых с технологией Mac Catalyst, позволяющей запускать приложения iOS на системах Mac. Второй уровень поддержки подразумевает гарантию сборки.

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

- Представлен новый браузер Gosub, написанный на языке Rust и использующий собственный web-движок, нацеленный на поддержку HTML5 и CSS3, и не пересекающийся с проектом Servo. Для обработки JavaScript предлагается использовать внешние движки. Браузер примечателен модульной архитектурой, позволяющей на свой вкус подключать web-движки и обработчики отрисовки контента. Разработка пока находится на начальном этапе, сосредоточенном на создании компонентов для разбора HTML/CSS, организации отрисовки контента и интеграции JavaScript-движков.

Утверждается, что текущее состояние движка позволяет проходить большую часть тестов html5lib и обрабатывать почти любые документы HTML5. Парсер CSS3 и компонент отрисовки пока находятся в состоянии прототипов, способный обрабатывать только простейшие страницы. Из JavaScript-движков поддерживается v8. Код проекта доступен под лицензией MIT. Проект развивает Джошуа Тейссен (Joshua Thijssen), в прошлом активный участник сообщества разработчиков на языке PHP и автор книг про библиотеки SPL и Symfony.

https://honk.any-key.press/d/G65X54n448xVgrJN3PqlY.png
- Компания Volvo задействована в электромобилях EX90 и Polestar 3 электронный блок управления (ECU) на базе CPU Arm Cortex-M, отвечающий за активацию цепей питания, в котором использована прошивка, написанная на языке Rust. Проект признан удачным и руководство рассмотрит возможность расширения использования компонентов на Rust в других подсистемах. Отмечается, что по сравнению с проектами на C и C++ в коде на Rust удалось добиться более высокого качества кода меньшего уровня ошибок за счёт более жестоких требований на этапе компиляции.
- Проект lm.rs подготовил написанный на Rust движок для выполнения больших языковых моделей машинного обучения, совместимый с моделями Gemma 2, Llama 3.2 и PHI 3.5, и похожий по своему назначению на llama2.c и llm.c. Lm.rs выполняет модель с использованием ресурсов CPU и не требует для работы внешних зависимостей и библиотек. Производительность lm.rs позволяет на ПК c 16-ядерным CPU AMD Epyc обрабатывать примерно 50 токенов в секунду для модели Llama 3.2 1B. Код открыт под лицензией MIT.
- Опубликован выпуск платформы Tauri 2.0, предоставляющей написанный на Rust инструментарий для создания многоплатформенных пользовательских приложений с графическим интерфейсом, конкурирующий с платформой Electron. Как и в Electron логика работы приложения определяется на JavaScript, HTML и CSS, а программы оформляются в виде самодостаточных исполняемых файлов, компилируемых для различных операционных систем. Для отрисовки окон на платформе Linux используется библиотека GTK (GTK 3 Rust), а в macOS и Windows библиотека Tao. Интерфейс формируется при помощи библиотеки WRY с обвязкой над браузерным движком WebKit для macOS, WebView2 для Windows и WebKitGTK для Linux. Среди ключевых улучшений в новой версии: поддержка мобильных платформ iOS и Android, переработка слоя IPC (Inter Process Communication) и добавление большого числа новых модулей.
- Разработчики свободного пакета для автоматизации проектирования печатных плат LibrePCB, оптимизированный для быстрой разработки плат и предоставления как можно более простого интерфейса, представили план по разработке выпуска 2.0. В плане упоминается интеграция поддержки использования Rust в кодовой базе и постепенное смещение при разработке от использования языка С++ в пользу Rust. Также упоминается намерение полностью переработать интерфейс пользователя, используя написанный на Rust фреймворк Slint вместо библиотеки Qt.
- Разработчики проекта Rust-for-Linux работают над предоставлением возможности использования в ядре умных указателей, соответствующих модели памяти ядра Linux.



Источник: https://www.opennet.ru/opennews/art.shtml?num=62071

Выпуск Rust 1.82. Новый браузер на Rust. Использование Rust в Volvo

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

Microsoft открыл код гипервизора OpenVMM и платформы паравиртуализации OpenHCL

Компания Microsoft объявила об открытии исходных текстов слоя для обеспечения паравиртуализации OpenHCL и монитора виртуальных машин OpenVMM, специально развиваемого для организации работы OpenHCL. Код OpenVMM и OpenHCL написан на языке Rust и распространяется под лицензией MIT. OpenVMM относится к гипервизорам второго уровня, работающим в одном кольце защиты с ядром операционной системы по аналогии с такими продуктами, как VirtualBox и VMware Workstation. Поддерживается работа поверх хост-систем на базе Linux (x86_64), Windows (x86_64, Aarch64) и macOS (x86_64, Aarch64), используя предоставляемые данными ОС API виртуализации KVM, SHV (Microsoft Hypervisor), WHP (Windows Hypervisor Platform) и Hypervisor.framework.

Среди возможностей, поддерживаемых в OpenVMM:

- Загрузка в режимах UEFI и BIOS, прямая загрузка ядра Linux;
- Поддержка паравиртуализации на базе драйверов Virtio (virtio-fs, virtio-9p, virtio-net, virtio-pmem)
- Поддержка паравиртуализации на базе VMBus (storvsp, netvsp, vpci, framebuffer);
- Эмуляция vTPM, NVMe, UART, чипсета i440BX + PIIX4, IDE HDD, PCI и VGA;
- Бэкенды для проброса графики, устройств ввода, консоли, хранилищ и сетевого доступа;
- Управление через интерфейс командной строки, интерактивную консоль, gRPC и ttrpc.

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

Разделение гостевой системы и компонентов OpenHCL осуществляется с использованием концепции виртуальных уровней доверия (VTL, Virtual Trust Level), для реализации которых могут использоваться как программные механизмы, так и аппаратные технологии, такие как Intel TDX (Trust Domain Extensions), AMD SEV-SNP (Secure Encrypted Virtualization-Secure Nested Paging) и ARM CCA (Confidential Compute Architecture). Для выполнения компонентов OpenHCL используется урезанная сборка ядра Linux, включающая только минимально необходимые компоненты, необходимые для работы OpenVMM.

https://honk.any-key.press/d/G6599Xv84XnG5pjVKDc2Q.png

OpenHCL может работать на платформах x86-64 и ARM64, и поддерживает расширения Intel TDX, AMD SEV-SNP и ARM CCA для дополнительной изоляции. В состав OpenHCL входит набор сервисов, драйверов и эмуляторов, применяемых для организации доступа к оборудованию, обеспечения работы виртуальных устройств на стороне гостевой системы и эмуляции аппаратных устройств (например, может эмулироваться чип для хранения криптографических ключей - vTPM).

Для трансляции доступа к оборудованию на стороне гостевой системы применяются существующие драйверы с поддержкой паравиртуализации или может выполняться прямая привязка устройств к виртуальной машине, что позволяет переносить в окружение на базе OpenHCL существующие гостевые системы без внесения в них изменений. Кроме того, OpenHCL включает компоненты для диагностики и отладки виртуальных машин, выполняемых с использованием расширений для обеспечения конфиденциальных вычислений.

В отличие от уже существующего открытого проекта COCONUT-SVSM (Secure VM Service Module), предоставляющего сервисы и эмулируемые устройства для гостевых систем, выполняемых в конфиденциальных виртуальных машинах (CVM, Confidential Virtual Machine), OpenHCL позволяет использовать в гостевых системах стандартные интерфейсы, в то время как COCONUT-SVSM требует организации специального взаимодействия с SVSM, внесения изменений в гостевую систему и использования отдельных драйверов.

Из применений паравизора OpenHCL упоминаются такие сценарии, как перевод существующих систем на использование аппаратных ускорителей Azure Boost без необходимости внесения изменений в дисковый образ гостевой системы; выполнение имеющихся гостевых систем в виртуальных машинах, обеспечивающих конфиденциальные вычисления (например, на базе Intel TDX и AMD SEV-SNP); организация верифицированной загрузки виртуальных машин, используя режим UEFI Secure Boot и vTPM.

Отдельно отмечается, что проект OpenVMM сфокусирован на использование с OpenHCL и пока не готов для обособленного применения на хост-системах для рабочих внедрений конечными пользователями. Из проблем OpenVMM, мешающих его использованию в хост-окружениях в традиционной контексте, вне связки с OpenHCL, упоминаются: плохое документирование управляющего интерфейса; отсутствие должной оптимизации производительности бэкендов для хранилищ, сети и графики; отсутствие поддержки некоторых драйверов (например, IDE-дисков и PS/2 мыши); нет гарантии стабильности API и функциональности. При этом связка из OpenVMM и OpenHCL уже достигла уровня промышленного внедрения и задействована Microsoft в платформе Azure (Azure Boost SKU) для обеспечения работы более 1.5 млн. виртуальных машин.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62070

Microsoft открыл код гипервизора OpenVMM и платформы паравиртуализации OpenHCL

Компания Microsoft объявила об открытии исходных текстов слоя для обеспечения паравиртуализации OpenHCL и монитора виртуальных машин OpenVMM, специально развиваемого для организации работы OpenHCL. Код OpenVMM и OpenHCL написан на языке Rust и
opennet

Выпуск мобильной платформы /e/OS 2.4

Доступен выпуск мобильной платформы /e/OS 2.4, сфокусированной на конфиденциальности пользовательских данных. Платформа основана Гаэлем Дювалем (Gaël Duval), создателем дистрибутива Mandrake Linux. Проект предоставляет прошивки для многих популярных моделей смартфонов, а также под брендами Murena One, Murena 2, Murena Fairphone 4/5, Murena Teracube 2e и Murena Pixel 5/7 предлагает редакции смартфонов OnePlus, Fairphone, Teracube и Pixel с предустановленной прошивкой /e/OS. Платформой поддерживается 180 смартфонов.

Прошивка /e/OS развивается как ответвление от платформы Android (используются наработки LineageOS), избавленное от привязки к сервисам и инфраструктуре Google, что позволяет с одной стороны сохранить совместимость с Android-приложениями и упростить поддержку оборудования, а с другой стороны блокировать передачу телеметрии на серверы Google и обеспечить высокий уровень конфиденциальности. Блокируется и неявная отправка информации, например, обращение к серверам Google при проверке доступности сети, резолвинге DNS и определении точного времени.

Для взаимодействия с сервисами Google предустановлен пакет microG, который позволяет обойтись без установки проприетарных компонентов и предлагает вместо сервисов Google независимые аналоги. Например, для определения местоположения по Wi-Fi и базовым станциям (без GPS) задействована прослойка UnifiedNlp, способная работать через OpenWlanMap, openBmap, OpenCellID, lacells.db и другие альтернативные сервисы. Вместо поисковой системы Google предлагается собственный метапоисковый сервис на основе форка движка Searx, обеспечивающий анонимность отправляемых запросов.

Для синхронизации точного времени вместо Google NTP используется NTP Pool Project, а вместо DNS-серверов Google (8.8.8.8) - DNS-серверы текущего провайдера. В web-браузере по умолчанию включён блокировщик рекламы и скриптов для отслеживания перемещений. Для синхронизации файлов и данных приложений разработан собственный сервис, который может работать c инфраструктурой на базе NextCloud. Серверные компоненты основаны на открытом ПО и доступны для установки на подконтрольных пользователю системах.

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

Проектом также развивается собственный менеджер аутентификации, позволяющий использовать для всех сервисов единую учётную запись (user@murena.io), регистрируемую в процессе первой установки. Учётную запись можно использовать для получения доступа к своему окружению через Web или на других устройствах. В облаке Murena Cloud бесплатно предоставляется 1ГБ для хранения своих данных, синхронизации приложений и резервных копий.

По умолчанию в состав входят такие приложения, как почтовый клиент (K9-mail), web-браузер (Cromite, ответвление от Chromium), программа для работы с камерой (OpenCamera), программа для отправки мгновенных сообщений (qksms), система для ведения заметок (nextcloud-notes), PDF-просмотрщик (MJ PDF), планировщик (opentasks), программа для работы с картами (Magic Earth), галерея фотографий (gallery3d), файловый менеджер (DocumentsUI).

https://honk.any-key.press/d/QPJ82DR47lkJHq8vFK.pnghttps://honk.any-key.press/d/gPYJjp2DF9CfZxy3z7.png

Основные изменения в /e/OS 2.4:

- Обеспечена официальная поддержка смартфона Google Pixel 7.
- Реализована возможность обновления программы управления учётными записями через менеджер приложений App Lounge, по аналогии с остальными приложениями. Кроме того, в App Lounge добавлена поддержка автообновления самого себя.
- В web-браузере обеспечена загрузка с собственного хоста gitlab.e.foundation фильтров для блокироваиня рекламы. Браузерный движок обновлён до кодовой базы Chromium 127.
- В календаре-планировщике предоставлена возможность добавления в календарь ics-файлов, включающих информацию о нескольких событиях.
- В прошивке для смартфона Fairphone 5 появилась возможность использования родного для данного смартфона приложения для работы с камерой. Улучшен интерфейс камеры для смартфона Murena Two.
- В программе доставки обновлений каналы stable и dev переименованы в official и community.
- Перенесены исправления и обновления из платформы LineageOS 20.
- Просмотрщик PDF обновлён до версии 2.2.1.



Источник: https://www.opennet.ru/opennews/art.shtml?num=62069

Выпуск мобильной платформы /e/OS 2.4

Доступен выпуск мобильной платформы /e/OS 2.4, сфокусированной на конфиденциальности пользовательских данных. Платформа основана Гаэлем Дювалем (Gaël Duval), создателем дистрибутива Mandrake Linux. Проект предоставляет прошивки для многих популярных моделей смартфонов, а также под брендами Murena One, Murena 2, Murena Fairphone 4/5, Murena Teracube 2e и Murena Pixel 5/7
opennet

Выпуск СУБД MySQL 9.1.0

Компания Oracle сформировала новую ветку СУБД MySQL 9.1.0. Сборки MySQL Community Server 9.1.0 подготовлены для всех основных дистрибутивов Linux, FreeBSD, macOS и Windows. В рамках внедрённой в прошлом году новой модели формирования релизов, MySQL 9.1 отнесён к веткам "Innovation", к которым также будет отнесён следующий значительный релиз MySQL 9.2. Innovation-ветки рекомендованы для тех, кто хочет раньше получать доступ к новой функциональности, публикуются каждые 3 месяца и поддерживаются только до публикации следующего значительного релиза (например, после появления ветки 9.1 прекращена поддержка ветки 9.0). Летом следующего года планируют сформировать LTS-релиз, рекомендованный для внедрений, которым необходима предсказуемость и длительное сохранение неизменного поведения. Следом за LTS-веткой будет сформирована новая Innovation-ветка - MySQL 10.0.

Основные изменения в MySQL 9.1:

- В операцию "CREATE VIEW" добавлена поддержка выражения "IF NOT EXISTS", позволяющего организовать создание представления только если представления с указанным именем ещё не существует и избежать возвращения ошибки, если представление уже создано.
- Прекращена загрузка триггеров при выполнении операций, связанных только с чтением. Ранее триггеры загружались при любом доступе к таблице, что приводило к расходованию памяти и созданию нагрузки на CPU в ситуациях, когда триггеры не использовались (например, при выполнении запросов SELECT). В MySQL 9.1 обработка и загрузка триггеров разделена на две стадии: чтение метаданных о триггере и разбор+выполнение траггера. Данные, полученные на первой стадии сохраняются один раз и затем совместно используются в различных экземплярах триггера. Разбор и выполнение триггера производится только для выражений, приводящих к изменению данных. Кроме того, для сокращения потребления памяти вместо статического выделения буферов для обработки ошибок в триггерах осуществлён переход к динамическому выделению памяти по необходимости.
- Расширен вывод операции "EXPLAIN", в котором теперь отображаются сведения об использовании многодиапазонного чтения (multi-range) и применении стратегии полуобъединения (semijoin), при которой при операциях JOIN обрабатываются строки только из одной таблицы.
- Обеспечено атомарное выполнение операций "CREATE DATABASE" и "DROP DATABASE" для защиты от сбоев в случае аварийного завершения или возникновения ошибок на уровне файловой системы во время выполнения данных операций. Например, ранее при аварийном завершении "CREATE DATABASE" могла быть сформирована неполная нерабочая структура хранилища БД, для очистки которой требовалось ручное вмешательство.
- В написанных на JavaScript хранимых процедурах обеспечена поддержка типа VECTOR. Данные с указанным типом теперь могут передаваться во входных и возвращаемых параметрах.
- Добавлена возможность аутентификации при подключении к СУБД с использованием протокола OpenID Connect.
- Устранено 27 уязвимостей, самой серьёзной из которых (CVE-2024-5535) присвоен критический уровень опасности (9.1 из 10). Уязвимость может быть эксплуатирована удалённо без прохождения аутентификации. Проблема вызвана чтением данных из области вне выделенного буфера в библиотеке OpenSSL и приводит к аварийному завершению или утечке содержимого памяти в ответе после соединения с сервером с указанием некорректных параметров протокола.



Источник: https://www.opennet.ru/opennews/art.shtml?num=62067

Выпуск СУБД MySQL 9.1.0

Компания Oracle сформировала новую ветку СУБД MySQL 9.1.0. Сборки MySQL Community Server 9.1.0 подготовлены для всех основных дистрибутивов Linux, FreeBSD, macOS и Windows. В рамках внедрённой в прошлом году новой модели формирования релизов, MySQL 9.1 отнесён к веткам "Innovation", к которым также будет отнесён следующий значительный релиз MySQL 9.2. Innovation-ветки рекомендованы для тех, кто хочет раньше получать доступ к новой функциональности, публикуются каждые 3 месяца...
opennet

Опубликована платформа Node.js 23.0 с начальной поддержкой языка TypeScript

Состоялся релиз Node.js 23.0.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 23.0 отнесён к промежуточным веткам, сопровождение которых осуществляется в течение 7 месяцев (до июня 2025 года). В ближайшие дни будет завершена стабилизация ветки Node.js 22, которая 29 октября получит статус LTS и будет поддерживаться до апреля 2027 года. Поддержка прошлых LTS-веток Node.js 20.x и 18.x продлится до апреля 2026 и 2025 годов соответственно.

Основные улучшения:

- Добавлена экспериментальная поддержка языка TypeScript, допускающего явное определение типов. Поддержка включается при помощи опций "--experimental-strip-types" и "--experimental-transform-types". В случае первой опции работа с TypeScript сводится к очистке специфичных для данного языка определений типов (проверка типов не выполняется, код просто приводится к виду JavaScript без типов). Вторая опция осуществляет преобразование в код на JavaScript некоторых элементов синтаксиса TypeScript, например, перечислений (enum) и пространств имён (namespace).
- Включена по умолчанию возможность использования вызова "require()" для загрузки JavaScript-модулей ESM (ECMAScript Modules) в синхронном режиме. ESM-модули применяются в браузерах и идут на смену модулям CommonJS, специфичным для Node.js. Для загрузки через "require()" в Node.js ESM-модуль должен выполняться в синхронном режиме (без await на верхнем уровне).
- Обеспечено автоматическое выявление ESM-модулей в файлах без расширения или с расширением ".js". Ранее подобные файлы трактовались как модули CommonJS, если в размещённом в том же каталоге файле package.json явно не указывался их тип ("type": "module"). В новой версии для файлов, тип которых не обозначен в package.json, вначале осуществляется попытка загрузки как модуля CommonJS, а если это не удалось, то как модуля ESM.
- Добавлена экспериментальная реализация совместимого с браузерами API Web Storage, предназначенного для постоянного (класс localStorage) или временного (класс sessionStorage) хранения данных в формате ключ/значение. Для включения поддержки Web Storage требуется запуск с флагом "--experimental-webstorage" и указание пути к файлу с хранилищем через флаг "--localstorage-file".
- Добавлен экспериментальный API SQLite для работы с базами данных, используя язык запросов SQL и хранилище на базе библиотеки SQLite. Помимо хранения базы данных в файле на диске, её также можно размещать в памяти, указав вместо имени файла ":memory:". Вышеотмеченной API Web Storage также реализован поверх SQLite, что привело к добавлению SQLite в число зависимостей для Node.js.
- Объявлена стабильной команда "node --run", предназначенная для запуска скриптов, определённых в файле package.json.
- Реализована опциональная поддержка кэширования скомпилированного кода на диске для существенного ускорения запуска модулей. Включение кэширования осуществляется через переменную окружения NODE_COMPILE_CACHE. По своему назначению возможность напоминает пакет v8-compile-cache, но отличается более высокой производительностью и поддержкой модулей ESM.
- Проведена оптимизация объекта Buffer, позволившая значительно увеличить производительность методов Buffer.copy() и Buffer.write().
- Повышена производительность модуля node:fs, в котором также сокращено число вызовов кода на C++ в процессе работы.
- Движок V8 обновлён до версии 12.9, применяемой в Chromium 129.
- Удалена поддержка 32-разрядных систем с ОС Windows.
- Из-за внедрения в Node.js и движке V8 возможностей, определённых в стандарте C++20, повышены требования к версии компилятора GCC. Для сборки Node.js теперь требуется как минимум версия GCC 12.

Платформа Node.js может быть использована как для серверного сопровождения работы Web-приложений, так и для создания обычных клиентских и серверных сетевых программ. Для расширения функциональности приложений для Node.js подготовлена большая коллекция модулей, в которой можно найти модули с реализацией серверов и клиентов HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, модули для интеграции с различными web-фреймворками, обработчики WebSocket и Ajax, коннекторы к СУБД (MySQL, PostgreSQL, SQLite, MongoDB), шаблонизаторы, CSS-движки, реализации криптоалгоритмов и систем авторизации (OAuth), XML-парсеры.

Для обеспечения обработки большого числа параллельных запросов Node.js задействует асинхронную модель запуска кода, основанную на обработке событий в неблокирующем режиме и определении callback-обработчиков. В качестве способов мультиплексирования соединений поддерживаются такие методы, как epoll, kqueue, /dev/poll и select. Для мультиплексирования соединений используется библиотека libuv, которая является надстройкой над libev в системах Unix и над IOCP в Windows. Для создания пула потоков (thread pool) задействована библиотека libeio, для выполнения DNS-запросов в неблокирующем режиме интегрирован c-ares. Все системные вызовы, вызывающие блокирование, выполняются внутри пула потоков и затем, как и обработчики сигналов, передают результат своей работы обратно через неименованный канал (pipe).

Выполнение JavaScript-кода обеспечивается через задействование разработанного компанией Google движка V8 (дополнительно Microsoft развивает вариант Node.js с движком Chakra-Core). По своей сути Node.js похож на фреймворки Perl AnyEvent, Ruby Event Machine, Python Twisted и реализацию событий в Tcl, но цикл обработки событий (event loop) в Node.js скрыт от разработчика и напоминает обработку событий в web-приложении, работающем в браузере.


Источник: https://www.opennet.ru/opennews/art.shtml?num=62066

Опубликована платформа Node.js 23.0 с начальной поддержкой языка TypeScript

Состоялся релиз Node.js 23.0.0, платформы для выполнения сетевых приложений на языке JavaScript. Node.js 23.0 отнесён к промежуточным веткам, сопровождение которых осуществляется в течение 7 месяцев (до июня 2025 года). В ближайшие дни будет завершена стабилизация ветки Node.js 22, которая 29 октября получит статус LTS и будет поддерживаться до апреля 2027 года. Поддержка прошлых LTS-веток Node.js 20.x и 18.x продлится до...
opennet

Google проанализировал уязвимости, в 2023 году задействованные для совершения атак

Компания Google опубликовала отчёт с результатами анализа 138 уязвимостей, которые были выявлены в 2023 году и применялись злоумышленниками в эксплоитах для осуществления атак. Для 70% (97 из 138) из рассмотренных уязвимостей эксплоиты появились раньше, чем были предложены исправления в уязвимом ПО (0-day). В 30% (41 из 138) случаев первый факт эксплуатации уязвимости выявлен уже после публикации исправлений (n-day). В отчёте за 2021-2022 годы доля n-day уязвимостей составляла 38%, а за 2020 год - 39%.

Из тенденций также отмечается значительное ускорение разработки эксплоитов - среднее время появления эксплоитов для новых уязвимостей в 2023 году составило 5 дней после публикации исправления в уязвимом ПО, в то время как в 2021 и 2022 годах этот показатель составлял 32 дня, в 2020 году - 44 дня, а в 2018-2019 годах - 63 дня. В 12% случаев первый факт эксплуатации уязвимости выявлен в течение суток после публикации патча, в 29% - в течение недели, в 56% - в течение месяца, в 5% - 6 месяцев (в 2022 году этот показатель составлял 25%).

В качестве примеров рассмотрены критические уязвимости CVE-2023-28121 и CVE-2023-27997, затрагивающие плагин WooCommerce Payments к WordPress и Fortinet FortiOS. В первом случае эксаплуатация была примитивной и требовала отправки определённого HTTP-запроса для обхода аутентификации, а во втором случае для эксплуатации переполнения буфера и обхода механизма рандомизации адресов потребовалось создание достаточно сложного эксплоита. Атаки на WooCommerce Payments начались через 10 дней после публикации технических деталей, а на FortiOS лишь спустя 3 месяца, при этом первые рабочие эксплоиты были предложены через 8 дней и 3 дня соответственно.

https://honk.any-key.press/d/G64tkbqjBLfjVlzSj9Bp1.jpg

https://honk.any-key.press/d/G646YjR83RNdMf3Z7R2Zy.jpg

Источник: https://www.opennet.ru/opennews/art.shtml?num=62065

Google проанализировал уязвимости, в 2023 году задействованные для совершения атак

Компания Google опубликовала отчёт с результатами анализа 138 уязвимостей, которые были выявлены в 2023 году и применялись злоумышленниками в эксплоитах для осуществления атак. Для 70% (97 из 138) из рассмотренных уязвимостей эксплоиты появились раньше, чем были предложены исправления в уязвимом ПО (0-day). В 30% (41 из 138) случаев первый факт эксплуатации уязвимости выявлен уже после публикации исправлений (n-day)....
opennet

Доступна платформа совместной разработки Forgejo 9.0, перешедшая на лицензию GPLv3

Опубликован выпуск платформы совместной разработки Forgejo 9.0, позволяющей развернуть на своих серверах систему для совместной работы с репозиториями Git, напоминающую по решаемым задачам GitHub, Bitbucket и Gitlab. Forgejo является форком проекта Gitea, который в свою очередь ответвился от платформы Gogs. Отделение Forgejo произошло в 2022 году после попыток коммерциализации Gitea и перехода управления в руки коммерческой компании. Проект Forgejo придерживается принципов независимого управления и подконтрольности сообществу. На использование Forgejo перешёл Git-хостинг Codeberg.org. Код проекта написан на языке Go и распространяется под лицензией MIT.

Ключевыми особенностями платформы является низкое потребление ресурсов (может использоваться на плате Raspberry Pi или в дешёвых VPS) и простой процесс установки. Предоставляются типовые возможности работы с проектами, такие как управление задачами, отслеживание проблем (issues), pull-запросы, wiki, средства для координации групп разработчиков, подготовка релизов, автоматизация размещения пакетов в репозиториях, управление правами доступа, сопряжение с платформами непрерывной интеграции, поиск кода, аутентификация через LDAP и OAuth, доступ к репозиторию по протоколам SSH и HTTP/HTTPS, подключение web-хуков для интеграции со Slack, Discord и другими сервисами, поддержка Git-хуков и Git LFS, инструменты для миграции и зеркалирования репозиториев. Отдельно выделяется возможность использования протокола ActivityPub для объединения в федеративную сеть отдельных серверов разработчиков.

Основные изменения:

- Осуществлён переход c пермиссивной лицензией MIT на копилефт лицензию GPLv3+ для нового кода. Cмена лицензии упростит задействование в проекте кода, распространяемого под копилефт-лицензиями, не совместимыми с MIT, а также снизит риск применения недобросовестных бизнес-практик, таких как привязка пользователя к определённому поставщику и создание модифицированных версий Forgejo, распространяемых с дополнительными ограничениями.
- Добавлена начальная реализация системы настраиваемых квот, позволяющих ограничивать размер пользовательских данных на сервере. Реализация основана на установке мягких квот (soft quota), превышение которых проверяется только перед выполнением операций, но не ограничивается в случае превышения квоты в процессе выполнения операций.
- Разрешено использование SSH-ключей вместо паролей для аутентификации операций зеркалирования.
- Для работы с Git оставлен только бэкенд на базе штатного инструментарий Git. Удалён бэкенд go-git с реализацией Git на языке Go, что упростит сопровождение, позволит развивать Forgejo без оглядки на функциональность go-git и исключит проблемы с повреждением репозиториев, возникавших в go-git.
- Удалён провайдер сеансов на базе СУБД Couchbase, так как он завязан на несвободное ПО, возможности тестирования которого ограничены.



Источник: https://www.opennet.ru/opennews/art.shtml?num=62064

Доступна платформа совместной разработки Forgejo 9.0, перешедшая на лицензию GPLv3

Опубликован выпуск платформы совместной разработки Forgejo 9.0, позволяющей развернуть на своих серверах систему для совместной работы с репозиториями Git, напоминающую по решаемым задачам GitHub, Bitbucket и Gitlab. Forgejo является
opennet

Репозиторий с кодом WinAmp удалён с GitHub

Компания Llama Group, которая в сентябре опубликовала исходный код мультимедийного проигрывателя Winamp, удалила репозиторий проекта с GitHub. Причины удаления не поясняются, но ранее в репозитории было выявлено множество утечек и нарушений копилефт лицензий. В частности, после публикации в репозитории WinAmp был обнаружен код проданного другой компании коммерческого сервера SHOUTcast, чужой проприетарный код и сертификат для формирования цифровых подписей, а также несколько изменённых файлов из других проектов, распространяемых под лицензией GPL (Winamp не может использовать в своём составе GPL-код без перевода собственного кода на лицензию, совместимую с GPL).

Источник: https://www.opennet.ru/opennews/art.shtml?num=62063

Репозиторий с кодом WinAmp удалён с GitHub

Компания Llama Group, которая в сентябре опубликовала исходный код мультимедийного проигрывателя Winamp, удалила репозиторий проекта с GitHub. Причины удаления не поясняются, но ранее в репозитории было выявлено множество утечек и нарушений копилефт лицензий. В частности, после публикации в репозитории WinAmp был обнаружен код проданного другой компании коммерческого сервера SHOUTcast, чужой проприетарный код и сертификат для формирования цифровых подписей,...
opennet

Проект Asterinas развивает ядро на языке Rust, совместимое с Linux

Группа разработчиков из Китая развивает ядро Asterinas, написанное на языке Rust и предназначенное для использования в операционных системах общего назначения. Для упрощения интеграции с уже разработанными системными компонентами ядро предоставляет ABI (Application Binary Interface), совместимый с ядром Linux и способный использоваться вместо него. Код проекта распространяется под лицензией MPL (Mozilla Public License).

Проект развивается с осени 2022 года и намерен уже в этом году добиться уровня, пригодного для широкого использования в виртуальных машинах с архитектурой x86-64. Начиная со следующего года основное внимание планируют переключить на реализацию поддержки оборудования и других архитектур CPU. Из приоритетных областей применения называются системы, завязанные на Linux ABI, но требующие более высокого уровня защищённости. Например, Asterinas предлагается использовать для формирования системного окружения защищённых виртуальных машин, для изоляции которых используются такие технологии, как ARM CCA, AMD SEV и Intel TDX, а также на стороне хост-системы, обеспечивающей запуск контейнеров.

Для снижения вероятности появления ошибок при работе с памятью, являющихся главным источником наиболее опасных уязвимостей, при написании Asterinas задействован язык Rust и тактика ограниченного использования unsafe-блоков. Ядро построено с использованием архитектуры framekernel, в которой разработчики попытались совместить возможности изоляции микроядер с эффективностью монолитных ядер.

Компоненты ядра в Asterinas размещаются в общем адресном пространстве, а безопасность достигается на уровне логического разделения безопасного кода и кода в котором не исключено возникновение проблем с безопасностью. Ядро разбито на две части, написанные на Rust: OS Framework и OS Services. В OS Services запрещено применение unsafe-блоков, а все низкоуровневые операции, требующие выполнения кода в блоках unsafe, вынесены в OS Framework и доступны только через высокоуровневый API. Все системные вызовы, файловые системы и драйверы реализуются на уровне OS Services и не могут включать unsafe-блоки.

При разработке системных сервисов и модулей ядра предлагается использовать инструментарий OSDK (Operating System Development Kit), предоставляющий утилиту cargo-osdk для создания, сборки, тестирования и запуска компонентов операционной системы. Для разработчиков подготовлен набор библиотек OSTD (Operating System Standard Library), представляющий собой редакцию стандартных библиотек Rust(crate std), адаптированную для использования в компонентах операционной системы.

Источник: https://www.opennet.ru/opennews/art.shtml?num=62061

Проект Asterinas развивает ядро на языке Rust, совместимое с Linux

Группа разработчиков из Китая развивает ядро Asterinas, написанное на языке Rust и предназначенное для использования в операционных системах общего назначения. Для упрощения интеграции с уже разработанными системными компонентами ядро предоставляет ABI (Application Binary Interface), совместимый с ядром Linux и способный использоваться вместо него. Код проекта
opennet

Выпуск компилятора ISPC 1.25, развиваемого Intel для языка Си с расширениями SPMD

Компания Intel опубликовала компилятор ISPC 1.25 (Implicit SPMD Program Compiler), предназначенный для сборки кода на языке Си с расширениями параллельного программирования SPMD (Single Program, Multiple Data), позволяющими добиться параллельного выполнения нескольких экземпляров одной программы с разными наборами входных данных. Код проекта написан на языке С++ и распространяется под лицензией BSD. Поддерживается работа в Linux, Windows, macOS и FreeBSD.

Си-программы с расширениями SPMD компилируются для выполнения на вычислительных блоках SIMD, предоставляемых CPU и GPU, что позволяет задействовать механизмы векторизации SIMD без низкоуровневых оптимизаций и явного применения в коде SIMD-инструкций. Для написания распараллеливаемых функций используется привычный синтаксис и идиомы языка Си - SPMD-функции напрямую взаимодействуют с функциями и структурами, написанными на C/C++. Для отладки программ могут применяться существующие отладчики.

В качестве бэкенда для генерации кода и оптимизации в ISPC используется инфраструктура LLVM. Поддерживаются векторные инструкции x86 (SSE2, SSE4, AVX, AVX2, AVX512) и ARM (NEON), а также вынос вычислений на сторону GPU (Intel Gen9 и Xe). На архитектурах с векторными блоками SSE, обрабатывающими по 4 элемента за раз, применение ISPC даёт возможность добиться ускорения выполнения программы в 3 или более раз, а на архитектурах с векторными блоками AVX, обрабатывающими по 8 элементов за раз, ускорение может достигать 5-6 раз. При этом помимо размера векторного блока, масштабирование также обеспечивается за счёт выполнения на разных процессорных ядрах.

Основные новшества, добавленные в версии ISPC 1.25:

- При объявлении переменных и функций разрешено указание атрибутов "noescape", "address_space(N)", "external_only" и "unmangled" при помощи ключевого слова "__attribute__".
- Добавлена поддержка использования шаблонов при объявлении векторов и массивов.
- Обеспечен вывод сообщений об ошибках при использовании несовместимых типов при объявлении переменных.
- Улучшена генерация кода для циклов foreach. Повышена эффективность генерации кода на основе наборов инструкций AVX2 и AVX512.
- Обеспечена упреждающая компиляция стандартной библиотеки (stdlib), выполняемая на стадии сборки ISPC, а не при компиляции проектов. Изменение позволило сократить время сборки на 5-60%, в зависимости от размера собираемого кода.
- Добавлены новые сборочные цели: xe2hpg-x16 и xe2hpg-x32 для GPU Intel Xe2 Battlemage, xe2lpg-x16 и xe2lpg-x32 для GPU Intel X Xe2 Lunar Lake. Также добавлены определения arrowlake, lunarlake и graniterapids для CPU Intel ArrowLake, LunarLake и GraniteRapids.
- Объявлены устаревшими сборочные цели avx512knl-x16, gen9-x8 и gen9-x16.
- В стандартную библиотеку для данных с типами float и double добавлены атомарные операции сложения, вычитания, поиска минимума и максимума.
- Добавлена опция командной строки "-ffunction-sections" для генерации каждой функции в отдельной секции.
- Предоставлена возможность сборки ISPC в двух режимах "slim" и "composite" (по умолчанию). Второй режим отличается интеграцией библиотек stdlib и binutils в единый исполняемый файл, вместо их поставки в виде отдельных файлов.



Источник: https://www.opennet.ru/opennews/art.shtml?num=62059

Выпуск компилятора ISPC 1.25, развиваемого Intel для языка Си с расширениями SPMD

Компания Intel опубликовала компилятор ISPC 1.25 (Implicit SPMD Program Compiler), предназначенный для сборки кода на языке Си с расширениями параллельного программирования SPMD (Single Program, Multiple Data), позволяющими добиться параллельного выполнения нескольких экземпляров одной программы с разными наборами входных данных. Код проекта написан на языке С++ и
Наверх