СПОСОБ И СИСТЕМА УСТАНОВЛЕНИЯ КОНТРОЛЯ НАД ПОДКЛЮЧЕННЫМ УСТРОЙСТВОМ В ОПЕРАЦИОННОЙ СИСТЕМЕ
METHOD AND SYSTEM FOR ESTABLISHING CONTROL OVER THE CONNECTED DEVICE IN THE OPERATING SYSTEM

ОБЛАСТЬ ТЕХНИКИ
[0001] Заявленное техническое решение в общем относится к области вычислительной техники, а в частности к средствам контроля подключаемых устройств к операционной системе.
УРОВЕНЬ ТЕХНИКИ
[0002] В настоящее время существует ряд решений, реализующих механизмы фильтрации, классификации и определения, подключаемых к операционной системе устройств. В операционных системах (ОС) семейства Microsoft Windows применяется технология Plug and Play (PnP - https://ru.wikipedia.org/wiki/Plug_and_Play), которая предназначена для быстрого определения и конфигурирования устройств, подключаемых к ОС.
[0003] В ОС технология PnP выполняет первичные функции, управляя и отслеживая всеми устройства персонального компьютера (ПК). Основной принцип работы технологии заключается в фильтрации устройств.
[0004] Точное представление фильтрации устройств представлено на Фиг. 1. Комплекс фильтров в совокупности называется стеком устройства. Каждое устройство представляется в системе драйвером шины. На основании данных представленного устройства технология PnP находит, устанавливает и запускает соответствующий драйвер основываясь на классе устройства.
[0005] Чтобы фильтрация была возможной и гибкой, система, кроме запуска основного драйвера, запускает нижние и верхние фильтры, также основываясь на классе основного устройства. Данная информация хранится в системном реестре.
[0006] Пример частного случая подключения устройства изображен на Фиг. 2. Для устройства тома зарегистрированы следующие нижние фильтры: fvevol, iorate, rdyboost. Верхние фильтры: volsnap. Драйвер устройства описывается значением реестра ClassDesc в соответствующем ключе реестра, имя которого является GUID класса устройства.
[0007] Глобальное представление всех стеков устройств в системе изображено на рисунке Фиг. 3. Каждый элемент представляет соответствующий стек устройства, а стрелками обозначены отношения этих устройств между собой как родитель-потомок. Каждый родитель является шиной. Каждый потомок является устройством и/или шиной.
[0008] Из уровня техники известно решение, описанное в статье https://www-user.tuchemnitz.de/~heha/oney_wdm/ch00a.htm (PUBLISHED BY Microsoft Press A Division of Microsoft Corporation One Microsoft Way Redmond, Washington 98052-6399 Copyright © 1999 by Walter Oney). В данном решении описан алгоритм, который при подключении устройств к персональному компьютеру осуществляет анализ реестра устройств, поиск драйверов для новых устройств, основываясь на классе устройства, а также осуществляет запуск нижних и верхних фильтров на основе класса этих устройств.
[0009] Недостатком известных решений в данной области техники является отсутствие возможности прямого вмешательства в иерархию с целью ее контроля. Кроме этого, опрос подсистемы выполняется с определенным интервалом, во всей системе возникают временные отрезки, когда защита и контроль не работают.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[0010] Данное техническое решение направлено на устранение недостатков, присущих существующим решениям из известного уровня техники.
[0011] Технической проблемой, на решение которой направлено заявленное техническое решение, является создание способа превентивной фильтрации реестра.
[0012] Техническим результатом является повышение безопасности операционной системы за счет обеспечения постоянного контроля за подключаемыми устройствами.
[0013] Указанный технический результат достигается благодаря осуществлению компьютерно-реализуемого способа установления контроля над подключенным устройством в операционной системе, выполняемый с помощью процессора и содержащего этапы, на которых:
- регистрируют фильтр подсистемы реестра, который выполнен с возможностью отслеживания и модификации нижних и верхних фильтров физических, логических и виртуальных устройств;
- обнаруживают подключенное устройство с помощью менеджера PnP (Plug and Play manager) в операционной системе (ОС);
- присоединяют нижний или верхний фильтр в соответствии с типом подключаемого устройства и собирают информацию о подключенном устройстве с помощью менеджера PnP в ОС, при этом информация о подключенном устройстве содержит по меньшей мере класс устройства, шину устройства, производитель устройства, идентификатор устройства, интерфейс взаимодействия устройства;
- формируют глобальный список всех подключенных устройств к системе с помощью нижних и верхних фильтров;
- согласовывают текущие состояния устройств, выбираемые из группы: запущено, остановлено, отключено программно, или отключено физически, с помощью нижних и верхних фильтров;
- осуществляют фильтрацию списков нижних и верхних фильтров, в ходе которой добавляют драйвер фильтра подключаемого устройства в соответствующие списки, при этом фильтрация выполняется с помощью зарегистрированного фильтра подсистемы реестра; и
- устанавливают контроль над подключенным устройством.
[0014] Кроме того, заявленное решение реализуется с помощью вычислительной системы установления контроля над подключенным устройством в операционной системе, которая содержит:
- по меньшей мере один процессор, и
- по меньшей мере одну память, соединенную с процессором, которая содержит машиночитаемые инструкции, которые при их выполнении по меньшей мере одним процессором обеспечивают выполнение заявленного способа.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0015] Признаки и преимущества настоящего изобретения станут очевидными из приводимого ниже подробного описания изобретения и прилагаемых чертежей.
[0016] Фиг. 1 описывает уровень техники.
[0017] Фиг. 2 описывает уровень техники.
[0018] Фиг. 3 описывает уровень техники.
[0019] Фиг. 4 иллюстрирует работу заявленного технического решения.
[0020] Фиг. 5 иллюстрирует блок-схему выполнения заявленного способа.
[0021] Фиг. 6 иллюстрирует пример общего вида вычислительной системы, которая обеспечивает реализацию заявленного решения.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0022] Реализация заявленного способа заключается в инициации запуска при появлении устройства в компьютерной системе, т.е. при подключении устройства для его распознавания в операционной системе, до начала работы PnP подсистемы. Работа заявленного способа начинается в момент создания программного представления устройства операционной системой.
[0023] В процессе определения подключаемого устройства производится построение иерархии устройств операционной системы (ОС). Далее, техническое решение инициирует фильтрацию реестра. Фильтруются все классы зарегистрированных устройств. В ходе выполняемой фильтрации фильтр добавляет себя в список для уведомления подключения новых устройств.
[0024] В процессе фильтрации, при чтении реестра, модифицируются списки нижних и верхних фильтров за счет фильтрации реестра и принудительной регистрации отслеживающего драйвера в качестве фильтра. Принудительная регистрация заключается в поиске драйвера в ходе выполнения способа (100) по требуемой ветке реестра и поиск списков фильтров данного устройства. Поскольку иерархия реестра является известной для ОС, то при считывании списков ОС будет выполняться принудительное добавление драйвера.
[0025] Данная процедура позволяет заявленному техническому решению получать управление без предварительной его регистрации во всех классах, а также обеспечит своевременный контроль над вновь прибывшими классами. Это достигается за счет принудительной регистрации драйвера в нижних и верхних фильтрах.
[0026] Когда технология PnP начнет свою работу в процессе запуска драйверов устройств, осуществляется вызов заявленного способа в момент представления каждого устройства в системе.
[0027] До уведомления о подключении нового устройства к ОС (при уведомлении ОС вызывает драйвер и добавляет драйвер в верхний фильтр), заявленное решение инициализирует и подключает нижние и верхние фильтры для обеспечения контроля над подключаемым устройством к ОС и для своевременного согласования его состояния.
[0028] На Фиг. 4 изображена работа заявленного технического решения. Решение дублирует состояние операционной системы при подключении нового устройства. За счет дублирования списка устройства ОС, формируемого при реализации заявленного способа, решаются все известные проблемы: исключено использование недокументированных функций, обеспечено полное согласование устройств всей системы, исключены временные рамки, в момент которых решение не выполняет свою функцию, обеспечена прямая совместимость с последующими версиями операционных систем с минимальной поддержкой.
[0029] На Фиг. 5 представлена блок-схема общего выполнения способа (100) регистрации подключаемого устройства в операционной системе. Заявленный способ (100) состоит из нескольких этапов, выполняемых с помощью процессора.
[0030] На этапе (101) регистрируют фильтр подсистемы реестра ОС, который выполнен с возможностью отслеживания и модификации нижних и верхних фильтров физических, логических и виртуальных устройств.
[0031] На данном этапе выполняется регистрация фильтра подсистемы реестра, для отслеживания и модификации нижних фильтров физических, логических и виртуальных устройств.
[0032] На этапе (102) выполняется обнаружение подключенного устройства с помощью менеджера PnP (Plug and Play manager) в ОС. На данном этапе, менеджер PnP обнаруживает подключенное устройство в ОС. В зависимости от аппаратного интерфейса и программной платформы (ОС, BIOS), процедура Plug and Play может производиться на этапе начальной загрузки системы или в режиме горячей замены, как это применятся, например, для интерфейсов USB и IEEE 1394.
[0033] На этапе (103) выполняется присоединение нижних или верхних фильтров в соответствии с типом подключаемого устройства и сбор информации о подключенном устройстве с помощью менеджера PnP в ОС, при этом информация о подключенном устройстве содержит по меньшей мере класс устройства, шину устройства, данные производителя устройства, идентификатор устройства, интерфейс взаимодействия устройства. Данный перечень информации является необходимым для обеспечения распознавания устройств и обеспечения безопасного управления подключаемыми устройствами.
[0034] При подключении устройства выполняется присоединение нижнего или верхнего фильтра в соответствии с его типом, а также собирается необходимая информация об устройстве перед или во время присоединения, когда сама эта информация предоставляется операционной системой (подсистема PnP) и/или самим устройством.
[0035] Далее на этапе (104) формируется глобальный список всех подключенных устройств к системе с помощью подключенных нижних и верхних фильтров. Присоединенные нижние и верхние фильтры устройств участвуют в формировании глобального списка всех подключенных устройств к системе, который является дубликатом списка самой операционной системы, что в свою очередь исключает необходимость запроса списка устройств от операционной системы и необходимости использовать недокументированные средства операционной системы;
[0036] На этапе (105) выполняется согласование текущего состояния устройств с помощью обработки активности ОС списками нижних и верхних фильтров. Состояния могут представлять собой следующее: запущено, остановлено, отключено программно, или отключено физически, с помощью нижних и верхних фильтров. Присоединенные нижние и верхние фильтры устройств участвуют в согласовании состояний устройств, таких как: запущено, остановлено, отключено программно, отключено физически.
[0037] На этапе (106) осуществляют фильтрацию списков нижних и верхних фильтров, в ходе которой добавляют драйвер фильтра подключаемого устройства в списки, соответствующие классу подключаемого устройства, при этом фильтрация устройств выполняется с помощью зарегистрированного фильтра подсистемы реестра.
[0038] После выполненной фильтрации на этапе (107) устанавливается контроль над подключенным устройством. На данном этапе устройство регистрируется в операционной системе. Установление полного контроля над подключенным устройством, обеспечивает безопасное подключение данного устройства, что повышает безопасность ОС.
[0039] На Фиг. 6 представлен пример общего вида вычислительной системы (300), которая обеспечивает реализацию заявленного способа или является частью компьютерной системы, например, сервером, персональным компьютером, частью вычислительного кластера, обрабатывающим необходимые данные для осуществления заявленного технического решения.
[0040] В общем случае, система (300) содержит объединенные общей шиной информационного обмена один или несколько процессоров (301), средства памяти, такие как ОЗУ (302) и ПЗУ (303), интерфейсы ввода/вывода (304), устройства ввода/вывода (1105), и устройство для сетевого взаимодействия (306).
[0041] Процессор (301) (или несколько процессоров, многоядерный процессор и т.п.) может выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как: Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. Под процессором или одним из используемых процессоров в системе (300) также необходимо учитывать графический процессор, например, GPU NVIDIA или Graphcore, тип которых также является пригодным для полного или частичного выполнения способа, а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.
[0042] ОЗУ (302) представляет собой оперативную память и предназначено для хранения исполняемых процессором (301) машиночитаемых инструкций для выполнение необходимых операций по логической обработке данных. ОЗУ (302), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом, в качестве ОЗУ (302) может выступать доступный объем памяти графической карты или графического процессора.
[0043] ПЗУ (303) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.
[0044] Для организации работы компонентов системы (300) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (304). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, FireWire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232 и т.п.
[0045] Для обеспечения взаимодействия пользователя с вычислительной системой (300) применяются различные средства (305) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.
[0046] Средство сетевого взаимодействия (306) обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (306) может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др.
[0047] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники.