Авторитетность издания
ВАК - К1
RSCI, ядро РИНЦ
Добавить в закладки
Следующий номер на сайте
№2
Ожидается:
16 Июня 2024
Методы разработки драйверов графической подсистемы
Methods of developing graphics subsystem drivers
Дата подачи статьи: 28.04.2018
УДК: 004.454
Статья опубликована в выпуске журнала № 3 за 2018 год. [ на стр. 425-429 ]Аннотация:В статье описаны проблемы разработки ПО для задач взаимодействия систем на кристалле и ОС Linux. Архитектурой ОС предусмотрено создание драйвера – компонента, обеспечивающего прием и передачу данных устройства с использованием программного интерфейса. Разработка драйверов для ОС с открытым исходным кодом затрудняется из-за непрерывных изменений функций и структуры ядра. Описаны структура и составные части графической подсистемы, представляющей собой набор компонентов, находящихся в разных адресных пространствах доступа виртуальной памяти ОС и взаимодействующих между собой, в том числе посредством интерфейса системных вызовов. Программирование графического ядра выполняется при помощи заполнения буфера команд: для каждого приложения создается контекст графического ядра, содержащий свой командный буфер и все необходимые данные, используемые графическим ядром для отрисовки/расчетов, – координаты, векторы нормали, цвета, текстуры. Существуют несколько подходов к установке графического режима, однако наиболее оправданным решением является применение модуля KMS (Kernel Mode Setting), который используется ключевыми производителями микропроцессоров и графических карт. Для полной реализации возможностей графического ядра необходимо обеспечить взаимодействие модулей ядра ОС и пространства пользователя посредством создания собственных системных вызовов, регламентирующих низкоуровневую работу с устройством. Применение платформ прототипирования на основе FPGA-матриц позволяет проверить работоспособность ПО, получить некоторые характеристики производительности и выявить ошибки в системе на кристалле на ранних стадиях проектирования. Отладка модулей ядра занимает значительное время в силу ограничений, накладываемых со стороны как платформы для прототипирования, так и ОС. Кроме того, ошибки, возникающие в коде ядра, трудновоспроизводимы, что также затрудняет отладку модулей ядра. В статье рассмотрены подходы к реализации KMS-модуля и компонентов графической подсистемы ОС Linux, которые позволяют обеспечить корректное взаимодействие ОС и контроллера вывода на экран системы на кристалле.
Abstract:The paper describes problems of software development for the problems of interaction between systems-on-a-chip (SoC) and the Linux operating system (OS). The OS architecture provides various instruments for creating a driver that is a component allowing the device data exchange using a software interface. The development of drivers for an open source OS is difficult due to continuous changes in functions and a kernel structure. The paper describes graphics subsystem structure and components. The subsystem is a component kit located in different address spaces of OS virtual storage. The components interact through a system call interface. Programming of a graphics engine is performed by filling a command buffer. Each application has a graphics engine context that contains its own command buffer and all necessary data used by the graphics engine for rendering/calculations: coordinates, normal vectors, colors, textures. There are several approaches to setting graphics mode. However, the most reasonable solution is using KMS module (Kernel Mode Setting). Key manufacturers of microprocessors and graphics cards commonly use these modules. It is necessary to ensure the interaction between OS kernel modules and user space through creating own specific system calls. These system calls regulate low-level operations with the device and allow taking full advantage of the graphics unit capabilities. Using FPGA-based prototyping platforms allows verifying software functionality, getting performance characteristics and finding errors in SoC hardware design at early stages. Debugging kernel modules is time-consuming due to limitations imposed both by a prototyping platform and the OS. In addition, the errors in a kernel code are difficult to reproduce, which also complicateы debugging of kernel modules. The paper considers some approaches to implementation of Linux OS KMS module and graphics subsystem components, which provide correct interaction of the OS and the SoC display controller.
Авторы: Ефремов И.А. (i350300800e@gmail.com) - ФГУ ФНЦ НИИСИ РАН (программист), Москва, Россия, Аспирант , Мамросенко К.А. (kirillam@ya.ru) - Научно-исследовательский институт системных исследований РАН, г. Москва (руководитель Центра), г. Москва, Россия, кандидат технических наук, Решетников В.Н. (rvn_@mail.ru) - Центр визуализации и спутниковых информационных технологий ФНЦ НИИСИ РАН (профессор), Москва, Россия, доктор физико-математических наук | |
Ключевые слова: графическое ядро, драйвер, linux, снк, разработка, модуль ядра |
|
Keywords: gpu, driver, linux, soc, development, kernel module |
|
Количество просмотров: 13953 |
Статья в формате PDF Выпуск в формате PDF (29.03Мб) |
Методы разработки драйверов графической подсистемы
DOI: 10.15827/0236-235X.123.425-429
Дата подачи статьи: 28.04.2018
УДК: 004.454
Статья опубликована в выпуске журнала № 3 за 2018 год. [ на стр. 425-429 ]
В статье описаны проблемы разработки ПО для задач взаимодействия систем на кристалле и ОС Linux. Архитектурой ОС предусмотрено создание драйвера – компонента, обеспечивающего прием и передачу данных устройства с использованием программного интерфейса. Разработка драйверов для ОС с открытым исходным кодом затрудняется из-за непрерывных изменений функций и структуры ядра.
Описаны структура и составные части графической подсистемы, представляющей собой набор компонентов, находящихся в разных адресных пространствах доступа виртуальной памяти ОС и взаимодействующих между собой, в том числе посредством интерфейса системных вызовов. Программирование графического ядра выполняется при помощи заполнения буфера команд: для каждого приложения создается контекст графического ядра, содержащий свой командный буфер и все необходимые данные, используемые графическим ядром для отрисовки/расчетов, – координаты, векторы нормали, цвета, текстуры.
Существуют несколько подходов к установке графического режима, однако наиболее оправданным решением является применение модуля KMS (Kernel Mode Setting), который используется ключевыми производителями микропроцессоров и графических карт. Для полной реализации возможностей графического ядра необходимо обеспечить взаимодействие модулей ядра ОС и пространства пользователя посредством создания собственных системных вызовов, регламентирующих низкоуровневую работу с устройством.
Применение платформ прототипирования на основе FPGA-матриц позволяет проверить работоспособность ПО, получить некоторые характеристики производительности и выявить ошибки в системе на кристалле на ранних стадиях проектирования. Отладка модулей ядра занимает значительное время в силу ограничений, накладываемых со стороны как платформы для прототипирования, так и ОС. Кроме того, ошибки, возникающие в коде ядра, трудновоспроизводимы, что также затрудняет отладку модулей ядра.
В статье рассмотрены подходы к реализации KMS-модуля и компонентов графической подсистемы ОС Linux, которые позволяют обеспечить корректное взаимодействие ОС и контроллера вывода на экран системы на кристалле.
Ефремов И.А. (i350300800e@gmail.com) - ФГУ ФНЦ НИИСИ РАН (программист), Москва, Россия, Аспирант , Мамросенко К.А. (kirillam@ya.ru) - Научно-исследовательский институт системных исследований РАН, г. Москва (руководитель Центра), г. Москва, Россия, кандидат технических наук, Решетников В.Н. (rvn_@mail.ru) - Центр визуализации и спутниковых информационных технологий ФНЦ НИИСИ РАН (профессор), Москва, Россия, доктор физико-математических наук
Ссылка скопирована!
Постоянный адрес статьи: http://swsys.ru/index.php?page=article&id=4480 |
Версия для печати Выпуск в формате PDF (29.03Мб) |
Статья опубликована в выпуске журнала № 3 за 2018 год. [ на стр. 425-429 ] |
Статья опубликована в выпуске журнала № 3 за 2018 год. [ на стр. 425-429 ]
Возможно, Вас заинтересуют следующие статьи схожих тематик:Возможно, Вас заинтересуют следующие статьи схожих тематик:
- Особенности применения предметно-ориентированных языков для тестирования веб-приложений
- Генерация компиляторов мультисинтаксических языков программирования мультиверсионных систем
- Некоторые технологические аспекты создания учебно-тренировочных средств подготовки командиров и специалистов Военно-морского флота
- Технология разработки систем поддержки научных исследований
- Подходы к обеспечению визуализации данных на устройствах с использованием современных операционных систем реального времени
Назад, к списку статей