The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

·03.05.2024 Выпуск языка программирования Mojo 24.3 (16 +1)
  Опубликован выпуск инструментария языка программирования Mojo 24.3, позволяющего компилировать проекты на локальной системе. В состав включены компоненты, необходимые для разработки приложений на языке Mojo, включая компилятор, runtime, интерактивную REPL-оболочку для сборки и запуска программ, отладчик, дополнение к редактору кода Visual Studio Code (VS Code) с поддержкой автодополнения ввода, форматирования кода и подсветки синтаксиса, модуль для интеграции с Jupyter для сборки и запуска Mojo notebook. Исходные тексты стандартной библиотеки Mojo открыты под лицензией Apache 2.0 c исключениями от проекта LLVM, допускающими смешивание с кодом под лицензией GPLv2. Исходный код компилятора планируют открыть после завершения проектирования внутренней архитектуры.

Одновременно сформирвоан выпуск движка MAX Engine 24.3, предлагающего платформу для разработок в области машинного обучения. MAX Engine дополняет инструментарий Mojo средствами для разработки и отладки приложений, использующих модели машинного обучения в различных форматах (TensorFlow, PyTorch, ONNX и т.п.). Сборки Mojo SDK и MAX Engine подготовлены для платформы Linux и macOS.

Среди изменений в Mojo 24.3:

  • В модули для работы с коллекциями (List, Dict, Set и Tuple) добавлены возможности, делающие их более привычные пользователям, знакомым с языком программирования Python. В тип List добавлены методы, повторяющие Python API, такие как pop(index), resize(new_size) и insert(index, value).
  • В тип Dict добавлен метод update() для обновления ключа/значения из другого Dict.
  • В типе Tuple обеспечена работа с хранящимися только в памяти типами, такими как String, что позволяет указывать "x = tup[1]" вместо "x = tup.get[1, Int]()" и присваивать значения через "tup[1] = x".
  • В типе Set реализована поддержка именованных методов, которые можно использовать вместо операторов: difference() вместо "-", difference_update() вместо "-=", intersection_update() вместо "&=" и update() вместо "|=".
  • Добавлена функция reversed(), позволяющая поменять порядок следования элементов на обратный. Функция reversed() может применяться с List, Dict и любыми типами, поддерживающими диапазоны значений.
    
       var numbers = List(1, 2, 3, 4, 5)
       for number in reversed(numbers):
           print(number)
    
  • Реализован типаж Boolable, возвращающий для переменных с типами Dict, List и Set значение True, если они содержат хотя бы один элемент.
  • Улучшена поддержка вариативных аргументов. Предоставлена возможность определения функций, содержащих одновременно как необязательные, так и вариативные аргументы.
    
       fn variadic_arg_after_default(
         a: Int, b: Int = 3, *args: Int, c: Int, d: Int = 1, **kwargs: Int
       ): ...
    
  • Добавлены функции __source_location() и __call_location() для определения местоположения (номер строки в исходных текстах) вызовов функций и кода.
  • В метод FileHandle.seek() по аналогии с языком Python добавлена поддержка аргумента "whence".
  • Тип AnyPointer переименован в UnsafePointer. Добавлена возможность инициализации UnsafePointer из напрямую из ссылки с типом Reference ("UnsafePointer(someRef)"). Для работы с указателями UnsafePointer добавлены функции initialize_pointee_copy, initialize_pointee_move, move_from_pointee() и move_pointee.

Язык Mojo развивается под руководством Криса Латнера (Chris Lattner), основателя и главного архитектора проекта LLVM и создателя языка программирования Swift. Синтаксис Mojo основан на языке Python, а система типов близка к C/C++. Проект преподносится как язык общего назначения, расширяющий возможности языка Python средствами системного программирования, подходящий для широкого круга задач и сочетающий простоту применения для исследовательских разработок и быстрого создания прототипов с пригодностью для формирования высокопроизводительных конечных продуктов.

Простота достигается благодаря использованию привычного синтаксиса языка Python, а разработке конечных продуктов способствуют возможность компиляции в машинный код, механизмы безопасной работы с памятью и задействование средств для аппаратного ускорения вычислений. Для достижения высокой производительности поддерживается распараллеливание вычислений с задействованием всех имеющихся в системе аппаратных ресурсов гетерогенных систем, таких как GPU, специализированные ускорители для машинного обучения и векторные процессорные инструкции (SIMD). При интенсивных вычислениях распараллеливание и задействование всех вычислительных ресурсов даёт возможность добиться производительности, превосходящей приложения на C/C++.

Язык поддерживает статическую типизацию и средства для безопасной низкоуровневой работы с памятью, напоминающие возможности языка Rust, такие как отслеживание времени жизни ссылок и проверка заимствования переменных (borrow checker). При этом в языке доступны и возможности для низкоуровневой работы, например, возможно прямое обращение к памяти в режиме unsafe с использованием типа Pointer, вызов отдельных SIMD-инструкций или доступ к аппаратным расширениям, таким как TensorCores и AMX.

Mojo может использоваться как в режиме интерпретации с использованием JIT, так и для компиляции в исполняемые файлы (AOT, ahead-of-time). В компилятор встроены современные технологии автоматической оптимизации, кэширования и распределённой компиляции. Исходный код на языке Mojo преобразуются в низкоуровневый промежуточный код MLIR (Multi-Level Intermediate Representation), развиваемый проектом LLVM. Компилятор позволяет применять для генерации машинного кода различные бэкенды, поддерживающие MLIR.

  1. OpenNews: Открытие стандартной библиотеки языка Mojo. Обновление инструментария Mojo 24.2
  2. OpenNews: Обновление инструментария для языка программирования Mojo
  3. OpenNews: Доступен для тестирования инструментарий для языка программирования Mojo
  4. OpenNews: Создатель LLVM развивает новый язык программирования Mojo
  5. OpenNews: Сотрудник Google развивает язык программирования Carbon, нацеленный на замену C++
Обсуждение (16 +1) | Тип: Программы |
·02.05.2024 Выпуск Rust 1.78. Язык Borgo, сочетающий сильные стороны Go и Rust (132 +16)
  Опубликован релиз языка программирования общего назначения Rust 1.78, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).

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

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

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

  • Предложено новое пространство имён атрибутов "#[diagnostic]", предоставляющее средства для влияния на выдаваемые компилятором сообщения об ошибках. Первым в новом пространстве реализован атрибут "#[diagnostic::on_unimplemented]", который может использоваться для настройки сообщений об ошибках, выдаваемых в ситуации, когда требуется использовать типаж, который не реализован для типа.
    
       #[diagnostic::on_unimplemented(
           message = "My Message for `ImportantTrait<{A}>` is not implemented for `{Self}`",
           label = "My Label",
           note = "Note 1",
           note = "Note 2"
       )]
       trait ImportantTrait<A> {}
    
       fn use_my_trait(_: impl ImportantTrait<i32>) {}
    
       fn main() {
           use_my_trait(String::new());
       }
    
       error[E0277]: My Message for `ImportantTrait<i32>` is not implemented for `String`
      --> src/main.rs:12:18
       |
    12 |     use_my_trait(String::new());
       |     ------------ ^^^^^^^^^^^^^ My Label
       |     |
       |     required by a bound introduced by this call
       |
       = help: the trait `ImportantTrait<i32>` is not implemented for `String`
       = note: Note 1
       = note: Note 2
    
  • Предварительные assert-проверки, применяемые к unsafe-функциями, теперь могут откладываться до стадии генерации кода, что позволяет выполнять данные проверки без необходимости сборки стандартной библиотеки в режиме "#[cfg(debug_assertions)]". Для срабатывания проверок теперь достаточно включения отладочных assert-ов для тестовых или отладочных сборок своего кода.
  • Поведение функций в стандартной библиотеке, влияющих на выравнивание указателей и срезов (slice), теперь предсказуемо во время выполнения и зависит от входных данных. Функция pointer::align_offset, вычисляющая смещение для выравнивания указателя, теперь возвращает usize::MAX только при невозможности выполнения операции. Функции slice::align_to и slice::align_to_mut both, преобразующие срезы в представление с выровненным средним срезом и исходными начальным и конечным срезами, теперь всегда возвращают самую большую среднюю часть.
  • В разряд стабильных переведены:
  • Функция Barrier::new() стабилизирована для использования с признаком "const" в любом контексте вместо констант.
  • Для целевых платформ x86_64-pc-windows-msvc, i686-pc-windows-msvc, x86_64-pc-windows-gnu, i686-pc-windows-gnu, x86_64-pc-windows-gnullvm и i686-pc-windows-gnullvm теперь требуется как минимум версия Windows 10.
  • Реализован третий уровень поддержки для платформ wasm32-wasip2, arm64ec-pc-windows-msvc, armv8r-none-eabihf и loongarch64-unknown-linux-musl. Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования, публикации официальных сборок и проверки возможности сборки кода.
  • Реализован второй уровень поддержки целевой платформы Add wasm32-wasip1. Второй уровень поддержки подразумевает гарантию сборки.
  • Платформа wasm32-wasi-preview1-threads переименована в wasm32-wasip1-threads.
  • Компилятор переведён на использование LLVM 18. При использовании LLVM 18 для архитектур x86-32 и x86-64 изменён ABI, связанный с типами u128 и i128.
  • В пакетном менеджере Cargo стабилизирована 4 версия файлов-блокировок (lockfile v4).
  • В Cargo cтабилизирован глобальный кэш с информацией о последнем использовании данных. Кэш размещается в файле $CARGO_HOME/.global-cache при помощи SQLite, обновляется автоматически и отражает последние изменения, связанные с индексом, crate-файлом, каталогом с кодом, git clone и git checkout.



Дополнительно можно отметить язык программирования Borgo, который пытается быть более выразительным, чем язык Go, но менее сложным, чем язык Rust. Borgo комбинирует лучшие черты Go и Rust, восполняя недостатки каждого из языков. Например, язык Go прост и понятен, но не предоставляет расширенных средств для обеспечения безопасности при работе с типами. Язык Rust предоставляет средства для безопасного программирования, но переусложнён. Проект развивает Marco Sampellegrini, автор книги "The Simple Haskell Handbook" и разработчик системы непрерывной интеграции Quad CI.

В Borgo используется статическая типизация, аналогичные языку Go типы и синтаксис, похожий на Rust. Указание точек с запятой в конце строк в коде на Borgo не является обязательным. Код на языке Borgo компилируется в представление на языке Go, которое полностью совместимо с существующими пакетами для языка Go. Код компилятора написан на языке Rust и распространяется под лицензией ISC.


use fmt

enum NetworkState<T> {
    Loading,
    Failed(int),
    Success(T),
}

struct Response {
    title: string,
    duration: int,
}

fn main() {
    let res = Response {
        title: "Hello world",
        duration: 0,
    }

    let state = NetworkState.Success(res)

    let msg = match state {
        NetworkState.Loading => "still loading",
        NetworkState.Failed(code) => fmt.Sprintf("Got error code: %d", code),
        NetworkState.Success(res) => res.title,
    }

    fmt.Println(msg)
}

  1. OpenNews: Выпуск языка программирования Rust 1.77
  2. OpenNews: Проект по интеграции с Qt web-движка Servo, развиваемого на языке Rust
  3. OpenNews: Проект по реализации zlib на языке Rust
  4. OpenNews: В Thunderbird добавят реализацию протокола Microsoft Exchange на языке Rust
  5. OpenNews: Red Hat представил Nova, драйвер для GPU NVIDIA, написанный на языке Rust
Обсуждение (132 +16) | Тип: Программы |
·02.05.2024 Компания Valve выпустила Proton 9.0, пакет для запуска Windows-игр в Linux (79 +31)
  Компания Valve опубликовала стабильный релиз проекта Proton 9.0, основанного на кодовой базе проекта Wine и нацеленного на обеспечение запуска в Linux игровых приложений, созданных для Windows и представленных в каталоге Steam. Наработки проекта распространяются под лицензией BSD.

Proton позволяет напрямую запускать в Linux-клиенте Steam игровые приложения, поставляемые только для Windows. Пакет включает в себя реализацию DirectX 9/10/11 (на базе пакета DXVK) и DirectX 12 (на базе vkd3d-proton), работающие через трансляцию вызовов DirectX в API Vulkan, предоставляет улучшенную поддержку игровых контроллеров и возможность использования полноэкранного режима независимо от поддерживаемых в играх разрешений экрана. Для увеличения производительности многопоточных игр поддерживаются механизмы "esync" (Eventfd Synchronization) и "futex/fsync".

Среди изменений в новой версии Proton:

  • Выполнена синхронизация с выпуском Wine 9.0. Из Proton в upstream перенесены накопившиеся специфичные патчи, которые теперь входят в основной состав Wine.
  • До версии 2.3 обновлена прослойка DXVK, транслирующая вызовы в API Vulkan.
  • VKD3D-Proton, ответвление от vkd3d, созданное Valve для улучшения поддержки Direct3D 12 в Proton, обновлено до версии 2.11.1.
  • Пакет Dxvk-nvapi с реализацией библиотеки NVAPI поверх DXVK обновлён до версии 0.6.4.
  • Добавлена поддержка Steamworks SDK 1.59.
  • Добавлена поддержка игр:

    • Aisling and the Tavern of Elves
    • Bloody Walls
    • Command & Conquer: Red Alert 2 и Yuri’s Revenge
    • Command & Conquer Tiberian Sun и Firestorm
    • Dinogen Online
    • George McGeehan Gamer Hero
    • Insanity's Blade
    • Lord of the Rings: Gollum
    • Photography Simulator Demo
    • Road to Vostok Demo
    • Snares of Ruin 2
    • Sonic Colors: Ultimate
    • The Finals
    • True Reporter. Mystery of Mistwood
    • WITCH ON THE HOLY NIGHT
  • Обеспечена возможность использования многоядерных CPU в играх:

    • Far Cry 2
    • Far Cry 4
    • Lara Croft and the Guardian of Light
    • Outcast - Second Contact
    • Prototype
    • The Witcher 2: Assassins of Kings Enhanced Edition
    • Warhammer 40,000: Space Marine
    • Warhammer 40,000: Dawn of War II
    • Warhammer 40,000: Dawn of War II - Chaos Rising
    • Warhammer 40,000: Dawn of War II - Retribution
  • Pешены проблемы при запуске игр:

    • Airborne Kingdom
    • Bayonetta
    • BIOMUTANT
    • Brawhalla
    • Carmageddon: Max Damage
    • Command & Conquer Red Alert
    • Disaster Report 4: Summer Memories
    • Doom Eternal
    • DayZ
    • Escape from Monkey Island
    • Fantastic Danmaku Festival Part I/II
    • Final Fantasy XIV
    • Greek Wars
    • Harvestella
    • KING OF FIGHTERS XV
    • Last Of Us Part I
    • Lethal Company
    • Lords of the Fallen
    • Risk of Rain 2
    • Phasmophobia
    • Savant - Ascent REMIX
    • Sea of Thieves
    • Super Robot Wars 30
    • The Last Game
    • Trove
    • Wayfinder

  1. OpenNews: Компания Valve выпустила Proton 8.0-5, пакет для запуска Windows-игр в Linux
  2. OpenNews: Компания Valve выпустила Proton 8.0, пакет для запуска Windows-игр в Linux
  3. OpenNews: Стабильный релиз Wine 9.0
  4. OpenNews: Выпуск Wine 9.7
Обсуждение (79 +31) | Тип: Программы |
·02.05.2024 Релиз дистрибутива Red Hat Enterprise Linux 9.4 (130 +1)
  Компания Red Hat опубликовала релиз дистрибутива Red Hat Enterprise Linux 9.4. Готовые установочные образы доступны для зарегистрированных пользователей Red Hat Customer Portal (для оценки функциональности также можно использовать iso-образы CentOS Stream 9 и бесплатные сборки RHEL для разработчиков). Выпуск сформирован для архитектур x86_64, s390x (IBM System z), ppc64le и Aarch64 (ARM64).

Ветка RHEL 9 развивается с более открытым процессом разработки и использует в качестве основы пакетную базу CentOS Stream 9. CentOS Stream позиционируется как upstream-проект для RHEL, дающий возможность сторонним участникам контролировать подготовку пакетов для RHEL, предлагать свои изменения и влиять на принимаемые решения. В соответствии с 10-летним циклом поддержки дистрибутива RHEL 9 будет сопровождаться до 2032 года.

Исходные тексты rpm-пакетов RHEL 9.4 не размещены в публичном репозитории git.centos.org и предоставляются клиентам компании только через закрытый раздел сайта, на котором действует пользовательское соглашение (EULA), запрещающее редистрибуцию данных, что не позволяет использовать эти пакеты для создания производных дистрибутивов. Исходные тексты остаются доступны в репозитории CentOS Stream, но он полностью не синхронизирован с RHEL и в нём не всегда самые свежие версии пакетов совпадают с пакетами из RHEL. Rocky Linux, Oracle и SUSE воспроизводят исходные тексты rpm-пакетов релизов RHEL в рамках проекта OpenELA.

Ключевые изменения в RHEL 9.4:

  • Обеспечена полная поддержка технологии создания изолированных анклавов Intel SGX (Software Guard Extensions). Поддерживаются версии SGX 1 и 2, позволяющие использовать механизмы FLC (Flexible Launch Control) и EDMM (Enclave Dynamic Memory Management) для изменения прав доступа к отдельным страницам памяти анклава, динамического добавления/удаления страниц памяти к анклаву и расширения анклава.
  • В разряд стабильных переведён драйвер IDXD (Data Streaming Accelerator) для задействования ускорителей передачи данных, встроенных в CPU Intel. Ранее SGX и IDXD были отнесены к экспериментальным возможностям (Technology Preview).
  • Реализация подсистемы eBPF синхронизирована с ядром Linux 6.6 (в прошлом выпуске использовалась реализация eBPF из ядра Linux 6.3).
  • В загрузчик GRUB и прослойку shim добавлена возможность применения механизмов защиты памяти DEP (Data Execution Prevention), NX (No Execute) и XD (Execute Disable) для запрета исполнения инструкций в определённых областях памяти на стадии до начала загрузки системы.
  • В состав включены новые версии компиляторов и инструментов для разработчиков: GCC Toolset 13, LLVM Toolset 17.0.6, Rust Toolset 1.75.1 и Go Toolset 1.21.7.
  • Добавлены отдельные пакеты (Application Streams) c новыми версиями Python 3.12, Ruby 3.3, PHP 8.2, nginx 1.24, MariaDB 10.11, PostgreSQL 16.
  • Обновлены версии Git 2.43.0, Git LFS 3.4.1, Valgrind 3.22, SystemTap 5.0, elfutils 0.190, cmake 3.26. Добавлены новые пакеты maven-openjdk21 и libzip-tools.
  • Обновлены пакеты, связанные с безопасностью: GnuTLS 3.8.3, nettle 3.9.1, p11-kit 0.25.3, libkcapi 1.4.0, stunnel 5.71, audit 3.1.2, SSG (SCAP Security Guide) 0.1.72, openCryptoki 3.22.0, ipa 4.11.
  • Обновлены серверные и системные пакеты: chrony 4.5, linuxptp 4.2, Rsyslog 8.2310, iptables 1.8.10, nftables 1.0.9, firewalld 1.3, stratis-cli 3.6.0, boom 1.6.0, 389-ds-base 2.4.5, samba 4.19.4, Podman 4.9.
  • Работающий в пространстве пользователя инструментарий SELinux (libsepol, libselinux, libsemanage, policycoreutils, checkpolicy, mcstrans) обновлён до версии 3.6, в которой в язык CIL (Common Intermediate Language) добавлена поддержка правил "deny" и ключевых слов "notself" и "other". Добавлен исполняемый файл getpolicyload для отображения числа перезагрузок правил SELinux. Под защиту SELinux переведены сервисы nvme-stas, rust-afterburn, rust-coreos-installer и bootc, которые раньше выполнялись в режиме unconfined_service_t. Добавлены правила SELinux для SAP HANA. Добавлен новый сервис chronyd-restricted, защищённый при помощи SELinux. Добавлен пакет grafana-selinux для запуска grafana с защитой SELinux.
  • Регистратор и верификатор Keylime, применяемые для подтверждения подлинности и непрерывного отслеживания целостности внешних систем, теперь можно запустить внутри контейнеров, изолированных от основной системы.
  • В системе ведения логов Rsyslog предоставлена возможность изменения настроек шифрования для TLS/SSL и добавлены дополнительные опции для сброса привилегий.
  • В OpenSSL предоставлена возможность размещения файлов с настройками TLS в отдельном каталоге /etc/pki/tls/openssl.d, что позволяет переопределить параметры дополнительных криптографических модулей без изменения основного файла конфигурации OpenSSL.
  • В SSSD (System Security Services Daemon) предоставлена возможность включения и настройки беспарольной аутентификации, используя датчики биометрических данных, поддерживающие спецификацию FIDO2, например, устройства YubiKey.
  • Добавлена экспериментальная команда "podman build farm" для создания образов контейнеров сразу для нескольких архитектур. В Podman добавлена полная поддержка бэкенда на базе SQLite и предоставлена возможность использования модулей containers.conf для выборочной загрузки настроек. В Containerfile разрешены многострочные инструкции HereDoc. Объявлен устаревшим сетевой стек CNI (Container Network Interface). При помощи команды "podman machine" реализована возможность проброса USB-устройств в виртуальные машины QEMU.
  • В IdM (Identity Management) предоставлена возможность включения обязательной двухфакторной аутентификации LDAP-клиентов, используя одноразовые пароли (OTP). Стабилизирован API IdM, который раньше преподносился как экспериментальный. В 389 Directory Server добавлена поддержка протокола HAProxy, что позволяет корректно определять IP-адреса клиентов, подключающихся через прокси.
  • В сборщике образов RHEL предоставлена возможность указания произвольных точек монтирования и создания различных режимов разбивки на разделы (auto-lvm, lvm, raw).
  • До версии 1.0.0 обновлена реализация протокола synce4l, обеспечивающего поддержку технологии синхронизации частоты SyncE (Synchronous Ethernet), поддерживаемой в некоторых сетевых картах и сетевых коммутаторах, и позволяющей повысить эффективность обмена данными в приложениях RAN (Radio Access Network) за счёт более точной синхронизации времени. Добавлена поддержка предоставляемого ядром интерфейса DPLL (Digital Phase Locked Loop).
  • В подсистему nftables перенесена возможность проверки полей внутренних заголовков пакетов, передаваемых через туннели. В утилиту nft добавлена возможность использования команды "nft reset" для сброса состояний правил nftables, таких как счётчики пакетов и значения квот. В firewalld прекращено удаление правил, добавленных через iptables, если в firewalld используется бэкенд nftables и отсутствуют правила, созданные с опцией "--direct".
  • В утилиту ss, входящую в пакет iproute2, добавлена опция "--bound-inactive" для отображения неактивных сетевых сокетов TCP, которые прикреплены к IP-адресу и сетевому порту (выполнен вызов bind), но не соединены (вызов connect) или не переведены в режим ожидания соединения (вызов listen).
  • В NetworkManager добавлена возможность изменения числа каналов (очередей пакетов, привязанных к обработчикам прерываний) для сетевых интерфейсов и настройки режима SwitchDev, позволяющего делегировать операции по перенаправлению кадров и обработке сетевых пакетов специализированным аппаратным чипам. Добавлена поддержка сетевых интерфейсов MACsec. Для беспроводных соединений предоставлена возможность назначения отдельного постоянного MAC-адреса (режим stable-ssid).
  • В Nmstate обеспечено создание YAML-файла для возврата к прошлому состоянию настроек. Для управления приоритетами в агрегированных сетевых интерфейсах (bond) добавлено свойство priority. Добавлены дополнительные атрибуты для VLAN: registration-protocol, mvrp, reorder-headers и loose-binding. Предоставлена возможность настройки тегов VLAN на сетевых устройствах с поддержкой SR-IOV (Single Root I/O Virtualization).
  • Возвращён модуль ядра с реализацией алгоритма контроля перегрузки TCP Illinois, который в среднем позволяет добиться большей пропускной способности и более справедливого распределения ресурсов.
  • Расширены возможности утилит rteval, rtla и cyclicdeadline. В rteval добавлена возможность использования префиксов "+" и "-" для прикрепления и открепления ядер CPU из списка отслеживаемых ядер (measurement-cpulist). Утилита rtla обновлена до состояния, соответствующего ядру Linux 6.6. Добавлена опция "rtla -C" для прикрепления к потокам дополнительных cgroup. В утилиту cyclicdeadline добавлена возможность визуализации задержек в виде гистограммы.
  • Добавлена возможность задания максимального размера ФС при динамическом увеличении размера ФС сервисом stratisd, что позволяет избежать проседания производительности после неконтролируемого увеличения размера XFS.
  • В утилиту lvconvert добавлена поддержка преобразования стандартных логических томов (LV) в вариант, допускающий динамическое выделение места в хранилище (thin provisioning).
  • В multipathd добавлена поддержка обработки событий FPIN-Li (Fabric Performance Impact Notification) для оптимизации доступа к накопителям NVMe. В секцию используемых по умолчанию настроек в multipath.conf добавлены параметры max_retries и auto_resize. Для Device-mapper-multipath добавлены настойки для использования массива HPE Alletra 9000 NVMeFC и поддержки режима ANA (Asymmetric Namespace Access) в NVMeoFC.
  • В разряд стабильных переведена возможность загрузки c адаптеров NVMe/FC (Non-volatile Memory Express (NVMe) over Fibre Channel).
  • В web console упрощено управление хранилищами и изменение размера разделов. Добавлена поддержка генерации shell-скриптов и сценариев Ansible для настройки kdump. В секции Virtual Machines реализована возможность добавления открытых ключей SSH и подключения уже отформатированных блочных устройств. Для подключения к виртуальным машинам вместо протокола SPICE задействован VNC.
  • Добавлены новые системные роли для запуска, управления и настройки fapolicyd и Microsoft SQL Server 2022. Добавлена роль snapshot для создания и управления снапшотами LVM. В роль sshd добавлена возможность аутентификации по сертификатам.
  • Стабилизирована поддержка виртуализации на системах ARM64 с использованием гипервизора KVM.
  • Добавлена поддержка миграции виртуальных машин в режиме Multi-FD (multiple file descriptors), при котором при переносе виртуальной машины устанавливается несколько параллельных соединений, что позволяет ускорить передачу данных при наличии высокоскоростного сетевого соединения (20 Gbps и выше).
  • Повышена производительность live-миграции в режиме Postcopy, при котором виртуальное окружение запускается почти сразу, а все недостающие данные подгружаются при обращении к не скопированным страницам памяти.
  • Добавлена утилита toolbx, позволяющая запустить дополнительное изолированное окружение, которое может быть обустроено произвольным образом при помощи обычного пакетного менеджера DNF и использоваться для установки экспериментальных пакетов без влияния на основную систему.
  • Добавлена поддержка параметров командной строки ядра Linux: accept_memory, ia32_emulation, arm64.nomops, cgroup_favordynmods, early_page_ext, fw_devlink.sync_state, kunit.enable, mtrr=debug, rcupdate.rcu_cpu_stall_cputime, rcupdate.rcu_exp_stall_task_details, spec_rstack_overflow и workqueue.unbound_cpus.
  • Добавлены новые параметры sysctl: io_uring_group и numa_balancing_promote_rate_limit_MBps.
  • Использование механизма io_uring по умолчанию запрещено для всех процессов (sysctl io_uring_disabled=2).
  • Расширена поддержка оборудования. Добавлены драйверы для поддержки технологий Intel QuickAssist Technology, Intel TPMI, Intel Uncore Frequency, AMD HSMP, AMD XCP, AMD Platform Management и Mellanox PMC. Добавлен драйвер octeon_ep для контроллеров Marvell Octeon PCIe Endpoint Network Interface Controller.
  • Продолжено предоставление экспериментальной (Technology Preview) поддержки:
    • VPN WireGuard,
    • kTLS (TLS на уровне ядра),
    • интерфейса асинхронного ввода/вывода io_uring,
    • DAX (Direct Access) для ext4 и XFS,
    • AMD SEV и SEV-ES в гипервизоре KVM,
    • сервиса systemd-resolved,
    • механизма Sigstore для верификации контейнеров по цифровым подписям,
    • протоколов PRP (Parallel Redundancy Protocol) и HSR (High-availability Seamless Redundancy),
    • аппаратного ускорения IPsec через вынос операций инкапсуляции пакетов на сторону сетевой карты,
    • протокола управления сертификатами ACME, применяемого в Let's Encrypt,
    • SRv6 (Segment Routing over IPv6,
    • пакета с графическим редактором GIMP 2.99.8,
    • настройки MPTCP (Multipath TCP) через NetworkManager,
    • DNSSEC в IdM,
    • virtio-mem,
    • Socket API для TuneD,
    • Soft-iWARP (Internet Wide-area RDMA Protocol),
    • GNOME для ARM64 и IBM Z.

  1. OpenNews: Изменения в подготовке промежуточных выпусков Red Hat Enterprise Linux
  2. OpenNews: Релиз дистрибутива Red Hat Enterprise Linux 9.3
  3. OpenNews: Релиз дистрибутива Red Hat Enterprise Linux 8.9
  4. OpenNews: CentOS Stream станет единственным публичным источником кода пакетов RHEL
  5. OpenNews: Компания Intel присоединилась к разработке CentOS Stream
Обсуждение (130 +1) | Тип: Программы |
·01.05.2024 Опубликована платформа OpenSilver 2.2, продолжающая развитие технологии Silverlight (39 +7)
  Опубликован выпуск проекта OpenSilver 2.2, продолжающего развитие платформы Silverlight и позволяющего создавать интерактивные web-приложения при помощи технологий C#, F#, XAML и .NET. Скомпилированные при помощи OpenSilver приложения Silverlight могут работать в любых настольных и мобильных браузерах с поддержкой WebAssembly, но компиляция пока возможна только в Windows с использованием среды Visual Studio. Код проекта написан на языке C# и распространяется под лицензией MIT.

В 2021 компания Microsoft прекратила разработку и сопровождение платформы Silverlight в пользу применения стандартных Web-технологий. Изначально проект OpenSilver был нацелен на предоставление инструментария для продления жизни существующих Silverlight-приложений в условиях отказа от сопровождения платформы компанией Microsoft и прекращения поддержки плагинов в браузерах. В OpenSilver поддерживаются все основные возможности движка Silverlight, включая полную поддержку языков C# и XAML, а также реализацию большей части API платформы, достаточную для использования таких C#-библиотек, как Telerik UI, WCF RIA Services, PRISM и MEF.

В текущем виде OpenSilver уже вышел за рамки прослойки для продления жизни Silverlight и может рассматриваться как самостоятельная платформа для создания новых приложений. Например, проектом развивается среда разработки (дополнение к Visual Studio), обеспечивается поддержка новых версий языка C# и платформы .NET, предоставляется совместимость с библиотеками на языке JavaScript.

В качестве основы OpenSilver задействован код открытых проектов Mono (mono-wasm) и Microsoft Blazor (часть ASP.NET Core), а для выполнения в браузере применяется компиляция приложений в промежуточный код WebAssembly. OpenSilver продолжает развитие проекта CSHTML5, позволяющего компилировать приложения C#/XAML/.NET в представление на языке JavaScript, пригодное для запуска в браузере, и расширяет его кодовую базу возможностями для компиляции C#/XAML/.NET в WebAssembly, а не в JavaScript.

В новой версии OpenSilver добавлены компоненты для обеспечения совместимости с приложениями, разработанными при помощи среды визуального проектирования Visual Studio LightSwitch. После прекращения поддержки плагина Silverlight пользователи подобных программ были вынуждены либо заменить эти приложения, либо полагаться на использование Silverlight в режиме IE, предоставляемом в некоторых версиях Windows, сохранение поддержки которого в будущих обновлениях Windows не гарантируется. Реализованные в OpenSilver 2.2 компоненты дают возможность избавиться от зависимости от IE и выполнять LightSwitch-приложения в современных web-браузерах.

Работа в современных браузерах обеспечивается через компиляцию LightSwitch-приложений в представление, использующее актуальные технологии, такие как HTML5 и WebAssembly, поддерживаемые во всех браузерах, включая Edge, Chrome, Firefox, Safari и Opera, и не требующих установки плагинов. В текущем виде пока предоставляется только runtime-окружение для запуска приложений LightSwitch, без возможности создания программ в визуальном редакторе кода Visual Studio LightSwitch. В будущих выпусках OpenSilver намечено предоставление средств разработки, поддерживающих разные платформы. В частности, запланировано создание системы визуального проектирования интерфейса XAML UI Designer, обеспечение интеграции с платформой .NET MAUI для создания программ для iOS, Android, macOS, Linux и Windows, а также реализация поддержки XAML Hot Reload, CLI, VS Code и Rider.

  1. OpenNews: Доступна платформа OpenSilver 2.1, продолжающая развитие технологии Silverlight
  2. OpenNews: Выпуск платформы OpenSilver 2.0, продолжающей развитие технологии Silverlight
  3. OpenNews: Выпуск OpenSilver 1.0, открытой реализации Silverlight
  4. OpenNews: Тестовый выпуск Moonlight 4 с поддержкой технологии Silverlight 4
  5. OpenNews: Проект Ruffle развивает эмулятор Flash Player, написанный на Rust
Обсуждение (39 +7) | Тип: Программы |
·01.05.2024 Доступна СУБД MySQL 8.4.0 LTS (74 +2)
  Компания Oracle сформировала новую ветку СУБД MySQL 8.4 и опубликовала корректирующее обновление MySQL 8.0.37. Сборки MySQL Community Server 8.4.0 подготовлены для всех основных дистрибутивов Linux, FreeBSD, macOS и Windows. Выпуск 8.4.0 отнесён к веткам с длительным сроком поддержки (LTS), который выпускаются раз в два года и поддерживаются 5 лет (плюс можно получить ещё 3 года расширенной поддержки).

MySQL 8.4.0 является четвёртым выпуском, сформированным в рамках новой модели формирования релизов, предусматривающей наличие двух типов веток MySQL - "Innovation" и "LTS". Ветки Innovation, к которым отнесены MySQL 8.1, 8.2 и 8.3, рекомендованы для тех, кто хочет раньше получать доступ к новой функциональности. Данные ветки публикуются каждые 3 месяца и поддерживаются только до публикации следующего значительного релиза (например, после появления ветки 8.4 прекращена поддержка ветки 8.3). LTS-ветки рекомендованы для внедрений, которым необходима предсказуемость и длительное сохранение неизменного поведения. Следом за LTS-веткой будет сформирована новая Innovation-ветка - MySQL 9.0.

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

  • В оптимизатор добавлена поддержка автоматического обновления гистограмм, независимо от выполнения операции "ANALYZE TABLE" для родительской таблицы. Автоматическое обновление включается через указание выражения "AUTO UPDATE" при выполнении операции "ANALYZE TABLE", а отключается через указание выражения "MANUAL UPDATE", которое используется по умолчанию.
  • Добавлены опции "--keyring-migration-from-component", "--keyring-migration-source" и "--keyring-migration-destination" для миграции из компонента keyring в плагин keyring.
  • Добавлена новая привилегия FLUSH_PRIVILEGES, которая в отличие от ранее доступной привилегии RELOAD предоставляет пользователю права только на выполнение операции "FLUSH PRIVILEGES".
  • Добавлена новая привилегия OPTIMIZE_LOCAL_TABLE, позволяющая пользователю выполнять операции "OPTIMIZE LOCAL TABLE" и "OPTIMIZE NO_WRITE_TO_BINLOG TABLE".
  • Изменены значения по умолчанию системных переменных group_replication_consistency и group_replication_exit_state_action. Переменная group_replication_consistency теперь выставляется в значения BEFORE_ON_PRIMARY_FAILOVER вместо EVENTUAL, а переменная group_replication_exit_state_action в значение OFFLINE_MODE вместо READ_ONLY.
  • В сборках, поставляемых со встроенной библиотекой OpenSSL, задействована новая версия OpenSSL 3.0.13.
  • Прекращено прямое обновление с MySQL 5.7 до MySQL 8.4. Для перехода с MySQL 5.7 вначале теперь следует перейти на ветку 8.0, а уже затем обновить её до версии 8.4.
  • Изменены значения по умолчанию следующих настроек InnoDB: innodb_adaptive_hash_index, innodb_buffer_pool_in_core_file, innodb_buffer_pool_instances, innodb_change_buffering, innodb_doublewrite_files, innodb_doublewrite_pages, innodb_flush_method, innodb_io_capacity, innodb_io_capacity_max, innodb_log_buffer_size, innodb_numa_interleave, innodb_page_cleaners, innodb_parallel_read_threads, innodb_purge_threads, innodb_read_io_threads, innodb_use_fdatasync, temptable_max_ram, temptable_max_mmap и temptable_use_mmap.
  • Добавлена поддержка сборки пакетов для дистрибутивов Fedora 40 и Ubuntu 24.04.
  • Отключён по умолчанию и объявлен устаревшим серверный плагин mysql_native_password, обеспечивающий аутентификацию при помощи паролей. Вместо mysql_native_password рекомендуется перейти на использование плагина caching_sha2_password, применяющего для хэширования алгоритм SHA2 вместо SHA1. Для возвращения поддержки mysql_native_password можно использовать опцию "--mysql-native-password=ON" или настройку "mysql_native_password=ON".
  • Прекращена поддержка небезопасных протоколов и алгоритмов шифрования. Оставлены только TLS v1.2 и TLSv1.3, алгоритмы, обеспечивающие прямую секретность (forward secrecy), шифры и сертификаты с SHA2, и алгоритмы AES в режиме GCM или AEAD.
  • Удалены связанные с репликацией SQL-выражения, которые ранее были объявлены устаревшими из-за использования неполиткорректной терминологии: START SLAVE (следует использовать START REPLICA); STOP SLAVE (следует использовать STOP REPLICA); SHOW SLAVE STATUS (следует использовать SHOW REPLICA STATUS); SHOW SLAVE HOSTS (SHOW REPLICAS); RESET SLAVE (RESET REPLICA); CHANGE MASTER TO (CHANGE REPLICATION SOURCE TO); RESET MASTER (RESET BINARY LOGS AND GTIDS); SHOW MASTER STATUS (SHOW BINARY LOG STATUS); PURGE MASTER LOGS (PURGE BINARY LOGS); SHOW MASTER LOGS (SHOW BINARY LOGS).
  • Удалены ранее объявленные устаревшими опции, применявшиеся в выражениях "CHANGE REPLICATION SOURCE TO" и "START REPLICA", и использующие слово "master", которое было заменено на "source": MASTER_AUTO_POSITION (следует использовать SOURCE_AUTO_POSITION), MASTER_HOST (следует использовать SOURCE_HOST), MASTER_BIND (следует использовать SOURCE_BIND), MASTER_USER (SOURCE_USER), MASTER_PASSWORD (SOURCE_PASSWORD), MASTER_PORT (SOURCE_PORT), MASTER_CONNECT_RETRY (SOURCE_CONNECT_RETRY), MASTER_RETRY_COUNT (SOURCE_RETRY_COUNT), MASTER_DELAY (SOURCE_DELAY), MASTER_SSL (SOURCE_SSL), MASTER_SSL_CA (SOURCE_SSL_CA), MASTER_SSL_CAPATH (SOURCE_SSL_CAPATH), MASTER_SSL_CIPHER (SOURCE_SSL_CIPHER), MASTER_SSL_CRL (SOURCE_SSL_CRL), MASTER_SSL_CRLPATH (SOURCE_SSL_CRLPATH), MASTER_SSL_KEY (SOURCE_SSL_KEY), MASTER_SSL_VERIFY_SERVER_CERT (SOURCE_SSL_VERIFY_SERVER_CERT), MASTER_TLS_VERSION (SOURCE_TLS_VERSION), MASTER_TLS_CIPHERSUITES (SOURCE_TLS_CIPHERSUITES), MASTER_SSL_CERT (SOURCE_SSL_CERT), MASTER_PUBLIC_KEY_PATH (SOURCE_PUBLIC_KEY_PATH), GET_MASTER_PUBLIC_KEY (GET_SOURCE_PUBLIC_KEY), MASTER_HEARTBEAT_PERIOD (SOURCE_HEARTBEAT_PERIOD), MASTER_COMPRESSION_ALGORITHMS (SOURCE_COMPRESSION_ALGORITHMS), MASTER_ZSTD_COMPRESSION_LEVEL (SOURCE_ZSTD_COMPRESSION_LEVEL), MASTER_LOG_FILE (SOURCE_LOG_FILE), MASTER_LOG_POS (SOURCE_LOG_POS).
  • Удалены системные переменные, в которых использовались слова "master" и "slave": Com_slave_start (следует использовать Com_replica_start); Com_slave_stop (Com_replica_stop); Com_show_slave_status (Com_show_replica_status); Com_show_slave_hosts (Com_show_replicas); Com_show_master_status (Com_show_binary_log_status); and Com_change_master (Com_change_replication_source).
  • Объявлена устаревшей системная переменная group_replication_allow_local_lower_version_join. Удалены ранее объявленные устаревшими опции "--no-dd-upgrade", "--old", "--new", "--language", "--ssl", "--admin-ssl" и переменные binlog_transaction_dependency_tracking, group_replication_recovery_complete_at, avoid_temporal_upgrade, show_old_temporals и default_authentication_plugin.
  • Удалена неиспользуемая таблица INFORMATION_SCHEMA.TABLESPACES.
  • Прекращена поддержка использования значения LOW_PRIORITY вместе с выражением "LOCK TABLES ... WRITE".
  • Прекращена поддержка использования модификатора AUTO_INCREMENT вместе с типами FLOAT и DOUBLE.
  • Удалена утилита mysql_ssl_rsa_setup - при сборке с OpenSSL сервер MySQL может автоматически генерировать недостающие SSL- и RSA-файлы при запуске.
  • Удалена утилита mysql_upgrade, которая не используется с выпуска MySQL 8.0.16.
  • Удалены утилиты mysqlpump, lz4_decompress и zlib_decompress, вместо которых следует использовать утилиту mysqldump или команды dump интерактивной оболочки.
  • Удалены плагины: authentication_fido, authentication_fido_client (следует использовать authentication_webauthn); keyring_file (следует использовать component_keyring_file); keyring_encrypted_file (следует использовать component_keyring_encrypted_file); keyring_oci (следует использовать component_keyring_oci).
  • Прекращена поддержка выражения ENGINE вместе с различными вариантами "DROP TABLESPACE" и "ALTER TABLESPACE".
  • Удалена привилегия "SET_USER_ID", которую больше нельзя указывать в выражениях GRANT.
  • Возвращены функции С API: mysql_kill(), mysql_list_fields(), mysql_list_processes(), mysql_refresh(), mysql_reload(), mysql_shutdown() и mysql_ssl_set(), часть из которых была переработана с использованием функции mysql_real_query(). Данные функции были удалены в ветке MySQL 8.3, но восстановлены для поддержки в рамках LTS-ветки MySQL 8.4.
  • Устранено 26 уязвимостей, которые могут быть эксплуатированы удалённо. Наиболее серьёзная проблема имеет уровень опасности 6.5 и связана с уязвимостью в openSSL. Менее опасные уязвимости затрагивают оптимизатор, InnoDB, Thread Pooling, Group Replication Plugin, Audit Plugin, DML, mysqldump.

  1. OpenNews: Доступна СУБД MySQL 8.3.0
  2. OpenNews: Стабильный релиз СУБД MySQL 8.0
  3. OpenNews: MariaDB существенно меняет график выпусков
  4. OpenNews: Представлена новая значительная ветка СУБД MariaDB 11
  5. OpenNews: Стабильный выпуск СУБД MariaDB 10.11
Обсуждение (74 +2) | Тип: Программы |
·01.05.2024 Выпуск OpenTofu 1.7, форка платформы управления конфигурацией Terraform (29 +13)
  Представлен выпуск проекта OpenTofu 1.7, продолжающего развитие открытой кодовой базы платформы управления конфигурацией и автоматизации поддержания инфраструктуры Terraform. Разработка OpenTofu ведётся под покровительством организации Linux Foundation с использованием открытой модели управления при участии сообщества, сформированного из заинтересованных в проекте компаний и энтузиастов (о поддержке проекта объявили 161 компания и 792 индивидуальных разработчика). Код проекта написан на языке Go и распространяется под лицензией MPL 2.0.

Форк создан в ответ на перевод компанией HashiCorp своих продуктов на проприетарную лицензию BSL 1.1, ограничивающую использование кода в облачных системах, конкурирующих с продуктами и сервисами HashiCorp. Cмена лицензии объясняется желанием сохранить финансирование своих разработок в условиях неспособности классических моделей лицензирования противостоять паразитированию компаний, использующих готовые открытые исходные тексты разработок HashiCorp для создания собственных коммерческих облачных продуктов без участия в совместной разработке.

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

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

Среди изменений в версии OpenTofu 1.7:

  • Возможность защиты важных файлов состояния с использованием сквозного шифрования. Шифрование позволяет исключить доступ посторонних к данным файлам при использовании бэкендов хранения, не заслуживающих доверия. Пароль для шифрования может задаваться с использованием переменных окружений или систем управления ключами, такими как AWS KMS, GCP KMS и OpenBao.
  • Поддержка динамических функций, определяемых провайдером. Указанная возможность позволяет провайдеру предоставлять не только ресурсы, но и функции для использования в коде OpenTofu. Более того, функции могут определяться провайдером динамически, в зависимости от конфигурации пользователя. Поддержка представленной функциональности уже добавлена в экспериментальные провайдеры Lua и Go.
  • Реализованы декларативные операции удаления, позволяющие пометить ресурс для удаления из файла состояния, но сохранить его в созданной инфраструктуре.
  • Возможность применения циклов "for_each" в блоках, осуществляющих импорт, для упрощения импортирования нескольких типовых ресурсов.

  1. OpenNews: IBM покупает HashiCorp за 6.4 млрд долларов
  2. OpenNews: Проект OpenBao начал развитие форка Hashicorp Vault
  3. OpenNews: OpenTF, форк платформы Terraform, переименован в OpenTofu
  4. OpenNews: Компания HashiCorp меняет лицензию на своё ПО с MPLv2 на проприетарную BSL 1.1
  5. OpenNews: Организация OpenTF создала форк платформы управления конфигурацией Terraform
Обсуждение (29 +13) | Тип: Программы |
·30.04.2024 Выпуск системы управления исходными текстами Git 2.45 (67 +10)
  После двух месяцев разработки опубликован выпуск распределенной системы управления исходными текстами Git 2.45. Git является одной из самых популярных, надёжных и высокопроизводительных систем управления версиями, предоставляющей гибкие средства нелинейной разработки, базирующиеся на ответвлении и слиянии веток. Для обеспечения целостности истории и устойчивости к изменениям "задним числом" используются неявное хеширование всей предыдущей истории в каждом коммите, также возможно удостоверение цифровыми подписями разработчиков отдельных тегов и коммитов. Код Git распространяется под лицензией GPLv2+.

По сравнению с прошлым выпуском в новую версию принято 540 изменений, подготовленных при участии 96 разработчиков, из которых 35 впервые приняли участие в разработке. Основные новшества:

  • Добавлена предварительная поддержка бэкенда "reftable" для эффективного хранения в репозитории ссылок на ветки и теги. Новый бэкенд использует блочное хранилище, применяемое проектом JGit и оптимизированное для хранения очень большого числа ссылок (традиционные форматы хранения ссылок приводят в репозиториях с большим числом ссылок к ощутимым накладным расходам из-за размещения очень большого числа файлов в одном каталоге в случае хранения ссылок в каталоге $GIT_DIR/refs или необходимости перезаписи одного большого файла при каждом обновлении в случае хранения ссылок в файле $GIT_DIR/packed_refs). Новый бэкенд включается через указание опции "--ref-format=reftable" при инициализации репозитория ("git init --ref-format=reftable /path/to/repo") и позволяет ускорить поиск, чтение и запись в репозиториях с большим числом ссылок.
  • Предоставлены средства для обеспечения переносимости между идентификаторами объектов на базе хэшей SHA-1 и SHA-256. Для обеспечения работы с хэшами SHA-1 и SHA-256 в одном репозитории в процессе постепенной миграции на хэши SHA-256 предложен новый формат объектов "compatibility", позволяющий ссылаться на объекты не только по основному хэшу, заданному при инициализации репозитория, но и по запасному хэшу. Например, при инициализации репозитория можно выбрать формат SHA-256, а в качестве запасного определить хэш SHA-1:
    
       git init --object-format=sha256 /path/to/repo
       cd /path/to/repo
       git config extensions.compatObjectFormat sha1
    
  • В команду "git rev-list" добавлена возможность отображения идентификаторов объектов, отсутствующих в локальном репозитории, даже если они недостижимы в ветке или теге, что можно использовать для диагностики повреждения репозитория:
    
      git rev-list --missing=print --all | grep '^?'
      
      ?70678e7afeacdcba1242793c3d3d28916a2fd152
    
  • Добавлена новая команда "git reflog list" для показа известных reflog-ов и соответствующих им ссылок на теги и ветки.
  • Предоставлена возможность определения альтернативных префиксов для вывода "git diff", отображаемых перед файловым путём и обозначающих состояние до и после определённой версии файла (по умолчанию используются префиксы "a/" и "b/"). Для задания собственных префиксов в конфигурацию добавлены новые параметры diff.srcPrefix и diff.dstPrefix.
  • Добавлен параметр core.commentString для определения строки-разделителя, которая будет использоваться вместо символа "#" для игнорирования комментариев в сообщении для коммита. Ранее доступная настройка core.commentChar адаптирована для поддержки многобайтовых символов в качестве разделителя комментария (ранее поддерживались только ASCII-символы).
  • В команду "git config" добавлена опция "--comment", позволяющая сохранять комментарии в файле .gitconfig для пояснения сути тех или иных настроек.
    
       git config --comment 'to show the merge base' merge.conflictStyle  diff3
       tail -n 2 .git/config
       [merge]
       conflictStyle = diff3 # to show the merge base
    
  • В команду "git cherry-pick" добавлена опция "--empty" для автоматического удаления избыточных коммитов, по аналогии с опцией "--empty" в git-rebase и git-am.
  • В команде "git checkout -p" разрешено использовать символ "@" в качестве синонима имени "HEAD".

  1. OpenNews: Выпуск системы управления исходными текстами Git 2.44
  2. OpenNews: Уязвимости в Git, позволяющие перезаписать файлы или выполнить свой код
  3. OpenNews: Уязвимости в Git, приводящие к утечке и перезаписи данных
  4. OpenNews: Выпуск Git 2.29 с поддержкой использования алгоритма хэширования SHA-256
  5. OpenNews: Предложен метод определения коллизий в SHA-1, пригодный для атаки на PGP
Обсуждение (67 +10) | Тип: Программы |
·30.04.2024 Проект по производству открытого процессора, совместимого с Z80 (246 +38)
  После объявления компании Zilog о скором прекращении массового производства 8-битных процессоров Z80, энтузиасты выступили с инициативой создания открытого клона данного процессора. Целью проекта является разработка замены процессорам Z80, которая будет взаимозаменяема с оригинальным CPU Zilog Z80, совместима с ним на уровне разводки выводов и способна использоваться в компьютере ZX Spectrum. Схемы, описания аппаратных блоков на языке Verilog и необходимая для производства документация распространяется под лицензией Apache 2.0. Производство первой пробной партии процессоров FOSS Z80 намечено на июнь 2024 года.

При разработке чипа FOSS Z80 задействован фреймворк OpenROAD, развиваемый для автоматизации процесса разработки открытых микросхем, а также инструментарий Skywater PDK (Process Design Kit), описывающий используемый на заводе SkyWater техпроцесс 130nm и позволяющий подготовить необходимые для производства микросхем проектные файлы. Для снижения затрат на производство чипа для тестирования и проектирования задействована инфраструктура проекта Tiny Tapeout.

Быстрая готовность чипа объясняется тем, что вместо проектирования с нуля при его разработке в качестве основы использовался ранее развивавшийся открытый проект TV80, предоставляющий Verilog-описание ядра, совместимого с CPU Z80, распространяемое под лицензией MIT. После производства первой партии разработчики проекта намерены провести сравнение чипа с другими реализациями, такими как A-Z80 - реализация на базе FPGA (Altera, Xilinx и Lattice), поставляемая под лицензией GPLv2, и Z80Explorer - симулятор интегральной схемы, воспроизводящий Zilog Z-80 на уровне электронных цепей.

Процессор Z80 был представлен в 1976 году и производился в течение 48 лет. Чип получил известность благодаря домашним компьютерам ZX Spectrum, игровым приставкам Sega и Game Boy, калькуляторам Texas Instruments, а также поддержке в операционной системе CP/M. При этом CPU Z80 также активно применялся в промышленном оборудовании, различных контроллерах, модемах, кассовых аппаратах, измерительном оборудовании и периферийных устройствах.

  1. OpenNews: KnightOS - открытая ОС для калькуляторов TI z80
  2. OpenNews: Инициатива по развитию открытых проектов для FPGA
  3. OpenNews: Инициатива по бесплатному производству открытых чипов переведена на техпроцесс 90nm
  4. OpenNews: Алан Кокс представил Unix-подобную ОС Fuzix, ядро которой потребляет около 40 Кб ОЗУ
  5. OpenNews: Исходные тексты операционной системы CP/M доступны для свободного использования
Обсуждение (246 +38) | Тип: К сведению |
·30.04.2024 Уязвимость в реализации языка R, позволяющая выполнить код при обработке файлов rds и rdx (21 +6)
  В основной реализации языка программирования R, ориентированного на решение задач по статистической обработке, анализу и визуализации данных, выявлена критическая уязвимость (CVE-2024-27322), приводящая к выполнению кода при выполнении десериализации непроверенных данных. Уязвимость может быть эксплуатирована при обработке специально оформленных файлов в форматах RDS (R Data Serialization) и RDX, применяемых для обмена данными между приложениями. Проблема устранена в выпуске R 4.4.0. Проследить за выпуском обновлений пакетов в дистрибутивах можно на страницах Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD.

Уязвимость вызвана особенностью работы функции readRDS, используемой для загрузки файлов в форматах RDS и RDX, которые позволяют передавать сериализированные объекты R для обработки на другой системе. Сериализация даёт возможность зафиксировать состояние и обмениваться наборами данных между программами. Формат RDS позволяет хранить состояние об одном объекте, а формат RDX в сочетании с файлами RDB даёт возможность передавать сведения о нескольких объектах. Проблема связана с тем, что формат RDS поддерживает объектный код PROMSXP, связанный с типом Promise, который применяется для определения выражений, вызываемых в асинхронном режиме во время использования ассоциированных с ними значений.

Во время десериализации для определения объекта Promise используются три составляющих - значение Promise, выражение и окружение. Если для типа Promise не задано предварительно вычисленное значение, то оно вычисляется при десериализации через выполнение выражения при помощи функции "eval". Таким образом атакующий может добиться выполнения произвольного кода на языке R, подставив его вместо выражения, связанного с невычисленными значениями в файлах RDS или RDX.

  1. OpenNews: Доступен язык программирования R 4.0
  2. OpenNews: В реализации криптовалюты Monero выявлены две критические уязвимости
  3. OpenNews: Oracle планирует убрать из Java встроенную поддержку сериализации
  4. OpenNews: Уязвимость в Apache Tomcat, допускающая удалённое выполнение кода
  5. OpenNews: В репозитории Hugging Face выявлены вредоносные AI-модели, выполняющие код
Обсуждение (21 +6) | Тип: Проблемы безопасности |
·29.04.2024 Релиз десктоп-окружения Trinity R14.1.2, продолжающего развитие KDE 3.5 (152 +34)
  Опубликован релиз десктоп-окружения Trinity R14.1.2, продолжающего развитие кодовой базы KDE 3.5.x и Qt 3. Бинарные пакеты в ближайшее время будут подготовлены для Ubuntu, Debian, RHEL/CentOS, Fedora, openSUSE и других дистрибутивов.

Из особенностей Trinity можно отметить собственные средства для управления параметрами экрана, основанная на udev прослойка для работы с оборудованием, новый интерфейс для настройки оборудования, переход на композитный менеджер Compton-TDE (форк Compton с расширениями TDE), улучшенный конфигуратор сети и механизмы аутентификации пользователей. Окружение Trinity может быть установлено и использовано одновременно с более актуальными выпусками KDE, в том числе предоставлена возможность использования в Trinity уже установленных в системе KDE-приложений. Также присутствуют средства для корректного отображения интерфейса GTK-программ без нарушения единого стиля оформления.

Среди изменений:

  • Добавлен новый стиль оформления виджетов и декорирования окон tde-style-polyester, балансирующий между визуальной привлекательностью и простотой.
  • Добавлен новый стиль декорирования окон twin-style-fahrenheit, предлагающий оформление, напоминающее KDE 3.2.
  • Предложено шесть новых цветовых схем.
  • Добавлено пять новых стилей для приложений, использующих GTK.
  • Добавлена настройка, позволяющая выбрать стиль диалога завершения работы (стандартный или похожий на Ubuntu).
  • В ksnapshot в режиме создания скриншота области экрана появилась возможность определения задержки. В протокол управления DCOP (Desktop COmmunication Protocol) добавлен вызов setPixmap для удалённой настройки пиксельной карты.
  • В оконном менеджере twin предоставлена поддержка управления мозаичной компоновкой окон при помощи протокола DCOP.
  • В эмуляторе терминала konsole добавлена поддержка сброса цвета вкладки в значение по умолчанию.
  • В микшере звука kmix предложены новые пиктограммы для системного лотка, отражающие выставленный уровень громкости.
  • Улучшены графический интерфейс и логика работы программы записи потокового вещания kstreamripper.
  • В kxkb реализовано уведомление об изменении раскладки клавиатуры и задействованы доступные переводы, предоставленные через xkeyboard-config.
  • В почтовый клиент kmail добавлена поддержка открытия во внешнем браузере тела письма в формате HTML.
  • В обработчике sftp переработаны методы аутентификации. В zeroconf ioslave добавлена поддержка серверов SFTP.
  • Во фреймворке TQt3 добавлена поддержка кнопок перемещения по истории (HistoryBack и HistoryForward). Устранены утечки памяти.
  • В просмотрщике изображений gwenview добавлена опция, позволяющая не загружать метаданные.
  • Добавлена поддержка Python 3.12, libpoppler 24.02, taglib 2 и libxml2 2.12.0.
  • Решены проблемы с изменением размера окон приложений, использующих виртуальный терминал, таких как эмуляторы терминалов из xfce и mate, а также текстовый редактор gvim.

  1. OpenNews: Релиз десктоп-окружения Trinity R14.1.1, продолжающего развитие KDE 3.5
  2. OpenNews: Выпуск дистрибутива Q4OS 5.2, поставляемого с окружением Trinity
  3. OpenNews: Релиз дистрибутива Porteus 1.1 с десктоп-окружением Trinity (форк KDE 3.5)
Обсуждение (152 +34) | Тип: Программы |
·29.04.2024 Леннарт Поттеринг представил run0, замену sudo, интегрированную в systemd (191 +31)
  Леннарт Поттеринг представил утилиту run0, позволяющую выполнять процессы под идентификаторами других пользователей. Новая утилита позиционируется как более безопасная замена программы sudo, реализованная в форме надстройки над командой systemd-run и позволяющая избавиться от применения исполняемого файла с флагом SUID. Утилита run0 включена в состав выпуска systemd 256, который находится на стадии кандидата в релизы.

Отмечается, что смена идентификатора при помощи флага SUID в sudo сопряжена с дополнительными рисками, связанными с тем, что SUID-процесс наследует контекст исполнения, включающий множество свойств, контролируемых непривилегированным пользователем, таких как переменные окружения, файловые дескрипторы, параметры планировщика и привязки cgroup. Часть из подобных свойств автоматически очищается для SUID-процессов ядром, а часть - самим приложением. Тем не менее, в сложных SUID-программах, таких как sudo, продолжают регулярно находить уязвимости, вызванные неаккуратным обращением с внешними данными, на которое может влиять непривилегированный пользователь.

В run0 вместо использования SUID осуществляется обращение к системному менеджеру с запросом запуска командной оболочки или процесса с указанным идентификатором пользователя, создания нового псевдотерминала (PTY) и пересылки данных между ним и текущим терминалом (TTY). Подобное поведение больше напоминает запуск при помощи ssh, чем выполнение при помощи классического sudo. Привилегированный процесс запускается в изолированном контексте, который порождается процессом PID 1, а не процессом пользователя, т.е. не наследует свойства окружения пользователя, за исключением проброса переменной окружения $TERM. Проброс регулируется через список явно разрешённых свойств, вместо попыток запретить опасные свойства (концепция белого списка, вместо чёрного).

Для авторизации и определения возможностей пользователя в run0 используется Polkit. Классический язык описания правил (/etc/sudoers), применяемый в sudo, не поддерживается. Функциональность для запуска программ с другими привилегиями встроена в systemd-run, а команда run0 создаётся как символическая ссылка на systemd-run, при использовании которой предоставляется схожий с sudo интерфейс командной строки.

Из дополнительных возможностей run0 выделяется индикация работы с повышенными привилегиями через установку красноватого фона в терминале и добавление красной точки в заголовок окна. После прекращения выполнения с иными привилегиями точка исчезает, а фон меняется на обычный. Кроме того, run0 поддерживает все опции "systemd-run", например, параметр "--property", через который можно выставить произвольные настройки сервисов systemd (например, "CPUWeight=200 MemoryMax=2G IPAccounting=yes").

  1. OpenNews: При портировании во FreeBSD утилиты doas, аналога sudo от OpenBSD, возникла опасная уязвимость
  2. OpenNews: Использование SSH поверх UNIX-сокета вместо sudo для избавления от suid-файлов
  3. OpenNews: Первый стабильный выпуск sudo-rs, реализации утилит sudo и su на языке Rust
  4. OpenNews: Уязвимость в sudo, позволяющая изменить любой файл в системе
  5. OpenNews: Обновление sudo 1.9.5 с устранением уязвимостей
Обсуждение (191 +31) | Тип: К сведению | Интересно
·29.04.2024 Выпуск музыкального проигрывателя Amarok 3.0.0 (147 +24)
  Спустя шесть лет с момента прошлого выпуска сформирован релиз музыкального проигрывателя Amarok 3.0.0, пользовавшегося большой популярностью во времена KDE 3 и KDE 4. Выпуск пока доступен только в исходных текстах. Amarok 3.0.0 стал первым выпуском, портированным на Qt5 и библиотеки KDE Frameworks 5. Код проекта написан на языке C++ и распространяется под лицензией GPLv2.

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

Среди изменений в новой версии:

  • Кодовая база переведена на использование Qt 5 и KDE Frameworks 5.
  • Предоставлена возможность перегруппировки мышью элементов в редакторе очередей, используя режим drag&drop.
  • Включена поддержка перетаскивания в режиме drag&drop треков из контекстных апплетов в список воспроизведения.
  • В меню добавлен пункт для сворачивания всех раскрытых элементов в коллекции.
  • В экранном индикаторе (OSD) задействован более высокий DPI для изображений. Отключены неработающие настройки OSD-экрана в окружениях на базе Wayland.
  • В экранном OSD-индикаторе обеспечено отображение прогресса воспроизведения композиции.
  • Движок для написания скриптов портирован с QtScript на QJSEngine.
  • Добавлена возможность копирования информации о треке через клик на контекстном апплете текущего трека.
  • Добавлена поддержка FFmpeg 5.0 и TagLib 2.0.
  • Удалён плагин upnpcollectionplugin.
  • В режиме редактирования в контекстные апплеты добавлена визуальная подсказка, демонстрирующая возможность изменения размера.
  • Добавлена кнопка для остановки автоматического обновления с данных с Wikipedia.
  • Для загрузки текстов песен задействован сервис lyrics.ovh вместо прекратившего работу lyricwiki.

  1. OpenNews: Выпуск музыкального проигрывателя Amarok 2.9
  2. OpenNews: Вышел медиаплеер Clementine 1.3, продолжающий развитие Amarok 1.4
  3. OpenNews: Выпуск музыкального проигрывателя Amarok 2.8
Обсуждение (147 +24) | Тип: Программы |
·28.04.2024 Доступна операционная система RISC OS 5.30 (84 +21)
  Сообщество RISC OS Open представило выпуск операционной системы RISC OS 5.30, оптимизированной для создания встраиваемых решений на базе плат с процессорами ARM. Выпуск основан на исходных текстах RISC OS, открытых в 2018 году компанией RISC OS Developments (ROD) под лицензией Apache 2.0. Сборки RISC OS сформированы для плат Raspberry Pi, PineA64, BeagleBoard, Iyonix, PandaBoard, Wandboard, RiscPC / A7000, OMAP 5 и Titanium. Размер сборки для Raspberry Pi составляет 157 МБ.

Операционная система RISC OS развивается с 1987 года и ориентирована в основном на создание специализированных встраиваемых решений на базе ARM-плат, обеспечивающих максимальную производительность. ОС не поддерживает вытесняющую многозадачность (только кооперативная) и является однопользовательской (все пользователи имеют права суперпользователя). Система состоит из ядра и модулей-надстроек, в том числе доступен модуль с простым оконным графическим интерфейсом и набор простых приложений. В графическом окружении используется кооперативная многозадачность. В качестве web-браузера используется NetSurf.

В новом выпуске:

  • В разряд стабильных переведена поддержка платформы OMAP5, формированию первого стабильного выпуска для которой ранее мешали проблемы с видеодрайвером.
  • Для всех платформ реализована полная поддержка ФС SparkFS с возможностью чтения и записи данных.
  • Обновлена редакция RISC OS для плат Raspberry Pi. Для плат Raspberry Pi 3B, 3A+, 3B+, 4B, 400, Compute Module 4, Zero W and Zero 2W реализована поддержка Wi-Fi. В сборку добавлен издательский пакет Ovation Pro. Улучшены ознакомительные инструкции для новичков, не знакомых с RISC OS.
  • Обновлена коллекция приложений, среди прочего предложен новый выпуск браузера NetSurf 3.11.
  • Введено в строй тестирование в системе непрерывной интеграции компонентов Alarm, ShellCLI, FileSwitch, DOSFS, SDFS, FPEmulator, AsmUtils, OSLib, RISC_OSLib, TCPIPLibs, mbedTLS, remotedb, Freeway, Net, AcornSSL, HTTP, URL, Dialler, PPP, NetTime, OmniClient, LanManFS, OmniNFS, FrontEnd, HostFS, Squash и !Internet.
  • Прекращена поддержка Internet 4, старого стека TCP/IP, который применялся до версии RISC OS 3.70, в компонентах Freeway, Net, HTTP, URL, PPP, NFS, NetTime, OmniClient, LanManFS, OmniNFS, !Boot, !Internet, TCPIPLibs и remotedb, что значительно упростило их сопровождение.
  • В SharedCLibrary добавлена поддержка хуков для использования статических конструкторов и деструкторов в коде на C++, что позволило расширить поддержку высокоуровневых языков программирования.
  • Для плат Raspberry Pi, Beagleboard и Pandaboard добавлен новый драйвер EtherUSB для использования Ethernet-адаптеров с интерфейсом USB.
  • Для плат Pandaboard и Raspberry Pi в HAL (hardware abstraction layer) реализована поддержка встроенного контроллера Wi-Fi, используя шину SDIO.
  • В приложении !Draw добавлена поддержка файлов в формате DXF.
  • В приложении !Paint добавлена возможность экспорта изображений в форматах PNG и JPG. Улучшены возможности рисования кистями. Добавлена поддержка прозрачности.
  • По умолчанию включён модуль WimpMan, упрощающий написание десктоп-приложений.
  • В оконном менеджере реализована возможность настройки цвета и теней для кнопок, а также изменения фона панели.
  • По умолчанию включены гаджеты Tabs и TreeView.
  • В файловый менеджер Filer добавлена возможность настройки видимости системных каталогов.
  • Максимальный размер RAM-диска увеличен до 2 ГБ.
  • Библиотеки стека TCP/IP частично обновлены с использованием кода из FreeBSD 12.4. Максимальное число сетевых сокетов, которое может открыть одно приложение, увеличено с 96 до 256.
  • В модуле HTTP значительно улучшена обработка Cookie.
  • Добавлена утилита RMFind для проверки поддержки взаимодействия по TCP/IP.
  • Прекращена поддержка устаревшего протокола Xerox NS.

  1. OpenNews: Код RISC OS будет открыт под лицензией Apache 2.0
  2. OpenNews: RISC OS запустили на Pocket PC
  3. OpenNews: Зафиксировано коммерческое применение открытых процессоров OpenRISC
  4. OpenNews: Первые результаты портирования Debian для архитектуры OpenRISC
  5. OpenNews: Микроядро seL4 математически верифицировано для архитектуры RISC-V
Обсуждение (84 +21) | Тип: Программы |
·27.04.2024 Проект Genode опубликовал выпуск ОС общего назначения Sculpt 24.04 (46 +21)
  Представлен выпуск проекта Sculpt 24.04, развивающего операционную систему на базе технологий Genode OS Framework, которая сможет быть использована обычными пользователями для выполнения повседневных задач. Исходные тексты проекта распространяются под лицензией AGPLv3. Для загрузки предлагается LiveUSB-образ, размером 30 МБ. Поддерживается работа на системах с процессорами и графической подсистемой Intel с включёнными расширениями VT-d и VT-x, а также на системах ARM с расширениями VMM.

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

  • Полностью переделан звуковой стек. В новом звуковом стеке реализована возможность использования подключаемых драйверов, установки произвольной частоты дискретизации, гибкой маршрутизации звуковых потоков и микширования звука. Добавлены оптимизации для снижения задержек при обработке звука.
  • Реализована экспериментальная возможность перехода в спящий режим.
  • Добавлена поддержка экранов с разрешением 4K (3840 x 2160)
  • Добавлена поддержка тачпадов, использующих протокол I2C (применяются на некоторых ноутбуках).
  • Добавлена поддержка привязки USB-устройств к виртуальным машинам и приложениям.
  • В интерфейс конфигурирования добавлены средства для управления включением дополнительных возможностей, настройки источников приложений и установки приложений.
  • В окне с визуализацией графа компонентов и конфигураторе добавлена поддержка прокрутки.
  • Улучшена обработка событий от HID-устройств (Human interface device).
  • Изменён интерфейс для управления драйверами устройств.
  • Предложен новый стек TCP/IP, использующий прослойку DDE (device-driver environment) на базе ядра Linux 6.1.20.
  • Добавлена возможность использовать Sculpt OS в Goa SDK в качестве внешней цели для тестирования приложений.

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

В любой момент пользователь может переключиться в консольный режим управления, который предоставляет большую гибкость в управлении. Традиционный рабочий стол может быть получен при помощи запуска дистрибутива TinyCore Linux в виртуальной машине с Linux. В данном окружении доступны браузеры Firefox и Aurora, текстовый редактор на базе Qt и различные приложения. Для запуска утилит командной строки предлагается окружение noux.

Genode предоставляет унифицированную инфраструктуру для создания пользовательских приложений, работающих поверх ядра Linux (32 и 64 бит) или микроядер NOVA (x86 с виртуализацией), seL4 (x86_32, x86_64, ARM), Muen (x86_64), Fiasco.OC (x86_32, x86_64, ARM), L4ka::Pistachio (IA32, PowerPC), OKL4, L4/Fiasco (IA32, AMD64, ARM) и выполняющегося напрямую ядра для платформ ARM и RISC-V. Входящее в состав паравиртуализированное Linux-ядро L4Linux, работающее поверх микроядра Fiasco.OC, позволяет выполнять в Genode обычные Linux программы. Ядро L4Linux не работает с оборудованием напрямую, а использует сервисы Genode через набор виртуальных драйверов.

Для Genode осуществлено портирование различных Linux и BSD компонентов, обеспечена поддержка Gallium3D, осуществлена интеграция Qt, GCC и WebKit, реализована возможность организации гибридных Linux/Genode программных окружений. Подготовлен порт VirtualBox, работающий поверх микроядра NOVA. Большое число приложений адаптировано для запуска напрямую поверх микроядра и окружения Noux, обеспечивающего виртуализацию на уровне ОС. Для запуска не портированных программ предусмотрена возможность задействования механизма создания виртуальных окружений уровня отдельных приложений, позволяющих запускать программы в виртуальном Linux-окружении с использованием паравиртуализации.

  1. OpenNews: Проект Genode опубликовал выпуск ОС общего назначения Sculpt 23.10
  2. OpenNews: Опубликован план превращения Genode в операционную систему общего назначения
  3. OpenNews: Микроядерная ОС Genode переходит на лицензию AGPL
  4. OpenNews: Прототип отечественной ОС Phantom на базе Genode будет готов до конца года
Обсуждение (46 +21) | Тип: Программы |
Следующая страница (раньше) >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру