Ядро и драйверы NetBSD скомпилированы в JavaScript для запуска в web-браузере

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 9 Nov 2012.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,373
    Likes Received:
    6,619
    Reputations:
    693
    Ядро и драйверы NetBSD скомпилированы в JavaScript для запуска в web-браузере


    Один из разработчиков NetBSD провёл интересный эксперимент, в полной мере продемонстрировавший гибкость средств портирования NetBSD под новые платформы. Используя Emscripten, в представление на языке JavaScript было скомпилировано изначально написанное на языке Си ядро NetBSD и набор связанных с ним драйверов. Таким образом была добавлена поддержка новой архитектуры "sys/arch/javascript", подразумевающей возможность запуска ядра NetBSD под управлением web-браузера.

    В отличие от проекта JSLinux, в рамках которого написан полноценный эмулятор ПК, способный загрузить Linux, порт NetBSD имеет определённую практическую направленность. Целью разработки является обеспечение компиляции в JavaScript отдельных драйверов NetBSD с возможностью обращения к их функциям из JavaScript-приложений. Например, можно создать web-сервис, способный напрямую работать с образами файловых систем, используя скомпилированные в JavaScript драйверы NetBSD.

    Для демонстрации озвученной идеи подготовлен рабочий прототип подобного web-сервиса, способный работать с системными образами в формате FFS. Выполняемый в браузере демонстрационный образ ядра NetBSD с поддержкой FFS, Tmpfs и kernfs, а также минимальное системное окружение NetBSD можно загрузить на данной странице (5 Мб). Прототип сервиса может быть выполнен в любом современном web-браузере, за исключением Internet Explorer. Сервис позволяет передавать запущенному в браузере ядру произвольные команды и просматривать результат их выполнения. При запуске демонстрации осуществляется загрузка образа файловой системы FFS (rump.data), запуск ядра NetBSD и монтирование FFS-раздела, после чего можно выполнить произвольные команды в интерактивном режиме.

    Ядро собрано в режиме RUMP (Runnable Userspace Meta Program), позволяющем организовать выполнение частей ядра в адресном пространстве пользователя. В частности, Rump позволяет в виде оформленного в стиле микроядра серверного процесса выполнять в пространстве пользователя драйверы, изначально работающие на уровне монолитного ядра системы. По сути rump-ядро является частично паравиртуализированным ядром, запускаемым поверх высокоуровневного гипервизора. Указанная возможность позволяет легко портировать NetBSD под различные системы, так как по сути для обеспечения работы rump-ядра достаточно подготовить для платформы только соответствующий небольшой гипервизор. В рассмотренном эксперименте rump-гипервизор был написан для браузерного JavaScript движка (гипервизор был написан на Си на базе стандартного POSIX-гипервизора), после чего гипервизор, ядро и компоненты NetBSD были преобразованы в JavaScript в автоматическом режиме при помощи компилятора Emscripten.

    08.11.2012
    http://www.opennet.ru/opennews/art.shtml?num=35268
    http://blog.netbsd.org/tnf/entry/kernel_drivers_compiled_to_javascript​
     
  2. XHTTP

    XHTTP Elder - Старейшина

    Joined:
    24 Feb 2007
    Messages:
    180
    Likes Received:
    133
    Reputations:
    65
    хм, а прикольно...
     
  3. NekoKoneko

    NekoKoneko Elder - Старейшина

    Joined:
    29 Oct 2010
    Messages:
    175
    Likes Received:
    141
    Reputations:
    20
    Как перевезти 10 тонн песка с места на место?
    Раньше: засыпать песок в грузовик и перевезти.
    Сейчас: прокопать туннель до места, в туннель пустить поезд с платформами, поверх платформ положить асфальт, на асфальт поставить грузовики с огромным желобом, в котором будет плавать корабль, на корабль положить рельсы, поставить ж\д платформу, на которую поставить грузовик с песком и так этот злополучный песок перевозить.

    Лучше про подобное извращенство не скажешь.
     
  4. FunOfGun

    FunOfGun Elder - Старейшина

    Joined:
    5 Sep 2012
    Messages:
    388
    Likes Received:
    71
    Reputations:
    124
    Не-не-не, спредставь ОС, которая будет крутиться в браузере на любом железе. Это будет прорыв и кто-то срубит дофига бабла на этом.
     
  5. XHTTP

    XHTTP Elder - Старейшина

    Joined:
    24 Feb 2007
    Messages:
    180
    Likes Received:
    133
    Reputations:
    65
    ну вообще то он прав) Слишком много ресурсов уйдёт в никуда. Как эксперимент прикольно, но серьёзно к этому вряд ли стоит относиться)

    У нас и так хватает софта и ОС бездарно сжирающих ресурсы железа.

    Вон на wave 525, в качестве примера, там находится спец.приложение для ютуба, потому как в браузере этой хилой машинке флэш не потянуть. Ладно чёрт с ним. Дык и в остальном этот мобил тоже тормозит. Это не смотря на то что он мощнее ноклы 3250, которая работала на частоте 200мгц и этого хватало с головой! Правда и онлайн видео тогда особо не смотрел, давно это было...
    Итог прост. Время с 3250 вспоминаю с удовольствием, с 525м одна матершина...
    --
    С другой стороны из браузера может получиться "виртуалка" с приличными возможностями. Естественно если его оптимизировать под данную платформу.