Закон Майлса

Угол зрения зависит от занимаемого места.

Пьяный возвращается ночью домой. Входит во двор, а из будки выскакивает собака и начинает на него лаять. Мужик: ...

Разработчики PostgreSQL опровергли наличие уязвимости в COPY..PROGRAM
Fri, 05 Apr 2019 08:21:10 +0300

Сообщество Blender выпустило свободный анимационный фильм Spring
Fri, 05 Apr 2019 07:34:56 +0300

Sisvel формирует патентный пул для сбора отчислений за использование кодеков AV1 и VP9
Thu, 04 Apr 2019 20:07:43 +0300

Объявлено о слиянии открытого проекта Mer и проприетарной ОС Sailfish
Thu, 04 Apr 2019 09:14:37 +0300

Четвёртый этап тестирования DNS-over-HTTPS в Firefox
Wed, 03 Apr 2019 13:06:37 +0300

Апелляционный суд встал на сторону VMware в деле о нарушении GPL
Tue, 02 Apr 2019 20:40:22 +0300

В ночные сборки Firefox добавлен блокировщик назойливых уведомлений и API UserScripts
Tue, 02 Apr 2019 12:53:10 +0300

Компания Collabora представила окружение для запуска Android-приложений в Linux
Tue, 02 Apr 2019 11:38:01 +0300

Опубликованы первые компоненты открытой микроархитектуры MIPS R6
Sun, 31 Mar 2019 23:42:09 +0300

В PHP 8 будет добавлен JIT-компилятор
Sun, 31 Mar 2019 08:45:54 +0300

Сервис доставки обновлений прошивок для Linux перешёл под крыло Linux Foundation
Sat, 30 Mar 2019 09:24:09 +0300

Сообщество Handshake пожертвовало 300 тысяч долларов проекту Debian
Sat, 30 Mar 2019 08:43:56 +0300

В GTK 4 будет переработан бэкенд, отображающий интерфейс через web-браузер
Fri, 29 Mar 2019 22:10:49 +0300

Mozilla развивает WASI для использования WebAssembly вне браузера
Thu, 28 Mar 2019 11:11:09 +0300

Gentoo предоставил окружение GNOME 3.30, работающее без привязки к systemd
Thu, 28 Mar 2019 09:59:01 +0300

Новости OPENNET
Новости

Разработчики Mozilla представили проект WASI (WebAssembly System Interface), в рамках которого ведётся работа по определению программных интерфейсов, которые можно использовать для организации взаимодействия приложений, поставляемых в формате WebAssembly, с операционной системой. Целью проекта является предоставление API, расширяющего область использования WebAssembly и позволяющего создавать на базе данной технологии обычные программы, выполняемые вне браузера, переносимые на любые платформы и демонстрирующие высокий уровень безопасности.

WASI даёт возможность из окружения для выполнения WebAssembly получить доступ к предоставляемым операционной системой функциям, таким как файлы, файловая система, сетевые сокеты, таймеры и генераторы случайных чисел. API WASI изначально развивается как не привязанный к браузерам и независящий от JavaScript/Web API, но при этом обеспечивающий должный уровень изоляции от основной системы (приложения запускаются в sandbox) и позволяющий явно определять предоставляемые приложению полномочия в стиле CloudABI и Capsicum.

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

Так как WebAssembly является платформонезависимым вариантом языка Ассемблер, благодаря применению JIT можно добиться уровня производительности близкого к нативному коду, сохранив при этом возможность выполнения на различных аппаратных платформах и операционных системах. В настоящее время проектом предоставляется модуль wasi-core с реализацией базовых POSIX API (файлы, сокеты и т.п.), в котором пока отсутствует поддержка блокировок и асинхронного ввода/вывода. В дальнейшем планируется создание модулей с реализацией API для выполнения криптографических операций, работы с 3D-графикой, взаимодействия с датчиками, операциями с процессами (пока не поддерживается вызов fork) и обработки мультимедийных данных.

В настоящее время уже доступны для тестирования прототипы следующих компонентов:

  • wasmtime - runtime для выполнения WebAssembly-приложений с расширениями WASI как обычных обособленных приложений. Поддерживается как запуск байткода WebAssembly при помощи специальной утилиты командной строки, так и компоновка готовых исполняемых файлов (wasmtime встраивается в приложение как библиотека). Для достижения должного уровня производительности применяется JIT-компилятор на базе генератора кода cranelift;
  • Lucet - другой вариант runtime от проекта Fastly (код планируется опубликовать сегодня или завтра);
  • WASI SDK - инструментарий для компиляции приложений C/C++ в формат WebAssembly, использующий Clang 8.0;
  • Сборочная цель с поддержкой WASI для языка Rust, позволяющая компилировать код Rust в WebAssembly. В начале апреля поддержку WASI планируется интегрировать в основную кодовую базу и начать тестирование в ночных сборках;
  • wasi-sysroot - реализация стандартной библиотеки libc для WASI, основанная на коде musl, а также runtime-прослойка для трансляции предоставляемых библиотекой функций в системные вызовы различных операционных систем для достижения возможности выполнения одного WASI-приложения в разных ОС.

Проектом также развивается JavaScript-библиотека polyfill с реализацией WASI для выполнения приложений внутри браузера (демонстрация), позволяющая применить к выполняемому в браузере коду модель разграничения доступа на основе "capabilities". Из планов упоминается создание на базе WASI системы модулей для интеграции в приложения изолированных плагинов с дополнительной функциональностью, поставляемой в формате WebAssembly.

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

65.4072 73.4392 0.5855 9.737

НОВОСТИ: Вышел AV Linux 2019.4.10, дистрибутив для создания аудио- и виде ... Thu, 04 Apr 2019 07:31:10 +0300

Представлен дистрибутив AV Linux 2019.4.10, содержащий подборку приложений для создания/обработки мультимедийного контента. Дистрибутив основан на пакетной базе Debian 9 "Stretch" и репозитории KXStudio с дополнительными пакетами собственной сборки (Polyphone, Shuriken, Simple Screen Recorder и т.п.). Пользовательское окружение основано на Xfce. Дистрибутив может функционировать в Live-режиме, размер iso-образа 3.6 Гб.

Opera Firefox INFOBOX - хостинг Google Chrome