Cистемные технологии позволяют создавать инструменты для оптимального взаимодействия прикладной программы с оборудованием и операционной системой. Наши сотрудники обладают необходимыми компетенциями и опытом для разработки дайверов и системных приложений для операционных систем семейства Windows.

СИСТЕМНЫЕ ТЕХНОЛОГИИ



Windows API

Windows API – это набор API, разработанный Microsoft и доступный на операционных системах Windows, которое позволяет пользовательским приложениям напрямую взаимодействовать с ОС Windows. Обычно использование этого API скрыто в вспомогательных библиотеках языков программирования или компиляторов. Использование данного API напрямую может быть необходимо в случае решения нестандартных задач, например, связанные с безопасностью, или другими системными задачами.

Изначально данные API, были спроектированы для написания программ на C/C++ и представляют собой библиотеки с множеством функций, структур данных и числовых констант, следующих соглашениям этого языка.

Данный API, возможно применять и в других языках, который поддерживают модель вызова функций Windows API и работу с её структурами данных. Среди таких языков – C#, Go, Python и др.

Native API и WDM

Native API – это API, доступное только на системах Windows, но которое, в отличие от Windows API доступно на ранних стадиях процесса запуска Windows. Этот API представляет собой множество функций для языка Си и используется функциями системных библиотек, реализующих Windows API.

Одним из применений Native API является разработка драйверов — это специальный программный модуль, который обеспечивает работу внешних устройств, а также настройку некоторой базовой функциональности операционной системы. Драйвер можно назвать интерфейсной «прослойкой» между «железом» и «софтом». С помощью драйвера клиентское приложение получает возможность управлять подключенным оборудованием.

WDM – Windows Driver Model определяет модель драйвера для операционных систем Windows 98, Windows 2000 и старше, стандартизируя требования и уменьшая количество кода. WDM-драйверы спроектированы для прямой совместимости, поэтому такой драйвер может быть запущен на более поздней версии Windows, чем та, для которой он был изначально написан. WDM-драйверы взаимодействуют друг с другом через пакеты запроса ввода — вывода (IRPs).

Технология WDM была разработана для увеличения функциональности и облегчения написания драйверов для Windows.

 

На базовом уровне драйверы разделяются на два уровня:

  1. Драйверы пользовательского уровня — исполняются в пользовательском режиме и предоставляют интерфейс между приложениями и драйверами уровня ядра. К ним относятся драйверы принтеров и драйверы виртуальных устройств.
  2. Драйверы уровня ядра — выполняются на уровне ядра, обладают максимальными возможностями в системе. В сущности, они могут делать в системе и с системой практически все. К этой категории относятся, к примеру, драйверы файловых систем.

В свою очередь, драйверы уровня ядра делятся на следующие слои:

  1. Драйверы высокого уровня. К ним относятся драйверы файловых систем.
  2. Драйверы промежуточного уровня. К ним относятся драйверы, обеспечивающие поддержку виртуальных дисков и зеркалирования.
  3. Драйверы нижнего уровня. Контролируют ввод/вывод шины, к которой подключено периферийное устройство.

Ниже представлены ситуации, в которых задействуется Native API на уровне драйверов:

Шифрование дисков и файлов.

Работа антивирусов, которым необходим как можно более низкоуровневый доступ к ресурсам системы. (Интересно отметить, что для защиты от недавних вирусов Spectre и Meltdown были произведены некоторые изменения в работе Native API).

Работа Firewall.

IPS/IDS — системы обнаружения и предотвращения вторжений.

Отслеживание изменений файлов – используется как антивирусами, так и системами, обеспечивающими резервирование данных.

WMI и WinRM

WinRM – реализация протокола WS-Management Protocol, который позволяет взаимодействовать с оборудованием и операционными системами разных производителей, например получать различную информацию о них или удаленно выполнять команды на этих системах.

Если на удаленном компьютере установлена операционная система семейства Windows, которая включает WinRM, то данные для управления системой поставляются Windows Management Instrumentation (WMI).

WMI – это интерфейс для управления операциями и данными на машинах с операционными системами семейства Windows. Может быть использован в любых приложениях для Windows, но наибольшее применение находит в корпоративных приложениях.

WMI предназначен для программистов C/C++ или скриптовых языков, способных обрабатывать объекты Microsoft ActiveX. Но тем, не менее с помощью специальных библиотек, может использоваться и в C#.

Если же на удаленном компьютере установлена не Windows, а иная ОС поддерживающая работу протокола WS-Management, то WinRM также позволит установить удаленный сеанс с этим компьютером.

WinRM применяется специалистами для автоматизации управления серверами, либо же для разработки программного обеспечения, которому нужно работать с удаленными компьютерами.

VSS

VSS – Volume shadow copy service это набор компонентов, позволяющих создавать согласованные теневые копии данных, которые затем могут использоваться для восстановления состояния системы или отдельных объектов в случае системного сбоя.

VSS позволяет решить следующие проблемы, которые возникают при создании резервной копии:

Данные обычно резервируются во время того, как приложение работает, следовательно, возникает проблема определения момента, в который стоит создавать теневую копию, чтобы в этот момент не производилось действия по записи данных. Иначе, после восстановления, данные могут быть восстановлены не полностью или же данные в целом не могут быть восстановлены, из-за того, что отсутствует часть необходимой информации.

Если набор данных большой, резервное копирование всего за один раз может оказаться затруднительным.

VSS состоит из нескольких частей:

VSS Service – часть операционной системы Windows, которая обеспечивает взаимодействие остальных частей VSS между собой.

VSS Requester – компонент, который запрашивает создание теневых копий, обычно это приложение для резервного копирования.

VSS Writer – компонент, который обеспечивает согласованность резервируемых данных. Этот компонент, гарантирует, что при создании копии, данные будут согласованы. Данный компонент, поставляется вместе со сторонними приложениями, которые поддерживают VSS. Причем, для компонентов системы, VSS Writer уже включены в Windows.

VSS Provider – компонент, который создает и поддерживает теневые копии.

Особенности обеспечения согласованности данных:

После того, как VSS Requester отправил запрос на создание теневого снимка, VSS Service последовательно уведомляет компоненты VSS Writer, о том, что им нужно подготовить их данные для создания теневого снимка.

Каждый VSS Writer подготавливает данные надлежащим образом, например, завершает все открытые транзакции и очищает кэши. Когда данные готовы к теневому копированию, VSS Writer уведомляет об этом VSS Service, при этом компонент VSS Writer должен уложиться в 60 секунд, либо возвратить ошибку, тогда теневая копия для приложения не создается, а ошибка фиксируется в логах.

Также на время создания теневой копии, приостанавливаются запросы приложения на запись, чтобы также обеспечить согласованность данных, при этом запросы на чтения не ограничиваются.

Можно также отметить, что далее VSS Provider имеет 10 секунд на создание теневой копии, после чего запросы на запись размораживаются.

LDAP и ADSI

ADSI - Технология Active Directory Service Interface разработана фирмой Microsoft для доступа к службам каталогов. Под службой каталога понимается та часть распределённой компьютерной системы, которая предоставляет средства для поиска и использования имеющихся сетевых ресурсов различных типов (зарегистрированные пользователи, сетевые папки и принтеры и т.д.) В неоднородной компьютерной сети могут одновременно функционировать несколько различных служб каталогов. Технология ADSI обеспечивает единообразный, не зависящий от конкретного сетевого протокола доступ к функциям различных каталогов.

Разработчики могут использовать службы ADSI для получения списка ресурсов в службе каталогов и управления ими независимо от того, какая сетевая среда содержит ресурс.

ADSI упрощает выполнение распространенных административных задач, таких как добавление новых пользователей, управление принтерами и поиск ресурсов в распределенной вычислительной среде.

LDAP (Lightweight Directory Access Protocol) — протокол прикладного уровня для доступа к службе каталогов Active Directory. LDAP — относительно простой протокол, использующий TCP/IP и позволяющий производить операции аутентификации, поиска и сравнения, а также операции добавления, изменения или удаления записей. Является одним из провайдеров для описанной выше технологии ADSI.

BITS

BITS — (Background Intelligent Transfer Service) фоновая интеллектуальная служба передачи файлов между клиентом и HTTP-сервером.

BITS используется системными приложениями, например для загрузки обновлений. Но кроме того, эта технология может быть задействована сторонними приложениями, за счет создания ими заданий, которые затем помещаются в очередь.

Передача файлов может продолжаться пока пользователь, от имени которого начата загрузка, не выйдет из системы. При входе пользователя в систему, передача файлов возобновляется. BITS адаптируется к текущим затратам и перегрузкам сети, чтобы фоновое задание не влияло на взаимодействие пользователя с системой.

BITS продолжает передавать файлы после завершения работы приложения до тех пор, пока пользователь, инициировавший передачу, остается в системе вошедшим и поддерживается сетевое подключение. Что весьма удобно для фоновой загрузки обновлений приложений, которые могут быть установлены уже при запуске приложения.

DirectX

DirectX — представляет собой набор API, позволяющих разработчикам игр и других интерактивных приложений получать доступ к специфическим функциям аппаратного обеспечения без необходимости написания аппаратно-зависимого программного кода. DirectX основан на наборе интерфейсов COM, и представляет собой спецификацию интерфейса, в котором функции вызываются через указатели. Таким образом, объекты COM могут описываться такими языками программирования, как C/C++. Тем не менее существуют библиотеки, позволяющие применять данный набор API и в таких языках как C#.

WebDAV

WebDAV — набор расширений и дополнений к протоколу HTTP, поддерживающих совместную работу пользователей над редактированием файлов и управление файлами на удаленных веб-серверах. Применяется в качестве сетевой файловой системы, эффективной для работы в Интернете и способной обрабатывать файлы целиком, поддерживая хорошую производительность работы в условиях окружения с высокой временной задержкой передачи информации.

Некоторые из механизмов реализованные в WebDAV:

Блокировка — долгосрочные блокировки на запись документа предотвращают потерю информации при одновременном редактировании документа несколькими пользователями.

Свойства — произвольные метаданные могут храниться в качестве свойств, описанных на языке XML. В качестве примера можно привести список авторов документа или его краткую аннотацию.

Именованные области — раздел, поддерживающий переименование и перемещение веб-ресурсов. Механизм реализован в протоколе с помощью коллекций, выполняющих функцию, аналогичную папкам в файловой системе.

Одним из применений технологий WebDAV является создание виртуальных дисков доступных пользователю Windows также как и локальные, но при этом реальные данные находятся на удаленном хранилище, например в облаке.

Windows Filtering Platform

Windows Filtering Platform (WFP) – это множество API и системных служб, которые позволяют создавать приложения для фильтрации сетевого трафика. WFP API позволяет разработчикам писать код, который управляет процессом обработки пакетов, происходящим на нескольких уровнях сетевого стека системы. Сетевые данные могут фильтроваться и так же модифицироваться до их поступления в место назначения.

WFP призван заменить предыдущие технологии для захвата сетевых пакетов, предоставляя более простую и понятную платформу для разработки.

С помощью WFP API разработчики могут реализовывать собственные брандмауэры, системы обнаружения вторжений, антивирусные программы и инструменты сетевого мониторинга. WFP интегрируется с такими функциями брандмауэра, как аутентифицированная связь и динамическая конфигурация брандмауэра.

Windows Filtering Platform разработан для использования программистами C/C++, которые знакомы с сетевыми концепциями и структурой систем, использующих компоненты пользовательского режима и компоненты режима ядра.

Сотрудники компании "Кросс-Информ" обладают опытом разработки системных приложений в следующих областях:

  • компьютерной безопасности: сетевые файрволы, системы обнаружения и предотвращения вторжений, антивирусные решения, низкоуровневое шифрование файловых объектов.
  • управления ИТ инфраструктурой.
  • резервного копирования для физических и виртуальных машин.
  • мониторинга ИТ инфраструктуры.