The OpenNET Project / Index page

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

·25.06.2022 Redbean 2.0 - платформа для web-приложений, упакованных в универсальный исполняемый ZIP-архив (36 +2)
  Представлен выпуск проекта Redbean 2.0, предлагающего web-сервер, позволяющий поставлять web-приложения в форме универсального исполняемого файла, который может быть выполнен в Linux, Windows, MacOS, FreeBSD, NetBSD и OpenBSD. Все связанные с web-приложением и сервером ресурсы компонуются в один исполняемый файл, который при этом совместим с форматом архивов ZIP и позволяет использовать утилиту zip для добавления дополнительных файлов. Возможность запуска одного файла в разных ОС и его распознание как ZIP-архива достигается благодаря манипуляциям с заголовками исполняемых файлов и связыванием с многоплатформенной стандартной Си-библиотекой Cosmopolitan. Код проекта распространяется под лицензией ISC.

Идея проекта в поставке одного исполняемого файла "redbean.com" со встроенным web-сервером. Разработчик web-приложения может при помощи утилиты zip добавить в этот файл HTML и Lua-файлы и получить на выходе самодостаточное web-приложение, выполняемого во всех популярных ОС и не требующего для работы запуска в системе отдельного web-сервера.

После запуска полученного исполняемого файла, для обращения к сохранённому в файле web-приложению используется встроенный web-сервер. По умолчанию обработчик прикрепляется к localhost, но сервер может применяться и в качестве обычного публичного web-сервера (например, данный сервер обслуживает сайт проекта). Встроенный Web-сервер поддерживает обращение по HTTPS и может выполняться с использованием sandbox-изоляции, позволяющей контролировать к каким системным интерфейсам производится обращение. Для управления работой сервера во время его выполнения предоставляется интерактивный интерфейс REPL (на базе Lua REPL и библиотеки bestline, аналога GNU Readline), дающий возможность изменять состояние процесса в интерактивном режиме.

Утверждается, что web-сервер способен обработать более миллиона запросов в секунду на обычном ПК, отдавая html-контент, сжатый методом gzip. Высокой производительности способствует то, что zip и gzip используют общий формат, поэтому данные отдаются без перепаковки из уже сжатых областей в zip-файле. Кроме того, так как исполняемый файл создан с использованием статического связывания и имеет небольшой размер, вызов функции fork для него практически не приводит к накладным расходам при размещении в памяти.

Помимо обработки статического web-контента и выполнения JavaScript в браузере, логика web-приложения может расширяться при помощи скриптов на языке Lua, web-фреймворка Fullmoon и СУБД SQLite. Среди дополнительных возможностей отмечается поддержка схемы хэширования паролей argon2, возможность определения региона IP по базе MaxMind и доступ к Unix API библиотеки Cosmopolitan. Размер базового стека, включающего web-сервер, MbedTLS, Cosmopolitan, Lua и SQLite, составляет всего 1.9 МБ.

Универсальный исполняемый файл формируется путём совмещения специфичных для разных операционных систем сегментов и заголовков (PE, ELF, MACHO, OPENBSD, ZIP) в одном файле. Для обеспечения запуска одного исполняемого файла в Windows и Unix-системах применяется трюк, суть которого в кодировании файлов Windows PE в виде shell-скрипта, пользуясь тем, что Thompson Shell не использует маркер скриптов "#!". В итоге создаётся исполняемый файл, в котором скомбинировано несколько разных форматов, используемых в Linux, BSD, Windows и macOS.


   $ curl https://redbean.dev/redbean-demo-2.0.7.com >redbean.com
   $ chmod +x redbean.com

   $ zip redbean.com hello.html
   $ zip redbean.com hello.lua
 
   $ ./redbean.com -vv
   I2022-06-23T08:27:14+000767:redbean] (srvr) listen   http://127.0.0.1:8080
   >: waiting for command...

   $ curl https://127.0.0.1:8080/hello.html
   hello
   
   $ printf 'GET /hello.lua\n\n' | nc 127.0.0.1 8080
   hello


  1. OpenNews: Cosmopolitan - стандартная Си-библиотека и формат кроссплатформенных исполняемых файлов
  2. OpenNews: Анализ использования фрагментов уязвимых библиотек в исполняемом коде
  3. OpenNews: FatELF - формат для упаковки в исполняемый файл поддержки разных платформ
  4. OpenNews: Выпуск Electron 19.0.0, платформы создания приложений на базе движка Chromium
  5. OpenNews: Tauri 1.0 - конкурирующая с Electron платформа для создания пользовательских приложений
Обсуждение (36 +2) | Тип: Программы |
·24.06.2022 Google начал распространение прошивки на базе ОС Fuchsia для устройств Nest Hub Max (81 +4)
  Компания Google приступила к распространению новой прошивки, основанной на ОС Fuchsia, для умных фоторамок Nest Hub Max, выпускаемых с 2019 года. На первом этапе прошивка на базе Fuchsia начнёт доставляться участникам программы Google Preview Program, и если в ходе пробного внедрения не возникнет непредвиденных проблем, прошивка будет применена и на устройствах остальных пользователей Nest Hub Max.

Фоторамка Nest Hub Max стала вторым потребительским устройством, оснащённым операционной системой Fuchsia. Первым прошивку на базе Fuchsia год назад получила модель Nest Hub, которая отличается меньшим экраном и отсутствием встроенной видеокамеры, которая используется в системе видеонаблюдения и обеспечения безопасности. Несмотря на замену операционной системы в прошивке, пользовательский интерфейс и функциональность полностью сохранены и конечные пользователи не должны заметить различий, так как интерфейс построен на базе фреймворка Flutter и абстрагирован от низкоуровневых компонентов. Ранее в устройствах Nest Hub Max, сочетающих функции рамки для фотографий, мультимедийной системы и интерфейса для управления умным домом, применялась прошивка на базе оболочки Cast и ядра Linux.

ОС Fuchsia развивается компаний Google c 2016 года с учётом недостатков в области масштабирования и обеспечения безопасности, имеющихся в платформе Android. Система базируется на микроядре Zircon, основанном на наработках проекта LK, расширенного для применения на различных классах устройств, включая смартфоны и персональные компьютеры. Zircon расширяет LK поддержкой процессов и разделяемых библиотек, уровнем пользователя, системой обработки объектов и моделью обеспечения безопасности на основе capability. Драйверы реализуются в виде работающих в пространстве пользователя динамических библиотек, загружаемых процессом devhost и управляемых менеджером устройств (devmg, Device Manager).

Для Fuchsia подготовлен собственный графический интерфейс, написанный на языке Dart с использованием фреймворка Flutter. Проектом также развиваются фреймворк для построения интерфейсов пользователя Peridot, пакетный менеджер Fargo, стандартная библиотека libc, система рендеринга Escher, Vulkan-драйвер Magma, композитный менеджер Scenic, файловые системы MinFS, MemFS, ThinFS (FAT на языке Go) и Blobfs, а также менеджер разделов FVM. Для разработки приложений предоставляется поддержка языков C/C++, Dart, в системных компонентах также допускается использование Rust, в сетевом стеке Go, а в системе сборки языка Python.

В процессе загрузки используется системный менеджер, включающий appmgr для создания начального программного окружения, sysmgr для формирования загрузочного окружения и basemgr для настройки пользовательского окружения и организации входа в систему. Для обеспечения безопасности предлагается продвинутая система sandbox-изоляции, в которой новые процессы не имеют доступа к объектам ядра, не могут выделять память и не могут запускать код, а для доступа к ресурсам применяется система пространств имён, определяющая доступные полномочия. Платформа предоставляет фреймворк для создания компонентов, представляющих собой программы, запускаемые в своём sandbox, которые могут взаимодействовать с другими компонентами через IPC.

  1. OpenNews: Доступен Chromium для ОС Fuchsia
  2. OpenNews: Доступна операционная система dahliaOS 220222, сочетающая технологии Linux и Fuchsia
  3. OpenNews: Google начал установку ОС Fuchsia на устройства Nest Hub
  4. OpenNews: В ОС Fuchsia работают над поддержкой запуска немодифицированных Linux-программ
  5. OpenNews: В ОС Fuchsia начат приём изменений от представителей сообщества
Обсуждение (81 +4) | Тип: Программы |
·23.06.2022 Результат опроса предпочтений разработчиков от Stack Overflow (157 +18)
  Дискуссионная площадка Stack Overflow опубликовала результаты ежегодного опроса, в котором приняло участие около 70 тысяч разработчиков ПО.
  • Наиболее часто используемым участниками опроса языком остаётся JavaScript 65.36% (год назад 64.9%, большинство участников Stack Overflow web-разработчики). По сравнению с прошлым годом язык Python спустился на 4 место, уступив третье - SQL, но разрыв между ними незначительный 49.43% и 48.07. Язык TypeScript переместился с 7 на 5 место, увеличив свою пользовательскую базу с 30.19% до 34.83%. Число пользователей языка Rust за год выросло с 7% до 9.32%, Dart с 6.02% до 6.54%, а Go с 9.5% до 11.15%. Популярность Java упала с 35.35% до 33.27%, С++ c 24.31% до 22.55%, С c 21.01% до 19.27%, Ruby с 6.7% до 6%, Perl c 2.4% до 2.3%, а PHP с 21.98% до 20.87%.
  • Седьмой год подряд Rust признаётся самым любимым языком:
  • При рассмотрении используемых СУБД доля MySQL за год снизилась с 50.1% до 46.85% , а доля PostgreSQL выросла с 40.4% до 43.59%. Доля SQLite снизилась с 32.18% до 32.01%. Доля MongoDB выросла с 27.7% до 28.3%, а доля Redis с 20.69% до 22.13%.
  • В рейтинге самых любимых СУБД на первое место вырвался PostgreSQL (в прошлом году лидировал Redis).
  • Используемые web-фреймворки и web-технологии:
  • Используемые утилиты (за год число пользователей docker выросло c 48% до 63%):
  • Используемые интегрированные среды разработки (популярность Visual Studio Code за год выросла с 71% до 74.5%, а число пользователей NetBeans снизилось с 7% до 5%):
  • Используемые системы управления версиями:
  • Платформы управления кодом.
  • Среди используемых операционных систем лидирует Windows (62.33% персональное использование и 48.82% профессиональное), на втором месте Linux (40.23%), а на третьем macOS (31.07%).
  • Уровень зарплат в зависимости от используемого языка программирования:

  1. OpenNews: Опрос Stack Overflow: Rust назван самым любимым, а Python самым востребованным языком
  2. OpenNews: Взлом дискуссионной площадки Stack Overflow (дополнено)
  3. OpenNews: Результат опроса предпочтений разработчиков от Stack Overflow (2019)
  4. OpenNews: Результат опроса предпочтений разработчиков от Stack Overflow (2018)
  5. OpenNews: Результат опроса предпочтений разработчиков от Stack Overflow (2017)
Обсуждение (157 +18) | Тип: К сведению |
·22.06.2022 Релиз Chrome 103 (79 –6)
  Компания Google представила релиз web-браузера Chrome 103. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается от Chromium использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого от копирования видеоконтента (DRM), системой автоматической установки обновлений, постоянным включением Sandbox-изоляции, поставкой ключей к Google API и передачей при поиске RLZ-параметров. Для тех, кому необходимо больше времени на обновление, отдельно поддерживается ветка Extended Stable, сопровождаемая 8 недель. Следующий выпуск Chrome 104 запланирован на 2 августа.

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

  • Добавлен экспериментальный редактор изображений, вызываемый для редактирования скриншотов страниц. В редакторе доступны такие функции, как кадрирование, выделение области, рисование кистью, выбор цвета, добавление текстовых меток и вывод типовых фигур и примитивов, таких как линии, прямоугольники, окружности и стрелки. Для включения редактора необходимо активировать настройки "chrome://flags/#sharing-desktop-screenshots" и "chrome://flags/#sharing-desktop-screenshots-edit". После создания скриншота через меню Share в адресной строке, в редактор можно перейти, нажав кнопку "Изменить" ("Edit") на странице с предпросмотром скриншота.
  • Расширены возможности добавленного в Chrome 101 механизма упреждающей отрисовки (prerender) содержимого рекомендаций в адресной строке Omnibox. Упреждающая отрисовка дополняет ранее доступную возможность загрузки наиболее вероятных для перехода рекомендаций не дожидаясь клика пользователя, Помимо загрузки, содержимое связанных с рекомендациями страниц теперь может отрисовываются в буфере (в том числе выполняются скрипты и формируется дерево DOM), что позволяет обеспечить мгновенное отображение рекомендаций после клика. Для управления упреждающей отрисовкой предложены настройки "chrome://flags/#enable-prerender2", "chrome://flags/#omnibox-trigger-for-prerender2" и "chrome://flags/#search-suggestion-for-prerender2".

    В Chrome 103 для Android добавлен API Speculations Rules, позволяющий авторам сайтов передавать браузеру сведения о наиболее вероятных страницах, на которые пользователь может перейти. Браузер использует эту информацию для упреждающей загрузки и отрисовки содержимого страниц.

  • В версии для Android задействован новый менеджер паролей, предлагающий тот же унифицированный интерфейс управления паролями, что применяется для Android-приложений.
  • В версию для Android добавлена поддержка сервиса "Thank With Google", позволяющего пользователю выражать благодарность любимым сайтам, зарегистрировавшимся в сервисе, передавая платные или бесплатные цифровые наклейки. Сервис пока доступен только для пользователей из США.
  • Улучшено автозаполнения полей с номерами кредитных и дебетовых платёжных карт, в котором теперь поддерживаются карты, сохранённые через Google Pay.
  • В версии для Windows по умолчанию задействован встроенный DNS-клиент, который также используется в версиях для macOS, Android и Chrome OS.
  • Стабилизирован и предложен всем желающим API Local Font Access, при помощи которого можно определить и использовать установленные в системе шрифты, а также манипулировать шрифтами на низком уровне (например, фильтровать и трансформировать глифы).
  • Добавлена поддержка кода HTTP-ответа 103, который позволяет информировать клиента о содержании некоторых HTTP-заголовков сразу после запроса, не дожидаясь пока сервер выполнит все связанные с запросом операции и начнёт отдачу контента. Подобным образом можно сообщать подсказки о связанных с отдаваемой страницей элементах, которые могут быть предварительно загружены (например, могут быть приведены ссылки на используемые на странице CSS и JavaScript). Получив информацию о подобных ресурсах браузер может приступить к их загрузке не дожидаясь окончания отдачи основной страницы, что позволяет сократить общее время обработки запроса.
  • В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) пока только в сборках для платформы Android началось тестирование API Federated Credential Management (FedCM), позволяющего создавать объединённые сервисы идентификации, обеспечивающие сохранение конфиденциальности и работающие без механизмов межсайтового отслеживания, таких как обработка сторонних Cookie. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
  • В API Client Hints, развиваемого в качестве замены заголовка User-Agent и позволяющего выборочно отдавать данные о конкретных параметрах браузера и системы (версия, платформа и т.д.) только после запроса сервером, добавлена возможность подстановки в список идентификаторов браузера фиктивных названий, по аналогии с используемым в TLS механизмом GREASE (Generate Random Extensions And Sustain Extensibility). Например, помимо '"Chrome"; v="103"' и '"Chromium"; v="103"' в список может быть добавлен случайный идентификатор несуществующего браузера '"(Not;Browser"; v="12"'. Подобная подстановка позволит выявлять проблемы с обработкой идентификаторов неизвестных браузеров, которые приводят к тому, что альтернативные браузеры вынуждены притворяться другими популярными браузерами, чтобы обойти проверку по спискам допустимых браузеров.
  • Файлы в формате изображений AVIF добавлены в список разрешённых для обмена через API iWeb Share.
  • Добавлена поддержка формата сжатия "deflate-raw", позволяющего получить доступ к голому сжатому потоку без заголовков и служебных финальных блоков, что можно использовать, например, для чтения и записи zip-файлов.
  • Для элементов web-форм предоставлена возможность использования атрибута "rel", что позволяет применять к навигации через web-формы параметр "rel=noreferrer" для отключения передачи заголовка Referer или "rel=noopener" для отключения выставления свойства Window.opener и запрета доступа к контексту из которого был выполнен переход.
  • Реализация события popstate приведена в соответствие с поведением Firefox. Событие popstate теперь генерируется сразу после изменения URL без ожидания наступления события load.
  • Для страниц, открытых без HTTPS и из блоков iframe запрещено обращение к API Gamepad и API Battery Status.
  • В объект SerialPort добавлен метод forget() для отказа от ранее полученных от пользователя полномочий для доступа к последовательному порту.
  • В CSS-свойство overflow-clip-margin добавлен атрибут visual-box, определяющий с какого места следует начинать обрезку контента, вышедшего за границу области (может принимать значения content-box, padding-box и border-box).
  • В блоках iframe с атрибутом sandbox запрещён вызов внешних протоколов и запуск внешних приложений-обработчиков. Для отмены ограничения следует использовать свойства allow-popups, allow-top-navigation и allow-top-navigation-with-user-activation.
  • Прекращена поддержка элемента <param>, который потерял смысл после прекращения поддержки плагинов.
  • Внесены улучшения в инструменты для web-разработчиков. Например, в панели Styles появилась возможность определения цвета точки вне окна браузера. Улучшен предпросмотр значений параметров в отладчике. Добавлена возможность изменения порядка следования панелей в интерфейсе Elements.

Кроме нововведений и исправления ошибок в новой версии устранено 14 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer и AFL. Одной из проблем (CVE-2022-2156) присвоен критический уровень опасности, который подразумевает возможность обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения. Детали по данной уязвимости пока не разглашаются, известно только, что она вызвана обращением к освобождённому блоку памяти (use-after-free).

В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 9 премий на сумму 44 тысячи долларов США (одна премия $20000, одна премия $7500, одна премия $7000, две премии $3000 и по одной премии в $2000, $1000 и $500). Размер вознаграждения за критическую уязвимость пока не определён.

  1. OpenNews: Релиз Chrome 102
  2. OpenNews: Для Chrome развивают режим автоматического блокирования спама в уведомлениях
  3. OpenNews: Выпуск Chrome OS 102, который отнесён к категории LTS
  4. OpenNews: В Chrome тестируют встроенный редактор скриншотов
  5. OpenNews: Для Chromium развивается возможность использования Qt
Обсуждение (79 –6) | Тип: Программы |
·22.06.2022 GitHub ввёл в строй систему машинного обучения Copilot, генерирующую код (146 –11)
  GitHub объявил о завершении тестирования интеллектуального помощника GitHub Copilot, способного генерировать типовые конструкции при написании кода. Система разработана совместно с проектом OpenAI и использует платформу машинного обучения OpenAI Codex, натренированную на большом массиве исходных текстов, размещённых в публичных репозиториях GitHub. Сервис бесплатен для сопровождающих популярных открытых проектов и студентов. Для остальных категорий пользователей доступ к GitHub Copilot платный ($10 в месяц или $100 в год), но предоставляется бесплатный ознакомительный доступ к течение 60 дней.

Поддерживается генерация кода на языках программирования Python, JavaScript, TypeScript, Ruby, Go, C# и C++ с использованием различных фреймворков. Доступны модули для интеграции GitHub Copilot со средами разработки Neovim, JetBrains IDEs, Visual Studio и Visual Studio Code. Судя по собранной в процессе тестирования телеметрии сервис позволяет генерировать код достаточно высокого качества - например, 26% предложенных в GitHub Copilot рекомендаций были приняты разработчиками как есть.

От традиционных систем автодополнения кода GitHub Copilot отличается возможностью формирования достаточно сложных блоков кода, вплоть до готовых функций, синтезированных c учётом текущего контекста. GitHub Copilot адаптируется к манере написания кода разработчиком и учитывает используемые в программе API и фреймворки. Например, при наличии в комментарии примера структуры JSON при начале написания функции для разбора этой структуры GitHub Copilot предложит уже готовый код, а при написании рутинных перечислений повторяющихся описаний сформирует оставшиеся позиции.

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

Может ли считаться производной работа, сгенерированная системой машинного обучения, пока не ясно. Также возникают вопросы к тому является ли модель машинного обучения объектом авторских прав и если да, то кому принадлежат эти права и как они соотносятся с правами на код, на основе которого построена модель.

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

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

  1. OpenNews: Facebook развивает TransCoder для перевода кода с одного языка программирования на другой
  2. OpenNews: IBM открыл CodeNet для систем машинного обучения, транслирующих и проверяющих код
  3. OpenNews: Intel открыл код системы машинного обучения ControlFlag для выявления ошибок в коде
  4. OpenNews: DeepMind представил систему машинного обучения для генерации кода по текстовому описанию задачи
  5. OpenNews: Система машинного обучения для синтеза типового кода на языке Java
Обсуждение (146 –11) | Тип: К сведению |
·22.06.2022 Создатель GeckoLinux представил новый дистрибутив SpiralLinux (47 +3)
  Создатель дистрибутива GeckoLinux, основанного на пакетной базе openSUSE и уделяющего большое внимание оптимизации рабочего стола и мелочам, таким как качественная отрисовка шрифтов, представил новый дистрибутив - SpiralLinux, построенный с использованием пакетов Debian GNU/Linux. Дистрибутив предлагает 7 готовых к использованию Live-сборок, поставляемых с рабочими столами Cinnamon, Xfce, GNOME, KDE Plasma, Mate, Budgie и LXQt, настройки которых оптимизированы для повышения удобства работы.

Проект GeckoLinux продолжит сопровождаться, а SpiralLinux является попыткой сохранить привычный уклад в случае прекращения существования openSUSE или его трансформации в принципиально иной продукт, в соответствии с грядущими планами по значительной переработки SUSE и openSUSE. Debian выбран в качестве основы как стабильный, гибко адаптируемый под свои нужды и качественно поддерживаемый дистрибутив. При этом отмечается, что разработчики Debian недостаточно ориентированы на удобство работы конечного пользователя, что является поводом к созданию производных дистрибутивов, авторы которых пытаются сделать продукт более дружественным обычным потребителям.

В отличие от таких проектов, как Ubuntu и Linux Mint, SpiralLinux не пытается развивать собственную инфраструктуру, а старается оставаться как можно ближе к Debian. SpiralLinux использует пакеты из основного состава Debian и пользуется теми же репозиториями, но предлагает другие настройки по умолчанию для всех основных окружений рабочего стола, доступных в репозиториях Debian. Таким образом, пользователю предлагается альтернативный вариант установки Debian, который обновляется из штатных репозиториев Debian, но предлагает набор более оптимальных для пользователя настроек.

Особенности SpiralLinux

  • Устанавливаемые Live-образы DVD/USB размером около 2 ГБ, настроенные для популярных окружений рабочего стола.
  • Использование пакетов Debian Stable с предустановленными из Debian Backports пакетами, обеспечивающими поддержку более нового оборудования.
  • Возможность обновления до веток Debian Testing или Unstable всего несколькими щелчками мыши.
  • Оптимальная компоновка подразделов Btrfs с прозрачным сжатием Zstd и автоматическими снимками Snapper, загружаемыми через GRUB для отката изменений.
  • Графический менеджер для пакетов Flatpak и предварительно настроенная тема оформления, применяемая к пакетам Flatpak.
  • Настройки отрисовки шрифтов и цветового оформления оптимизированы для оптимальной читабельности.
  • Готовые к использованию предустановленные проприетарные медиакодеки и "non-free" репозитории пакетов Debian.
  • Расширенная поддержка аппаратного обеспечения с широким набором предустановленных прошивок.
  • Расширенная поддержка принтеров с упрощёнными правами на управление принтером.
  • Задействование пакета TLP для оптимизации энергопотребления.
  • Включение в состав VirtualBox.
  • Применение сжатия раздела подкачки при помощи технологии zRAM для повышения производительности на старом оборудовании.
  • Предоставление обычным пользователям возможности работать и администрировать систему, не обращаясь к терминалу.
  • Полная привязка к инфраструктуре Debian, что позволяет избежать зависимости от отдельных разработчиков.
  • Поддержка плавного обновления установленной системы до будущих выпусков Debian, сохраняя при этом уникальную конфигурацию SpiralLinux.

Cinnamon:

LXQt:

Budgie:

Mate:

KDE:

GNOME:

Xfce:

  1. OpenNews: Новые версии дистрибутива GeckoLinux
  2. OpenNews: Выпуск дистрибутива Devuan 4.0, форка Debian без systemd
  3. OpenNews: Выпуск дистрибутива Linux Mint Debian Edition 5
  4. OpenNews: Движение по включению проприетарных прошивок в поставку Debian
  5. OpenNews: Выпуск дистрибутива Siduction 2021.3
Обсуждение (47 +3) | Автор: srgazh | Тип: Программы |
·21.06.2022 Проект AlmaLinux представил новую сборочную систему ALBS (26 +7)
  Разработчики дистрибутива AlmaLinux, развивающего похожий на CentOS бесплатный клон Red Hat Enterprise Linux, представили новую сборочную систему ALBS (AlmaLinux Build System), которая уже использована при формировании выпусков AlmaLinux 8.6 и 9.0, подготовленных для архитектур x86_64, Aarch64, PowerPC ppc64le и s390x. Кроме сборки дистрибутива ALBS также используется для генерации и публикации корректирующих обновлений (errata), и заверения пакетов цифровой подписью. Код сборочной системы написан на языке Python и распространяется под лицензией GPLv3.

Представленная сборочная система основана на наработках компании CloudLinux, развивающей собственный коммерческий дистрибутив на основе пакетной базы RHEL. Компания CloudLinux основала проект AlmaLinux и выступила учредителем некоммерческой организации AlmaLinux OS Foundation, созданной для разработки на нейтральной площадке с участием сообщества и c использованием модели управления, похожей на организацию работы проекта Fedora. Для подтверждения приверженности изначально заявленной полностью открытой и прозрачной для сообщества модели разработки, код сборочной системы теперь полностью открыт, а все стадии сборки AlmaLinux подконтрольны сообществу.

Система ALBS ориентирована на автоматизацию сборки дистрибутива, сборки пакетов, тестирования пакетов, формирования цифровых подписей и публикации собранных пакетов в публичных репозиториях. Система нацелена на обработку всех стадий формирования дистрибутива как единого целого для исключения ошибок, вызванных человеческим фактором. Сборочная система продолжает развитие внутренней сборочной системы CloudLinux, применяемой с 2012 года.

Помимо пакетов в формате RPM, поддерживается формат DEB и предоставляются средства для автоматизации замены брендов и модификации пересобираемых пакетов. В том числе система может применяться для создания произвольных дистрибутивов на основе Ubuntu и Debian. Для тестирования сборок применяется система непрерывной интеграции Jenkins. Исходный код собираемых пакетов загружается из Git-репозитория (в случае с AlmaLinux изменения в пакетах RHEL отслеживается через git.centos.org и переносятся в git.almalinux.org и sources.almalinux.org).

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

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

  1. OpenNews: Доступен дистрибутив AlmaLinux 9.0, основанный на ветке RHEL 9
  2. OpenNews: Новая версия сборочной среды ROSA ABF 2.0
  3. OpenNews: Google развивает модульную сборочную систему Soong для Android
  4. OpenNews: Выпуск системы сборки пакетов Open Build Service 2.10
  5. OpenNews: Компания CloudLinux анонсировала разработку альтернативы CentOS 8
Обсуждение (26 +7) | Тип: Программы |
·21.06.2022 Facebook представил механизм TMO, позволяющий экономить 20-32% памяти на серверах (143 +13)
  Инженеры из компании Facebook (запрещена в РФ) опубликовали отчёт о внедрении в прошлом году технологии TMO (Transparent Memory Offloading), позволяющей значительно экономить оперативную память на серверах за счёт вытеснения не требуемых для выполнения работы вторичных данных на более дешёвые накопители, такие как NVMe SSD-диски. По оценке Facebook, применение TMO позволяет экономить от 20 до 32% ОЗУ на каждом сервере. Решение рассчитано на применение в инфраструктурах, в которых приложения запускаются в изолированных контейнерах. Работающие на стороне ядра компоненты TMO уже включены в состав ядра Linux.

На стороне ядра Linux работа технологии обеспечивается подсистемой PSI (Pressure Stall Information), поставляемой начиная с выпуска 4.20. PSI уже применяется в различных обработчиках нехватки памяти и позволяет проанализировать информацию о времени ожидания получения различных ресурсов (CPU, память, ввод/вывод). При помощи PSI обработчики в пространстве пользователя могут более точно оценить уровень загруженности системы и характер замедления работы, что позволяет выявлять отклонения на самом раннем этапе, когда они ещё заметно не сказываются на производительности.

В пространстве пользователя работу TMO обеспечивает компонент Senpai, который через cgroup2 динамически корректирует ограничение памяти для контейнеров приложений на основании данных, полученных из PSI. Senpai анализирует признаки начала нехватки ресурсов через PSI, оценивает чувствительность приложений к замедлению доступа к памяти и пытается определить тот минимально необходимый контейнеру размер памяти, при котором требуемые для работы данные остаются в ОЗУ, а сопутствующие данные, осевшие в файловом кэше или напрямую не используемые в данный момент, вытесняются в раздел подкачки.

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

В качестве одного из критериев для вытеснения используется отсутствие обращения к странице памяти в течение 5 минут. Подобные страницы именуются холодными (cold memory page) и в среднем составляют около 35% памяти приложений (в зависимости от вида приложений наблюдается разброс от 19% до 65%). При вытеснении учитывается активность, связанная с анонимными страницами памяти (память, выделяемая приложением) и памятью, используемой при кэшировании файлов (выделяется ядром). В некоторых приложениях основное потребление связано с анонимной памятью, но в других большое значение имеет и файловый кэш. Для того, чтобы избежать дисбаланса при вытеснении памяти в кэш, в TMO применяется новый алгоритм подкачки, который вытесняет анонимные страницы и страницы, связанные с файловым кэшем, пропорционально.

Вытеснение редко используемых страниц в более медленную память не сказывается сильно на производительности, но позволяет значительно снизить расходы на оборудование. Данные вытесняются на SSD-накопители или в сжатую область подкачки в оперативной памяти. По стоимости хранения байта данных применение NVMe SSD до 10 раз дешевле использования сжатия в оперативной памяти.

  1. OpenNews: Facebook открыл код статического анализатора Mariana Trench
  2. OpenNews: Facebook разработал открытую PCIe-карту с атомными часами
  3. OpenNews: Facebook открыл код Cinder, форка CPython, используемого в Instagram
  4. OpenNews: Facebook предложил новый механизм управления памятью slab для ядра Linux
  5. OpenNews: Facebook открыл код для обработки ситуации нехватки памяти в системе
Обсуждение (143 +13) | Тип: К сведению |
·20.06.2022 Опубликован инструментарий для определения дополнений, установленных в Chrome (52 +6)
  Опубликован инструментарий с реализацией метода определения дополнений, установленных в браузере Chrome. Полученный список дополнений может использоваться для увеличения точности пассивной идентификации конкретного экземпляра браузера, в сочетании с другими косвенными признаками, такими как разрешение экрана, особенности WebGL, списки установленных плагинов и шрифтов. Предложенная реализация проверяет установку более 1000 дополнений. Для проверки своей системы предложена online-демонстрация.

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

Web-страницы могут запрашивать поставляемые в дополнении ресурсы при помощи метода fetch (например "fetch('chrome-extension://okb....nd5/test.png')"), возвращение которым значения "false" обычно свидетельствует о том, что дополнение не установлено. Для блокирования определения дополнения по наличию ресурсов некоторые дополнения генерируют проверочный токен, необходимый для доступа к ресурсу. Вызов fetch без указания токена всегда завершается неудачей.

Как оказалось, защиту доступа к ресурсам дополнений можно обойти, оценивая время выполнения операции. Несмотря на то, что fetch при запросе без токена всегда возвращает ошибку, время выполнения операции при наличии и отсутствии дополнения отличается: если дополнение присутствует, то запрос потребует больше времени, чем если дополнение не установлено. Оценивая время реакции, можно достаточно точно определить наличие дополнения.

Некоторые дополнения, которые не включают доступные извне ресурсы, можно определить по дополнительным свойствам. Например, дополнение MetaMask можно определить через оценку определения свойства window.ethereum (если дополнение не установлено, "typeof window.ethereum" вернёт значение "undefined").

  1. OpenNews: Техника идентификации смартфонов по широковещательной активности Bluetooth
  2. OpenNews: Идентификация через анализ внешних обработчиков протоколов в браузере
  3. OpenNews: Метод идентификации браузера через манипуляции с кэшированием Favicon
  4. OpenNews: Сопротивление внедрению API FLoC, продвигаемого Google вместо отслеживающих Cookie
  5. OpenNews: 0.77% крупнейших сайтов используют Canvas для скрытой идентификации посетителей
Обсуждение (52 +6) | Тип: Проблемы безопасности |
·20.06.2022 Доступна система обмена сообщениями Mattermost 7.0 (70 +6)
  Опубликован выпуск системы обмена сообщениями Mattermost 7.0, ориентированной на обеспечение коммуникации разработчиков и сотрудников предприятий. Код серверной части проекта написан на языке Go и распространяется под лицензией MIT. Web-интерфейс и мобильные приложения написаны на JavaScript с использованием React, десктоп-клиент для Linux, Windows и macOS построен на платформе Electron. В качестве СУБД могут применяться MySQL и PostgreSQL.

Mattermost позиционируется как открытая альтернатива системе организации коммуникаций Slack и позволяет получать и отправлять сообщения, файлы и изображения, отслеживать историю переговоров и получать уведомления на смартфоне или ПК. Поддерживаются подготовленные для Slack модули интеграции, а также предоставлена большая коллекция собственных модулей для интеграции с Jira, GitHub, IRC, XMPP, Hubot, Giphy, Jenkins, GitLab, Trac, BitBucket, Twitter, Redmine, SVN и RSS/Atom.

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

  • Стабилизирована и включена по умолчанию поддержка свёрнутых нитей с ответами. Комментарии теперь свёрнуты и не занимают места в основном потоке сообщений. Информация о наличии комментариев выводится в форме метки "N ответов", нажатие на которую приводит к раскрытию ответов в боковой панели.
  • Предложена тестовая версия новых мобильных приложений для Android и iOS, в которых модернизирован интерфейс и появилась возможность работы сразу с несколькими серверами Mattermost.
  • Реализована экспериментальная поддержка голосовых вызовов и предоставления совместного доступа к экрану. Голосовые вызовы доступны как в настольном и мобильном приложениях, так и в web-интерфейсе. Во время голосового общения команда может параллельно продолжать общаться в текстовом чате, управлять проектами и задачами, просматривать контрольные списки и выполнять любые другие действия в Mattermost, не прерывая вызова.
  • В интерфейсе для общения в каналах реализована панель с инструментами для форматирования сообщений, позволяющая использовать разметку без изучения синтаксиса Markdown.
  • Добавлен встроенный (inline) редактор контрольных списков ("Playbooks"), позволяющий по месту из основного интерфейса изменять перечни типовых работ для команд в различных ситуациях, без открытия отдельных диалогов.
  • В отчёт со статистикой добавлены сведения об использовании командами контрольных списков.
  • Предоставлена возможность подключения обработчиков и действий (например, отправки уведомления в заданные каналы), вызываемых при обновлении состояния контрольных списков.
  • Реализована экспериментальная боковая панель Apps Bar с наиболее часто используемыми плагинами и встроенными приложениями (например, для интеграция с внешними сервисами, такими как Zoom).
  • Обеспечено формирования DEB- и RPM-пакетов с десктоп-приложением. В пакетах обеспечена поддержка Debian 9+, Ubuntu 18.04+, CentOS/RHEL 7 и 8.

  1. OpenNews: Доступна система обмена сообщениями Mattermost 6.0
  2. OpenNews: Проект Revolt развивает открытую альтернативу платформе Discord
  3. OpenNews: Завершено открытие серверной части сервиса мгновенного обмена сообщениями Wire
  4. OpenNews: Доступна система обмена сообщениями Briar, способная работать в режиме P2P
  5. OpenNews: Проект TFC развивает параноидально защищённую систему обмена сообщениями
Обсуждение (70 +6) | Тип: Программы |
·19.06.2022 Уязвимости в механизме MMIO процессоров Intel (130 +26)
  Компания Intel раскрыла информацию о новом классе утечек данных через микроархитектурные структуры процессоров, позволяющих через манипуляцию с механизмом MMIO (Memory Mapped Input Output) определить информацию, обрабатываемую на других ядрах CPU. Например, уязвимости позволяют извлекать данные из других процессов, анклавов Intel SGX или виртуальных машин. Уязвимости специфичны только для CPU компании Intel, процессоры других производителей уязвимости не затрагивают.

Уязвимости проявляются в различных CPU Intel, включая процессоры на базе микроархитектур Haswell, Skylake, IceLake, Broadwell, Lakefield, Kabylake, Cometlake и Rocketlake, а также серверные процессоры Xeon EP/EX, Scalable и некоторые Atom. Для совершения атаки требуется доступ к MMIO, который, например, может быть получен в системах виртуализации, предоставляющих возможность обращения к MMIO для гостевых систем, подконтрольных атакующему. Исправление также может потребоваться для систем, использующих изолированные анклавы Intel SGX (Software Guard Extensions).

Для блокирования уязвимости требуется как обновление микрокода, так и применение дополнительных программных методов защиты, основанных на применении инструкции VERW для очистки содержимого микроархитектурных буферов в момент возвращения из ядра в пространство пользователя или при передаче управления гостевой системе. Подобная защита также применяется для блокирования ранее выявленных атак класса MDS (Microarchitectural Data Sampling), SRBDS (Special Register Buffer Data Sampling) и TAA (Transactional Asynchronous Abort).

На стороне микрокода необходимые для реализации защиты изменения предложены в майском обновлении микрокода для CPU Intel (IPU 2022.1). В ядре Linux защита от нового класса атак включена в состав выпусков 5.18.5, 5.15.48, 5.10.123, 5.4.199, 4.19.248, 4.14.284 и 4.9.319. Для проверки подверженности системы уязвимостям в MMIO и оценки активности тех или иных механизмов защиты в ядро Linux добавлен файл "/sys/devices/system/cpu/vulnerabilities/mmio_stale_data". Для управления включением защиты реализован загрузочный параметр ядра "mmio_stale_data", который может принимать значения "full" (включение чистки буферов при переходе в пространство пользователя и в VM), "full,nosmt" (как "full" + дополнительно отключается SMT/Hyper-Threads) и "off" (защита отключена). Отдельные исправления предложены для гипервизора Xen и операционной системы Qubes.

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

  • DRPW (Device Register Partial Write, CVE-2022-21166) - проблема с некорректной обработкой операций записи в некоторые регистры MMIO. Если размер записываемых данных меньше размера регистра, то в регистр копируется и остаточная информация из буферов заполнения (fill buffer). В итоге, процесс, инициировавший неполную операцию записи в регистр MMIO, может получить данные, оставшиеся в микроархитектурных буферах после операций, выполненных на других ядрах CPU.
  • SBDS (Shared Buffers Data Sampling, CVE-2022-21125) - утечка остаточных данных из привязанного к ядру буфера заполнения, попавших в результате перемещения из общих для всех ядер промежуточных буферов.
  • SBDR (Shared Buffers Data Read, CVE-2022-21123) - проблема походит на SBDS, но отличается тем, что остаточные данные могут попасть в видимые приложениям структуры CPU. Проблемы SBDS и SBDR проявляются только на процессорах для клиентских систем и на серверном семействе Intel Xeon E3.

  1. OpenNews: CROSSTalk - уязвимость в CPU Intel, приводящая к утечке данных между ядрами
  2. OpenNews: Предложен метод атаки для удалённого определения фрагментов памяти на сервере
  3. OpenNews: Представлен новый класс уязвимостей в процессорах Intel (MDS)
  4. OpenNews: Выявлен новый вариант атаки Zombieload на процессоры Intel
  5. OpenNews: L1DES (CacheOut) и VRS - новые уязвимости в микроархитектурных структурах CPU Intel
Обсуждение (130 +26) | Тип: Проблемы безопасности |
·17.06.2022 Выпуск системы управления контейнерами LXC 5.0 (47 +27)
  Компания Canonical опубликовала релиз инструментария для организации работы изолированных контейнеров LXC 5.0, предоставляющий runtime, подходящий как для запуска контейнеров с полным системным окружением, близких к виртуальным машинам, так и для выполнения непривилегированных контейнеров отдельных приложений (OCI). LXC относится к низкоуровневым инструментариям, работающим на уровне отдельных контейнеров. Для централизованного управления контейнерами, развёрнутыми в кластере из нескольких серверов, на базе LXC развивается система LXD. Ветка LXC 5.0 отнесена к выпускам с длительной поддержкой, обновления для которых формируются в течение 5 лет. Код LXC написан на языке Си и распространяется под лицензией GPLv2.

В состав LXC входит библиотека liblxc, набор утилит (lxc-create, lxc-start, lxc-stop, lxc-ls и т.п.), шаблоны для построения контейнеров и набор биндингов для различных языков программирования. Изоляция осуществляется при помощи штатных механизмов ядра Linux. Для изоляции процессов, сетевого стека ipc, uts, идентификаторов пользователей и точек монтирования используется механизм пространств имён (namespaces). Для ограничения ресурсов применяются cgroups. Для понижения привилегий и ограничения доступа задействованы такие возможности ядра, как профили Apparmor и SELinux, политики Seccomp, Chroots (pivot_root) и capabilities.

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

  • Осуществлён переход c autotools на сборочную систему Meson, которая также используется для сборки таких проектов, как X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK.
  • Добавлены новые опции для настройки cgroup - lxc.cgroup.dir.container, lxc.cgroup.dir.monitor, lxc.cgroup.dir.monitor.pivot и lxc.cgroup.dir.container.inner, которые позволяют явно определить пути cgroup для контейнера, процесса мониторинга и вложенных иерархий cgroup.
  • Добавлена поддержка пространства имён для времени (time namespaces) для привязки к контейнеру отдельного состояния системных часов, позволяющего использовать в контейнере своё время, отличное от системного. Для настройки предложены опции lxc.time.offset.boot и lxc.time.offset.monotonic, позволяющие определить для контейнера смещение относительно основных системных часов.
  • Для виртуальных ethernet-адаптеров (Veth) реализована поддержка VLAN. Для управления VLAN предложены опции: veth.vlan.id для задания основного VLAN и veth.vlan.tagged.id для привязки дополнительных тегированных VLAN.
  • Для виртуальных ethernet-адаптеров добавлена возможность настройки размера очередей приёма и передачи при помощи новых опций veth.n_rxqueues и veth.n_txqueues.

  1. OpenNews: Выпуск инструментария управления контейнерами LXC и LXD 4.0
  2. OpenNews: Уязвимость в runc и LXC, затрагивающая Docker и другие системы контейнерной изоляции
  3. OpenNews: Выпуск cистемы управления контейнерной виртуализацией Docker 20.10
  4. OpenNews: Уязвимость в LXC, позволяющая получить доступ к файлам вне контейнера
  5. OpenNews: Выпуск системы управления контейнерами LXD 5.0
Обсуждение (47 +27) | Тип: Программы |
·17.06.2022 Компания Grafana открыла код системы реагирования на инциденты OnCall (76 +18)
  Компания Grafana Labs, развивающая платформу визуализации данных Grafana и систему мониторинга Prometheus, объявила об открытии исходных текстов системы реагирования на инциденты OnCall, предназначенной для обеспечения совместной работы команд по устранению и разбору инцидентов. OnCall ранее поставлялся в форме проприетарного продукта и был приобретён Grafana в процессе поглощения компании Amixr Inc. в прошлом году. Код проекта написан на языке Python и открыт под лицензией AGPLv3.

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

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

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

Система предоставляет гибкие возможности расширения и настройки (например, под свои предпочтения можно настроить группировку и маршрутизацию событий, определить правила и каналы доставки уведомлений). Для интеграции с внешними системами предоставляется API и поддержка Terraform. Управление работой осуществляется через web-интерфейс.

  1. OpenNews: Уязвимости в Grafana, позволяющие получить доступ к файлам в системе
  2. OpenNews: Открыт код VictoriaMetrics, СУБД для временных рядов, совместимой с Prometheus
  3. OpenNews: Первый выпуск ClonOS, платформы для управления виртуальными окружениями
  4. OpenNews: Выпуск системы мониторинга Zabbix 6.0 LTS
  5. OpenNews: Grafana меняет лицензию с Apache 2.0 на AGPLv3
Обсуждение (76 +18) | Тип: Программы |
·16.06.2022 Tauri 1.0 - конкурирующая с Electron платформа для создания пользовательских приложений (218 +16)
  Опубликован выпуск проекта Tauri 1.0, развивающего фреймворк для создания многоплатформенных пользовательских приложений с графическим интерфейсом, построенных с использованием web-технологий. По своей сути Tauri напоминает платформу Electron, но отличается иной архитектурой и более низким потреблением ресурсов. Код проекта написан на языке Rust и распространяется под лицензией Apache 2.0.

Логика работы приложения определяется на JavaScript, HTML и CSS, но в отличие от web-приложений, программы на базе Tauri поставляются в виде самодостаточных исполняемых файлов, не привязанных к браузеру и компилируемых для различных операционных систем. Платформа также предоставляет инструменты для организации автоматической доставки и установки обновлений. Подобный подход позволяет разработчику не заботиться о портировании приложения для различных платформ и упрощает поддержание приложения в актуальном состоянии.

В приложении могут использоваться любые web-фреймворки для построения интерфейса, выдающие на выходе HTML, JavaScript и CSS. Подготовленный на базе web-технологий фронтэнд привязывается к бэкенду, выполняющему такие функции, как организация взаимодействия с пользователем и выполнение web-приложения. Для обработки окон на платформе Linux используется библиотека GTK (биндинг GTK 3 Rust), а в macOS и Windows развиваемая проектом библиотека Tao, написанная на Rust.

Для формирования интерфейса применяется библиотека WRY, представляющая собой обвязку над браузерным движком WebKit для macOS, WebView2 для Windows и WebKitGTK для Linux. Библиотека также предлагает набор готовых компонентов для реализации таких элементов интерфейса, как меню и панель задач. В создаваемом приложении можно использовать многооконный интерфейс, сворачивание в системный лоток и вывод уведомлений через штатные системные интерфейсы.

Первый выпуск платформы позволяет собирать приложения для Windows 7/8/10 (.exe, .msi), Linux (.deb, AppImage) и macOS (.app, .dmg). В разработке поддержка iOS и Android. Исполняемый файл может быть заверен цифровой подписью. Для сборки и разработки предлагается CLI-интерфейс, дополнение к редактору VS Code и набор сборочных сценариев для GitHub (tauri-action). Для расширения базовых компонентов платформы Tauri могут использоваться плагины.

Из отличий от платформы Electron отмечается значительно более компактный установщик (3.1 MB в Tauri и 52.1 MB в Electron), низкое потребление памяти (180 MB против 462 MB), высокая скорость запуска (0.39 секунд против 0.80 секунд), использование бэкенда на Rust вместо Node.js, дополнительные меры защиты и изоляции (например, Scoped Filesystem для ограничения доступа к файловой системе).

  1. OpenNews: Выпуск Electron 19.0.0, платформы создания приложений на базе движка Chromium
  2. OpenNews: Компания Canonical анонсировала переработку инструментария Snapcraft
  3. OpenNews: Выпуск PyOxidizer для упаковки Python-проектов в самодостаточные исполняемые файлы
  4. OpenNews: Выпуск GNU Mes 0.23, инструментария для самодостаточной сборки дистрибутивов
  5. OpenNews: Релиз системы самодостаточных пакетов Flatpak 1.12.0
Обсуждение (218 +16) | Тип: Программы |
·16.06.2022 Автор оболочки Sway и языка Hare развивает новое микроядро Helios и OC Ares (184 +33)
  Дрю ДеВолт (Drew DeVault) представил свой новый проект - микроядро Helios. В текущем виде проект находится на начальной стадии разработки и пока поддерживает только демонстрационную загрузку на системах с архитектурой x86_64. В дальнейшем планируют реализовать поддержку архитектур riscv64 и aarch64. Код проекта написан на близком к Си языке системного программирования Hare с ассемблерными вставками и распространяется под лицензией GPLv3. Для ознакомления с состоянием разработки подготовлен тестовый iso-образ (1 МБ).

Архитектура Helios построена с оглядкой на концепции микроядра seL4, в котором компоненты для управления ресурсами ядра вынесены в пространство пользователя и для них применяются те же средства разграничения доступа, как и для пользовательских ресурсов. Микроядро предоставляет минимальные механизмы для управления доступом к физическому адресному пространству, прерываниям и ресурсам процессора, а высокоуровневые абстракции и драйверы для взаимодействия с оборудованием реализуются отдельно поверх микроядра в форме задач, выполняемых на пользовательском уровне.

В Helios применяется модель разграничения доступа на основе "capability". Ядро предоставляет примитивы для выделения страниц памяти, отражения физической памяти в адресное пространство, управления задачами и обработки обращений к портам аппаратных устройств. Помимо сервисов ядра, таких как управление виртуальной памятью, проектом также подготовлены драйверы для работы консоли через последовательный порт и BIOS VGA API. На следующем этапе разработки ядра будут обеспечены вытесняющая многозадачность, IPC, PCI, обработка исключений, разбор таблиц ACPI и обработчики прерываний, работающие в пространстве пользователя. В более отдалённой перспективе планируется реализовать поддержку SMP, IOMMU и VT-x.

Что касается пространства пользователя, то в планах развитие низкоуровневых сервисов и системного менеджера Mercury, слоя совместимости с POSIX (Luna), коллекции драйверов Venus, окружения для разработчиков Gaia и фреймворка для тестирования ядра Vulcan. Разработка ведётся с оглядкой на использование поверх реального оборудования - на начальном этапе планируется создание драйверов ThinkPad, включая драйверы для GPU Intel HD, HD Audio и Intel Gigabit Ethernet. После этого ожидается появление драйверов для GPU AMD и плат Raspberry Pi.

Конечной целью проекта является создание полноценной операционной системы Ares со своим пакетным менеджером и графическим интерфейсом. В качестве причины создание проекта упоминается тяга к экспериментам и работа как развлечение (принцип "just for fun"). Дрю ДеВолт любит ставить перед собой амбициозные цели и потом, несмотря на общий скептицизм, реализовывает их. Так было с пользовательским окружением Sway, почтовым клиентом Aerc, платформой совместной разработки SourceHut и языком программирования Hare. Но даже если новый проект не получит должного распространения, он послужит отправной точкой к разработке новых полезных систем. Например, разработанный для Helios отладчик планируется портировать на платформу Linux, а библиотеки для построения графического интерфейса не будут привязаны к платформе.

  1. OpenNews: Микроядро seL4 математически верифицировано для архитектуры RISC-V
  2. OpenNews: Google начал установку ОС Fuchsia на устройства Nest Hub
  3. OpenNews: Дрю ДеВолт представил язык системного программирования Hare
  4. OpenNews: Открыт код сверхнадёжного микроядра seL4
  5. OpenNews: Проект Neptune OS развивает слой совместимости с Windows на базе микроядра seL4
Обсуждение (184 +33) | Тип: К сведению |
Следующая страница (раньше) >>



Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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