<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD with OASIS Tables with MathML3 v1.4 20241031//EN" "https://jats.nlm.nih.gov/archiving/1.4/JATS-archive-oasis-article1-4-mathml3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" dtd-version="1.4" article-type="research-article" xml:lang="en"><front><journal-meta><journal-title-group><journal-title xml:lang="ru">Успехи кибернетики</journal-title></journal-title-group><issn publication-format="electronic">2712-9942</issn></journal-meta><article-meta><article-categories><subj-group><subject>Other</subject></subj-group></article-categories><title-group><article-title xml:lang="ru">Методы ввода данных в микроядерных операционных системах на примере операционной системы реального времени «Багет»</article-title><trans-title-group xml:lang="en"><trans-title>Data Input Methods in Microkernel Operating Systems: A Case Study of the Baget Real-Time Operating System</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author"><name-alternatives><name xml:lang="ru"><surname>Гиацинтов</surname><given-names>А. М.</given-names></name><name xml:lang="en"><surname>Giatsintov</surname><given-names>A. M.</given-names></name></name-alternatives><xref ref-type="aff" rid="aff1"/><xref ref-type="aff" rid="aff2"/><email>giatsintov@niisi.ras.ru</email><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-1304-4016</contrib-id></contrib><contrib contrib-type="author"><name-alternatives><name xml:lang="ru"><surname>Еременчук</surname><given-names>А. Н.</given-names></name><name xml:lang="en"><surname>Eremenchuk</surname><given-names>A. N.</given-names></name></name-alternatives><xref ref-type="aff" rid="aff1"/><xref ref-type="aff" rid="aff2"/><email>alexer@niisi.ras.ru</email></contrib><contrib contrib-type="author"><name-alternatives><name xml:lang="ru"><surname>Мамросенко</surname><given-names>К. А.</given-names></name><name xml:lang="en"><surname>Mamrosenko</surname><given-names>K. A.</given-names></name></name-alternatives><xref ref-type="aff" rid="aff1"/><xref ref-type="aff" rid="aff2"/><email>mamrosenko_k@niisi.ras.ru</email><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-9889-0560</contrib-id></contrib><contrib contrib-type="author"><name-alternatives><name xml:lang="ru"><surname>Пугин</surname><given-names>К. В.</given-names></name><name xml:lang="en"><surname>Pugin</surname><given-names>K. V.</given-names></name></name-alternatives><xref ref-type="aff" rid="aff1"/><xref ref-type="aff" rid="aff2"/><email>rilian@niisi.ras.ru</email><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-0053-6230</contrib-id></contrib><aff-alternatives id="aff1"><aff><institution xml:lang="en">Scientific Research Institute for System Analysis of the National Research Centre “Kurchatov Institute”</institution><city xml:lang="en">Moscow</city><country xml:lang="en">Russian Federation</country></aff></aff-alternatives><aff-alternatives id="aff2"><aff><institution xml:lang="ru">Федеральное государственное бюджетное учреждение «Федеральный научный центр Научно-исследовательский институт системных исследований Национального исследовательского центра «Курчатовский институт»</institution><city xml:lang="ru">Москва</city><country xml:lang="ru">Российская Федерация</country></aff></aff-alternatives></contrib-group><pub-date pub-type="epub" iso-8601-date="2026-06-30"><day>30</day><month>06</month><year>2026</year></pub-date><volume>7</volume><issue>2</issue><fpage>59</fpage><lpage>65</lpage><history><date date-type="received" iso-8601-date="2026-04-08"><day>08</day><month>04</month><year>2026</year></date><date date-type="accepted" iso-8601-date="2026-06-12"><day>12</day><month>06</month><year>2026</year></date></history><self-uri xlink:href="https://ru.jcyb.ru/nisii_tech/article/view/502" xlink:title="https://ru.jcyb.ru/nisii_tech/article/view/502">https://ru.jcyb.ru/nisii_tech/article/view/502</self-uri><self-uri content-type="pdf" xlink:href="publication-4c2af924-cb30-457b-b007-90d995d5e9b3.pdf" xlink:title="PDF"/><abstract xml:lang="ru"><p>в статье рассматривается разработка подсистемы ввода для отечественной микроядерной операционной системы реального времени (ОСРВ) «Багет». Ключевой проблемой при адаптации графических сред, таких как X Window System, для ОСРВ является недетерминированный характер стандартных решений, основанных на стеке udev/libinput. В работе предложен алгоритм «горячего подключения» (hotplug) устройств ввода, не зависящий от подсистемы udev, интегрированный в отдельный поток ввода X сервера и обеспечивающий предсказуемое время отклика. Алгоритм основан на периодическом сканировании файловой системы /dev и корректном взаимодействии с Application Programming Interface (API) X сервера через механизм обратных вызовов и синхронизации. Также представлена подсистема ввода для пользовательских приложений, обеспечивающая абстракцию над низкоуровневыми представлениями устройств, применяемая для приложений, не задействующих X сервер. В рамках работы реализовано приложение калибровки сенсорных экранов, использующее пятиточечную схему и метод наименьших квадратов для вычисления параметров аффинного преобразования, с последующей автоматической генерацией конфигурации для X сервера. Проведенные испытания подтверждают работоспособность, детерминированность и практическую применимость всех компонентов, включая интеграцию с фреймворком графического интерфейса пользователя (GUI) Nuklear. Работа демонстрирует возможность успешной адаптации сложных программных комплексов для использования в специализированных детерминированных системах.</p></abstract><abstract xml:lang="en" abstract-type="summary"><p>we developed an input subsystem for the Baget microkernel real-time operating system (RTOS). We studied the adaptation of graphical environments, including the X Window System, to real-time systems and identified the non-deterministic behavior of conventional solutions based on the udev/libinput stack as a major challenge. To address this issue, we developed a hot-plug mechanism for input devices that operates independently of udev, is integrated into a dedicated X server input thread, and provides predictable response times. The proposed mechanism relies on periodic scanning of the /dev file system and interaction with the X server application programming interface (API) through callbacks and synchronization mechanisms. We also developed an input subsystem for user applications that abstracts low-level device interfaces and can be used independently of the X server. In addition, we implemented a touchscreen calibration application based on a five-point calibration procedure and the least-squares method to determine the parameters of an affine transformation. The application automatically generates the corresponding X server configuration. We evaluated all developed components through a series of tests. The results confirm their operability, deterministic behavior, and practical applicability, including integration with the Nuklear graphical user interface framework. The study demonstrates the feasibility of adapting complex software systems for use in specialized deterministic environments.</p></abstract><kwd-group xml:lang="ru"><kwd>X сервер</kwd><kwd>графическая система</kwd><kwd>подсистема ввода</kwd><kwd>тачскрин</kwd><kwd>ОСРВ</kwd></kwd-group><kwd-group xml:lang="en"><kwd>real-time operating system</kwd><kwd>X server</kwd><kwd>graphics system</kwd><kwd>input system</kwd><kwd>touchscreen</kwd></kwd-group><funding-group><funding-statement xml:lang="en">this study is a part of the NRC “Kurchatov Institute” – SRISA research project No. FNEF-2024-0003.</funding-statement><funding-statement xml:lang="ru">публикация выполнена в рамках НИР НИЦ «Курчатовский институт» — НИИСИ по теме № FNEF-2024-0003 «Методы разработки аппаратно-программных платформ на основе защищенных и устойчивых к сбоям систем на кристалле и сопроцессоров искусственного интеллекта и обработки сигналов».</funding-statement></funding-group></article-meta></front><back><ref-list><ref id="ref1"><mixed-citation publication-type="other" xml:lang="ru">Feske N., Hartig H. DOpE — A Window Server for Real-Time and Embedded Systems. Proceedings of the 24th IEEE International Real-Time Systems Symposium (RTSS 2003, Cancun, Mexico). 2003:74–77. DOI: 10.1109/REAL.2003.1253255.</mixed-citation></ref><ref id="ref2"><mixed-citation publication-type="other" xml:lang="ru">Giatsintov A. M., Mamrosenko K. A., Bazhenov P. A. Architecture of Graphics System with 3D Acceleration Support for Embedded Operating Systems. Tsinghua Science and Technology. 2024;29(3):863–873. DOI: 10.26599/TST.2023.9010045.</mixed-citation></ref><ref id="ref3"><mixed-citation publication-type="other" xml:lang="ru">Zhadchenko A. V., Mamrosenko K. A., Giatsintov A. M. Porting X Windows System to Operating System Compliant with Portable Operating System Interface. International Journal of Advanced Computer Science and Applications. 2020;11(7):17–22.</mixed-citation></ref><ref id="ref4"><mixed-citation publication-type="other" xml:lang="ru">Von Arnim C., Gessner G., Jarwitz M., Lechler A., Riedel O. Updating the Linux TAPRIO Scheduler in Deterministic Time. Proceedings of the 2022 IEEE 27th International Conference on Emerging Technologies and Factory Automation (ETFA, Stuttgart, Germany). 2022:1–7. DOI: 10.1109/ETFA52439.2022.9921594.</mixed-citation></ref><ref id="ref5"><mixed-citation publication-type="other" xml:lang="ru">Yang C.-F., Shinjo Y. Obtaining Hard Real-Time Performance and Rich Linux Features in a Compounded Real-Time Operating System by a Partitioning Hypervisor. Proceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE 2020, Lausanne, Switzerland). 2020:59–72. DOI: 10.1145/3381052.3381329.</mixed-citation></ref><ref id="ref6"><mixed-citation publication-type="other" xml:lang="ru">Manrique D. X Window System Architecture Overview. Режим доступа: https://tldp.org/HOWTO/pdf/XWindow-Overview-HOWTO.pdf.</mixed-citation></ref><ref id="ref7"><mixed-citation publication-type="other" xml:lang="ru">Wayland Architecture. Режим доступа: https://wayland.freedesktop.org/architecture.html.</mixed-citation></ref><ref id="ref8"><mixed-citation publication-type="other" xml:lang="ru">Dørum M. Wayland Input Latency. GitLab Blog. 2025. Режим доступа: https://gitlab.com/mort96/blog/-/blob/published/content/00000-home/00016-wayland-input-latency.md.</mixed-citation></ref><ref id="ref9"><mixed-citation publication-type="other" xml:lang="ru">Input Subsystem Architecture. The Linux Kernel Documentation. Режим доступа: https://docs.kernel.org/input/input.html.</mixed-citation></ref><ref id="ref10"><mixed-citation publication-type="other" xml:lang="ru">Udev. ALT Linux Wiki. Режим доступа: https://www.altlinux.org/Udev.</mixed-citation></ref><ref id="ref11"><mixed-citation publication-type="other" xml:lang="ru">What Is libinput? libinput Documentation. Режим доступа: https://wayland.freedesktop.org/libinput/doc/latest/what-is-libinput.html.</mixed-citation></ref><ref id="ref12"><mixed-citation publication-type="other" xml:lang="ru">ЭРЕМЕКС. Разработка встроенных операционных систем реального времени. Режим доступа: https://www.eremex.ru/upload/iblock/eb6/rtos_dev_book.pdf.</mixed-citation></ref><ref id="ref13"><mixed-citation publication-type="other" xml:lang="ru">Enea Linux Open Source Report. Режим доступа: https://linux.enea.com/4.0/documentation/html/book-enea-linux-open-source/index.html.</mixed-citation></ref><ref id="ref14"><mixed-citation publication-type="other" xml:lang="ru">Fang W., Chang T. Calibration in Touch-Screen Systems. Режим доступа: https://www.ti.com/lit/an/slyy137/slyy137.pdf.</mixed-citation></ref><ref id="ref15"><mixed-citation publication-type="other" xml:lang="ru">Lewis F. L. Optimal Estimation: With an Introduction to Stochastic Control Theory. New York: John Wiley &amp; Sons; 1986. 376 p.</mixed-citation></ref></ref-list></back></article>
