Новый культурный хаб Jameel Arts Centre открылся в Дубае. Трехэтажный проект лондонского архитектурного бюро Serie Architects площадью 10 тыс. кв. м включил выставочные залы, художественную библиотеку, парк скульптур, арт-резиденции и образовательный центр. Организатор проекта — фонд Art Jameel хорошо известен не только на Ближнем Востоке, но и на Западе. С 2003 года он проводит двусторонние…
Я всегда чувствую связь с людьми, которые говорят мне, что им принадлежал Zune в тот же день. Проигрыватель MP3 от Microsoft также не стал хитом, но это была потрясающая музыкальная музыкальная машина, и ее влияние все еще ощущается в аппаратном и программном обеспечении компании через десятилетие. Его устройства Surface сосредоточились на высококачественном дизайне, так как…
Команда создала серию «ярких» черно-желтых плакатов, рекламных щитов и цифровых рекламных объявлений, чтобы подчеркнуть последствия несерьезного обеспечения безопасности газа. Кампания за газовый сейф, призывающая людей не «срезать углы», когда речь заходит о безопасности газа, созданная The Team, была запущена на национальном уровне. Газовый сейф является официальным национальным органом регистрации, в котором должны быть указаны газовики…
Какую сумму вы готовы отдать, чтобы запустить новый бизнес-проект? Можете ли вы позволить себе инвестировать $1000 в дизайн, контентное наполнение и продвижение сайта? А теперь представьте, вы можете запустить полнофункциональный и конкурентоспособный проект в своей нише всего за $59! TemplateMonster предоставляет уникальную возможность приобрести самый полный WordPress бандл для одной из популярных ниши бизнеса с…
Moxon Architects значительно расширила и перенастроила штаб-квартиру Управления национальных парков Cairngorms (CNPA) в Грантаун-он-Спей, Шотландия, от имени Райдхавен-Эстейт , В шорт-лист на конкурсе Scottish Design Awards 2017 в категории «Будущее строительства» проект предоставляет новый вход в здание, построенный в девятнадцатом веке, а также новое крыло гибкого офисного пространства открытой планировки и помещения для собраний. Сотрудничая…
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 )
Строительство
Предварительная работа
В качестве первого шага необходимо клонировать хранилище и его подмодули:
Построение библиотечных операционных систем и их примеров
Чтобы построить ядро 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.
Прокси можно зарегистрировать с помощью следующей команды:
В противном случае прокси-сервер должен быть запущен напрямую и в качестве аргумента нуждается в пути к приложению 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 в ухиве
и позволяет поддерживать сеть:
Если 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.