Том 11, №2, 2019
РусскийEnglish

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ



ВИЗУАЛИЗАЦИЯ ГРАФИЧЕСКОЙ ИНФОРМАЦИИ В ОПЕРАЦИОННЫХ СИСТЕМАХ ОБЩЕГО НАЗНАЧЕНИЯ

Пугин К.В., Мамросенко К.А., Гиацинтов А.М.

Научно-исследовательский институт системных исследований РАН, https://www.niisi.ru/
Москва 117218, Российская Федерация

Поступила в редакцию 10.06.2019, принята 21.06.2019


Аннотация. В статье описаны подходы к разработке программного обеспечения для задач взаимодействия контроллера вывода на экран и операционной системы (ОС) Linux. Архитектурой ОС предусмотрено создание драйвера — компонента, обеспечивающего корректное взаимодействие аппаратного контроллера с ядром системы с использованием различных протоколов. Разработка драйвера контроллеров затрудняется ввиду непрерывных изменений структуры ядра, не имеющих обратной совместимости. В данной статье рассмотрено несколько подходов к разработке драйверов контроллеров, основными из которых являются программирование режима контроллера внутри ядра Linux (Kernel Mode Setting, или KMS), а также программирование графического контроллера из графического сервера (User Mode Setting, или UMS). Рассмотрено историческое развитие подходов к написанию драйверов контроллера, а также причины принятия решений, которые в итоге привели к тому, что доминирующим подходом стало написание драйверов контроллера внутри ядра ОС. В ядре Linux применяется особый подход к написанию драйверов, который сочетает в себе процедурное и объектно-ориентированнное программирование путем использования свойств языка C и его расширений, используемых в компиляторе GCC. Из-за большого количества необходимых расширений сборка драйверов и ядра Linux затруднена любыми другими компиляторами. Новейшей концепцией написания драйверов контроллера вывода на экран для ядра Linux является концепция атомарных драйверов KMS. В современном Linux для контроллеров вывода на экран существует концепция состояний, которая позволяет отменять и применять состояния без промежуточных шагов. Для работы концепция состояний для режимов дисплея в ядре Linux требует реализации в соответствии с принципом «функция отмены полностью отменяет функцию включения, вплоть до состояния». Рассмотрены подходы к реализации драйвера контроллера вывода для ОС Linux, а также подробно рассмотрен способ, наиболее применяемый на текущий момент — модуль атомарного переключения режимов в пространстве ядра.

Ключевые слова: драйвер, встраиваемые системы, Linux, модуль ядра, разработка

УДК 004.454

РЭНСИТ, 2019, 11(2):217-224 DOI: 10.17725/rensit.2019.11.217


Полнотекстовая электронная версия статьи – на вебсайтах http://elibrary.ru и http://rensit.ru/vypuski/article/283/11(2)217-224.pdf