The OpenNET Project / Index page

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

·19.09.2024 Компания Apple представила язык программирования Swift 6.0 (104 +6)
  Компания Apple опубликовала релиз языка программирования Swift 6.0. Официальные сборки подготовлены для Linux (Ubuntu 20.04/22.04/24.04, Debian 12, Fedora 39, Amazon Linux 2, RHEL 9), Windows 10 и macOS (Xcode). Исходные тексты распространяются под лицензией Apache 2.0.

Язык Swift сочетает лучшие элементы языков C и Objective-C, и предоставляет объектную модель, совместимую с Objective-C (Swift-код может смешиваться с кодом на С и Objective-C), но отличается использованием средств автоматического распределения памяти, контроля переполнения переменных и массивов, защитой от использования неинициализированных переменных и блокированием доступа к памяти после её освобождения, что значительно увеличивает надёжность и безопасность кода. Swift также предлагает множество современных методов программирования, таких как замыкания, обобщённое программирование, лямбда-выражения, кортежи и словарные типы, быстрые операции над коллекциями, элементы функционального программирования.

Pеализация Swift построена с задействованием технологий свободного проекта LLVM. Для обеспечения высокой производительности Swift-программы компилируются в машинный код, который в проведённых тестах демонстрирует производительность на 30% опережающую код на Objective-C. Вместо сборщика мусора в Swift используются средства подсчёта ссылок на объекты. В поставку входит пакетный менеджер Swift Package Manager, предоставляющий инструменты для распространения модулей и пакетов с библиотеками и приложениями на языке Swift, управления зависимостями, автоматизированной загрузки, сборки и связывания компонентов.

Ключевые изменения в новой версии:

  • Добавлен новый режим изоляции данных, предоставляющий на уровне компилятора защиту от состояний гонки, возникающих при обращении к данным из параллельно выполняемых потоков. При включении режима компилятор выполняет проверку безопасного использования или наличия должных блокировок данных, обрабатываемых параллельно выполняемым кодом.
  • Предложен экспериментальный урезанный вариант языка Embedded Swift, предназначенный для создания приложений для встраиваемых систем и микроконтроллеров. В компиляторе сборка в новом режиме реализована для целевых платформ ARM и RISC-V, и позволяет генерировать более компактные, потребляющие меньше памяти и обособленные исполняемые файлы, не привязанные к runtime.
  • Предложена новая библиотека Synchronization, предоставляющая низкоуровневый API для организации параллельного выполнения кода, атомарного выполнения операций и использования мьютексов.
  • Добавлена поддержка типизированных исключений (Typed throws), дающих возможность указать тип возвращаемой ошибки на этапе определения функции. Например, ниже показано определение функции, которая либо возвращает экземпляр Record либо ошибку с типом ParseError:
    
       func parseRecord(from string: String) throws(ParseError) -> Record { 
         // ... 
       }
    
  • Предоставлена возможность использования обобщённого кода (generic), который может одновременно работать как с копируемыми, так и с некопируемыми типами (некопируемые типы могут иметь только одного владельца, что позволяет добиться увеличения производительности за счёт замены связанных с владением проверок на запрет копирования ресурсов).
  • Расширена переносимость с кодом на языке C++ в таких областях, как типы, допускающие только перемещение, виртуальные методы, аргументы по умолчанию и дополнительные типы стандартной библиотеки (например, std::map и std::optional).
  • Реализованы знаковые и беззнаковые 128-разрядные целые типы.
  • Библиотека Foundation унифицирована для всех поддерживаемых платформ (Linux, Windows, macOS) и может применяться в переносимых приложениях. На языке Swift переписаны реализации типов JSONDecoder, URL, Calendar, FileManager и ProcessInfo.
  • Добавлена новая библиотека Swift Testing, предоставляющая API для написания и выполнения тестов.
  • Значительно расширена поддержка платформ Linux и Windows. Добавлена возможность сборки полностью статически связываемых исполняемых файлов для Linux, не использующих внешние зависимости (реализован static SDK для Linux). Обеспечено тестирование в Debian, Fedora и Ubuntu 24.04.

  1. OpenNews: Apple выпустил язык программирования Swift 5.3 и открыл код библиотеки Swift System
  2. OpenNews: Для продолжения разработки браузера Ladybird решено использовать язык Swift
  3. OpenNews: Создатель LLVM и Swift уходит из компании Apple
  4. OpenNews: Компания Apple открыла реализацию языка Swift и реализовала поддержку Linux
  5. OpenNews: Компания Apple представила язык программирования Swift, основанный на LLVM
Обсуждение (104 +6) | Тип: Программы |
·18.09.2024 Выпуск среды рабочего стола GNOME 47 (197 +25)
  После шести месяцев разработки представлен выпуск среды рабочего стола GNOME 47. Для быстрой оценки возможностей GNOME 47 предложены специализированные Live-сборки на основе openSUSE и установочной образ, подготовленный в рамках инициативы GNOME OS. GNOME 47 также уже включён в состав экспериментальных сборок Ubuntu 24.10 и Fedora 41.

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

  • Добавлена поддержка настройки акцентных цветов (accent), применяемых для выделения активных элементов. Если ранее тема оформления GNOME предоставляла единый синий акцентный цвет, то теперь в конфигураторе внешнего вида предоставлена возможность выбора из нескольких вариантов.
  • Улучшена работа на системах с низким разрешением экрана, для которых оптимизирован процесс отрисовки пиктограмм и элементов интерфейса. Решена проблема с отображением слишком мелких пиктограмм - GNOME теперь автоматически выбирает уровень масштабирования пиктограмм для обеспечения адекватного для низких разрешений размера.
  • На системах с GPU Intel и AMD добавлена поддержка задействования средств аппаратного ускорения кодирования видео при записи скринкастов, что позволяет снизить нагрузку на систему и устранить влияние записи скринкастов в высоком разрешении на отзывчивость интерфейса и приложений.
  • До версии 4.16 обновлена версия библиотеки GTK, в которой по умолчанию в окружениях на базе протокола Wayland задействован движок отрисовки "vulkan", напрямую использующий графический API Vulkan. Значительно улучшено качество и производительность отрисовки на старом оборудовании и на мобильных устройствах.
  • При удалённом подключении к рабочему столу реализована поддержка сохранения сеансов - при случайном отключении от удалённого рабочего стола предоставлена возможность возвращения к прерванному сеансу без потери его состояния (сеанс будет возобновлён в том же виде, что и до выхода).
  • Предложен новый стиль диалоговых окон, используемых в системе и приложениях. Изменения нацелены на повышение удобства работы независимо от разрешений экрана и типа устройств.
  • Существенно переработаны диалоги открытия и сохранения файлов, которые теперь не обособлены, а основаны на коде штатного файлового менеджера и приближены к нему во внешнем виде и поведении. В новых диалогах появились такие возможности, как изменение масштаба, выбор режима сортировки пиктограмм, встроенные функции переименования каталогов и файлов, предпросмотр файлов, генерация эскизов по мере необходимости и расширенный поиск.
  • В файловом менеджере Nautilus (GNOME Files) обновлён интерфейс диалогов, применяемых при создании нового каталога и сжатии файлов. В панели поиска обеспечен вывод контекстной информации, связанной с производительностью и влияющей на результаты поиска, например, отсутствие выбранного файлового пути в поисковом индексе или попытка поиска на части ФС, примонтированной с удалённого сервера.

    Расширены возможности боковой панели файлового менеджера. Сведён в одном месте список внутренних накопителей. Добавлена возможность удаления различных точек входа (Places), включая элементы для перехода к документам, загрузкам, музыке и видео. Добавлен новый раздел "Network" со списком сетевых хранилищ, включающий секции с подключёнными, ранее используемыми и доступными для подключения хранилищами.

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

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

  • В средствах управления внешними учётными записями (GNOME Online Accounts) реализовано автоматическое заполнение деталей подключения к IMAP/SMTP на основании указанного email-адреса. Обеспечена интеграция электронной почты, календаря-планировщика и адресной книги с учётными записями Microsoft 365. При настройке WebDAV реализовано автоматическое определение доступных серверов.
  • В web-браузере Epiphany (GNOME Web) предложена новая функциональность для автоматического заполнения web-форм с учётом ранее предоставленных данных. В настройках можно выбрать доступную для автоматического заполнения информацию, такую как имя, адрес и контактные данные. Предложена новая панель с закладками, упрощающая навигацию и поиск закладок. Добавлен отчёт о конфиденциальности, отражающий число заблокированных браузером скриптов для отслеживания перемещений. Из-за изменений процесса аутентификации временно отключена поддержка сервиса Firefox Sync.
  • В календаре-планировщике переработано всплывающее окно с детальной информацией о событии. Улучшена обработка событий в режиме только для чтения. Улучшен внешний вид и изменены отступы между элементами. В диалогах импорта и редактирования событий обеспечена корректная обработка скрытых календарей и календарей в режиме только для чтения.
  • В коллекцию GNOME Circle добавлены новые приложения: Binary, Biblioteca, Hieroglyphic, Resources, Tuba и Valuta.
  • Обновлён интерфейс анализатора свободного места на диске. Изменено оформление панели, списка файлов и пиктограмм.
  • Изменено оформление курсора, показываемого в процессе ожидания завершения действия.
  • В менеджере приложений (GNOME Software) переработан вывод рекомендованных приложений.
  • В приложении для работы с картами (GNOME Maps) для представления географической информации по умолчанию задействована векторная графика. Добавлена поддержка использования поддерживаемого сообществом сервиса для построения маршрутов.
  • Улучшена поддержка дробного масштабирования в приложениях на базе X11.
  • В сеансах на базе Wayland реализована возможность использования шлемов виртуальной реальности для игр.
  • Добавлены базовые возможности для применения аппаратного ускорения при организации совместного доступа к экрану на системах с видеокартами NVIDIA.
  • Добавлена возможность сборки GNOME Shell и композитного менеджера Mutter без поддержки X11, оставив только компоненты для Wayland.
  • В композитном менеджере Mutter добавлена поддержка расширения протокола Wayland drm-lease, которое предоставляет ресурсы, необходимые для формирования стереокартинки с разными буферами для левого и правого глаза при выводе на шлемы виртуальной реальности.


  1. OpenNews: В gnome-session и GDM реализована возможность сборки без поддержки X11
  2. OpenNews: В GNOME намерены перейти на другой шрифт по умолчанию
  3. OpenNews: В GNOME реализована возможность сборки только с Wayland и улучшена поддержка графических планшетов
  4. OpenNews: Начальный прототип нового инсталлятора для GNOME OS
  5. OpenNews: Опубликована среда рабочего стола GNOME 46
Обсуждение (197 +25) | Тип: Программы | Интересно
·18.09.2024 Опубликован Valkey 8.0, форк СУБД Redis от Amazon, Google, Oracle и Ericsson (53 +23)
  Представлен релиз проекта Valkey 8.0, развивающего форк СУБД Redis, созданный после перевода кодовой базы Redis на проприетарную лицензию. Проект развивается на нейтральной площадке под покровительством организации Linux Foundation при участии разработчиков из таких компаний, как Amazon, Google, Oracle, Ericsson и Snap. В числе разработчиков Valkey - Маделин Олсон (Madelyn Olson), бывший мэйнтейнер Redis. Код проекта написан на языке Си и распространяется под лицензией BSD. Поддерживается работа в Linux, macOS, OpenBSD, NetBSD и FreeBSD.

Начиная с выпуска 7.4 СУБД Redis переведена на использование лицензий RSALv2 (Redis Source Available License v2) и SSPLv1 (Server Side Public License v1), которые приводят к дискриминации отдельных категорий пользователей, что не позволяет считать их открытыми или свободными. По своим целям обе лицензии походят друг на друга, а отличия сводятся к тому, что лицензия SSPL основана на копилефт лицензии AGPLv3, а лицензия RSAL основана на пермиссивной лицензии BSD. Лицензия RSAL позволяет использовать, изменять, распространять и интегрировать код в приложения, за исключением случаев, когда эти приложения являются коммерческими или используются для предоставления управляемых платных сервисов. Лицензия SSPL дополнительно содержит требование поставки под той же лицензией не только кода самого приложения, но и исходных текстов всех компонентов, вовлечённых в предоставление облачного сервиса.

СУБД Valkey и Redis предоставляют функции для хранения данных в формате ключ/значение, расширенные поддержкой структурированных форматов данных, таких как списки, хэши и множества, а также возможностью выполнения на стороне сервера скриптов-обработчиков на языке Lua. БД хранится в памяти и синхронизируется с версией на диске или отражается в логе изменений на диске, что гарантирует сохранность данных в случае аварийного завершения работы. Поддерживаются транзакции, режим "публикация/подписка", команды для инкремента/декремента, операции над списками и множествами (объединение, пересечение), переименование ключей, master-slave репликация, множественные выборки и функции сортировки.

Выпуск Valkey 8.0 позиционируется как первый значительный релиз проекта. Среди изменений:

  • Внесены оптимизации, обеспечивающие распределение нагрузки между доступными ядрами CPU и позволяющие потокам обработки ввода/вывода функционировать одновременно с основным потоком, что даёт возможность параллельно выполнять команды и обрабатывать операции ввода/вывода. Повышена эффективность обработки команд в пакетном режиме, например, добавлена поддержка упреждающего извлечения часто используемых данных для их оседания в процессорном кэше. При тестировании в окружении AWS r7g новая версия продемонстрировала способность обрабатывать до 1.2 млн. запросов в секунду, что в три раза больше, чем прошлый выпуск.
  • Повышена масштабируемость и живучесть кластерных конфигураций. Добавлена поддержка автоматического переключения на запасные серверы в случае сбоя (Failover) для узлов с ещё незаполненными пустыми слотами шардинга. Обеспечена репликация данных о состоянии слотов - все команды "CLUSTER SETSLOT" теперь синхронно реплицируются перед выполнением на основном узле, что повышает живучесть кластера в случае выхода из строя основного узла. Добавлена возможность автоматического восстановления состояния слота миграции.
  • Ускорена работа репликации, благодаря одновременной передаче дампов RDB (Redis Database Backup) и лога накопившихся изменений (backlog) в разных потоках. Проведённое тестирование показало сокращение задержек операций записи и снижение времени синхронизации до 50% при нагрузках с очень интенсивным потоком команд чтения. Значительно снижено потребление памяти на первичном узле.
  • Добавлены новые метрики со статистикой в привязке к отдельным слотам и клиентам. Например, доступны метрики о клиентах, использующих механизм "публикация/подписка", задержках при обработке событий, трафике канала передачи команд, статистике о реорганизации хеш-таблиц памяти, а также числе ключей, трафике и нагрузке на CPU в привязке к слотам.
  • Проведена оптимизация хранилища ключей, позволившая примерно на 10% сократить потребление памяти.
  • Добавлена возможность работы в системах, в которых одновременно используется IPv4 и IPv6.
  • Повышена эффективность работы механизма "публикация/подписка", при котором создаётся канал, сообщения из которого распространяются клиентам по подписке.
  • Добавлена экспериментальная поддержка работы поверх RDMA.

  1. OpenNews: Выпуск СУБД Redis 7.4, переведённый на проприетарные лицензии
  2. OpenNews: Проект Redka развивает реализацию протокола и API Redis поверх SQLite
  3. OpenNews: Выпуск Redict 7.3.0, форка СУБД Redis
  4. OpenNews: Amazon, Google, Oracle, Ericsson и Snap основали Valkey, форк СУБД Redis
  5. OpenNews: СУБД Redis переходит на проприетарную лицензию. Обсуждение удаления Redis из Fedora
Обсуждение (53 +23) | Тип: Программы |
·18.09.2024 Выпуск Java SE 23 и OpenJDK 23 (84 +8)
  После шести месяцев разработки компания Oracle опубликовала платформу Java SE 23 (Java Platform, Standard Edition 23), в качестве эталонной реализации которой используется открытый проект OpenJDK. За исключением удаления некоторых устаревших возможностей в Java SE 23 сохранена обратная совместимость с прошлыми выпусками платформы Java - большинство ранее написанных Java-проектов без изменений будут работоспособны при запуске под управлением новой версии. Готовые для установки сборки Java SE 23 (JDK, JRE и Server JRE) подготовлены для Linux (x86_64, AArch64), Windows (x86_64) и macOS (x86_64, AArch64). Разработанная в рамках проекта OpenJDK эталонная реализация Java SE 23 полностью открыта под лицензией GPLv2 с исключениями GNU ClassPath, разрешающими динамическое связывание с коммерческими продуктами.

Java SE 23 отнесён к категории выпусков с обычным сроком поддержки, обновления для которого будут выпускаться до следующего релиза. В качестве ветки с длительным сроком поддержки (LTS) следует использовать Java SE 21 или Java SE 17, обновления для которых будут выпускаться до 2031 и 2029 годов соответственно (общедоступные - до 2028 и 2026 годов). Расширенная поддержка LTS-ветки Java SE 8 продлится до 2030 года, а Java SE 11 - до 2032 года.

Среди предложенных в Java SE 23 новшеств:

  • Включён по умолчанию генеративный режим работы сборщика мусора ZGC (Generational Z Garbage Collector), использующий раздельную обработку "старых" и "молодых" объектов, что повышает эффективность очистки недавно созданных объектов с небольшим временем жизни. Применение Generational ZGC уменьшает риски приостановок во время выделения ресурсов, снижает нагрузку на CPU и потребление памяти при сборке мусора. Тестирование Generational ZGC с Apache Cassandra 4 показало увеличение пропускной способности в 4 раза при фиксированном размере кучи (heap) и уменьшение размера кучи на четверть при неизменной пропускной способности.
  • В JavaDoc добавлена поддержка использования разметки Markdown для документирования кода в комментариях, которую можно использовать вместо смеси из HTML и @-тегов JavaDoc.
  • Механизмы сопоставления с образцом расширены предварительной поддержкой использования примитивных типов (int, byte, char и другие базовые типы, не являющиеся объектами) во всех видах шаблонов, в операторе "instanceof" и в блоках "switch".
    
       switch (x.getStatus()) {
           case 0 -> "okay";
           case 1 -> "warning";
           case 2 -> "error";
           case int i -> "unknown status: " + i;
       }
       if (i instanceof byte b) {
        ... b ...
       }
    
  • Добавлена предварительная поддержка использования одного выражения "import module M" для импорта сразу всех пакетов, экспортируемых указанным модулем. Изменение существенно упрощает повторное использование модульных библиотек, позволяя подключать библиотеки и классы без определения их места в иерархии пакетов. Например, указание "import module java.base" приведёт к импорту всех 54 пакетов, входящих в модуль java.base, которые ранее потребовалось бы упоминать по-отдельности ("import java.io.*", "import java.util.*" и т.п.).

    Предложена вторая предварительная реализация API Class-File для разбора, генерации и преобразования файлов с классами Java.

    
       ClassFile cf = ClassFile.of();
       ClassModel classModel = cf.parse(bytes);
       byte[] newBytes = cf.build(classModel.thisClass().asSymbol(),
            classBuilder -> {
                for (ClassElement ce : classModel) {
                    if (!(ce instanceof MethodModel mm
                            && mm.methodName().stringValue().startsWith("debug"))) {
                        classBuilder.with(ce);
                    }
                }
            });
    
  • Предложена восьмая предварительная реализация API Vector, предоставляющего функции для векторных вычислений, которые выполняются с использованием векторных инструкций процессоров x86_64 и AArch64 и позволяют одновременно применить операции сразу к нескольким значениям (SIMD). В отличие от предоставляемых в JIT-компиляторе HotSpot возможностей по автовекторизации скалярных операций, новый API даёт возможность явно управлять векторизацией для параллельной обработки данных.
  • В класс java.io.Console добавлены методы format, printf, readPassword и readLine для форматирования, вывода и чтения текста с учётом выбранной локали.
    
       System.console().printf(Locale.FRANCE, "%1$tY-%1$tB-%1$te %1$tA", new Date())
       2024-mai-16 jeudi
    
  • Добавлена вторая предварительная реализация расширенного API Stream, поддерживающего определение собственных промежуточных операций, которые могут оказаться полезны в случаях, когда существующих встроенных промежуточных операций недостаточно для желаемого преобразования данных. Собственные обработчики подключаются при помощи новой промежуточной операции Stream::gather(Gatherer), которая обрабатывает элементы потока, применяя к ним заданный пользователем обработчик.
    
       jshell> Stream.of(1,2,3,4,5,6,7,8,9).gather(new WindowFixed(3)).toList()
       $1 ==> [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    
  • Добавлена третья предварительная реализация неявно объявленных классов и безымянных экземпляров метода "main", в которых можно обойтись без объявлений public/static, передачи массива аргументов и прочих сущностей, связанных с объявлением класса.
    
       // было
       public class HelloWorld {
         public static void main(String[] args) {
           System.out.println("Hello world!");
         }
       }
    
       // теперь можно
       void main() {
           System.out.println("Hello, World!");
       }
    
  • Добавлен второй предварительный вариант возможности, разрешающей указание в конструкторах выражений перед вызовом super(...), используемого для явного вызова конструктора родительского класса из конструктора наследуемого класса, если эти выражения не ссылаются на создаваемый конструктором экземпляр.
    
       class Outer {
           void hello() {
               System.out.println("Hello");
           }
           class Inner {
               Inner() {
                   hello();
                   super();
               }
           }
       }
    
  • Добавлена третья предварительная реализация ограниченных значений (Scoped Values), позволяющих совместно использовать неизменяемые данные в потоках и эффективно обмениваться данными между дочерними потоками (значения наследуются). Scoped Values развиваются для замены механизма переменных локальных к потоку (thread-local variables) и более эффективны при использовании очень большого числа виртуальных потоков (тысячи и миллионы потоков). Главное отличие Scoped Values от переменных локальных к потоку в том, что первые записываются один раз, в дальнейшем не могут быть изменены и остаются доступны только на время выполнения потока.
  • Предложен для тестирования третий предварительный вариант API для cтруктурированного параллелизма (Structured Concurrency), упрощающего разработку многопоточных приложений за счёт обработки нескольких задач, выполняемых в разных потоках, как единого блока.
  • Объявлены устаревшими и намечены к удалению методы доступа к внешней памяти (вне JVM), предоставляемые классом sun.misc.Unsafe. Для обращения к памяти вне кучи (off-heap) и взаимодействия с внешними кодом рекомендуется использовать API VarHandle и API FFM (Foreign Function & Memory).

Дополнительно можно отметить публикацию обновления платформы для создания приложений с графическим интерфейсом JavaFX 23 и включение в основной состав Oracle JDK 23 JIT-компилятора GraalVM.

Также представлен новый выпуск универсальной виртуальной машины GraalVM, поддерживающей запуск приложений на JavaScript (Node.js), Python, Ruby, R, любых языках для JVM (Java, Scala, Clojure, Kotlin) и языках, для которых может формироваться биткод LLVM (C, C++, Rust). Кроме поддержки JDK 23 в новой версии проведена оптимизация потребления памяти и размера исполняемого кода, реализована полноценная поддержка средств для встраивания Python и WebAssembly в Java-код с использованием JIT-компиляции.

  1. OpenNews: Выпуск платформы Java SE 22 и открытой эталонной реализации OpenJDK 22
  2. OpenNews: Треть Java-проектов на базе библиотеки Log4j продолжают использовать уязвимые версии
  3. OpenNews: Доступен Jakarta EE 10, продолжающий развитие Java EE после передачи проекту Eclipse
  4. OpenNews: Компания Oracle представила универсальную виртуальную машину GraalVM
  5. OpenNews: Компания Oracle убрала ограничение по использованию JDK в коммерческих целях
Обсуждение (84 +8) | Тип: Программы |
·17.09.2024 Опубликован набор компиляторов LLVM 19 (59 +17)
  После шести месяцев разработки представлен релиз проекта LLVM 19.1.0, развивающего инструментарий (компиляторы, оптимизаторы и генераторы кода), компилирующий программы в промежуточный биткод RISC-подобных виртуальных инструкций (низкоуровневая виртуальная машина с многоуровневой системой оптимизаций). Сгенерированный псевдокод может быть преобразован в машинный код для заданной целевой платформы или использован JIT-компилятором для формирования машинных инструкций непосредственно во время выполнения программы. На базе технологий LLVM проектом развивается компилятор Clang, поддерживающий языки программирования C, C++ и Objective-C. Начиная с прошлой ветки проект перешёл на новую схему формирования номеров версий, в соответствии с которой нулевой выпуск ("N.0") используется в процессе разработки, а первая стабильная версия снабжается номером "N.1".

Среди улучшений в Clang 19:

  • Добавлены возможности, определённые в Си-стандарте C23:
    • поддержка использования спецификатора constexpr для определения объектов;
    • макросы INFINITY, NAN, FLT_NORM_MAX, DBL_NORM_MAX и LDBL_NORM_MAX во float.h;
    • механизм "#embed" для интеграции бинарных ресурсов;
    • тип char8_t для строк и символов в UTF-8.
  • Обеспечена реализация всех возможностей, определённых в стандарте C++17. Завершающим звеном стало включение поддержки элементов для сопоставления параметров шаблона с совместимыми аргументами, которые были отключены по умолчанию из-за имевшихся проблем с совместимостью.
  • В режиме C++14 включена по умолчанию поддержка функции delete с указанием размера (sized deallocation),
  • Добавлены возможности, связанные со стандартом C++20: встроенные функции __is_layout_compatible и __is_pointer_interconvertible_base_of; полная поддержка выражений для импорта модулей; начальная поддержка автоматического определения типов аргументов шаблона класса для создаваемых при помощи шаблонов псевдонимов типов (CTAD для Alias Template).
  • Добавлены возможности, связанные со стандартом C++20: продление времени жизни временных объектов в циклах, перебирающих диапазоны; переносимые предположения; ослабление ограничений для constexpr и отключение диагностики "-Winvalid-constexpr"; поддержка статических и явных функций-членов объектов с одинаковыми списками параметров.
  • Добавлены возможности, связанные с будущим стандартом C++2с (C++26): индексирование пакета параметров в шаблонах; синтаксис '= delete("причина")'; атрибуты для структурированных привязок; запрет на привязку возвращаемого glvalue к временному значению; тривиальные бесконечные циклы без неопределенного поведения; вывод ошибки при удалении указателя на неполный тип; применение ограничений в выражениях свёртки ("...").
  • Добавлены новые флаги компилятора:
    • "-fsanitize=implicit-bitfield-conversion" для проверки неявного усечения и изменения знака при работе с битовыми полями.
    • "-fsanitize=implicit-integer-conversion" для проверки неявных преобразований целых чисел.
    • "-Wmissing-designated-field-initializers" для выявления отсутствующих инициализаторов полей.
    • "-fexperimental-modules-reduced-bmi" для включения урезанного BMI (Binary Module Interface) для именованных модулей C++20, позволяющего использовать стандартные модули C++.
    • "-fexperimental-late-parse-attribute" для включения позднего парсинга атрибутов в специфичных контекстах, например, атрибута counted_by.
    • "-fseparate-named-sections" для создания отдельных уникальных секций для глобальных символов в именованных специальных секциях.
    • "-fms-define-stdc" для совместимости STDC с MSVC.
    • "-Wc++23-compat" и "-Wc++2c-compat" - группы предупреждений для упрощения миграции на C++23 и C++26.
    • "-fdisable-block-signature-string" для отключения генерации строки с подписью для блоков.
    • "-fpointer-tbaa" для пометки несовместимых указателей, используя анализ алиасов на основе типов (TBAA).
  • Добавлены новые атрибуты: sized_by, counted_by_or_null, nonblocking, nonallocating, blocking, allocating, sized_by_or_null, amdgpu_max_num_work_groups(x, y, z).
  • Добавлены новые встроенные функции: __builtin_readsteadycounter, __builtin_popcountg, __builtin_clzg, __builtin_ctzg, __is_bitwise_cloneable.
  • Расширены средства диагностики и статического анализа, добавлены новые проверки.

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

  • В бэкенде для архитектуры RISC-V добавлена экспериментальная поддержка расширений Zabha (атомарные операции с памятью), Ssqosid, Ssnpm, Smnpm, Smmpm, Sspm и Supm (использование масок для указателей), Zba, Zbb, Zbs. Стабилизирована поддержка расширений Ztso, Zabha, Zaamo и Zalrsc.
  • В бэкенд для архитектуры AArch64 добавлена поддержка процессоров Cortex-R82AE, Cortex-A78AE, Cortex-A520AE, Cortex-A720AE, Cortex-A725, Cortex-X925, Neoverse-N3, Neoverse-V3 и Neoverse-V3AE.
  • В бэкенд для архитектуры ARM добавлена поддержка процессора Cortex-R52+.
  • Улучшены бэкенды для архитектур X86, LoongArch, WebAssembly, MIPS, PowerPC и AMDGPU.
  • Расширены возможности компоновщика LLD. Добавлены новые виды перемещений (relocations): CREL, GNU_PROPERTY_AARCH64_FEATURE_PAUTH, R_AARCH64_AUTH_ABS64 и R_AARCH64_AUTH_RELATIVE. Добавлен параметр "--compress-sections <section-glib>={none,zlib,zstd}[:level]" для выбора алгоритма сжатия секций.
  • В библиотеке Libc++ продолжена реализация возможностей стандартов C++20, C++23 и C++26.
  • C 3.6 до З.8 повышены требования к версии Python, необходимой для сборки LLVM.

  1. OpenNews: Доступен набор компиляторов LLVM 18
  2. OpenNews: Обеспечена возможность сборки ядра Linux в окружении macOS с LLVM
  3. OpenNews: Опубликованы результаты аудита безопасности кодовой базы LLVM
  4. OpenNews: Проект LLVM меняет схему нумерации версий
  5. OpenNews: Релиз набора компиляторов GCC 14
Обсуждение (59 +17) | Тип: Программы |
·17.09.2024 C++ Alliance продвигает в C++ механизмы безопасной работы с памятью, опробованные в Rust (331 +50)
  Президент организации C++ Alliance объявил о работе над спецификацией, добавляющей в язык C++ расширения для безопасной работы с памятью, напоминающие возможности, реализованные в языке Rust. Для осуществления проекта привлечён Шон Бакстер (Sean Baxter), автор экспериментального C++-компилятора Circle, развивающего идеи по повышению безопасности кода C++, реализуемые на стороне компилятора без использования сборки мусора. В рамках проекта Шон опубликовал документ с анализом применимости тех или иных мер защиты, предлагаемых в языке Rust, оценкой возможности их реализации для C++ и предложениями по добавлению в язык C++ расширений, повышающих безопасность кода.

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

Безопасность работы с памятью предлагается обеспечить при помощи механизмов, реализуемых на этапе компиляции и не приводящих к дополнительным накладным расходам, свойственным языкам, использующим сборщики мусора. В качестве основных предлагаемых методов обеспечения безопасности упоминается отслеживание владения объектами, проверка заимствования переменных (borrow checker), использование безопасного контекста (safe), создание интерфейсов std2::send и std2::sync. Работа также охватывает создание защищённого варианта стандартной библиотеки, предлагающего реализации алгоритмов и структур данных, позволяющих безопасно работать с памятью.

  1. OpenNews: DARPA развивает AI-транслятор для переписывания Си-кода на Rust
  2. OpenNews: Создатель C++ раскритиковал навязывание безопасных языков программирования
  3. OpenNews: 70% проблем с безопасностью в Chromium вызваны ошибками при работе с памятью
  4. OpenNews: Cloudflare перешёл с NGINX на собственный прокcи Pingora, написанный на языке Rust
  5. OpenNews: АНБ рекомендует переходить на языки программирования, безопасно работающие с памятью
Обсуждение (331 +50) | Тип: К сведению |
·17.09.2024 OpenSearch, форк платформы Elasticsearch, перешёл под крыло Linux Foundation (18 +10)
  Компания Amazon объявила о создании организации OpenSearch Software Foundation, контролируемой Linux Foundation, которая будет курировать дальнейшую разработку проекта OpenSearch, развивающего форк платформы поиска, анализа и хранения данных Elasticsearch, а также web-интерфейса Kibana. Отмечается, что перевод OpenSearch на независимую нейтральную площадку, не контролируемую отдельными компаниями, позволит привлечь к разработке новых участников и сделает проект более привлекательным для внедрения.

Управление проектом будет осуществляться техническим комитетом, сформированным из представителей сообщества и компаний, принимающих участие в разработке. Основной принцип модели управления определён как "разработка сообществом для сообщества". О присоединении к работе над OpenSearch в новой организации заявили компании Amazon, SAP, Uber, Aiven, Aryn, Atlassian, Canonical, DigitalOcean, Eliatra, Graylog, NetAp Instaclustr и Portal26. Сформировавшее вокруг OpenSearch сообщество насчитывает несколько тысяч участников, включая более 200 сопровождающих из 25 компаний и организаций. С момента создания форка проектом зафиксировано более 700 млн загрузок.

Форк был создан в ответ на перевод проекта Elasticsearch на несвободную лицензию SSPL (Server Side Public License) и прекращение публикации изменений под старой лицензией Apache 2.0. Несмотря на недавнее возвращение Elasticsearch на использование свободной лицензии, проект OpenSearch не потерял актуальность, так как в нём продолжено использование пермиссивной лицензии Apache 2.0 вместо лицензии AGPLv3, на которую перешёл Elasticsearch, а также развивается ряд специфичных надстроек, ранее поставлявшихся компанией Amazon в отдельном дистрибутиве Open Distro for Elasticsearch и заменяющих платные компоненты Elasticsearch.

  1. OpenNews: Elasticsearch возвращается на использование открытой лицензии
  2. OpenNews: В официальных клиентах Elasticsearch блокирована возможность подключения к форкам
  3. OpenNews: Amazon опубликовал OpenSearch 1.0, форк платформы Elasticsearch
  4. OpenNews: Amazon представил OpenSearch, форк платформы Elasticsearch
  5. OpenNews: Amazon и Logz.io объявили о создании форков Elasticsearch
Обсуждение (18 +10) | Тип: К сведению |
·17.09.2024 Релиз FreeBSD 13.4 (146 +12)
  После 6 месяцев разработки опубликован релиз операционной системы FreeBSD 13.4, который стал первым выпуском, сформированным в рамках обновлённого цикла разработки, подразумевающего формирование промежуточных выпусков раз в полгода. Установочные образы FreeBSD 13.4 сформированы для архитектур amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 и riscv64. Дополнительно подготовлены сборки для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2, Google Compute Engine и Vagrant. Следующий выпуск 13.5, который намечен на март, станет финальным и будет сопровождаться до апреля 2026 года. Параллельно развивается ветка FreeBSD 14, следующий выпуск (14.2) в которой намечен на декабрь 2024 года. Первый выпуск ветки FreeBSD 15 будет сформирован в декабре 2025 года.

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

  • В библиотеке libcapsicum реализовано кэширование дополнительной информации о часовых поясах, что позволило снизить число обращений к функции tzset и привело к повышению производительности.
  • Обновлены версии LLVM 18.1.5, SQLite 3.46.0, OpenSSH 9.7p1, libarchive 3.7.4.
  • В сетевой стек внесены оптимизации производительности и исправления. Улучшена поддержка протокола SCTP, в loopback-интерфейс добавлена возможность выноса на сторону сетевой карты операций вычислений контрольных сумм для пакетов SCTP.
  • В драйверы amdsmn (System Management Network) и amdtemp добавлена поддержка процессоров AMD Ryzen 7 "Phoenix", позволившая определять температуру с датчиков на CPU через sysctl.
  • Обновлены драйверы устройств irdma и ice для сетевых адаптеров Intel Ethernet 8xx. В драйвер u3g добавлена поддержка LTE-модема SIM7600G. Внесены исправления в драйверы для беспроводных устройств.
  • Внесены изменения в состав пакетов, поставляемых на установочном носителе (dvd1):
    • Порт devel/git заменён на сокращённый вариант devel/git@lite.
    • Добавлены порты sysutils/seatd и x11-wm/sway для формирования окружений на базе Wayland.
    • Удалён порт archivers/unzip, так как утилита unzip перенесена в базовую систему.
    • Удалён порт emulators/linux_base-c7, в котором нет смысла без установки Linux-пакетов.
    • Удалён порт ports-mgmt/portmaster, вместо которого следует использовать пакетный менеджер pkg и бинарные пакеты.
    • Из портов удалены драйверы x11-drivers/xf86-video-vmware, которые проблематично использовать с текущей версией X-сервера.

  1. OpenNews: Релиз FreeBSD 13.3
  2. OpenNews: Фонд Sovereign инвестирует 686 тысяч евро в обновление инфраструктуры FreeBSD
  3. OpenNews: FreeBSD переходит на сокращённый цикл подготовки релизов
  4. OpenNews: Обсуждение ветки FreeBSD 15 и интеграции поддержки Rust во FreeBSD
  5. OpenNews: Релиз FreeBSD 14.1 с улучшенным звуковым стеком и поддержкой cloud-init
Обсуждение (146 +12) | Тип: Программы |
·16.09.2024 Релиз ядра Linux 6.11 (184 +49)
  После двух месяцев разработки Линус Торвальдс представил релиз ядра Linux 6.11. Среди наиболее заметных изменений: поддержка операций атомарной записи на блочном уровне, поддержка операций bind() и listen() в io_uring, новый механизм блокировок программных обработчиков прерываний, возможность записи в отзеркаленные в память исполняемые файлы, поддержка написания драйверов блочных устройств на языке Rust, оптимизация вызова getrandom(), новая реализация AES-GCM.

В новую версию принято 15130 исправлений от 2078 разработчиков, размер патча - 85 МБ (изменения затронули 13282 файлов, добавлено 985857 строк кода, удалено 268915 строк). В прошлом выпуске было 14564 исправлений от 1989 разработчиков, размер патча - 41 МБ (в два раза меньше, чем патч для ядра 6.11). Около 46% всех представленных в 6.11 изменений связаны с драйверами устройств, примерно 17% изменений имеют отношение к обновлению кода, специфичного для аппаратных архитектур, 10% связано с сетевым стеком, 5% - с файловыми системами и 3% c внутренними подсистемами ядра.

Основные новшества в ядре 6.11:

  • Дисковая подсистема, ввод/вывод и файловые системы
    • Реализована поддержка атомарных операций записи на блочном уровне, при которых на накопитель записывается либо весь указанный набор блоков, либо ни один из блоков, что позволяет защититься от ситуаций, когда после сбоя оборудования записывается лишь часть блоков, а в другой части остаётся старая информация. Для включения атомарного режима записи в системный вызов pwritev() добавлен флаг RWF_ATOMIC. Информацию о поддержке атомарной записи (atomic_write_unit_min, atomic_write_unit_max и atomic_write_segments_max) в привязке к отдельным файлам можно получить при помощи функции statx().
    • Предоставлена поддержка записи в исполняемые файлы, связанные с работающими процессами. Ранее, как и в других Unix-подобных системах, ядро выводило ошибку при попытке записи в исполняемый файл запущенного процесса. Данное ограничение снято, так как оно лишено практического смысла.
    • Реализована возможность разработки драйверов блочных устройств на языке Rust. В качестве примера в ядро добавлен драйвер rnull, представляющий собой аналог драйвера null_blk, написанный на языке Rust.
    • В файловой системе Btrfs в опции монтирования "rescue=" реализована поддержка новых режимов "ignoremetacsums" и "ignoresuperflags", которые можно использовать для выноса некоторых проверок в пространство пользователя при восстановлении ФС после сбоя. Реализация операции динамического возвращения групп блоков переделана для исключения возникновения ситуации нехватки свободного пространства в условиях неполной заполненности ФС.
    • В файловой системе ntfs3 реализована поддержка атрибутов "compressed" и "immutable", определяющих сжатые и неизменяемые файлы.
    • В ФС F2FS и Ext4 обработка имён файлов без учёта регистра символов (casefold) упрощена через хранение имён в форме qstr-строк без лишних преобразований регистра.
    • В ФС Ext4 реализация функции jbd2_transaction_committed оптимизирована для повышения производительности на очень быстрых накопителях (в тестах отмечен прирост обрабатываемых операций в секунду, достигающий 20%).
    • В системном вызове statx() разрешена передача указателя NULL вместо пустой строки с файловым путём, в случае если выставлен флаг AT_EMPTY_PATH.
    • В системном вызове open_by_handle_at() смягчены проверки прав доступа к файлу, в случае отсутствия полномочий CAP_DAC_READ_SEARCH для поиска в начальном пространстве имён. Ранее необходимость наличия полномочий CAP_DAC_READ_SEARCH к начальному пространству имён не позволяла использовать системный вызов open_by_handle_at() в контейнерах.
    • Расширены возможности системных вызовов listmount() и statmount(). В listmount() добавлен флаг LISTMOUNT_REVERSE для вывода содержимого таблицы точек монтирования в обратном порядке (самые новые записи в верху). В statmount() реализован вывод опций, выставленных при монтировании ФС. В обоих системных вызовах разрешена работа при отсутствии доступа к начальному пространству имён (когда имеется только доступ к локальному или внешнему пространству имён).
    • В ФС Bcachefs реализована поддержка автоматического прозрачного восстановления проблемных данных, используя коды восстановления ошибок - если при чтении возникает ошибка ввода/вывода или вычислено несоответствие контрольной суммы, проблемный блок данных автоматически перезаписывается при наличии избыточности для его восстановления.
  • Память и системные сервисы
    • В состав приняты патчи с реализацией нового механизма блокировок программных обработчиков прерываний (BH, bottom-half), который обеспечивает блокировку используемых структур данных, но при этом не вызывает блокирования параллельного выполнения не связанного с ними кода. Отмечается, что изменение позволило не только снизить задержки для ядер, работающих в режиме realtime, но и повысить производительность обычных ядер (например, для некоторых видов нагрузки наблюдается повышение производительности сетевой подсистемы на 14.5%).
    • В подсистему асинхронного ввода/вывода io_uring добавлена поддержка операций для реализации функций bind() и listen(), используемых для создания принимающих соединения сетевых сокетов.
    • Добавлен набор ioctl-операций для псевдо-ФС NSFS (NameSpace FS), используемой для работы с пространствами имён. Новые ioctl позволяют преобразовывать идентификаторы процессов и групп потоков между разными пространствами имён идентификаторов процессов (PID namespace). Похожие ioctl, позволяющие на основе pidfd-идентификаторов определять файловые дескрипторы процессов в отдельных пространствах имён, также добавлены в псевдо-ФС pidfd.
    • Для BPF-программ добавлена поддержка нового итератора для работы с битовыми масками, который можно использовать, например, для перебора отдельных битов в областях памяти, таких как cpumask. Добавлен механизм для отправки процессам в пространстве пользователя уведомлений об отсоединении (detach/unregister) объекта struct_ops. Расширен спектр типов, которые можно использовать в массивах (например, можно объявлять массивы, имеющие элементы с типами kptr, bpf_rb_root и bpf_list_head). Предложен более надёжный механизм Split BTF (BPF Type Format), используемый для проверки типов в псевдокоде BPF.
    • Добавлена подсистема, позволяющая организовать подачу питания на устройства в заданном порядке, на случай, когда одно устройство должно быть активировано раньше другого (например, при активации беспроводных чипов на платформах Qualcomm).
    • Добавлен модуль "Sloppy logic analyzer", позволяющий создавать простые логические анализаторы сигнала, использующие GPIO и работающие на отдельном ядре CPU.
    • Добавлена поддержка runtime-констант, которые могут использоваться вместо переменных, инициализируемых один раз. Например, runtime-константы могут применяться вместо переменных, хранящих указатель и размер для кэша dentry. Данные переменные выставляются во время загрузки и затем никогда не меняются. Идея в том, чтобы подставить значения подобных переменных напрямую в инструкции в коде, исключив накладные расходы, связанные с манипуляциями с указателями.
    • Продолжен перенос изменений из ветки Rust-for-Linux, связанных с использованием языка Rust в качестве второго языка для разработки драйверов и модулей ядра (поддержка Rust не активна по умолчанию, и не приводит ко включению Rust в число обязательных сборочных зависимостей к ядру). Добавлена поддержка выпуска Rust 1.80 (в качестве минимальной версии по-прежнему поддерживается Rust 1.78). Помимо ранее отмеченных средств для разработки драйверов блочных устройств, в новой версии добавлены абстракции для загрузки прошивок, доступа к пространству пользователя (uaccess) и работы структурой "page".
    • Для систем x86-64 реализован новый системный вызов uretprobe(), оптимизирующий работу механизма трассировки uretprobe, позволяющего отслеживать значения, возвращаемые функциями в приложениях пространства пользователя.
    • Добавлены параметры командной строки ядра: "reserve_mem" для резервирования именованной области памяти во время загрузки и "ramoops.mem_name" для использования в pstore области памяти, созданной через reserve_mem.
    • В контроллер памяти на базе cgroup в файл memory.reclaim, через который определяются настройки вытеснения памяти, добавлен параметр "swappiness", позволяющий изменить баланс между вытеснением анонимных страниц памяти в раздел подкачки и освобождением страниц памяти, занятых под файловый кэш.
    • Добавлен ioctl-интерфейс PROCMAP_QUERY для более эффективного поиска виртуальных областей памяти (Virtual Memory Area) в /proc/PID/maps.
    • В системный вызов mmap() добавлен флаг MAP_DROPPABLE для запроса памяти, которая никогда не будет сброшена в раздел подкачки, а в случае нехватки памяти может быть удалена.
    • Для архитектуры ARM64 реализована поддержка горячего подключения (перевода в режимы online/offline) физических и виртуальных CPU на системах с ACPI.
    • Для архитектуры RISC-V обеспечена поддержка горячего подключения памяти и добавлена поддержка GCC-плагина STACKLEAK (выполняет инициализацию всех хранимых в стеке переменных для предотвращения утечки информации из ядра через неинициализированные переменные, которые могут содержать остатки ранее сохранённых в стеке данных).
    • Удалён механизм фиктивного маппинга памяти EFI (fake EFI memory map) на этапе загрузки. Данный механизм не использовался на практике и мешал разработкам в области конфиденциального выполнения виртуальных машин.
    • Прекращена поддержка платформы PowerPC 40x.
    • Повышены требования к версии GNU Make - для сборки ядра требуется как минимум выпуск GNU Make, опубликованный в 2013 году.
  • Виртуализация и безопасность
    • Интегрированы патчи, значительно (до 15 раз) ускоряющие получение случайных чисел через системный вызов getrandom(). Оптимизация основана на использовании механизма vDSO (virtual dynamic shared object), дающего возможность перенести обработчик системного вызова из ядра в пространство пользователя и избежать переключений контекста. Загрузка реализации системного вызова в адресное пространство процесса непосредственно ядром.
    • Для систем x86-64 включена новая реализация алгоритма шифрования AES-GCM, поддерживающая использование векторных инструкций VAES, VPCLMULQDQ и AVX512/AVX10 для ускорения вычислений. В проведённых тестах прирост производительности после перехода на новую реализацию достигает 156%. Ассемблерная реализация AES-GCM полностью переписана с учётом корректности, производительности, размера и исчерпывающего документирования кода.
    • Реализована возможность запуска ядра в качестве гостевой системы в виртуализированных окружениях, использующих процессорное расширение AMD SEV-SNP (Secure Nested Paging), предназначенное для обеспечения безопасной работы с вложенными таблицами страниц памяти. Для дополнительной изоляции доступа к ресурсам из виртуальных машин может применяться модуль SVSM (Linux Secure VM Service Module). В гипервизор KVM добавлена начальная поддержка запуска гостевых систем, защищённых при помощи AMD SEV-SNP.
    • Добавлен отдельный bucket slab allocator, включаемый через параметр CONFIG_SLAB_BUCKETS и обеспечивающий защиту от атак с использованием техники "heap spraying".
    • В гипервизор KVM добавлен ioctl-вызов для упреждающего выделения памяти гостевой системе до её фактического запуска.
  • Сетевая подсистема
    • Добавлен sysctl-параметр net.tcp_rto_min_us, через который можно настроить минимальный таймаут повторной передачи (retransmission timeout) для TCP-сокетов.
    • В утилиту ethtool добавлена возможность тонкой настройки конфигурации обработчиков прерываний для сетевых интерфейсов, использующих интерфейс Net DIM.
  • Оборудование
    • В драйвере AMDGPU включена начальная поддержка GPU AMD RDNA4 ("GFX12"). Добавлена поддержка технологий DCN 4.0.x, GC 12.0, GMC 12.0, SDMA 7.0, MES12 и MMHUB 4.1.
    • Продолжена работа над drm-драйвером (Direct Rendering Manager) Xe для GPU на базе архитектуры Intel Xe, которая используется в видеокартах Intel семейства Arc и интегрированной графике, начиная с процессоров Tiger Lake. Улучшена поддержка GPU на базе микроархитектур Battlemage, Arrow Lake и Lunar Lake.
    • В подсистеме DRM (Direct Rendering Manager) переписан обработчик выставляемых монитором параметров EDID (Extended Display Identification Data).
    • В драйвере i915 добавлена поддержка GPU Battlemage Xe2 и включён по умолчанию режим CMRR (Content Match Refresh Rate).
    • В DRM-драйвер msm (GPU Qualcomm Adreno) добавлена поддержка платформы SM7150 и GPU X185 и a505.
    • Добавлена поддержка экранных панелей Lincoln Tech Sol LCD185-101CT, Microtips Technology 13-101HIEBCAF0-C, Microtips Technology MF-103HIEB0GA0, BOE nv110wum-l60, IVO t109nw41, WL-355608-A8, PrimeView PM070WL4, Lincoln Technologies LCD197, Ortustech COM35H3P70ULC, AUO G104STN01, K&d kd101ne3-40ti.
    • В звуковой подсистеме добавлена поддержка чипов и кодеков Intel Panther Lake, Asahi Kasei AK4619, Cirrus Logic CS530x, Everest Semiconductors ES8311, NXP i.MX95, LPC32xx, Qualcomm LPASS v2.5, WCD937x, Realtek RT1318, RT1320 и Texas Instruments PCM5242.
    • Внесена финальная порция изменений, обеспечивающих поддержку ARM SoC Snapdragon X Elite, в котором используется собственный 12-ядерный CPU Qualcomm Oryon и GPU Qualcomm Adreno. Чип нацелен на использование в ноутбуках и ПК, и опережает во многих тестах производительности чипы Apple M3 и Intel Core Ultra 155H. Добавленные в ядро 6.11 изменения связаны с поддержкой GPU Adreno X1-85 и управлением энергопотреблением. Из устройств на базе SoC Snapdragon X Elite заявлена поддержка ноутбуков ASUS Vivobook S15 и Lenovo Yoga Slim7x.

Одновременно латиноамериканский Фонд свободного ПО сформировал вариант полностью свободного ядра 6.11 - Linux-libre 6.11-gnu, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В выпуске 6.11 обновлён код чистки блобов в драйверах mdgpu, adreno, vgxy61, atomisp, btnxpuart, prueth и tas2781. Проведена чистка новых драйверов amdgpu isp, tn40, rtl8192du, cs40l50, rt1320 и pcie-rcar-gen4. Выполнена чистка имён блобов в dts-файлах (devicetree) для архитектуры Aarch64. Добавлена не выдающая предупреждения и запросов (nowait-nowarn) версия примитивов для загрузки прошивок. Добавлен код для определения примитивов загрузки прошивок в коде на языке Rust.

  1. OpenNews: Релиз ядра Linux 6.10
  2. OpenNews: Релиз ядра Linux 6.9
  3. OpenNews: Релиз ядра Linux 6.8
  4. OpenNews: Релиз ядра Linux 6.7
  5. OpenNews: Релиз ядра Linux 6.6
Обсуждение (184 +49) | Тип: Программы | Интересно
·15.09.2024 Выпуск Nextcloud Hub 9, платформы для организации совместной работы (72 +16)
  Представлен выпуск платформы Nextcloud Hub 9, предоставляющей самодостаточное решение для организации совместной работы сотрудников предприятий и команд, развивающих различные проекты. Одновременно опубликована лежащая в основе Nextcloud Hub облачная платформа Nextcloud 30, позволяющая развернуть облачное хранилище с поддержкой синхронизации и обмена данными, предоставляющее возможность просмотра и редактирования данных с любого устройства в любой точке сети (при помощи web-интерфейса или WebDAV). Сервер Nextcloud можно развернуть на любом хостинге, поддерживающем выполнение PHP-скриптов и предоставляющем доступ к SQLite, MariaDB/MySQL или PostgreSQL. Исходные тексты Nextcloud распространяются под лицензией AGPL.

По решаемым задачам Nextcloud Hub напоминает Google Docs и Microsoft 365, но позволяет развернуть полностью контролируемую инфраструктуру совместной работы, функционирующую на своих серверах и не привязанную к внешним облачным сервисам. Nextcloud Hub объединяет в единую среду несколько открытых приложений-надстроек над облачной платформой Nextcloud, позволяющих совместно работать с офисными документами, файлами и информацией для планирования задач и мероприятий. Платформа также включает надстройки для доступа к электронной почте, обмена сообщениями, организации видеоконференций и чатов.

Аутентификация пользователей может производиться как по локальной базе, так и через интеграцию с LDAP / Active Directory, Kerberos, IMAP и Shibboleth / SAML 2.0, в том числе с применением двухфакторной аутентификации, SSO (Single-sign-on) и привязки новых систем к учётной записи по QR-коду. Версионный контроль изменений позволяет отслеживать изменения в файлах, комментариях, правилах совместного доступа и тегах.

Основные компоненты платформы Nextcloud Hub:

  • Files - организация хранения, синхронизации, совместного доступа и обмена файлами. Доступ может быть осуществлён как через Web, так и при помощи клиентского ПО для настольных и мобильных систем. Предоставляются такие расширенные возможности, как полнотекстовый поиск, прикрепление файлов при отправке комментариев, выборочный контроль доступа, создание защищённых паролем ссылок для загрузки, интеграция с внешними хранилищами (FTP, CIFS/SMB, SharePoint, NFS, Amazon S3, Google Drive, Dropbox, и т.п.).
  • WorkFlow - оптимизирует бизнес-процессы через автоматизацию выполнения типовых работ, таких как преобразование документов в PDF, отправка сообщений в чаты при загрузке новых файлов в определённые каталоги, автоматическое назначение тегов. Возможно создание собственных обработчиков, выполняющих действия в привязке к определённым событиям.
  • Nextcloud Office - встроенные средства совместного редактирования документов, электронных таблиц и презентаций, развиваемые совместно с компанией Collabora. Предоставляется поддержка интеграции с пакетами OnlyOffice, Collabora Online, MS Office Online Server и Hancom office.
  • Nextcloud Collectives - предоставляет интерфейс для управления, организации совместной работы и взаимодействия между участниками в командах, группах и сообществах.
  • Photos - галерея изображений, упрощающая поиск, обмен и навигацию по совместной коллекции фотографий и изображений. Поддерживается ранжирование фотографий по времени, месту, тегам и частоте просмотра.
  • Calendar - календарь-планировщик, позволяющий координировать проведение встреч, планировать чаты и видеоконференции. Предоставляется интеграция с инструментами групповой работы на базе iOS, Android, macOS, Windows, Linux, Outlook и Thunderbird. Поддерживается загрузка событий с внешних ресурсов, работающих с протоколом WebCal.
  • Mail - совместная адресная книга и web-интерфейс для работы с электронной почтой. Возможна привязка нескольких учётных записей к одному inbox. Поддерживается шифрование писем и прикрепление цифровых подписей на базе OpenPGP. Возможна синхронизация адресной книги при помощи CalDAV.
  • Talk - система обмена сообщениями и проведения web-конференций (чат, аудио и видео). Имеется поддержка групп, возможность предоставления доступа к содержимому экрана и поддержка SIP-шлюзов для интеграции с обычной телефонией.
  • Nextcloud Backup - решение для децентрализованного хранения резервных копий.
  • Nextcloud AI Assistant - интеллектуальный помощник в стиле ChatGPT, устанавливаемый на своём сервере и не требующий обращения к внешним сервисам. AI Assistant может использоваться для генерации текста по запросу на естественном языке, выделения основных идей из больших описаний, придумывания заголовков, переписывания текста другими словами или перевода на другой язык.



Ключевые новшества Nextcloud Hub 9:

  • Проведена работа по модернизации оформления, затронувшая все компоненты платформы и приложения. Многие элементы, среди которых поля ввода, кнопки и ссылки, сделаны более компактными и занимающими меньше места на экране. В новом интерфейсе использовано закругление углов в кнопках и полях. Повышена эффективность использования экранного пространства.
  • Добавлена поддержка динамических фоновых изображений, подстраивающихся под параметры цветов в тёмных или светлых темах оформления.
  • Представлено новое приложение Nextcloud Flow, предоставляющее интерфейс для разработки, управления и отслеживания рабочих процессов, создаваемых для автоматизации выполнения повторяющихся задач и объединяющих в себе приложения Nextcloud и связанные с ними ресурсы. Приложение базируется на движке автоматизации процессов Windmill, позволяющем, выстраивать цепочки действий. Например, можно извлечь данные из прикреплённого к письму PDF-файла и выполнить с ними такие операции, как обработка платежа, сохранение в таблице, отправка уведомления пользователю или создание и отправка по email нового PDF-документа.
  • Добавлено приложение Nextcloud Whiteboard, позволяющее совместно создавать рисунки, наброски, заметки, планы и скетчи, параллельно проводя обсуждения и мозговые штурмы в Nextcloud Talk.
  • Расширены возможности построения федеративной сети, охватывающей пользователей с других серверов Nextcloud. Помимо обмена файлами и чатов, поддержка федеративной сети добавлена в видеовызовы. Пользователь теперь может подключиться не только к групповым чатам на других серверах, используя облачных идентификатор (Federated Cloud ID), но и к аудио- и видеоконференциям. Работа осуществляется по аналогии с участием в конференции на своём сервере, используя собственную учётную запись.
  • Фронтэнд переведён на использование инструментария Vite, позволившего значительно снизить размер JavaScript-приложений (в некоторых случаях до 5 раз) и ускорить их загрузку.
  • Приложение Nextcloud Text переведено на новый высокопроизводительный бэкенд, написанный на языке Rust и ранее уже применяемый в приложении Nextcloud Files. Переход позволил заметно снизить нагрузку на сервер, ускорить отрисовку операций редактирования и повысить эффективность синхронизации при совместном редактировании.
  • Внесены изменения в серверные компоненты, позволившие снизить нагрузку на CPU, сократить потребление памяти и ускорить проведение обновления.
  • Продолжено развитие возможности для разделения больших БД Nextcloud на несколько более мелких экземпляров, обрабатываемых на разных серверах для распределения нагрузки.
  • В дополнение к возможности применения синхронной репликации на нескольких серверах, ограниченной лимитом в 4 сервера, в новой версии добавлена поддержка подключения неограниченного числа узлов в режиме только для чтения, реплицируемых в асинхронном режиме.
  • В интеллектуальный помощник Nextcloud AI Assistant добавлена возможность взаимодействия в форме чата и поддержка перевода текста для различных языков.
  • В Nextcloud Files добавлен мастер для запроса файлов у других пользователей. Реализована возможность фильтрации вывода файлов по типу, времени изменения и владельцу. Добавлен древовидный режим просмотра содержимого каталогов.
  • В Nextcloud Mail встроены инструменты для определения фишинга, реализована возможность сквозного шифрования при помощи Mailvelope и расширены средства фильтрации результатов поиска.
  • В Nextcloud Talk добавлена возможность совершения вызовов в виртуальном окружении, используя гарнитуру смешанной реальности Apple Vision Pro. Реализована поддержка бана нарушителей. В версии для Android появилась поддержка просмотра истории переписки при нахождении в offline-режиме.
  • В Nextcloud Office упрощено заполнение форм и добавлена поддержка шаблонов PDF-документов с формами. Данные, полученные через формы в документах, среди прочего можно использовать для построения диаграмм.

  1. OpenNews: Представлена платформа для организации совместной работы Nextcloud Hub 8
  2. OpenNews: Доступна платформа для организации совместной работы Nextcloud Hub 7
  3. OpenNews: Компания Nextcloud GmbH поглотила почтовый клиент Roundcube
  4. OpenNews: Госучреждения Франции, Германии, Швеции и Нидерландов переходят на платформу Nextcloud
  5. OpenNews: Первый выпуск облачного хранилища Nextcloud, форка ownCloud
Обсуждение (72 +16) | Тип: Программы |
·14.09.2024 Пятый бета-выпуск операционной системы Haiku R1 (166 +57)
  После полутора лет разработки опубликован пятый бета-выпуск операционной системы Haiku R1. Изначально проект был создан как реакция на закрытие ОС BeOS и развивался под именем OpenBeOS, но был переименован в 2004 году из-за претензий, связанных с использованием в названии торговой марки BeOS. Для оценки работы нового выпуска подготовлено несколько загрузочных Live-образов (x86, x86-64 1.4 ГБ). Исходные тексты большей части ОС Haiku распространяются под свободной лицензией MIT, исключение составляют некоторые библиотеки, медиа-кодеки и компоненты, заимствованные из других проектов.

ОС Haiku ориентирована на персональные компьютеры, использует собственное ядро, построенное на основе модульной архитектуры, оптимизированное для высокой отзывчивости на действия пользователя и эффективного выполнения многопоточных приложений. Для разработчиков представлен объектно-ориентированный API. Система напрямую базируется на технологиях BeOS 5 и нацелена на бинарную совместимость с приложениями для данной ОС. Минимальное требование к оборудованию: CPU Pentium II или AMD Athlon и 384 МБ ОЗУ (рекомендовано Intel Core i3 или AMD Phenom II и 2 ГБ ОЗУ).

В качестве файловой системы используется OpenBFS, поддерживающая расширенные атрибуты файлов, журналирование, 64-разрядные указатели, поддержку хранения мета-тэгов (для каждого файла можно сохранить атрибуты в форме ключ=значение, что делает ФС похожей на БД) и специальных индексов для ускорения выборки по ним. Для организации структуры директорий используются "B+ tree" деревья. Из кода BeOS в состав Haiku включён файловый менеджер Tracker и панель Deskbar, исходные тексты которых были открыты после ухода BeOS со сцены.

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

  • В настройках внешнего вида упрощён интерфейс выбора цветов. Вместо 30 параметров по умолчанию теперь показывается три (фон панели, цвет статусной строки и цвет вкладок), а остальные вычисляются автоматически относительно выбранных трёх значений. При автоматическом выборе цвета учитывается выбор тёмной или светлой темы оформления (например, при активной тёмной теме выбираются светлые цвета для текста). Для возвращения показа полного набора всех параметров для ручного редактирования предусмотрена отдельная опция.
  • Внесена большая порция исправлений, нацеленных на улучшение поддержки работы при выборе тёмной темы оформления.
  • В редакторе пиктограмм Icon-O-Matic добавлена поддержка преобразования перспективы и показа эталонного изображения в качестве фона (для повторения контуров в пиктограмме). Значительно улучшены функции копирования и вставки.
  • При первом запуске, если определено наличие в системе аккумуляторов, обеспечена автоматическая установка в панель апплета PowerStatus, показывающего состояние заряда и параметры аккумулятора. Повышена точность информации об уровне заряда. Для информирования пользователя о низком уровне заряда добавлены звуковой сигнал и уведомление.
  • В файловом менеджере Tracker улучшена работа с каталогами и дисковыми разделами, доступными в режиме только для чтения, которые теперь наглядно выделяются более тёмным фоном (данный фон ранее использовался для виртуальных каталогов). Для доступных только для чтения элементов ФС также отключаются элементы меню, требующие доступа на запись.
  • Продолжено развитие портов сторонних приложений. Со времени прошлого выпуска портированы новые программы KDE, расширено число поддерживаемых GTK-программ, добавлен порт с отладчиком GDB 15 (ранее поставлялся GDB 6) и реализован экспериментальный порт платформы .NET 9.
  • Улучшена работа прослойки для обеспечения совместимости с X11/Xlib. Предоставлена возможность использования графического тулкита FLTK (из ограничений отмечается отсутствие поддержки функций, связанных с OpenGL).
  • Добавлена поддержка звуковых устройств с интерфейсом USB (автоматическое переключение вывода звука при подсоединении USB-устройства пока не работает, поэтому для переключения требуется перезапуск системных мультимедийных сервисов).
  • Добавлен драйвер для сетевых интерфейсов TUN/TAP, который можно использовать для создания сетевых туннелей и организации работы VPN.
  • В TCP-стек внесены оптимизации, заметно повысившие пропускную способность (производительность TCP-соединений возросла в 8-10 раз, а пропускная способность loopback-интерфейса (localhost) возросла на несколько порядков). Улучшено ведение счётчиков для накопления статистики. Сокращено число операций копирования буферов. Добавлена возможность выноса операций расчёта контрольных сумм пакетов на сторону сетевых карт.
  • Расширены возможности эмулятора терминала, в котором добавлена поддержка экранированной вставки из буфера обмена на случай использования в переносимом тексте разрывов строк и спецсимволов. В настройки добавлена возможность изменения цветовой схемы.
  • Проведён рефакторинг слоя TTY/PTY, унифицирован код TTY и PTY, добавлена поддержка расширений TTY, таких как TIOCOUTQ.
  • Проведена оптимизация производительности ядра и драйверов, добавлена возможность пакетного выполнения операций ввода/вывода, оптимизировано использование блокировок при запуске программ, повышена эффективность маппинга файлов в память, снижена конкуренция между блокировками при маппинге страниц памяти, повышена производительность выделения временных буферов, добавлены оптимизации в систему ввода/вывода, в загрузчик исполняемых файлов в формате ELF добавлена поддержка DT_GNU_HASH.
  • Переработана архитектура механизма блокировок user_mutex, близкого по своим возможностям к системе futex в Linux и используемого для реализации вызовов pthread_mutex и pthread_rwlock. Новая архитектура позволила решить ранее возникавшие проблемы с состоянием гонки и поднять производительность (например, скорость компиляции возросла на 25%).
  • Драйвер для файловой системы FAT заменён на новый вариант, портированный из FreeBSD. Замена драйвера позволила решить проблемы с совместимостью с другими реализациями FAT.
  • Добавлен драйвер для файловой системы UFS2 (Unix File System 2), используемой во FreeBSD. Драйвер пока работает только в режиме чтения.
  • Реализована часть API мультиплексирования ввода-вывода kqueue.
  • Расширены возможности трассировки и профилирования процессов при помощи утилит strace и profile
  • Улучшена совместимость со спецификациями POSIX. Реализованы функции getentropy, arc4random, pthread_sigqueue, preadv и pwritev, а также добавлена поддержка Unix-сокетов (AF_UNIX) SOCK_DGRAM.
  • Проведена большая работа по повышению стабильности работы всей системы. Устранены многие проблемы, приводившие к аварийным завершениям и сбоям в работе ядра и драйверов.

  1. OpenNews: Четвёртый бета-выпуск операционной системы Haiku R1
  2. OpenNews: Firefox портирован для ОС Haiku
  3. OpenNews: Для Haiku реализована прослойка для совместимости с Wayland
  4. OpenNews: Для ОС Haiku предложен слой совместимости с Xlib/X11
  5. OpenNews: Разработчики Haiku развивают порты для RISC-V и ARM
Обсуждение (166 +57) | Тип: Программы |
·13.09.2024 Началось бета-тестирование среды рабочего стола KDE Plasma 6.2 (139 +44)
  Доступна для тестирования бета-версия среды рабочего стола Plasma 6.2. Протестировать новый выпуск можно через Live-сборку от проекта openSUSE и тестовые сборки от проекта KDE Neon. Пакеты для различных дистрибутивов можно найти на данной странице. Релиз ожидается 8 октября.

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

  • Для графических планшетов добавлен интерфейс калибровки, предоставлена поддержка тестирования изменяемых настроек, реализована возможность переназначения клавиш на стилусе и появилась поддержка сопоставления поверхности планшета с определённой областью на экране.
  • В композитном менеджере KWin включена поддержка Wayland-расширений управления цветом. Добавлена поддержка возможности "rendering intents", определяющей то, как цвета должны быть преобразованы из одного цветового пространства в другое. Добавлена поддержка метода компенсации чёрной точки (BPC, Black Point Сompensation), применяемого для улучшения отображения чёрного цвета при преобразовании цветовых пространств.
  • Реализован Wayland-протокол alpha-modifier, позволяющий клиентам менять уровень прозрачности поверхности и выносить операции по обеспечению прозрачности на сторону композитного сервера, который в свою очередь может переадресовать эти операции KMS.
  • В окружении на базе Wayland реализована возможность копирования и вставки из системного буфера обмена при активном обзорном режиме (Overview) и других эффектах KWin.
  • Добавлена возможность сборки KWin только с поддержкой сеанса Wayland.
  • Добавлена настройка, позволяющая использовать встроенные в монитор данные цветового профиля.
  • В виджет управления яркостью экрана добавлены ползунки для раздельного изменения яркости на каждом подключённом мониторе. Для синхронизированного изменения яркости на всех мониторах можно использовать горячую клавишу или прокрутку колесом мыши на виджете.
  • Предоставлена возможность переопределения поведения приложений в отношении блокировки перехода в спящий режим или запуска хранителя экрана.
  • Возвращено отображение индикатора с уровнем заряда аккумулятора в процессе зарядки (в KDE Plasma 6.0 виджет отключался во время зарядки, а теперь будет отключаться только после завершения зарядки).
  • Добавлена комбинация клавиш Meta+B для переключения профилей энергопотребления.
  • В менеджере приложений (Discover) и связанном с ним индикаторе в системном лотке обеспечено постоянное отображение сведений о наличии обновлений. Добавлена кнопка "Install Updates & Shut Down" для установки накопившихся offline-обновлений и завершения работы (данная функция вначале перезагружает компьютер и выполняет offline-обновление во время загрузки, а затем завершает работу системы, после того как обновления будут установлены). Переработано представление информации о лицензиях и обеспечено явное разделения несвободных и проприетарных программ, вместо именования всех несвободных программ проприетарными. Встроена возможность установки и обновления пакетов для дистрибутива PostmarketOS.
  • При использовании альтернативных профилей энергопотребления, обеспечен показ специальных значков на индикаторе энергопотребления в системном лотке, что позволяет не только видеть состояние заряда аккумулятора, но и выбранный профиль энергопотребления.
  • Вызываемые из панели всплывающие окна теперь по возможности выравниваются по краю панели.
  • Предоставлена возможность назначения отображаемого имени для ярлыков выполнения произвольных команд.
  • При использовании Wayland реализована поддержка механизма "sticky keys", который позволяет людям c нарушением мелкой моторики пальцев рук пользоваться клавиатурными комбинациями, требующими одновременного нажатия нескольких клавиш - в режиме "sticky keys" клавиши-модификаторы (Shift, Ctrl, Alt) можно нажимать заранее, перед нажатием другой клавиши (нажатие модификатора запоминается и применяется к следующей клавише).
  • В виджет, показывающий прогноз погоды, добавлена поддержка отображения ощущаемой температуры, которая учитывает влияние влажности воздуха на субъективное ощущение температуры. Добавлена возможность загрузка прогнозом погоды из сервиса NOAA (National Oceanic and Atmospheric Administration).
  • Добавлена поддержка изменения параметров автоматической прокрутки в драйвере Libinput, а также возможность отключения режима плавной прокрутки в приложениях.
  • В виджет управления сетевым соединением добавлена поддержка WebAuth аутентификации на базе SAML (Security Assertion Markup Language). Реализована поддержка метода согласования соединения OWE (Opportunistic Wireless Encryption, RFC 8110) для генерации ключей шифрования в открытых беспроводных сетях (расширение OWE задействовано в стандарте WPA3 для шифрования всех потоков данных между клиентом и точкой доступа в общедоступных публичных беспроводных сетях, не требующих аутентификации).
  • Обеспечено изменение цвета выделения активных элементов (акцентный цвет) для тем оформления Breeze Dark и Breeze Twilight.
  • Размещение сетки элементов в системном лотке оптимизировано с учётом длины строковых названий на выбранном в системе языке.
  • Переделан интерфейс навигации по виджетам (Widget Explorer).
  • Всплывающее окно операций с буфером обмена, показываемое при нажатии Meta+V, унифицировано с интерфейсом виджета буфера обмена.
  • В конфигураторе (System Settings) предложено новое оформление страницы для настройки параметров клавиатуры, переработана страница с настройками Thunderbolt, а также модернизирован интерфейс страниц, продолжающих использовать QtWidgets (данные страницы сделаны более похожими на части, использующие QML).
  • Все компоненты KDE переведены на использования единого диалога выбора приложения для обработки контента ("Open With").
  • В интерфейсе приветствия входа в систему (Welcome Center) предложен более наглядный обзор возможностей KDE Plasma.
  • Реализована звуковая индикация подключения и отключения монитора.
  • В KWin удалена поддержка эффекта морфинга всплывающих окон из-за наличия нерешаемых проблем.
  • По умолчанию разрешено перемещение окон, соответствующих теме оформления Breeze, только за область заголовка, а не любые части окна.
  • В выпадающем меню, показываемом при перемещении мышью файла или изображения из браузера на рабочий стол или в файловый менеджер, теперь показываются только действия, имеющие отношение к перемещённому файлу (загрузка файла или помещение ссылки).
  • В виджете Pager добавлена опция для отключения контуров окна.
  • В виджете "Minimize All" обеспечено сворачивание окон только на текущем виртуальном рабочем столе.
  • В интерфейс добавления аватара пользователя встроен инструмент для обрезки изображения.
  • Добавлено всплывающее уведомление с запросом пожертвований, которое будет выводиться только раз в год (в декабре).
  • В программу Info Center добавлена страница с параметрами и характеристиками памяти.
  • В виджет завершения сеанса и конфигуратор добавлена опция "Show logout screen" для показа экрана выбора доступных операций (завершение работы, выход или перезагрузка).
  • В настройки Bluetooth добавлена отдельная секция с заблокированными устройствами, а на страницу с параметрами устройства добавлено подсказка о том, к чему приводит выставление блокировки.
  • Предоставлена возможность настройки ширины пиктограмм и текста, показываемых при активации менеджера задач.
  • Со 100 до 200 символов в секунду увеличена максимальная частота обработки повторного нажатия клавиши.
  • Предложена начальная реализация тем курсоров в формате SVG, которая задействована в темах Breeze.

  1. OpenNews: Релиз среды рабочего стола KDE Plasma 6.1
  2. OpenNews: Выпуск KDE Gear 24.08, набора приложений от проекта KDE
  3. OpenNews: Релиз KDE 6.0
  4. OpenNews: Релиз офисного пакета Calligra 4.0, развиваемого проектом KDE
  5. OpenNews: Отчёт проекта KDE за 2023 год
Обсуждение (139 +44) | Тип: Программы |
·13.09.2024 В Fedora 42 намерены включить инсталлятор на основе web-интерфейса и добавить эмулятор FEX (152 –7)
  Выпуск Fedora Workstation 42, намеченный на весну следующего года, предложено перевести по умолчанию на вариант инсталлятора Anaconda, в котором вместо интерфейса на основе библиотеки GTK используется web-интерфейс. Отдельно обсуждается вопрос задействования в новом инсталляторе принципиально иного интерфейса для разбивки дисковых разделов. Предложения пока не утверждены комитетом FESCo (Fedora Engineering Steering Committee), отвечающим за техническую часть разработки дистрибутива Fedora (изначально переход на новый инсталлятор предлагалось выполнить в Fedora 39, но с тех пор миграция несколько раз откладывалась).

Новый Web-интерфейс построен с использованием JavaScript-фреймворка React, элементов оформления PatternFly и компонентов из проекта Cockpit, уже применяемого в продуктах Red Hat для настройки и управления серверами. Cockpit выбран как хорошо зарекомендовавшее себя решение, для которого имеется бэкенд для взаимодействия с инсталлятором (Anaconda DBus). Применение Cockpit также позволило добиться единообразия и унифицировать различные компоненты управления системой. Так как ранее основная часть Anaconda была разделена на модули, взаимодействующие через API DBus, для обращения к функциям инсталлятора новый интерфейс использует уже существующий готовый API.

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

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

В качестве базового предлагается использовать автоматизированный (guided) режим разбивки диска, при котором инсталлятор сам выбирает параметры создания или изменения разделов на основе настроек, выбранных пользователем. Реализованы три базовых режима: полная переустановка с переразбивкой с нуля выбранных дисков, установка в свободное дисковое пространство и использование уже существующих дисковых разделов. Для продвинутого управления разделами предлагается интегрировать возможность вызова инструмента Cockpit Storage, развиваемого проектом Cockpit и построенного на тех же web-технологиях. В старом инсталляторе работа с диском ограничивается полностью автоматическим режимом, режимом ручной разбивки и встроенным редактором разделов Blivet-gui.

Из предложенных в Fedora 42 изменений дополнительно можно отметить намерение добавить в дистрибутив эмулятор FEX, позволяющий выполнять исполняемые файлы, собранные для архитектур x86 и x86-64, в окружении ARM64 (AArch64). Основанные на FEX компоненты для запуска x86-программ предлагается интегрировать в сборки Fedora Linux для архитектуры AArch64, поставляемые со средой рабочего стола KDE.

  1. OpenNews: В Fedora 41 предложено перевести инсталлятор на Wayland и удалить X11-пакеты из сборок с GNOME
  2. OpenNews: В Fedora Workstation 39 планируют задействовать новый инсталлятор на основе web-интерфейса
  3. OpenNews: Началось тестирование сборок Fedora с инсталлятором на основе web-интерфейса
  4. OpenNews: Используемый в Fedora и RHEL инсталлятор Anaconda переводят на web-интерфейс
  5. OpenNews: В Fedora 42 намерены реализовать телеметрию и изменить модель доступа к дискам и flatpak
Обсуждение (152 –7) | Тип: К сведению |
·12.09.2024 Выпуск свободного звукового редактора Ardour 8.7 (80 +27)
  Опубликован релиз свободного звукового редактора Ardour 8.7, предназначенного для многоканальной записи, обработки и микширования звука. В Ardour предоставляется мультитрековая шкала времени, неограниченный уровень отката изменений на всем протяжении работы с файлом (даже после закрытия программы), поддержка разнообразных аппаратных интерфейсов. Программа позиционируется, как свободный аналог профессиональных средств ProTools, Nuendo, Pyramix и Sequoia. Код распространяется под лицензией GPLv2. В ближайшее время неофициальные сборки для Linux будут сформированы в формате Flatpak.

Ключевые улучшения:

  • Реализована возможность перемещения выделенных дорожек и шин мышью для изменения их порядка в редакторе и интерфейсе микширования.
  • Для исключения путаницы и сокращения вероятности совершения ошибок число отображаемых линеек с маркерами сокращено до трёх: позиции (определённые моменты), диапазоны (отрывки) и аранжировки (части).
  • Добавлена поддержка записи изменений MIDI-программ (звуков или инструментов) и MIDI-банков (групп MIDI-программ), поступающих во время записи с подключённого к системе внешнего MIDI-устройства.
  • Обеспечена возможность распараллеливания операций чтения и записи звука и MIDI-данных на накопитель, что позволяет увеличить пропускную способность на многоядерных системах с современными устройствами хранения, такими как NVMe SSD.
  • На платформе Linux бэкенд "JACK" переименован в "JACK/Pipewire".
  • Обновлён интерфейс для импорта контента в формате AAF (Advanced Authoring Format).
  • Добавлена новая тема оформления "Captain Light".

  1. OpenNews: Выпуск звукового редактора Audacity 3.6
  2. OpenNews: Synthstrom Audible откроет код прошивки музыкальных синтезаторов Deluge
  3. OpenNews: Выпуск свободного звукового редактора Ardour 8.5
  4. OpenNews: Выпуск Mixxx 2.4, свободного пакета для создания музыкальных миксов
  5. OpenNews: Опубликован Daphile 24.05, дистрибутив для создания музыкальных систем
Обсуждение (80 +27) | Тип: Программы |
·11.09.2024 Попытка получения TLS-сертификатов для чужих доменов mobi, используя просроченный домен с WHOIS-сервисом (31 +19)
  Исследователи из компании watchTowr Labs опубликовали результаты эксперимента с захватом устаревшего WHOIS-сервиса регистратора доменной зоны ".MOBI". Поводом для исследования послужило то, что регистратор поменял адрес WHOIS-сервиса, переместив его с домена whois.dotmobiregistry.net на новый хост whois.nic.mobi. При этом домен dotmobiregistry.net перестал использоваться и в декабре 2023 года был освобождён и стал доступен для регистрации.

Исследователи потратили 20 долларов и купили этот домен, после чего на своём сервере запустили собственный фиктивный WHOIS-сервис whois.dotmobiregistry.net. Удивление вызвало то, что многие системы не переключились на новый хост whois.nic.mobi и продолжали использовать старое имя. C 30 августа по 4 сентября этого года было зафиксировано 2.5 млн запросов по старому имени, отправленных с более чем 135 тысяч уникальных систем.

Среди отправителей запросов присутствовали почтовые серверы государственных и военных организаций, проверявшие фигурирующие в email домены через WHOIS, специализирующиеся на безопасности компании и платформы обеспечения безопасности (VirusTotal, Group-IB), а также удостоверяющие центры, сервисы проверки доменов, SEO-сервисы и регистраторы доменов (например, domain.com, godaddy.com, who.is, whois.ru, smallseo.tools, seocheki.net, centralops.net, name.com, urlscan.io и webchart.org).

Возможность возвращать любые данные в ответ на обращение к старому WHOIS-сервису доменной зоны ".MOBI" могла быть использована для организации атак на отправителей запросов. Предложенный первый вариант атаки основывается на предположении, что если кто-то продолжает отправлять запросы к давно заменённому сервису, то вероятно он делает это с использованием устаревшего инструментария, содержащего уязвимости. Например, в phpWHOIS в 2015 году была выявлена уязвимость CVE-2015-5243, позволяющая добиться выполнения кода атакующего при разборе специально оформленных данных, возвращаемых сервером WHOIS.

Из связанных с WHOIS уязвимостей также упоминается выявленная в 2021 году уязвимость CVE-2021-32749 в пакете Fail2Ban, позволяющая выполнить код при возвращении некорректных данных WHOIS-сервисом, используемым в процессе формирования отчёта о блокировке при использовании обработчика mail-whois (Fail2Ban без экранирования операции "~!" передавал команде mail результат обращения к WHOIS-серверу, но запрос формировался для проверки IP-адреса, а не домена, т.е. уязвимость не применима в ситуации с ".mobi").

Второй вариант атаки основан на том, что некоторые удостоверяющие центры предоставляют возможность верификации владения доменом через email, указанный в базе регистратора домена, доступной через протокол WHOIS. Оказалось, что несколько удостоверяющих центров с поддержкой такого метода проверки продолжают использовать старый WHOIS-сервер для доменной зоны ".MOBI".

Таким образом, получив контроль над именем whois.dotmobiregistry.net атакующие могут вернуть свои данные, выполнить подтверждение и получить TLS-сертификат для любого домена в зоне ".MOBI". Например, в ходе эксперимента исследователи запросили у регистратора GlobalSign TLS-сертификат для домена microsoft.mobi и возвращённый фиктивным WHOIS-сервисом email "whois@watchTowr.com" был показан в интерфейсе как доступный для отправки кода подтверждения владения доменом.

  1. OpenNews: NS-сервера домена .top прекратили обслуживание запросов валидации Let's Encrypt
  2. OpenNews: Сбой в доменной зоне RU из-за ошибки при замене ключей DNSSEC
  3. OpenNews: Утечка хэшей паролей Whois-сервиса интернет-регистратора APNIC
  4. OpenNews: Ошибка при обновлении ключей DNSSEC привела к нарушению работы доменной зоны NZ
  5. OpenNews: Уязвимость в EPP-серверах позволяла получить контроль над 19 доменами первого уровня
Обсуждение (31 +19) | Тип: Проблемы безопасности |
Следующая страница (раньше) >>



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

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