Фон
SkyEye берёт своё начало в 2002 году. Группа энтузиастов, интересующихся операционными системами, обсуждала технологии в интернете и хотела изучить принципы работы операционных систем без ограничений со стороны аппаратного обеспечения. Они предложили идею программного моделирования аппаратных средств, включая SkyEye, инициатором которого стал профессор Чэнь Юй из Университета Цинхуа.
В то время уже существовали подобные проекты, такие как ARMulator от uCLinux, который мог имитировать разработку плат AT91 и поддерживать работу UClinux на них. Основываясь на дизайне и опыте ARMulator, профессор Чэнь и другие люди запустили проект с открытым исходным кодом SkyEye в 2003 году, которым активно пользовались любители и студенты по всему миру.
После двух десятилетий технического развития SkyEye завершил коммерческую инкубацию и стал одним из представителей промышленных программных решений MBSE (Model-Based Systems Engineering), широко применяемым в авиации, космонавтике, железнодорожном транспорте, машиностроении и других областях.
Проект
Open-SkyEye — это проект программного обеспечения с открытым исходным кодом, представляющий собой версию SkyEye для сообщества разработчиков. Его цель — создать интегрированную среду разработки на основе чистого программного обеспечения на распространённых платформах, таких как Linux, Windows и Mac OS, имитируя распространённые встроенные компьютерные системы.
Пользователи могут запускать различные операционные системы, такие как Linux, RTLinux, RTThread, FreeRTOS, μC/OS и LiteOS, а также различные системные программы, такие как TCP/IP, графическая и файловая подсистемы, и анализировать и тестировать их на уровне исходного кода.
Текущая версия с открытым исходным кодом разрабатывается и поддерживается компанией Zhejiang Dijie Software Technology Co., Ltd. [см. коммерческую версию SkyEye].
Быстрый старт
Open-SkyEye делится на версии для распространения и разработки. Версия для распространения имеет относительно простую конфигурацию, не требующую компиляции исходного кода и загрузки примеров использования, и основана на виртуальной машине и Ubuntu, что подходит для начинающих пользователей. Версия для разработки позволяет компилировать и использовать новейший исходный код Open-SkyEye, предоставляя возможность реального опыта работы с новыми функциями и примерами использования на базе WSL и Ubuntu и подходит для опытных разработчиков.
(1) Установка версии для распространения через образы
На примере Ubuntu 16.04 сначала запустите службу Docker с помощью команды sudo service docker start
. Обратите внимание, что для разных операционных систем или платформ могут потребоваться разные методы, поэтому рекомендуется обратиться к соответствующим руководствам.
Рекомендуется использовать команду для получения образа:
sudo docker pull skyeyehub/opt:v1.3.6-beta
[или вручную загрузить образ (требуется учётная запись)]
После загрузки образа можно использовать команду sudo docker images
, чтобы проверить список образов и убедиться в успешной загрузке:
Чтобы обеспечить нормальное отображение экрана, хост-компьютер также должен установить некоторые программы. Используйте следующую команду (для разных операционных систем могут потребоваться разные команды):
sudo apt-get install x11-xserver-utils && xhost +
Эта команда открывает доступ, позволяя всем пользователям получать доступ к интерфейсу отображения X11.
Теперь мы создадим новый контейнер на основе этого образа. Эта команда немного сложна, поэтому сначала она будет представлена, а затем объяснена:
sudo docker run -it \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY=:0 \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
--name open-skyeye skyeyehub/opt:v1.3.6-beta /bin/bash
Сначала run
является основной командой для создания контейнера, -v /tmp/.X11-unix:/tmp/.X11-unix
, -e DISPLAY=:0 -e GDK_SCALE -e GDK_DPI_SCALE
— это совместное использование возможностей отображения хоста с контейнером. Чтобы получить местоположение графического дисплея, используйте следующую команду:
printenv DISPLAY
Если полученное значение :0.0
, обновите -e DISPLAY=:0
при создании контейнера.
--name open-skyeye skyeyehub/dev:v1
— это имя контейнера, за которым следует имя образа, /bin/bash
запускает bash. Для получения дополнительной информации о Docker и его командах обратитесь к другим разделам.
Однако совместное использование хост-дисплея не является обязательным, если вы не используете пользовательский интерфейс Open-SkyEye и программное обеспечение для последовательного подключения putty. Команда для создания контейнера без функций отображения выглядит следующим образом:
sudo docker run -it \
-p 65500:65500 \
--name open-skyeye skyeyehub/opt:v1.3.6-beta /bin/bash
где -p 65500:65500
— порт совместного использования для доступа к данным последовательного порта целевого устройства через telnet.
Обратите внимание, что если вам нужно создать несколько контейнеров, необходимо изменить имя после --name
, контейнеры не могут иметь одинаковые имена.
Создав контейнер, вы автоматически войдёте в bash, как показано ниже:
Теперь вы можете ввести команду skyeye, чтобы запустить Open-SkyEye:
(2) Установка версии для разработки через образы
Версия для распространения Open-SkyEye основана на образах Docker, которые можно легко использовать и разрабатывать. В настоящее время мы протестировали множество операционных систем, таких как Ubuntu, Arch Linux, Windows и macOS, и все они поддерживают производственную среду Docker.
Помимо установки Docker и загрузки образов, вам также потребуется клонировать или загрузить некоторый код (исходный код Open-SkyEye и примеры тестирования). Список ссылок следующий:
Исходный код Open-SkyEye (или git clone https://gitee.com/open-skyeye/code.git)
Примеры тестирования Open-SkyEye (или git clone https://gitee.com/open-skyeye/testcase.git)
При получении исходного кода предпочтительно выбирать версию с тегом.
Инструкции по установке Docker просты, и вы можете обратиться к онлайн-ресурсам для установки в соответствии с вашей средой.
Для удобства разработки и отладки после загрузки исходного кода и примеров тестирования создайте папку и поместите их туда. Эту папку можно будет использовать совместно с контейнерами.
mkdir /home/zevorn/skyeye-workspace
cd /home/zevorn/skyeye-workspace
git clone -b v1.3.6-beta https://gitee.com/open-skyeye/code.git
git clone https://gitee.com/open-skyeye/testcase.git
Возьмём Ubuntu 20.04 в качестве примера, сначала запустим службу Docker с помощью команды sudo service docker start
, обратите внимание, что для разных операционных систем или платформ могут потребоваться разные методы, поэтому рекомендуется обратиться к соответствующим руководствам.
[Нажмите здесь, чтобы загрузить образ (необходимо войти в систему dockerhub)] или использовать команду для загрузки:
sudo docker pull skyeyehub/dev:v1.0.0-rc0
Вы можете использовать docker images
для проверки списка образов и подтверждения успешной загрузки:
Чтобы гарантировать нормальное отображение, хост также должен установить некоторое программное обеспечение. Используйте следующую команду (разные операционные системы могут потребовать разных команд):
sudo apt-get install x11-xserver-utils && xhost +
Эта команда предоставляет общий доступ к возможностям отображения X11 хоста.
Теперь создадим новый контейнер на основе этого образа. Сначала run
— основная команда для создания контейнеров, -v /tmp/.X11-unix:/tmp/.X11-unix
, -e DISPLAY=:0 -e GDK_SCALE -e GDK_DPI_SCALE
совместно используют возможности отображения хоста с контейнерами, используйте следующую команду для получения местоположения графического дисплея:
printenv DISPLAY
Если получено значение :0.0
, при создании контейнера обновите -e DISPLAY=:0
.
Затем -v /home/zevorn/skyeye-workspace/:/home/skyeye-workspace
— совместное использование папки хоста с контейнером, где /home/zevorn/skyeye-workspace/
— путь к папке хоста, а /home/skyeye-workspace
— путь внутри контейнера.
Наконец, --name open-skyeye skyeyehub/dev:v1.0.0-rc0 /bin/bash
— имя контейнера и образ, /bin/bash
запускает оболочку bash. /home/zevorn/skyeye-workspace/:/home/skyeye-workspace` — это общий доступ к папке для контейнера. В этой папке находятся исходный код Open-SkyEye и тестовые сценарии.
--name open-skyeye skyeyehub/dev:v1
— имя контейнера, за которым следует название образа. /bin/bash
— запуск с помощью bash. Более подробную информацию об использовании Docker и командах можно найти в следующих разделах.
Однако общий доступ к экрану хоста не является обязательным, если вы не используете пользовательский интерфейс Open-SkyEye или программное обеспечение для последовательного порта putty. Вот как создать контейнер без общего доступа к экрану:
docker run -it \
-v /home/zevorn/skyeye-workspace/:/home/skyeye-workspace \
-p 65500:65500 \
--name open-skyeye skyeyehub/dev:v1.0.0-rc0 /bin/bash
Здесь -p 65500:65500
— общий доступ к IP-порту, который используется для доступа к данным последовательного порта целевого устройства через telnet.
Обратите внимание, что при создании нескольких контейнеров необходимо изменить имя после --name
. Контейнеры не могут иметь одинаковые имена.
После создания контейнера вы автоматически попадаете в bash. Эффект следующий:
Затем мы переходим в каталог, общий для контейнера, и вводим команду cd /home/skyeye-workspace/code && ls
, чтобы просмотреть каталог кода:
Теперь, убедившись, что всё в порядке, мы можем скомпилировать Open-SkyEye! Введите следующую команду:
./autogen.sh && ./configure --prefix=/home/skyeye-workspace/opt/skyeye && make -j4 && make install
Если не указать ./configure --prefix
, Open-SkyEye будет установлен по умолчанию в /opt/skyeye
.
После завершения компиляции вы увидите следующее изображение:
Теперь вы можете выполнить команду /home/skyeye-workspace/opt/skyeye/bin/skyeye
, чтобы запустить skyeye:
Для получения дополнительной информации об использовании Open-SkyEye нажмите здесь.
Чтобы изучить Open-SkyEye, присоединяйтесь к группе QQ: 238612183.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )