Windows 10 IoT — небольшой обзор новой редакции ОС для маленьких устройств
Привет!
На прошлой неделе мы рассказали про то, как видим Интернет Вещей. Про то, как в Microsoft Technology Center уже функционирует концепт умного офиса. Про то, как подключить Arduino к Raspberry Pi 2, а также про то, как с одноплатной системы можно собирать данные, отправлять и визуализировать в облаке Microsoft Azure. Прошлая неделя получилась именно такой — под знаком облака. Эта пройдёт под знаком Windows 10 — сегодня про общие моменты, в среду про AllJoyn, в пятницу — про все те интереснейшие партнёрства, которые мы заключили (Canonical, Arduino и др.) и про то, что они несут в этот мир.
Как мы уже писали, флагман нашего операционносистемостроения Windows 10, выходящий 29 июля, будет работать на достаточно компактных одноплатных системах, типа Raspberry Pi 2 или Intel Minnowboard MAX, которые могут стать основой домашних интеллектуальных систем, подключаемых к Интернету вещей. К ситуации, в которой мы можем написать приложение в Visual Studio и, собрав его под ARM либо x86, развернуть не только на десктопе, но и на плате, Microsoft шёл примерно с 2011 года (обязательно посмотрите про эту историю в очень интересном докладе Дона Бокса на WinHEC 2015), когда были предприняты первые шаги к объединению платформ. Теперь будет единая система, которая будет называться Windows 10, и иметь редакцию, по которой и будет определяться ее принадлежность. По редакциям окончательное понимание придёт позже, но уже сейчас известно, что их будет около 7. К устройствам прямое отношение имеют три:
- IoT Industrial (Intel-only, похожа на Windows 10 Enterprise, с учётом подстройки под конкретный сценарий, например, банкомат или торговый автомат);
- Mobile Enterprise (ARM, с поддержкой Universal Apps, оптимизированная под мобильные устройства и имеющая поддержку различных функций безопасности);
- IoT Core (версия, оптимизированная под устройства с ограниченными ресурсами, с поддержкой Universal Apps, но в режиме Single, и royalty-free).
Пока Mobile Enterprise и Industrial находятся в недоступном нашем рукам режиме, расскажем про IoT Core. IoT Core — это версия, оптимизированная под устройства, у которых на борту есть достаточно ограниченные ресурсы. Минимальные системные требования для Core — 256 мегабайт ОЗУ и 2 гигабайта хранилища. Плюс архитектура x86/ARM. На июль 2015 года доступна в гарантированно-рабочем виде для двух плат — Raspberry Pi 2 (ARM) и Intel Minnowboard MAX (x86). Процесс установки практически идентичен, за исключением подготовительных действий, которые на Minnowboard заключаются в манипуляциях в UEFI.
Разрабатывать на Windows 10 IoT Core можно уже сейчас, при этом разработчику доступны все приложения платформы Windows, а разработка таких приложений ведется тем же, как и любых других приложений и инструментов из Visual Studio, с использованием технологий C#/XAML, HTML/JS и др, что означает возможность разработки универсального приложения, которое будет с равным успехом (конечно, учитывая наличие или отсутствие привязки к какой-то специфичной функциональности) работать на PC, телефонах, Xbox или платах.
Резюмируя по разработке:
- IoT Core поддерживает Universal Platform API, включая Universal Drivers, и это является на данный момент основным методом разработки (C#/C++/JavaScript/HTML/XAML/DirectX). При этом поддерживаются консольные приложения (C/C++);
- Тем не менее, писать Native Win32 можно, но никакого вывода увидеть не получится, кроме как разве что в удалённой сессии;
- Windows desktop нет, командной строки нет. Зато есть Powershell Remoting и SSH;
- IoT Core содержит расширения API:
- GPIO, I2C, SPI, ADC, PWM, UART, AllJoyn
- Управление системными настройками (язык и др.)
- API Set
- Есть веб-сервер Node.js с используемым внутри Microsoft Chakra.
Однако необходимо учитывать отсутствие драйверов и поддержки для некоторых модулей (например, Wi-Fi), что блокирует часть сценариев. Но это всё будет — проект молодой, и разработчики всё сделают.
Что уже делают на Windows 10 IoT Core? Например, хабы для домашних устройств. При условии того, что правильным образом будет использована встроенная функциональность AllJoyn, можно управлять окружающими устройствами. То есть быть управляющей панелью, собирая данные с сенсоров и других устройств.
Таким образом, теперь у разработчиков есть выбор — можно продолжать использовать всё то, что уже разработано на OSS, и подключать при необходимости облако для обработки данных, либо взять знакомые инструменты (Visual Studio, .NET) и создать универсальное приложение. Или, как уже пробуют, запустить Cocos2D:)
Как начать использовать? (краткий совет)
Достаточно просто. Зайдите на официальный сайт, выберите страницу с вашим устройством и идите по инструкции. С момента запуска программы инструкция претерпела не одну редакцию, и теперь всевозможные проблемы и нюансы уже описаны. Единственный момент — количество оборудования, которое нужно для запуска и тестирования. Еще из опыта использования — не все мыши корректно определяются. Самым надёжным способом является использование проводной мыши.
Я рекомендую хотя бы попробовать — для меня опыт подключения в виде удалённого отладчика платы в Visual Studio был достаточно интересен. Конечно, есть всяческие инструменты (один из моих любимых, VisualMicro, в их числе), которые расширяют функциональность VS, однако всегда приятно, когда что-то нужное идёт сразу в комплекте. Мы ещё будем писать про Windows 10 IoT, и показывать то, что можно сделать с ней, как связать с облаком и прочее. Спасибо за внимание:)