поток. Это делает ракету всеракурсной, позволяя наносить удары по воздушным целям из любого положения, а не только задней полусферы. Именно для таких ситуаций и разрабатывалась НСЦИ - пилоту достаточно посмотреть на цель, для того чтобы атаковать ее ИК ракетами с ГСН (головка самонаведения). Нет необходимости в повороте корпуса самолета, не нужно следить за целью слишком долго.
Радиолокационные полуактивные (оптико-электронные) ракеты же требуют облучения цели до окончания перехвата, а практически - некоторое время держать ее перед собой. Аналогичная система создана для управления направлением стрельбы носовой турели вертолета Ми-28Н.
В обоих примерах НСЦИ отслеживает направление взгляда с помощью специальной камеры, передавая информацию в прицельный комплекс. Преимущество НСЦИ как основы комплекса вооружения в плане эффективности и скорости наведения, как видно из данной статьи,
Используемые источники 1.Официальная страница концерна "Радиоэлектронные технологии" КРЭТ [Электронный ресурс] - режим доступа: https://kret.com/ (дата обращения 10.04.2017)
2.Официальный сайт Московского Авиационного Института [Электронный ресурс] - режим доступа: http://www.mai.ru/ (дата обращения 10.04.2017) 3.Официальный сайт Университета ИТМО, кафедры Машинного Проектирования Бортовой Электронно-вычислительной [Электронный ресурс] - режим доступа: http://mpbva.ifmo.ru (дата обращения 10.04.2017) 4.Официальный сайт журнала "Научно-технический вестник информационных технологий, механики и оптики" [Электронный ресурс] -режим доступа: http://ntv.ifmo.ru/ (дата обращения 10.04.2017) 5.Официальный сайт информационно-аналитического журнала "Радиоэлектронные технологии" " [Электронный ресурс] - режим доступа: http://hi-tech.media (дата обращения 10.04.2017)
УДК 004.451.9
Радисхлебова А.А. студент 4 курс
Институт Интеллектуальных Кибернетических Систем Национальный исследовательский ядерный университет «МИФИ»
Россия, г. Москва ЗАВИСИМОСТИ ПАКЕТОВ В ДИСТРИБУТИВАХ LINUX:
КЛАССИФИКАЦИЯ И МЕХАНИЗМЫ КОНТРОЛЯ Аннотация: в данной статье рассмотрена классификация зависимостей пакетов, приведены примеры зависимостей различных типов. Проведен обзор механизмов контроля зависимостей пакетов в основных дистрибутивах Linux.
Ключевые слова: пакет, зависимости пакета, система управления пакетами, дистрибутив, метаинформация пакета.
Radiskhlebova A.A.
Student
4h year, Institute of Cyber Intelligence Systems National research nuclear university «MEPhl»
Russia, Moscow
PACKAGE DEPENDENCIES IN LINUX DISTRIBUTIONS: CLASSIFICATION AND MECHANISMS OF CONTROL
Annotation: in this article the classification of package dependencies is discussed, examples of dependencies of various types are given. A review of the mechanisms for controlling package dependencies in major Linux distributions is provided.
Keywords: package, package dependencies, package management system, software distribution, metadata of package.
Программное обеспечение большинства UNIX-подобных операционных систем (Debian, Red Hat, Mandrake и др.) поставляется в виде пакетов программ. Пакет - архивный файл, содержащий программный код в бинарном или исходном виде, а также метаданные о программе, ее версии, зависимостях и другую информацию.
Как правило, пакеты программ имеют взаимные зависимости друг от друга. Зависимости пакета - набор сведений, описывающих требования к наличию других программных пакетов и иных условий, необходимых данному пакету для функционирования.
Различают сборочные зависимости и зависимости стадии выполнения.
Сборочные зависимости - набор пакетов, которые должны быть доступны во время распаковки, конфигурирования, компиляции и установки пакета. В качестве основных примеров сборочных зависимостей можно привести системы сборки программного обеспечения из исходного кода -Scons, CMake; генераторы лексических и синтактических анализаторов flex и bison; unzip и другие инструменты, используемые для извлечения исходного архива.
Зависимости стадии выполнения - набор пакетов, которые должны быть доступны в процессе выполнения программы. Пакеты, содержащие шрифты, в большинстве случаев представляют собой только зависимости стадии выполнения, так как шрифты редко применяются во время сборки пакетов.
В операционных системах на базе Debian выделяют только обязательные и необязательные (рекомендуемые) зависимости.
Обязательные зависимости - зависимости, без удовлетворения которых невозможна сборка, установка и функционирование пакета. Например, любой пакет, содержащий приложение зависит от системных
библиотек C, приложения для интегрированной среды KDE - от библиотек qt и kdelibc.
Рекомендуемые зависимости - зависимости, удовлетворение которых добавляет пакету дополнительную функциональность. В качестве примера необязательной зависимости можно привести зависимость пакета links от сервиса консольной мыши gpm.
Управление пакетами программ в UNIX-подобных операционных системах осуществляется на уровне отдельной программы или библиотеки, а не целой системы. Удаление или изменение версии одного из составляющих систему компонентов может нарушить работоспособность зависимых от него пакетов. Поэтому для поддержания целостности и правильного функционирования системы необходимы эффективные механизмы контроля зависимостей пакетов.
Управление зависимостями является одной из основных функций систем управления пакетами. Система управления пакетами - набор программных средств, которые автоматизируют процесс установки, удаления, настройки и обновления различных компонентов программного обеспечения.
Рассмотрим более подробно, как осуществляется контроль межпакетных зависимостей в различных дистрибутивах Linux.
Debian GNU/Linux — один из самых популярных и важных дистрибутивов GNU/Linux. Пакет Debian содержит не только файлы, предназначенные для установки (а именно, исполняемые файлы, библиотеки, документацию и т.п.), но и файл со всей доступной метаинформацией о пакете. Метаинформация включает в себя полное имя пакета, номер версии, описание пакета, имя разработчика, контрольную сумму, отношения с другими пакетами и используется системами управления пакетами для определения возможности установки или удаления пакета. Метаинформация содержится в файле control, пример которого представлен на рисунке 1.
1 Source: gentoo
2 Section: unknown
3 Priority: extra
4 Maintainer: Josip Rodin <jDy-mggdebian.org>
5 Build-Depends: debhelper (>-9)
6 Standards-Version: 3.9.4
7 Homepage: <insert the upstream URL, if relevant>
9 Package: gentoo
10 Architecture: any
11 Depends: 5{shlibs: Depends}, ${misc: Depends}
12 Description: <insert up to 60 chars description>
13 <insert long description, indented with spaces>
Рисунок 1 - Файл control, созданный программой dh make
На основе информации, содержащейся в файле control, системы управления пакетами осуществляют контроль межпакетных зависимостей. В Debian в основном используются следующие системы управления пакетами:
• dpkg - предназначена для установки, конфигурирования и удаления единичных пакетов; не имеет собственных средств разрешения межпакетных зависимостей; сообщает о нарушении зависимостей
• apt - универсальный набор инструментов для управления deb-пакетами; включает механизмы для разрешения межпакетных зависимостей; устанавливает в систему недостающие зависимости (но только обязательные, список рекомендуемых зависимостей выводит на экран, пользователь сам принимает решение по поводу их установки).
В основном зависимости пакета в файле control прописываются вручную на основании документации. Но есть утилиты для автоматического определения некоторых зависимостей. Например, для определения сборочных зависимостей можно воспользоваться утилитой dpkg-depcheck.
В дистрибутивах, основанных на Red Hat Linux, а именно Fedora, RHEL, ALT Linux в качестве системы управления пакетами выступает RPM. Контроль зависимостей осуществляется за счет информации, указанной в spec-файле пакета. Spec-файл содержит инструкции, задающие порядок сборки, информацию о номере версии, зависимостях и в целом все данные о пакете, которые могут быть впоследствии запрошены из базы данных RPM.
В RPM проекта Sisyphus (проект, в рамках которого осуществляется развитие репозитория свободного программного обеспечения для разработки на его основе различных решений) и дистрибутивов ALT Linux присутствуют механизмы для автоматического поиска межпакетных зависимостей.
Для автоматизированного поиска сборочных зависимостей применяется утилита buildreq. В процессе сборки пакета данная утилита отслеживает все используемые файлы с помощью strace. По списку файлов, используемых в процессе сборки, buildreq строит список пакетов, необходимых для сборки. Впоследствии список сборочных зависимостей поддается оптимизации. Полученный оптимизированный список зависимостей добавляется в spec-файл пакета.
В рамках проекта Sisyphus разработана система автоматического поиска зависимостей для rpm-пакетов. Скрипт find-requires из пакета rpm-build осуществляет поиск зависимостей на основе списка всех файлов пакета. На первом этапе для каждого файла определяется «тип» с помощью утилиты file. Далее программные модули поиска зависимостей обрабатывают список файлов и их типов. С помощью скрипта find-requires можно получить зависимости программ от разделяемых библиотек, программ на языках программирования Perl, Python и Tcl, а также приложений Java.
Arch Linux - это независимо разрабатываемый дистрибутив GNU/Linux общего назначения, оптимизированный для архитектур i686 и x86-64, достаточно гибкий для выполнения любой задачи. Официальной системой управления пакетами для дистрибутива Arch Linux является Pacman.
Контроль зависимостей в системе управления пакетами Arch Linux осуществляется за счет внешней по отношению к каждому пакету базы данных. Она включает в себя базу всех пакетов, охваченных официальной частью дистрибутива Arch Linux, и базу пакетов, установленных на локальной машине. Базы пакетов представляют собой каталоги, содержащие папки вида pkg-ver-rel для каждого пакета. В каталоге пакета расположены файлы, содержащие краткое описание пакета, информацию о его зависимостях и список всех компонентов пакета.
При установке нового пакета Pacman сначала проверяет каталог, содержащий базу всех пакетов дистрибутива, для определения зависимостей устанавливаемого пакета. На следующем шаге Pacman проверяет наличие компонентов, необходимых устанавливаемому пакету на основе информации из каталога, содержащей базу установленных на машине пакетов. Если проверка проходит успешно, пакет устанавливается в систему. В противном случае - выдаётся список имён недостающих пакетов; работа Pacman^ завершается сообщением об ошибке. Pacman автоматически не разрешает нарушение зависимостей. Установка недостающих компонентов выполняется пользователем. На рисунке 2 представлен вывод команды pacman в случае отсутствия в системе необходимых пакетов.
pacman -A gnome-desktop"2.4.0-1. pkg.tar,gz 11¡01 pts/2
errort unsatisfied dependencies! gnome-desktop? requires libgnome gnome-desXtopf requires gnome- vf s
Рисунок 2 - Вывод pacman в случае отсутствия в системе необходимых пакетов
Системы управления пакетами достаточны эффективны в вопросах отслеживания зависимостей пакетов для поддержания целостности UNIX-подобных систем. Многие системы управления пакетами имеют инструменты для автоматического разрешения зависимостей. Также существуют механизмы для автоматического определения некоторых зависимостей, которые при дальнейшем развитии позволят освободить разработчика от указания зависимостей вручную.
Использованные источники: 1.Введение в POSIX'ивизм (C) Алексей Федорчук, 2005 [Электронный ресурс] URL: http://www.linuxcenter.ru/lib/books/posixbook/?style=print (Дата обращения 21.04.2017)
2.Система управления пакетами [Электронный ресурс] URL: https: //ru.wikipedia. org/wiki/Система_управления_пакетами (Дата обращения 21.04.2017)
3.Руководство начинающего разработчика Debian [Электронный ресурс] URL : https : //www.debian.org/doc/manuals/maint-guide/index.ru.html (Дата обращения 23.04.2017)
4.Полное руководство Red Hat Package Manager [Электронный ресурс] URL: https://www.opennet.ru/docs/RUS/rpm_guide/ (Дата обращения 23.04.2017)
5.Турбин А. Автоматический поиск зависимостей в rpm-пакетах [Электронный ресурс] URL: http://ftp.altlinux.org/pub/people/at/protav2007-ru-short.pdf (Дата обращения 23.04.2017)
6.Archlinux: управление пакетами, Алексей Федорчук, 2005 [Электронный ресурс] URL: http : //citkit .ru/articles/112/ (Дата обращения 25.04.2017)
УДК 004
Семенов A.A. студент
факультет "Информатика и системы управления" Московский государственный технический университет
имени. Н.Э. Баумана Россия, г. Москва Научный руководитель: Афанасьев Г.И., к.т.н. доцент кафедры «Системы обработки информации и управления» Московский государственный технический университет
имени. Н.Э. Баумана Россия, г. Москва ТЕХНОЛОГИЯ СОЗДАНИЯ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА С ПОМОЩЬЮ QML Аннотация: В данной статье описана методика создания графического интерфейса на языке QML. Описывается создание такие элементов, как текстовое поле, ползунок, метка. Так же описывается простое взаимодействие между объектами.
Ключевые слова: QML, графический интерфейс, Qt. Что такое QML
QML[2] (Qt Meta Language or Qt Modeling Language) - декларативный язык, который позволяет создавать графический интерфейс приложения с помощью описания видимых компонентов и способов их взаимодействия друг с другом. Язык QML является высокочитаемым, он был специально разработан для того, чтобы позволить компонентам приложения быть динамически связанными, так же язык позволяет с легкостью повторно использовать и настраивать компоненты пользовательского интерфейса.
Синтаксис языка QML похож на JSON с поддержкой императивных возможностей языка JavaScript в сочетании с динамическими привязками