Выпуск #6/2023
С. Белов
УГЛУБЛЕНИЕ САМОКОНТРОЛЯ КОНТРОЛЬНО-ПРОВЕРОЧНОЙ АППАРАТУРЫ ИЗДЕЛИЙ СИСТЕМ УПРАВЛЕНИЯ: МИГРАЦИЯ С WINDOWS НА LINUX
УГЛУБЛЕНИЕ САМОКОНТРОЛЯ КОНТРОЛЬНО-ПРОВЕРОЧНОЙ АППАРАТУРЫ ИЗДЕЛИЙ СИСТЕМ УПРАВЛЕНИЯ: МИГРАЦИЯ С WINDOWS НА LINUX
Просмотры: 501
DOI: 10.22184/1992-4178.2023.227.6.116.122
В статье описываются проблемы, выявленные при осуществлении попытки миграции с ОС Windows на ОС Linux применительно к ПО самоконтроля КПА изделий систем управления. Выяснилось, что миграция повлияет на алгоритмы самоконтроля: потребуется создание и углубление самоконтроля самой ОС, ее совместимости и взаимодействия с платами расширения.
В статье описываются проблемы, выявленные при осуществлении попытки миграции с ОС Windows на ОС Linux применительно к ПО самоконтроля КПА изделий систем управления. Выяснилось, что миграция повлияет на алгоритмы самоконтроля: потребуется создание и углубление самоконтроля самой ОС, ее совместимости и взаимодействия с платами расширения.
Теги: acronis os self-monitoring test and verification equipment test and verification equipment self-diagnosis transition from windows to linux контрольно-проверочная аппаратура переход с windows на linux самоконтроль кпа самоконтроль операционной системы
Углубление самоконтроля
контрольно-проверочной аппаратуры изделий систем управления:
миграция с Windows на Linux
C. Белов 1
Вследствие требований методических рекомендаций по переходу государственных компаний на преимущественное использование отечественного программного обеспечения [1, 2, 3], возник интерес к осуществлению попытки миграции с операционной системы (ОС) Windows на ОС Linux – в контексте самоконтроля контрольно-проверочной аппаратуры (КПА) изделий систем управления (ИСУ).
Выяснилось, что миграция повлияет на алгоритмы самоконтроля контрольно-проверочной аппаратуры КПА ИСУ. Потребуется создание и углубление самоконтроля самой ОС, ее совместимости и взаимодействия с платами расширения.
Введение
Миграция любой этиологии порождает большое количество проблем, которые предсказать заранее возможно лишь в общих чертах. Даже если выбрана конкретная ОС Linux, разработанные алгоритмы самоконтроля ОС должны быть реализованы и в других ОС семейства Linux, ввиду наличия непредсказуемого набора ошибок функционирования. Чем больший набор алгоритмов будет создан, тем более углубленный самоконтроль ОС будет реализован в КПА, и тем вероятнее универсальность данного набора при следующей миграции. Универсальность набора алгоритмов, в свою очередь, уменьшит время разработки данной части самоконтроля КПА.
В 2016 году выбор ОС Linux был еще свободным – и пробный переход с Windows на Linux на одном из типов выпускаемой предприятием КПА, потребовавший два года труда двух ведущих программистов и одного ведущего электроника, – был успешен. Однако материальные и трудовые затраты оказались крайне высокими (Linux, в сравнении с Windows, содержит большее количество ошибок, в том числе алогичных) – и было принято решение попытки миграции на остальные КПА не продолжать.
Но теперь, когда миграция возобновилась, добавилось ограничение: ОС должна быть российского производства и, желательно, одобрена Министерством обороны (иметь сертификат Удостоверяющего центра МО). Это ограничение снизило количество доступных ОС до минимума, а также обесценило практически все наработки перехода на Linux иностранного производства. Бóльшая часть исходного кода в новой ОС и среде разработки не пригодилась или не заработала. Также возникла необходимость работать с новыми платами расширения и блоком сопряжения из-за изменения версии ядра Linux.
Данный материал отражает путь программиста и электроника, осуществляющих миграцию с одной операционной системы на другую, с одних плат расширения на другие, с одних драйверов к платам на другие. В это время и утвердилась парадигма проверки самоконтролем КПА самой операционной системы – и были написаны алгоритмы этой проверки.
Выбор операционной системы Linux и плат расширения
В ОС Linux основой является ее ядро. Работоспособность драйверов плат расширения КПА зависит от версии ядра. В одной версии ОС может содержаться несколько ядер – соответственно, несколько разных драйверов для одной платы расширения.
Linux, выбранный во время пробной миграции ранее, имеет версию ядра 3.1.0-1.2. Выбор ОС происходит именно по версии ядра, которая должна быть совместима со всеми платами расширения КПА. Однако жесткое ограничение страны производства ОС не дало возможности выбора ядра той же версии, оставив наименьшую из возможных версий ядра 4.15. Это привело к изменению состава плат расширения в КПА, так как драйверов на данную версию ядра у старых не было. Это, в свою очередь, привело к невозможности использования исходного кода старой программы самоконтроля КПА и программы контроля ИСУ (добавив также неопределенность в работоспособности новых выбранных плат).
Некоторые лицензионные соглашения операционных систем приравнивают результаты ознакомления пользователя с ОС к собственности разработчика ОС и запрещают их публикацию (например, [4]), хотя данное действие является, по своей сути, хищением интеллектуальной собственности пользователя (нарушение ст. 1228.1, 1228.1 ГК РФ) и запретом ее публикации (нарушение ст. 1255, 1273, 1274 ГК РФ). В связи с этим, название выбранной операционной системы для ознакомления не может быть публично раскрыто.
Основные ошибки
в работе среды разработки Qt v.5.11 в составе выбранной для ознакомления операционной системы
В состав дистрибутива выбранной операционной системы входит среда разработки Qt v.5.11, которая предоставляется бесплатно, избавляя от необходимости покупки лицензии. Однако обнаружилось, что данная версия имеет большее количество недостатков, чем предыдущая версия Qt v.5.5.1, используемая в OpenSuse v.12.1. Тестирование проводилось при полном отсутствии интернета в соответствии с политикой безопасности предприятия. Встроенное программное обеспечение при установке ОС: «СУБД», «Средства разработки и отладки», «рабочий стол Fly». Ядро: linux‑4-15‑generic. Создание отдельного раздела «/home».
Основные ошибки функционирования Qt v.5.11 в составе выбранной ОС Linux сведены в табл. 1. В Qt v.5.5.1 данные проблемы отсутствуют.
По результатам анализа в будущие алгоритмы ПО самоконтроля КПА вносятся следующие пункты (при старте ПО):
проверка установленных пакетов. Ввиду того, что у пакетов существуют взаимные зависимости, список из шести устанавливаемых пакетов расширяется до 32 – причем их установка должна осуществляться строго в определенной последовательности, отраженной в списке приложения А. Если пакет не установлен в системе – установить автоматически командой sudo apt-get install "<пакет>";
создание таймера, контролирующего количество потребляемой ПО оперативной памяти и качество считывания программой версии Python. Пример сбрасывания версии Python в Qt v.5.11 показан на рис. 1. Исправляется только перезагрузкой КПА или, редко, пересборкой всего проекта с предварительной очисткой сборки и выполнением команды qmake. Установка пакета gdb-python2_7 вместо gdb не помогает.
Основные ошибки в работе выбранной операционной системы
Сама ОС также содержит несколько критических ошибок, отображенных в табл. 2. В иностранной ОС OpenSuse v.12.1 данные проблемы отсутствуют.
По результатам анализа в будущие алгоритмы ПО самоконтроля КПА вносятся следующие пункты (при старте ПО):
проверка установленных пакетов. Если пакет не установлен в системе – запустить пользователю установщик пакета для нажатия им кнопки «Установить»;
при каждом старте системы при помощи объекта QProcess выполнять команду sudo modprobe pcspkr без анализа результата (команда ничего не возвращает).
Ошибки взаимодействия плат расширения и оборудования
с выбранной операционной системой
Выбор других плат расширения и драйверов, вместо установленных до миграции, привел к ошибкам, ответственным за которые является производитель оборудования. Эти ошибки приведены в табл. 3.
Здесь важно отметить, что производители оборудования реагируют на найденные/доказанные неисправности либо медленно (Advantech), либо не реагируют вовсе (частично Elcus, полностью TDK-Lambda). Производители пытаются отклонить обвинения в свой адрес, ссылаясь на якобы неисправный исходный код разработчика КПА, даже когда уже имеются либо найденные решения проблемы, указывающие на особенности работы драйвера, либо эмпирически обнаружены данные, свидетельствующие о неработоспособности самого драйвера.
В практике был случай, когда один из специалистов производителя совершенно серьезно предлагал автору вручную изменять написанный ими драйвер, что автоматически повлекло бы потерю гарантии и поставило бы под угрозу физическую исправность платы (рис. 2).
Из вышесказанного следует:
глубина самоконтроля плат расширения КПА должна быть максимально приближенной к выходному контролю производителя, если это возможно;
возможно, лица, производящие операции входного контроля после приобретения таких плат (ОТК), должны иметь свое отдельное ПО, проверяющее платы на отдельном тестовом стенде. Простой печати ОТК на упаковке платы после беглого визуального осмотра – явно недостаточно.
Остается вопрос: если на рис. 2 в драйвере явно в поле Access стоит 0 – не означает ли это, что производитель сам заблокировал использование дифференциального режима для платы PCI‑1715U-AE, так как он работал нестабильно или не работал вообще.
Стоит отметить: спустя полгода после начала переписки, Advantech выпустил драйвер v.4.0.6.0_64bit, исправляющий ошибку дифференциального режима и написанный конкретно для указавшего на эту ошибку.
Ошибки взаимодействия выбранной ОС Linux с программой создания образов накопителей
Было выявлено влияние сторонних программ на операционную систему. В отличие от OpenSuse v.12.1, выбранная для ознакомления Linux показала себя положительно в вопросе резервного копирования: создание образов системы программой Acronis не требует посекторного копирования со свободным пространством – что уменьшает размер образа в десятки раз.
Однако здесь возникла другая проблема. Если размер диска в образе больше или равен размеру физического диска – восстановление образа на данный диск приведет к ошибке, изображенной на рис. 3. Наличие строки со словом i-node автоматически означает, что операция восстановления не будет произведена и закончится сообщением: «Не удалось выполнить операцию восстановления». Проверено на Acronis v.2020 build 25700 и v.25.8.1 build 39216.
Решением стало создание образа системы на жестком диске малого размера, заведомо меньшего, чем поставляемые носители в составе КПА. В дальнейшем сохраненный образ можно восстанавливать на только что собранные комплекты КПА и не заниматься настройкой операционной системы, драйверов, среды разработки и т. д.
Осталось неясно, какой из продуктов является ошибочным в данном вопросе.
Заключение
Проведена миграция КПА с Windows и Linux иностранного производства – на Linux российского производства, имеющую сертификат Министерства цифрового развития, связи и массовых коммуникаций Российской Федерации. Выполнены работы:
анализ встроенной среды разработки и исправление ее изначальной неработоспособности;
анализ взаимодействия плат расширения и оборудования с операционной системой, исправление их изначальной неработоспособности;
анализ совместимости операционной системы с программой резервного копирования, исправление ошибки их взаимодействия.
Изначальная непригодность выбранной операционной системы Linux для использования разработчиком КПА диктует создание в ПО самоконтроля отдельного теста ОС, контролирующего ее параметры и, по возможности, самостоятельно исправляющего ее ошибки.
С учетом того, что каждая ОС Linux имеет свой набор недостатков, – данный тест ОС должен при каждой новой миграции дополняться новыми проверками для обеспечения кроссплатформенности и универсальности его использования.
ЛИТЕРАТУРА
Указ Президента Российской Федерации (проект)
«О мерах экономического характера по обеспечению технологической независимости и безопасности объектов критической информационной инфраструктуры».
Приказ Минкомсвязи России от 20 сентября 2018 года № 486 «Об утверждении методических рекомендаций по переходу государственных компаний на преимущественное использование отечественного программного обеспечения, в том числе отечественного офисного программного обеспечения».
Статья 12.1 Особенности государственного регулирования в сфере использования российских программ для электронных вычислительных машин и баз данных /
Федеральный закон от 27 июля 2006 года № 149-ФЗ.
РусБИТех-Астра. Лицензионное соглашение с конечным пользователем. Операционная система общего назначения «Astra Linux Common Edition» / М., 2021. [Электронный ресурс] URL: https://astralinux.ru/information/licenses/liczenzionnoe-soglashenie-dlya-konechnogo-polzovatelya-po-ispolzovaniyu-operaczionnoj-sistemyi-obshhego-naznacheniya-astra-linux-common-edition.pdf – п. 3., 3.1.
Компаратор исходного кода v.1.3.0.0 FINAL (свидетельство об официальной регистрации программы для ЭВМ № 2015661438) / М., 2019 г. [Электронный ресурс]
URL: https://bad-good.ru/programs.html#comparer.
контрольно-проверочной аппаратуры изделий систем управления:
миграция с Windows на Linux
C. Белов 1
Вследствие требований методических рекомендаций по переходу государственных компаний на преимущественное использование отечественного программного обеспечения [1, 2, 3], возник интерес к осуществлению попытки миграции с операционной системы (ОС) Windows на ОС Linux – в контексте самоконтроля контрольно-проверочной аппаратуры (КПА) изделий систем управления (ИСУ).
Выяснилось, что миграция повлияет на алгоритмы самоконтроля контрольно-проверочной аппаратуры КПА ИСУ. Потребуется создание и углубление самоконтроля самой ОС, ее совместимости и взаимодействия с платами расширения.
Введение
Миграция любой этиологии порождает большое количество проблем, которые предсказать заранее возможно лишь в общих чертах. Даже если выбрана конкретная ОС Linux, разработанные алгоритмы самоконтроля ОС должны быть реализованы и в других ОС семейства Linux, ввиду наличия непредсказуемого набора ошибок функционирования. Чем больший набор алгоритмов будет создан, тем более углубленный самоконтроль ОС будет реализован в КПА, и тем вероятнее универсальность данного набора при следующей миграции. Универсальность набора алгоритмов, в свою очередь, уменьшит время разработки данной части самоконтроля КПА.
В 2016 году выбор ОС Linux был еще свободным – и пробный переход с Windows на Linux на одном из типов выпускаемой предприятием КПА, потребовавший два года труда двух ведущих программистов и одного ведущего электроника, – был успешен. Однако материальные и трудовые затраты оказались крайне высокими (Linux, в сравнении с Windows, содержит большее количество ошибок, в том числе алогичных) – и было принято решение попытки миграции на остальные КПА не продолжать.
Но теперь, когда миграция возобновилась, добавилось ограничение: ОС должна быть российского производства и, желательно, одобрена Министерством обороны (иметь сертификат Удостоверяющего центра МО). Это ограничение снизило количество доступных ОС до минимума, а также обесценило практически все наработки перехода на Linux иностранного производства. Бóльшая часть исходного кода в новой ОС и среде разработки не пригодилась или не заработала. Также возникла необходимость работать с новыми платами расширения и блоком сопряжения из-за изменения версии ядра Linux.
Данный материал отражает путь программиста и электроника, осуществляющих миграцию с одной операционной системы на другую, с одних плат расширения на другие, с одних драйверов к платам на другие. В это время и утвердилась парадигма проверки самоконтролем КПА самой операционной системы – и были написаны алгоритмы этой проверки.
Выбор операционной системы Linux и плат расширения
В ОС Linux основой является ее ядро. Работоспособность драйверов плат расширения КПА зависит от версии ядра. В одной версии ОС может содержаться несколько ядер – соответственно, несколько разных драйверов для одной платы расширения.
Linux, выбранный во время пробной миграции ранее, имеет версию ядра 3.1.0-1.2. Выбор ОС происходит именно по версии ядра, которая должна быть совместима со всеми платами расширения КПА. Однако жесткое ограничение страны производства ОС не дало возможности выбора ядра той же версии, оставив наименьшую из возможных версий ядра 4.15. Это привело к изменению состава плат расширения в КПА, так как драйверов на данную версию ядра у старых не было. Это, в свою очередь, привело к невозможности использования исходного кода старой программы самоконтроля КПА и программы контроля ИСУ (добавив также неопределенность в работоспособности новых выбранных плат).
Некоторые лицензионные соглашения операционных систем приравнивают результаты ознакомления пользователя с ОС к собственности разработчика ОС и запрещают их публикацию (например, [4]), хотя данное действие является, по своей сути, хищением интеллектуальной собственности пользователя (нарушение ст. 1228.1, 1228.1 ГК РФ) и запретом ее публикации (нарушение ст. 1255, 1273, 1274 ГК РФ). В связи с этим, название выбранной операционной системы для ознакомления не может быть публично раскрыто.
Основные ошибки
в работе среды разработки Qt v.5.11 в составе выбранной для ознакомления операционной системы
В состав дистрибутива выбранной операционной системы входит среда разработки Qt v.5.11, которая предоставляется бесплатно, избавляя от необходимости покупки лицензии. Однако обнаружилось, что данная версия имеет большее количество недостатков, чем предыдущая версия Qt v.5.5.1, используемая в OpenSuse v.12.1. Тестирование проводилось при полном отсутствии интернета в соответствии с политикой безопасности предприятия. Встроенное программное обеспечение при установке ОС: «СУБД», «Средства разработки и отладки», «рабочий стол Fly». Ядро: linux‑4-15‑generic. Создание отдельного раздела «/home».
Основные ошибки функционирования Qt v.5.11 в составе выбранной ОС Linux сведены в табл. 1. В Qt v.5.5.1 данные проблемы отсутствуют.
По результатам анализа в будущие алгоритмы ПО самоконтроля КПА вносятся следующие пункты (при старте ПО):
проверка установленных пакетов. Ввиду того, что у пакетов существуют взаимные зависимости, список из шести устанавливаемых пакетов расширяется до 32 – причем их установка должна осуществляться строго в определенной последовательности, отраженной в списке приложения А. Если пакет не установлен в системе – установить автоматически командой sudo apt-get install "<пакет>";
создание таймера, контролирующего количество потребляемой ПО оперативной памяти и качество считывания программой версии Python. Пример сбрасывания версии Python в Qt v.5.11 показан на рис. 1. Исправляется только перезагрузкой КПА или, редко, пересборкой всего проекта с предварительной очисткой сборки и выполнением команды qmake. Установка пакета gdb-python2_7 вместо gdb не помогает.
Основные ошибки в работе выбранной операционной системы
Сама ОС также содержит несколько критических ошибок, отображенных в табл. 2. В иностранной ОС OpenSuse v.12.1 данные проблемы отсутствуют.
По результатам анализа в будущие алгоритмы ПО самоконтроля КПА вносятся следующие пункты (при старте ПО):
проверка установленных пакетов. Если пакет не установлен в системе – запустить пользователю установщик пакета для нажатия им кнопки «Установить»;
при каждом старте системы при помощи объекта QProcess выполнять команду sudo modprobe pcspkr без анализа результата (команда ничего не возвращает).
Ошибки взаимодействия плат расширения и оборудования
с выбранной операционной системой
Выбор других плат расширения и драйверов, вместо установленных до миграции, привел к ошибкам, ответственным за которые является производитель оборудования. Эти ошибки приведены в табл. 3.
Здесь важно отметить, что производители оборудования реагируют на найденные/доказанные неисправности либо медленно (Advantech), либо не реагируют вовсе (частично Elcus, полностью TDK-Lambda). Производители пытаются отклонить обвинения в свой адрес, ссылаясь на якобы неисправный исходный код разработчика КПА, даже когда уже имеются либо найденные решения проблемы, указывающие на особенности работы драйвера, либо эмпирически обнаружены данные, свидетельствующие о неработоспособности самого драйвера.
В практике был случай, когда один из специалистов производителя совершенно серьезно предлагал автору вручную изменять написанный ими драйвер, что автоматически повлекло бы потерю гарантии и поставило бы под угрозу физическую исправность платы (рис. 2).
Из вышесказанного следует:
глубина самоконтроля плат расширения КПА должна быть максимально приближенной к выходному контролю производителя, если это возможно;
возможно, лица, производящие операции входного контроля после приобретения таких плат (ОТК), должны иметь свое отдельное ПО, проверяющее платы на отдельном тестовом стенде. Простой печати ОТК на упаковке платы после беглого визуального осмотра – явно недостаточно.
Остается вопрос: если на рис. 2 в драйвере явно в поле Access стоит 0 – не означает ли это, что производитель сам заблокировал использование дифференциального режима для платы PCI‑1715U-AE, так как он работал нестабильно или не работал вообще.
Стоит отметить: спустя полгода после начала переписки, Advantech выпустил драйвер v.4.0.6.0_64bit, исправляющий ошибку дифференциального режима и написанный конкретно для указавшего на эту ошибку.
Ошибки взаимодействия выбранной ОС Linux с программой создания образов накопителей
Было выявлено влияние сторонних программ на операционную систему. В отличие от OpenSuse v.12.1, выбранная для ознакомления Linux показала себя положительно в вопросе резервного копирования: создание образов системы программой Acronis не требует посекторного копирования со свободным пространством – что уменьшает размер образа в десятки раз.
Однако здесь возникла другая проблема. Если размер диска в образе больше или равен размеру физического диска – восстановление образа на данный диск приведет к ошибке, изображенной на рис. 3. Наличие строки со словом i-node автоматически означает, что операция восстановления не будет произведена и закончится сообщением: «Не удалось выполнить операцию восстановления». Проверено на Acronis v.2020 build 25700 и v.25.8.1 build 39216.
Решением стало создание образа системы на жестком диске малого размера, заведомо меньшего, чем поставляемые носители в составе КПА. В дальнейшем сохраненный образ можно восстанавливать на только что собранные комплекты КПА и не заниматься настройкой операционной системы, драйверов, среды разработки и т. д.
Осталось неясно, какой из продуктов является ошибочным в данном вопросе.
Заключение
Проведена миграция КПА с Windows и Linux иностранного производства – на Linux российского производства, имеющую сертификат Министерства цифрового развития, связи и массовых коммуникаций Российской Федерации. Выполнены работы:
анализ встроенной среды разработки и исправление ее изначальной неработоспособности;
анализ взаимодействия плат расширения и оборудования с операционной системой, исправление их изначальной неработоспособности;
анализ совместимости операционной системы с программой резервного копирования, исправление ошибки их взаимодействия.
Изначальная непригодность выбранной операционной системы Linux для использования разработчиком КПА диктует создание в ПО самоконтроля отдельного теста ОС, контролирующего ее параметры и, по возможности, самостоятельно исправляющего ее ошибки.
С учетом того, что каждая ОС Linux имеет свой набор недостатков, – данный тест ОС должен при каждой новой миграции дополняться новыми проверками для обеспечения кроссплатформенности и универсальности его использования.
ЛИТЕРАТУРА
Указ Президента Российской Федерации (проект)
«О мерах экономического характера по обеспечению технологической независимости и безопасности объектов критической информационной инфраструктуры».
Приказ Минкомсвязи России от 20 сентября 2018 года № 486 «Об утверждении методических рекомендаций по переходу государственных компаний на преимущественное использование отечественного программного обеспечения, в том числе отечественного офисного программного обеспечения».
Статья 12.1 Особенности государственного регулирования в сфере использования российских программ для электронных вычислительных машин и баз данных /
Федеральный закон от 27 июля 2006 года № 149-ФЗ.
РусБИТех-Астра. Лицензионное соглашение с конечным пользователем. Операционная система общего назначения «Astra Linux Common Edition» / М., 2021. [Электронный ресурс] URL: https://astralinux.ru/information/licenses/liczenzionnoe-soglashenie-dlya-konechnogo-polzovatelya-po-ispolzovaniyu-operaczionnoj-sistemyi-obshhego-naznacheniya-astra-linux-common-edition.pdf – п. 3., 3.1.
Компаратор исходного кода v.1.3.0.0 FINAL (свидетельство об официальной регистрации программы для ЭВМ № 2015661438) / М., 2019 г. [Электронный ресурс]
URL: https://bad-good.ru/programs.html#comparer.
Отзывы читателей