Таджикистан, Душанбе, Таджикский Технический Университет (ТТУ), 2013 |
Архитектура встраиваемой ОС реального времени – CE 6.0
Управление питанием
Встраиваемые устройства часто работают от батарей, и даже устройства работающие от источника переменного тока необходимо проектировать с учетом эффективного потребления энергии.
Длительная работа от батареи является одним из основных конструкционных рассмотрений в таких устройствах, как сотовые телефоны. Большинство операционных систем включают поддержку для управления питанием, отключая части оборудования и возможно замедляя частоту работы процессора во время периодов неактивности. Следующая иллюстрация показывает состояния питания и переходы в CE 6.0.
Менеджер питания позволяет управлять устройствами просто и независимо от базовой модели управления питанием в CE. В базовой модели питания CE устройства получают уведомления, что ОС приостанавливает и возобновляет работу. Это уведомление происходит в контексте прерывания, поэтому устройства строго ограничены в отношении того, что они могут делать во время приостановленного состояния, и как долго они могут это делать. Рисунок 6.13 показывает архитектуру управления питанием для CE.
Таблица 6.7 описывает переходы между состояниями для CE - в зависимости от используемого устройства.
Используя Менеджер питания устройства получают уведомления об изменении состояния питания как управляющие коды В/В (IOCTL). Так как IOCTL выполняются в контексте потока, разработчики драйвера имеют значительно большую гибкость в том, как они реализуют изменение состояния питания. Использование IOCTL для управления питанием позволяет также разделить состояние питания устройства и общее состояние питания ОС. Поэтому некоторые устройства можно выключить во время работы ОС, а другие можно оставить включенными, когда большая часть ОС приостановлена.
Кроме управления питанием устройства Менеджер питания уведомляет приложения о связанных с питанием событиях. Например, Менеджер питания информирует заинтересованные приложения, когда ОС восстанавливается из приостановленного состояния.
Менеджер питания реализован как динамически подключаемая библиотека (DLL), называемая Pm.dll, которая компонуется непосредственно с Device.exe. Device.exe вызывает точки входа в Pm.dll, когда вызываются прикладные интерфейсы программирования управления питанием. Исходный код для Pm.dll предоставляется вместе с Microsoft Platform Builder 4.0 и более поздними версиями, и OEM могут модифицировать его для своего устройства на основе CE.
Менеджер питания действует как посредник между устройствами, приложениями, и определяет состояния питания ОС. Он реализует следующее множество правил коммуникации между тремя этими частями:
- Состояния питания ОС накладывает на все устройства ограничения на максимальное потребление питания.
- Приложения накладывают ограничения минимального потребления питания на определенные устройства, чтобы получить минимальные уровни производительности.
- Менеджер питания будет позволять устройствами благоразумно управлять своей собственной энергией, пока они удерживают уровни потребления энергии между заданными максимумом и минимумом.
Если минимальная граница потребления энергии задана выше, чем максимальная, питание устройства будет оставаться повышенным, пока устройство требуется приложению.
Устройства могут реализовать один или несколько состояний питания устройства. Количество состояний питания устройства ограничено. Если ОС переходит в приостановленное состояние, наложенные приложением минимальные ограничения на питание будут задаваться отдельно, пока ОС находится в приостановленном состоянии.
Состояния питания системы описывают для всех устройств максимальное состояние питания устройства. Системные состояния питания определяются OEM, описываются в реестре, и могут дополнительно иметь код для их поддержки в Менеджере питания. OEM может определить любое число системных состояний питания.
В инфраструктуре Менеджера питания OEM определяет состояния питания ОС, которые устанавливают максимальные состояния питания устройства. Устройства вызывают функцию DevicePowerNotify для регулировки своих собственных уровней питания, а приложения вызывают функцию SetPowerRequirement для проверки, что требуемые им устройства выполняются на приемлемом уровне производительности.
Менеджер питания управляет питанием устройств и улучшает общую эффективность питания операционной системы, обеспечивает управление питанием для каждого устройства, и сосуществуют с приложениями и драйверами, которые не поддерживают Менеджер питания. Можно использовать управление питанием для уменьшения потребления питания используемого устройства и для поддержки и сохранения файловой системы в RAM во время состояний питания on, idle, и suspend.
Менеджер питания предоставляет также следующие возможности:
- Инфраструктуру, в которой устройства могут благоразумно управлять своим собственным питанием.
- Механизм для разъединения состояния питания устройства и состояния системы suspend или resume.
- Модуль, который имеет глобальное представление системной рабочей среды, статуса питания и состояний питания устройства. Можно настроить Менеджер питания, чтобы он принимал общесистемные решения о питании, которые подходят для устройства.
Менеджер питания ожидает, что все управляемые устройства поддерживают одно или несколько состояний питания устройства. Существует ограниченное число состояний питания устройства, и устройство должно информировать Менеджер питания о своих характеристиках потребления энергии. Состояния питания устройства обычно обеспечивают производительность за счет дополнительного потребления энергии.
Менеджер питания управляет состояниями питания устройства в контексте состояний питания системы, которые определены OEM.
Состояния питания системы описываются в реестре, где можно определить любое число состояний. Состояния питания системы определяют верхнюю границу для состояний питания устройства.
Некоторые приложения могут требовать, чтобы заданное устройство обслуживалось на определенном уровне питания устройства. Например, приложение потокового аудио может требовать, чтобы его сетевая карта и аудио-кодек оставались с высоким уровнем питания во время воспроизведения музыки. Приложение потокового видео может нуждаться в сети и аудио, плюс оно может требовать, чтобы дисплей не переходил в режим хранителя экрана, и возможно, поддерживать включенной подсветку. Приложения могут требовать, чтобы Менеджер питания задавал требования минимального состояния питания устройства, используя функции API SetPowerRequirement и ReleasePowerRequirement.
Средства безопасности ОС
Службы безопасности являются существенной частью любой современной операционной системы. Службы коммуникации, приложения пользователей, файловые системы и хранилища данных, и службы Интернет все требуют защиты секретной информации. CE предоставляет набор инструментов для улучшения безопасности устройства. Однако пользователь отвечает за тщательный анализ безопасности устройства и выбор компонентов ОС, подходящих для устройства. При добавлении каждого нового свойства, разработчики должны тщательно рассматривать последствия для безопасности.
Доступны следующие технологии обеспечения улучшенной безопасности в устройствах и приложения:
- Криптография и сертификаты предоставляют службы для использования криптографии. Эти службы допускают схемы шифрования/дешифрования данных, аутентификацию с помощь цифровых сертификатов, и кодирование/декодирование в и из ASN.1 в свои приложения. Разработчики приложений могут использовать функции в CryptoAPI не зная деталей нижележащей реализации. Провайдерами служб криптографии (CSP), включенными с CE, являются RSA Base Provider, Diffie-Hellman/DSS Provider и RSA Enhanced Provider.
- Поддерживается Уровень безопасного сокета (SSL) версий 2.0 и 3.0. Они доступны через Службы Интернет Windows (WinInet) или непосредственно из Сокетов Windows (Winsock). SSL использует безопасные сокеты для отправки и получения кодированных данных по линиям коммуникации.
- Менеджер параметров доступа предоставляет память для кэшированных параметров доступа, и активирует совместное использование общих параметров доступа.
- Подсистема локальной аутентификации (LASS) является инфраструктурой для обеспечения аутентификации пользователей, независимо от вызванного приложения и механизма аутентификации. Аутентификация пароля предоставляет для проверки только один вариант, пароль. Однако LASS позволяет поддерживать развитые механизмы аутентификации, такие как биометрические параметры. Кроме того, можно использовать функции LASS для определения политик на основе событий для аутентификации пользователей. Она поддерживает также с помощью реестра аутентификацию на основе политики.
- Чтобы помочь защитить секретную информацию и помочь избежать искажения данных, интерфейс прикладного программирования (API) защищенного хранилища предоставляет удобное решение для криптографии, управления ключами, и проблем работы пользователя. API защищенного хранилища получает параметры доступа регистрации пользователя для блокирования и разблокирования приватных данных.
- Интерфейс провайдера поддержки безопасности (SSPI) является хорошо определенным общим интерфейсом для получения интегрированных служб безопасности для аутентификации, целостности сообщений, и приватности сообщений. Он предоставляет уровень абстракции между протоколами уровня приложения и протоколами безопасности. Можно использовать один из нескольких провайдеров безопасности, не зная деталей протокола безопасности. Провайдерами безопасности, включенными с CE, являются Windows NTLM Security Support Provider (SSP), Schannel (SSL/TLS) и Kerberos SSP.
- Подсистема CE смарт-карт поддерживает CryptoAPI и модель драйвера устройства на основе CE для разработки устройства чтения смарт-карт. Дополнительные возможности поддержки PC/SC для переноса существующих драйверов устройств чтения смарт-карт и провайдеров услуг.
- Чтобы помочь защитить операционную систему от потенциально небезопасных операций, разработчики операционных систем могут определить надежную среду, где могут выполняться только сертифицированные приложения. OEM могут воспрепятствовать загрузке неизвестных приложений, ограничить доступ к системному API, и воспрепятствовать доступу для записи к определенным частям системного реестра.
Сетевые свойства ОС
Сетевые свойства и поддержка сети являются критически важным компонентом любой современной операционной системы. CE предоставляет ряд сетевых служб и свойств. CE предоставляет поддержку для приложений на основе Интернет. Поддерживаются следующие сетевые свойства:
- Пакет протоколов TCP/IP. Эта технология поддерживает множество протоколов, которые позволяют взаимодействующим компьютерам и устройствам совместно использовать ресурсы в сети.
- Сокет Windows (Winsock) для устройств на основе CE определяет программный интерфейс на основе знакомого интерфейса сокета из Университета Калифорнии в Беркли. Он включает множество расширений, созданных для использования преимуществ управляемых сообщениями особенностей CE. Она поддерживает Winsock 2.2, который обеспечивает более простой доступ к нескольким транспортным протоколам. Следуя модели Архитектуры открытых систем Windows (WOSA) Winsock определяет стандартный интерфейс провайдера службы (SPI) между интерфейсом прикладного программирования (API) и стеками протоколов. Winsock 2.2, с его экспортированными из Ws2.dll функциями, не ограничен стеками протоколов TCP/IP, как в случае Winsock 1.1.
- Объект каталога IPSec v4, который позволяет двум клиентским устройствам в сети установить одноранговую коммуникацию, используя протокол IP Security (IPSec). Эта технология позволяет устройствам на основе CE участвовать в сетях, которые защищены IPSec.
- Domain Discovery позволяет устройству CE обнаруживать сервер Active Directory для запроса.
- Реализация Extensible Authentication Protocol позволяет коду аутентификации независимого поставщика взаимодействовать с реализацией Point-to-Point Protocol (PPP), включенной в Remote Access Service (RAS) на основе CE. Extensible Authentication Protocol (EAP) используется также с аутентификацией 802.1x и EAP over LAN (EAPOL).
- Брандмауэр IP обычно используется на устройстве шлюза Интернет. Он может также использоваться как брандмауэр хоста. Брандмауэр помогает защитить устройство, на котором он выполняется, и помогает защитить устройства на приватной стороне шлюза. Брандмауэр блокирует трафик IP на уровнях транспорта и IP.
- Общее соединение с Интернет (ICS) для CE состоит из совокупности технологий и служб, которые делают возможным соединение нескольких вычислительных и информационных устройств в сети, расположенных дома, в небольшом офисе, или в офисе филиала корпорации с Интернет через единственное соединение Интернет.
- Средство Network Utilities для CE предоставляет несколько инструментов, которые можно использовать для разрешения проблем сетевых соединений. Они включают широко используемые инструменты, такие как ipconfig и ping.
- Internet Protocol version 6 (IPv6) является пакетом стандартных протоколов, которые являются следующим поколением протоколов сетевого уровня для Интернет. IPv6 является ненадежным протоколом без соединения, который используется прежде всего для адресации и маршрутизации пакетов между хостами. Без соединения означает, что перед обменом данными сеанс не устанавливается. Ненадежный означает, что доставка не гарантируется. IPv6 всегда делает все возможное для доставки пакета. Пакет IPv6 может быть потерян, доставлен не в той последовательности, продублирован, или отсрочен. IPv6 не пытается исправить ошибки такого типа. Подтверждение доставленных пакетов и восстановление потерянных пакетов делается протоколами более высокого уровня, такими так TCP.
- Реализация Windows Networking API/Redirector (SMB/CIFS) в CE предоставляет функции для установления и прекращения сетевых соединений и для доступа к файлам на серверах, поддерживающих Common Internet File System (CIFS). Доступ к этим данным делается возможным посредством сетевого API (WNet).
Операционная система CE реализует пакет протоколов TCP/IP (Transmission Control Protocol/Internet Protocol). ОС включает стандартный стек TCP/IP, позволяющий устройствам на основе CE участвовать как одноранговые узлы сети и серверы в локальных (LAN) и удаленных сетях.
CE поддерживает следующие стандартные характеристики:
- Возможность соединяться с несколькими сетевыми адаптерами с различными типами среды, например, 802.3 и 802.5.
- Возможности логической и физической множественной адресации.
- Возможность внутренней маршрутизации IP.
- Internet Group Management Protocol (IGMP) (многоадресная передача IP).
- Обнаружение дублирования IP-адреса.
- Несколько используемых по умолчанию шлюзов.
- Обнаружение неработающих шлюзов.
- Автоматическое обнаружение Path Maximum Transmission Unit (PMTU).
- Виртуальные частные сети (VPN).
и имеет также следующие усовершенствования производительности:
- Настройка стека протоколов, включая увеличенные размеры используемого по умолчанию окна.
- Масштабируемые размеры окон TCP (поддержка RFC 1323).
- Выборочные подтверждения (SACK).
- Быстрая повторная пересылка TCP.
Поддержка предоставляется, как для IPv4, так и для IPv6. Таблица 6.8 суммирует предоставляемые службы TCP/IP.
Архитектура пакета протоколов CE TCP/IP показана на рисунке 6.16.