Категории

Microsoft Surface Headphones Review: Dialed In

Я всегда чувствую связь с людьми, которые говорят мне, что им принадлежал Zune в тот же день. Проигрыватель MP3 от Microsoft также не стал хитом, но это была потрясающая музыкальная музыкальная машина, и ее влияние все еще ощущается в аппаратном и программном обеспечении компании через десятилетие. Его устройства Surface сосредоточились на высококачественном дизайне, так как…

Подробнее

Gas Safe Register национальной кампании предупреждает людей не «срезать углы»

Команда создала серию «ярких» черно-желтых плакатов, рекламных щитов и цифровых рекламных объявлений, чтобы подчеркнуть последствия несерьезного обеспечения безопасности газа. Кампания за газовый сейф, призывающая людей не «срезать углы», когда речь заходит о безопасности газа, созданная The Team, была запущена на национальном уровне. Газовый сейф является официальным национальным органом регистрации, в котором должны быть указаны газовики…

Подробнее

Ваш персональный WordPress бандл для бизнеса всего за $59

Какую сумму вы готовы отдать, чтобы запустить новый бизнес-проект? Можете ли вы позволить себе инвестировать $1000 в дизайн, контентное наполнение и продвижение сайта? А теперь представьте, вы можете запустить полнофункциональный и конкурентоспособный проект в своей нише всего за $59! TemplateMonster предоставляет уникальную возможность приобрести самый полный WordPress бандл для одной из популярных ниши бизнеса с…

Подробнее

Moxon завершает современное дополнение к штаб-квартире центрального управления Cairngorms

Moxon Architects значительно расширила и перенастроила штаб-квартиру Управления национальных парков Cairngorms (CNPA) в Грантаун-он-Спей, Шотландия, от имени Райдхавен-Эстейт , В шорт-лист на конкурсе Scottish Design Awards 2017 в категории «Будущее строительства» проект предоставляет новый вход в здание, построенный в девятнадцатом веке, а также новое крыло гибкого офисного пространства открытой планировки и помещения для собраний. Сотрудничая…

Подробнее

GitHub — hermitcore / libhermit-rs на webdesignernews.com

 Состояние сборки "data-canonical-src =" https://travis-ci.org/hermitcore/libhermit-rs.svg?branch=master "style =" max-width: 100%; "/ >
<img src=

Содержание статьи

Вклад

HermitCore-rs разрабатывается на GitHub.
Создайте свою собственную вилку, отправьте нам запрос на тяну и поговорите с нами на Slack.

Требования

Процесс сборки работает в настоящее время только на системах на базе x86 Linux . Строить
ядро и теги HermitCore-rs, которые вам нужны:

  • CMake
  • Netwide Assember (NASM)
  • Недавний компилятор хоста, такой как GCC
  • Крест-инструментальная цепочка HermitCore, то есть Binutils, GCC, newlib, pthreads
  • Компилятор ржавчины (ночной выпуск)
  • xargo, который может быть установлен с грузовой установкой xargo
  • Исходный код Rust для Xargo, который может быть установлен с компонентом rustup, добавляет rust-src .

Перекрестная инструментальная нить HermitCore-rs

Мы предоставляем готовые пакеты (в настоящее время только Ubuntu 18.04) от HermitCore-rs
Набор инструментов. Пакеты могут быть установлены следующим образом:

 $  echo    " deb [trusted=yes] https://dl.bintray.com/hermitcore/ubuntu bionic main "    |  sudo tee -a /etc/apt/sources.list
$ sudo apt-get -qq update
$ sudo apt-get install binutils-hermit newlib-hermit-rs pte-hermit-rs gcc-hermit-rs libomp-hermit-rs 

Если вы хотите самостоятельно построить инструментальную цепочку, посмотрите на ветку path2rs в репозитории
отшельник-набор инструменты.
Он содержит скрипты для создания всей инструментальной цепочки для HermitCore-rs.

В зависимости от того, как вы хотите использовать HermitCore-rs, вам могут потребоваться дополнительные пакеты
таких как:

  • QEMU ( apt-get install qemu-system-x86 )

Строительство

Предварительная работа

В качестве первого шага необходимо клонировать хранилище и его подмодули:

 $ git clone git@github.com: hermitcore / libhermit-rs.git
$  cd  libhermit-rs
$ git подмодуль init
Обновление $ git subodule 

Построение библиотечных операционных систем и их примеров

Чтобы построить ядро ​​Rust и его примеры, перейдите в каталог с исходным кодом
и выполните следующие команды:

 $ mkdir build
$  cd  сборка
$ cmake ..
$ make
$ sudo make install 

Если ваша инструментальная цепочка не находится в / opt / hermit / bin тогда вам нужно поставить
его расположение к команде cmake выше, например:

 $ cmake -DTOOLCHAIN_BIN_DIR = / home / user / hermit / bin .. 

Предполагая, что бинарные файлы, такие как x86_64-hermit-gcc и друзья, находятся в этом
каталог.
Чтобы установить новую версию в тот же каталог, вам необходимо установить путь установки и установить HermitCore-rs следующим образом:

 $ cmake -DTOOLCHAIN_BIN_DIR = / home / user / hermit / bin -DCMAKE_INSTALL_PREFIX = / home / user / hermit ..
$ make
$ make install 

Примечание: Если вы используете кросс-компилятор вне этого репозитория, он использует библиотечную операционную систему, расположенную
с помощью инструментальной цепочки (например, /opt/hermit/x86_64-hermit/lib/libhermit.a ).

Прокси

Часть HermitCore — это небольшой вспомогательный инструмент, который называется прокси .
Этот инструмент помогает запускать приложения HermitCore на виртуальной машине или голой части на узле NUMA.
В принципе это мост к системе Linux.
Если прокси зарегистрирован как загрузчик системы Linux, приложения HermitCore могут запускаться как обычные приложения Linux.
Прокси можно зарегистрировать с помощью следующей команды:

 $ sudo -c sh   ' echo ": отшельник: M: 7: \ x42 :: / opt / hermit / bin / proxy:"> / proc / sys / фс / binfmt_misc / регистр    

Приложения могут быть затем вызваны так:

 $ / opt / отшельник / x86_64-отшельник / дополнительные / тесты / привет 

В противном случае прокси-сервер должен быть запущен напрямую и в качестве аргумента нуждается в пути к приложению HermitCore:

 $   #  с использованием QEMU 
$ HERMIT_ISLE = qemu / opt / hermit / bin / proxy / opt / hermit / x86_64-отшельник / дополнительные / тесты / привет 

После этого прокси-сервер запускает приложение HermitCore внутри виртуальной машины или голосовой металл на узле NUMA.

Тестирование

Как классический автономный одноядерник в виртуальной машине

Приложения HermitCore могут быть непосредственно запущены как автономное ядро ​​в пределах
виртуальная машина:

 $  cd  сборка
$ make install DESTDIR =  ~  / отшельник
$  cd   ~  / hermit-build / opt / отшельник
$   #  с использованием QEMU 
$ HERMIT_ISLE = qemu bin / proxy x86_64-отшельник / дополнительные / тесты / привет
$   #  с использованием uHyve 
$ HERMIT_ISLE = uhyve bin / proxy x86_64-отшельник / дополнительные / тесты / привет 

С HERMIT_ISLE = qemu приложение будет запущено в виртуальной машине QEMU.
Обратите внимание, что загрузчик требует QEMU и использует KVM по умолчанию.
Кроме того, он ожидает, что исполняемый файл называется qemu-system-x86_64 .

С HERMIT_ISLE = uhyve приложение будет запущено в тонком
гипервизор, основанный на KVM API Linux, и поэтому требуется поддержка KVM .
uhyve имеет значительно меньшее время запуска, чем QEMU.
В принципе, это расширение уквм.

В этом контексте переменная среды HERMIT_CPUS указывает количество
CPU (и уже не диапазон идентификаторов ядра). Кроме того, переменная HERMIT_MEM
определяет размер памяти виртуальной машины. Суффиксы M и G могут быть
используется для указания значения в мегабайтах или гигабайтах соответственно. По умолчанию
loader инициализирует систему с одним ядром и 2 гигабайтами RAM.
Например, следующая команда запускает тест потока на виртуальной машине, который
имеет 4 ядра и 6 ГБ памяти:

 $ HERMIT_ISLE = qemu HERMIT_CPUS = 4 HERMIT_MEM = 6G bin / proxy x86_64-отшельник / дополнительные / контрольные точки / поток 

Чтобы включить устройство Ethernet для uhyve мы должны настроить устройство крана на
хост-системы. Например, следующая команда устанавливает устройство крана
tap100 на Linux:

 $ sudo ip tuntap add tap100 mode tap
$ sudo ip addr Добавить 10.0.5.1/24 broadcast 10.0.5.255 dev tap100
$ sudo ip link  set  dev tap100 up
$ sudo bash -c   ' echo 1> / proc / sys / net / ipv4 / conf / tap100 / proxy_arp '   

По умолчанию сетевой интерфейс uhyve использует 10.0.5.2 как IP-адрес, 10.0.5.1
для шлюза и 255.255.255.0 в качестве сетевой маски.
Конфигурация по умолчанию может быть перезаписана переменными окружения
HERMIT_IP HERMIT_GATEWAY и HERMIT_MASk .
Чтобы включить устройство, HERMIT_NETIF должно быть установлено на имя устройства крана.
Например, следующая команда запускает приложение HermitCore в ухиве
и позволяет поддерживать сеть:

 $ HERMIT_ISLE = uhyve HERMIT_IP =   " 10.0.5.3 "   HERMIT_GATEWAY =   " 10.0.5.1    HERMIT_MASK =   " 255.255.255.0 "   HERMIT_NETIF = tap100 bin / proxy x86_64-hermit / extra / tests / hello 

Если qemu используется как hyervisor, виртуальная машина эмулирует интерфейс Ethernet RTL8139 и открывает по крайней мере один порт TCP / IP.
Он используется для связи между приложением HermitCore и его прокси.
Используя переменную окружения HERMIT_PORT порт связи по умолчанию (18766) можно изменить.

В качестве многоядерного ядра на реальной машине

Скоро …

Создание собственных приложений HermitCore

Вы можете взять usr / tests в качестве отправной точки для создания собственных приложений. Все
требуется, чтобы вы включили
[...] /HermitCore/cmake/HermitCore-Application.cmake в приложении
CMakeLists.txt . Он не должен находиться внутри репозитория HermitCore.
Кроме этого, он должен вести себя как обычный CMake.

Отладка

Если приложение запущено через сделайте qemu отладка через GDB включена
по умолчанию на порту 1234. При запуске через прокси ( HERMIT_ISLE = qemu ) установите
HERMIT_DEBUG = 1 .

  $ gdb x86_64-отшельник / дополнительные / тесты / привет
(gdb) target extended-remote: 1234
Удаленная отладка с использованием: 1234
0xffffffff8100b542 в ?? ()
 

Советы

Оптимизация

Вы можете настроить флаг компилятора -mtune = name добавив -DMTUNE = имя в
команда cmake при настройке проекта.

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

Если QEMU запущен нашим прокси и переменной окружения установлен HERMIT_KVM
к 0 виртуальная машина не будет ускорена KVM. В этом случае
-mtune следует избегать.

TCP-соединения

Используя переменную окружения HERMIT_APP_PORT можно открыть дополнительный порт
установить соединение TCP / IP с вашим приложением.

Сбрасывание журнала ядра

Установив переменную окружения HERMIT_VERBOSE на 1 прокси-печать
сообщения журнала ядра на экран при завершении.

Трассировка сети

Установив переменную окружения HERMIT_CAPTURE_NET на 1 и
HERMIT_ISLE qemu QEMU фиксирует сетевой трафик и создает трассировку
файл qemu-vlan0.pcap . Вы можете проанализировать файл, например.
Wireshark.

Монитор

Если HERMIT_MONITOR установлено в 1 и HERMIT_ISLE qemu QEMU устанавливает
монитор, который доступен через telnet в порту 18767.
Используя переменную окружения HERMIT_PORT порт по умолчанию (18766) можно изменить для связи между приложением HermitCore и его прокси.
Подключение к системному монитору автоматически устанавливается на HERMIT_PORT + 1 то есть порт по умолчанию — 18767.

Кредиты

Emoji от HermitCore предоставляется бесплатно от EmojiOne.

15 лучших онлайн-курсов по кодированию

Курсы онлайн-кодирования предоставляют возможность учиться с комфортом вашего собственного дома и в свое время. С их помощью вы также можете адаптировать свое обучение к областям, которые вас интересуют, и выбирать курсы, соответствующие текущему уровню знаний. Хотите заняться анимацией CSS? Откройте секреты прокрутки параллакса? Построить идеальный макет сайта? Там есть онлайн-курс кодирования для вас. В последние…

Подробнее