Windows 10 w edycji Internet of Things stanowi nowe wcielenie dotychczasowego systemu Windows Embedded. To, co odróżnia go od poprzedników, to nie tylko stanowiący jego podstawę ujednolicony rdzeń platformy Windows 10, ale też ukierunkowanie go na tzw. Internet rzeczy, plus stanowiące podstawę nowego ekosystemu Windows aplikacje uniwersalne.
Windows 10 dla Internetu rzeczy dostępny jest obecnie w ramach pozbawionej interfejsu graficznego wersji Core, która wspiera produkty Raspberry Pi 2 od Raspberry Pi Foundation, DragonBoard 410 od Qualcomma (obie w architekturze ARM) oraz MinnowBoard Max firmy Intel (x86). Jako że płytki Galileo Intela nie spełniają wymagań wyznaczonych przez Microsoft, urządzenia te nie są już dłużej wspierane.
Zależnie od interesującej nas architektury sprzętowej, dokonując zakupu wybranej płytki zapłacimy mniej lub więcej. Różnica w cenie będzie znacząca, bo przykładowo Intel w stosunku do prawie że darmowego przecież Raspberry Pi 2 żąda sobie kilkaset złotych więcej. Choć większość z Was do realizacji swoich projektów domowych wykorzystywać będzie pewnie najtańszą Malinę, to jeśli dopiero zaczynacie swoją przygodę z Internetem rzeczy w wydaniu Windows 10 i chcecie jedynie zapoznać się z tą platformą poprzez przetestowanie na niej swoich pierwszych projektów od strony samej aplikacji, możecie to z powodzeniem zrobić bez wydawania żadnych pieniędzy. Innymi słowy, zamiast wdrażać obraz Windows 10 IoT na kartę SD Raspberry Pi 2, możecie go z powodzeniem wdrożyć na maszynie wirtualnej w waszym obecnym środowisku Windows.
Sama maszyna wirtualna z systemem Windows 10 IoT Core może działać właściwie w każdym systemie, nawet na dystrybucji linuksowej. Do rozwoju aplikacji uniwersalnych na tej platformie będzie nam jednak potrzebne działające - i co ważne - najnowsze stabilne wydanie Windows 10 (10568), na którym zainstalowano środowisko programistyczne Visual Studio Community wraz z najnowszymi aktualizacjami.
Proces instalacji systemu Windows 10 IoT Core na maszynie wirtualnej rozpoczniemy od pobrania niezbędnej aplikacji wiersza poleceń o nazwie ImgMount, która w określonym momencie umożliwi nam skonwertowanie obrazu tego systemu do postaci standardowego dysku wirtualnego. Aplikacja ta dostępna jest do pobrania chociażby na forum deweloperów XDA (patrz załącznik ImgMount.zip).
Pobieranie obrazu Windows 10 IoT
Wszystko, czego potrzebujemy do tworzenia rozwiązań Internetu rzeczy na platformie Windows 10 znajduje się w Centrum deweloperów systemu Windows. Ze znajdującego się na samej górze witryny menu Technologie programistyczne wybieramy Windows, a następnie Internet rzeczy. Jeśli odwiedzacie tę witrynę po raz pierwszy, zalecamy wam pobieżne zapoznanie się z zamieszczonymi tam informacjami, gdyż dadzą wam one solidny pogląd na to, czym właściwie jest Internet rzeczy w rozumieniu firmy Microsoft, a także jakie narzędzia i urządzenia wykorzystywane są do rozwijania rozwiązań IoT na platformie Windows 10.
Przystępujemy teraz do pobrania obrazu Windows 10 IoT Core. W tym celu przechodzimy do działu Pliki do pobrania. Jako że wystawione pliki przechowywane są na platformie github, od tej pory strony wyświetlane będą w języku angielskim. Z widocznej w ramach ostatniego przeniesienia strony Downloads and Tools wybieramy interesujący nas obraz systemu Windows 10 IoT Core. Na chwilę obecną dostępne są trzy wersje tej platformy, dedykowane konkretnym urządzeniom: Raspberry Pi 2, MinnowBoard Max i DragonBoard 410.
Raspberry Pi 2 i DragonBoard 410 to płytki działające w oparciu o architekturę ARM, natomiast MinnowBoard Max jest rozwiązaniem firmy Intel zrealizowanym, jakże by inaczej, w architekturze x86. Aby wygodniej i łatwiej nam było zwirtualizować ten system na platformie PC, skorzystamy z wersji właśnie na to ostatnie urządzenie. Klikamy więc niebieski odnośnik Download Windows 10 IoT Core for MinnowBoard Max. Rozpocznie się pobieranie obrazu ISO o rozmiarze około 525 MB, zawierającego najnowszą dostępną kompilację Windows 10 dla Internetu rzeczy. Pamiętajmy, że Windows 10 IoT również jest częścią szerszej i ujednoliconej platformy Windows 10, która rozwijana będzie w formie wydawanych na bieżąco kompilacji. W chwili pisania tego artykułu dostępny jest obraz o numerze 10586.
Pobierany przez nas obraz nie jest przystosowany do zwykłej instalacji bezpośredniej, gdyż zawiera on tak naprawdę instalator rozpakowujący pliki systemowe na dysk. By możliwe było uruchomienie systemu z poziomu maszyny wirtualnej, z plików tych musimy wyodrębnić obraz dysku systemu, wdrażany zwyczajowo na karcie SD urządzenia. Proces ten nie jest skomplikowany, ale będziemy musieli wykonać kilka dodatkowych operacji.
Rozpoczynamy od zamontowania pobranego obrazu ISO i uruchomienia dostępnego w nim instalatora Windows_10_iOT_Core_Mbm.msi. Akceptujemy licencję i klikamy Install. Po zakończeniu kopiowania danych zostanie nam podana ścieżka dostępu do wypakowanych plików. Domyślnie będzie to C:\Program Files (x86)\Microsoft IoT (odpowiednio Pliki programów (x86)\Microsoft IoT w polskiej wersji Windows). Zamykamy instalator przyciskiem Finish i z poziomu Eksploratora plików udajemy się do wspomnianej lokalizacji.
W folderze Microsoft IoT otwieramy folder FFU, a w nim podfolder MinnowBoardMax, w którym znajduje się faktyczny obraz systemu Windows 10 IoT Core. Jak się zapewne domyślacie, żaden z hiperwizorów nie obsługuje dysków wirtualnych w formacie FFU, więc będziemy musieli go skonwertować do jakiegoś innego formatu, najlepiej starego i poczciwego VHD. Do tego posłuży nam wspomniana aplikacja ImgMount. Aplikację tę (wypakowany plik ImgMount.exe) przenosimy do folderu z obrazem FFU. Otwieramy Wiersz polecenia z podniesionymi uprawnieniami (prawym przyciskiem na ikonie menu Start, a następnie Wiersz polecenia (administrator)), a następnie z użyciem znanego wszystkim polecenia cd (change directory) z odpowiednimi argumentami przechodzimy do lokalizacji z obrazem FFU (w wierszu polecenia obowiązuje angielskie nazewnictwo folderów). Teraz uruchamiamy polecenie ImgMount.exe flash.ffu i czekamy na utworzenie w folderze tymczasowym bieżącego użytkownika dysku wirtualnego, który zostanie automatycznie zamontowany w systemie Windows 10.
Po zakończeniu tej operacji pojawi się okno Exploratora plików, którego zawartością będzie zawartość zamontowanego w systemie dysku wirtualnego VHD. Nas jednak nie interesują dostępne w nim pliki i foldery, lecz cały ich zbiór w postaci pliku VHD, a ten, jak już wspomnieliśmy, znajduje się w folderze tymczasowym zalogowanego użytkownika. Jako że niektóre z folderów na ścieżce prowadzącej do tej lokalizacji nie są domyślnie widoczne, upewnijcie się, że w oknie Eksploratora plików na karcie Widok w grupie Pokazywanie/ukrywanie macie zaznaczoną opcję Ukryte elementy. Przechodzimy więc do folderu C:\Użytkownicy\
Mamy już więc upragniony plik wirtualnego dysku z systemem Windows 10 IoT Core. Ale zaraz! Zanim go sobie przeniesiemy lub skopiujemy do bardziej wygodnej lokalizacji (co by nam go Windows nie skasował z folderu plików tymczasowych) musimy go uprzednio odmontować. Pamiętacie? Ten plik jest cały czas używany, bo narzędzie ImgMount po jego konwersji z formatu FFU do VHD automatycznie nam go zamontowało w systemie. Aby go sobie fachowo odmontować otwieramy narzędzie Zarządzanie dyskami (ponownie menu kontekstowe dostępne pod przyciskiem Start), następnie w dolnym panelu klikamy prawym przyciskiem dysk (w miejscu wskazywanym przez strzałkę) zawierający woluminy MainOS, CRASHDUMP i Data (dysk ma rozmiar 5,54 GB), po czym wybieramy Odłącz dysk VHD.
Otrzymamy jeszcze stosowne upomnienie, że po odłączeniu dysku zawarte na nim dane nie będą dostępne w systemie (dość oczywiste). Tutaj dodatkowo zostanie nam jeszcze podana lokalizacja reprezentującego ten dysk pliku VHD. My jednak wiemy już, gdzie ten dysk/plik się znajduje, więc klikamy OK. Teraz z folderu Temp możemy swobodnie przenieść ten dysk w inne miejsce, na przykład na Pulpit. Zamykamy wszystkie otwarte okna i przechodzimy do utworzenia maszyny wirtualnej, której podstawowym elementem będzie wydobyty właśnie dysk Windows 10 IoT Core. Swoją drogą, zwróciliście uwagę na to, że w Eksploratorze plików plik VHD zajmuje nieco ponad 1 GB, a po zamontowaniu dysk jawi się jako dysk o rozmiarze ponad 5 GB? Wychodzi na to, że jest to standardowy dysk dynamiczny.
Tworzenie maszyny wirtualnej z Windows 10 IoT
Dla naszej wygody posłużymy się programem VirtualBox - popularnym i wieloplatformowym hiperwizorem typu drugiego od firmy Oracle. Otwieramy aplikację VirtualBox, klikamy New, nadajemy dowolną nazwę naszej maszynie i określamy ją jako Microsoft Windows w wersji Windows 10 (32-bit). Na kolejnej stronie kreatora przyznajemy maszynie odpowiednią ilość pamięci RAM (najlepiej 2 GB, bo tyle oferuje nam MinnowBoard Max). Na kolejnym etapie wybieramy Use an existing virtual hard disk file (Użyj istniejącego pliku wirtualnego dysku twardego), wskazujemy nasz wydobyty plik i klikamy Create. Przed uruchomieniem maszyny musimy jeszcze ją nieco podrasować. Klikamy Settings, w sekcji System zaznaczamy Enable EFI (special OSes only) (ważne!), a w sekcji Network z pola Attached to naszej karty wybieramy Bridged Adapter, co umożliwi tej maszynie pozyskanie adresu IP należącego do podsieci naszego hosta.
Klikamy Start i czekamy na uruchomienie systemu Windows 10 IoT Core.
Jeśli po uruchomieniu system nie jest wystarczająco czytelny, warto spróbować zmienić widok maszyny wirtualnej na Scaled Mode, następnie na Full-screen Mode i ponownie na Scaled Mode. Po kilku takich operacjach system powinien wyglądać tak, jak na poniższym obrazie. Ta niedogodność w sposobie prezentacji systemu to cena, jaką ponosimy w przypadku jego wirtualizacji bez kupowania fizycznej płytki Intela lub innego dostawcy.
Podsumowanie
Windows 10 w edycji Internet of Things jest od teraz dostępny na naszym komputerze. W kolejnych artykułach przedstawimy wam, jak się ten system obsługuje i jak możemy się z nim komunikować. Pokażemy wam też pokrótce, w jaki sposób tworzy się na niego aplikacje. Do tego czasu zalecamy wam zapoznanie się z jego ekranem głównym oraz ekranem jego ustawień. Pamiętajmy jednak, że wszelkie zawarte w nim opcje i funkcje odnoszą się do fizycznego urządzenia konkretnego dostawcy (w naszym przypadku jest to MinnowBoard Max firmy Intel), które my symulujemy przy użyciu maszyny wirtualnej.
Cała komunikacja z systemem Windows 10 IoT Core odbywać się będzie z użyciem stosu TCP/IP, więc warto upewnić się, że system po instalacji jest osiągalny z poziomu naszego hosta. W tym celu otwieramy Wiersz polecenia i pingujemy naszą maszynę. W naszym przypadku system IoT, dzięki opcji Bridged Adapter, uzyskał od serwera DHCP adres 192.168.0.100. Nasz host ma adres 192.168.0.103 więc obydwie maszyny powinny się wzajemnie widzieć. Wydajemy polecenie: ping 192.168.0.100 i sprawdzamy stan pakietów ICMP Echo Reply.
Na koniec wyłączamy maszynę wirtualną klikając przycisk zasilania i wybierając z listy Shutdown.
Jeśli macie jakieś pytania lub problemy związane z instalacją Windows 10 IoT Core na maszynie wirtualnej, napiszcie nam o tym w komentarzach.