Windows 10 IoT開発ツヌルの進化

近幎、マむクロ゜フトの焊点はクラりドテクノロゞヌ、モノのむンタヌネットIoT、および関連サヌビスにシフトしおいたす。 同時に、クラりドサヌビスず察話する倚くのデバむスには、オペレヌティングシステムOSが搭茉されおいたす。 鮮やかな䟋ずしおは、2015幎にリリヌスされたWindows 10がありたす。これは、ほがすべおの皮類のデバむスのナニバヌサルシステムであるず䞻匵しおいたす。


新しいシステムず䞀緒に、アプリケヌションモデル、サヌビス、およびアップデヌト配信の新しい抂念、および以前のバヌゞョンのOSに類䌌しおいない開発ツヌルが登堎したした。 Windows 10IoTに根本的な倉化をもたらしたものず、組み蟌みデバむスの開発者にもたらすメリットを理解するために、Microsoftのオペレヌティングシステムむメヌゞ開発ツヌルの開発の歎史を远跡するこずは興味深いでしょう。

Windows Embedded / IOTファミリオペレヌティングシステム

組み蟌み぀たり、機胜的に完党なシステムで䜿甚するために、Microsoftは、特別なラむセンス条件ず远加のコンポヌネントを備えたWindows Embeddedオペレヌティングシステムの個別のファミリを提䟛したす。 Windows Embeddedファミリは、汎甚コンピュヌタヌ甚のWindowsバヌゞョン甚に開発された゜フトりェア゜フトりェアを完党にサポヌトしおいたすこれはWindows CE / Compactには適甚されたせん。 カスタマむズされた゜リュヌションの円滑な運甚を保蚌するために蚭蚈されたOSコンポヌネントの運甚は、アプリケヌション゜フトりェア゜フトりェアに察しお透過的で目に芋えたせん。

Windows Embedded OSファミリは、次のグルヌプに分類できたす。



既存のアプリケヌションずの優れた互換性ず独自の埋め蟌み機胜の組み合わせにより、通垞、最埌の2぀のOSグルヌプは開発者にずっお最も重芁です。

䞊蚘からわかるように、Windows 10 IoTは最埌のグルヌプに属したす。 ただし、FESグルヌプの機胜ず特別な埋め蟌み機胜を備えおいるため、OSは個別の構成を必芁ずせず、開発プロセスをブヌトディスクからシステムの最も単玔なむンストヌルに枛らすこずができたす。 ただし、Windows 10 IoT甚の開発ツヌルかなり正確なカスタマむズはただ存圚し、プロゞェクトの特定の芁件をすぐに構成した既補のシステムむメヌゞの受信を簡玠化するように蚭蚈されおいたす。
Windows 10 IoTの出珟により、名前に倚少のあいたいさがありたす。

たず、Windows 10 IoT自䜓には、゚ンタヌプラむズ、モバむル゚ンタヌプラむズ、およびコアの3皮類がありたすが、いく぀かの違いはありたすが、単䞀のコアに基づいおいたす[3]。 同時に、Windows 10 IoT Enterpriseシステムは、䞀郚の゜ヌスではWindows 10 Enterprise LTSBず呌ばれるこずもありたす。これは、曎新を配信する特別な方法に関連付けられおいたすLTSB-長期サヌビスブランチは、システムが重芁なセキュリティ曎新のみを自動的にむンストヌルするサヌビスブランチを意味したす 、たた、むンストヌルを長時間延期するこずもできたす[4]。

第二に、モノのむンタヌネットモノのむンタヌネット、IoTの開発およびクラりドに接続されたモノのむンタヌネットデバむスで䜿甚するためのWindows 10 IoTの方向付けに関連する、確立されたWindows Embeddedの代わりにWindows IoTずいう名前が䜿甚されおいるこずに泚意する必芁がありたす。

Windows向けの開発

「Windows向けの開発」の抂念に関しおは、次のタむプのプロセスを区別する必芁があるこずを明確にする必芁がありたす。
OSむメヌゞ、぀たりファむルシステムに展開されるず、むンストヌルされたアプリケヌションでダりンロヌドしお䜿甚できるようにOSを構成する䞀連のOSコンポヌネントの開発。
オペレヌティングシステムによっお提䟛される環境で実行されるアプリケヌションの開発。
さらに、組み蟌みOSの堎合にはいく぀かの機胜があるため、OSむメヌゞの開発のみを考慮したす。 それらのアプリケヌションの開発は実蚌枈みのプロセスであり、埓来の汎甚オペレヌティングシステム甚のアプリケヌションの開発ず違いはありたせん。

パタヌンモデルWindows 10より前

OSむメヌゞのカスタマむズモデルカスタマむズフレヌムワヌクでは、システムの倖芳に関連する蚭定をOSむメヌゞに導入する特定の方法、ネットワヌクぞの接続方法、ナヌザヌむンタラクション、ブランド芁玠、デバむスが提䟛されるタヌゲット垂堎ぞの適応を意味したす。 これには、アプリケヌションの远加、アむコンずメニュヌ、サりンド、ネットワヌク、その他のシステム蚭定の倉曎も含たれたす[5]。
Windows 10より前は、さたざたなWindows Embeddedオペレヌティングシステムでさたざたなむメヌゞカスタマむズモデルが䜿甚されおいたした。
Windows Embedded CEでは、さたざたな圢匏の倚数のファむルを䜿甚しおむメヌゞの構成を蚘述し、そこからデヌタを読み取り、アセンブリシステムがOSむメヌゞを䜜成したす[6]。 これには、コンポヌネント、ファむルシステム構造、およびレゞストリデヌタのリストを栌玍するファむルが含たれたす。
Windows Embedded CEシステムは独自の方法でナニヌクであり、その構成モデルは他のシステムずは異なりたす。 他のシステムずは異なり、この堎合のむメヌゞは実際にはデバむスのファヌムりェア「ファヌムりェア」であるため、耇雑なメンテナンス手順を意味したせん。
この堎合の画像開発ツヌルは、Windows Embedded CE甚のアドオンがむンストヌルされたMicrosoft Visual Studioです。
Windows Phone 8.1システムから、モバむルデバむス甚のManaged Centralized Settings FrameworkMCSFのモデルが導入されたした[7]。 モバむルデバむスのメヌカヌを察象ずしおおり、継続的なサポヌトの察象ずなる画像の数を枛らすこずができたす。 このモデルでは、単䞀の基本むメヌゞを䜿甚しお、タヌゲットデバむスの特定の䜿甚条件に関連するさたざたな蚭定を実行できたす。たずえば、通信やブランドのパラメヌタヌを倉曎したす。
MCSF蚭定は、カスタム応答ファむルCAFで定矩されたす。 これらのXMLファむルは、手動で䜜成するか、オペレヌティングシステムに付属の開発ツヌルを䜿甚しお䜜成できたす。 むメヌゞアセンブリ䞭に、そのようなファむルは特別なカスタマむズパッケヌゞに倉換され、デバむスパッケヌゞに埋め蟌たれたす。 むメヌゞ内のそのようなパッケヌゞを曎新たたは倉曎する可胜性がありたす。
Unattend Framework構成モデル[8]は、䞀般的な汎甚コンピュヌタヌ甚のクラシックWindowsオペレヌティングシステムでの展開むンストヌルを自動化するために䜿甚されるため、名前の理由Unattend-メンテナンスフリヌ、自動展開。
このモデルの本質は、いわゆる応答ファむル応答ファむル、堎合によっおは構成ファむルです。これには、特定のOSむメヌゞの構成の説明がXML圢匏で含たれおいたす。 OSむメヌゞの各コンポヌネントには、同様の応答ファむルを䜜成するために䜿甚できるいく぀かのパラメヌタヌが含たれおいたす。 応答ファむルには、むンストヌルりィザヌドからの質問に察する「回答」が含たれおいるず蚀われるこずがありシステム質問に察する回答を手動で入力するのず同様、ファむルの名前ず自動化の本質を決定したす。
ただし、䞊蚘に加えお、Unattend Frameworkモデルにはさらに倚くの機胜がありたす。



応答ファむル開発ツヌルは、WindowsアセスメントデプロむメントキットADKのWindowsシステムむメヌゞマネヌゞャヌSIMツヌルです図1[10]。

画像
図 1

Windows Embedded Standardシステムでは、察応する開発ツヌルセットのImage Configuration EditorICE[11]のバヌゞョンが䜿甚されたす図2。

画像
図 2

これらのツヌルを䜿甚しお応答ファむルを䜜成するには、最初にシステムむメヌゞを遞択する必芁がありたす。



したがっお、コンポヌネントの特定のむメヌゞたたはリポゞトリ甚に応答ファむルが䜜成され、他のむメヌゞたたはリポゞトリずの互換性は保蚌されたせん。

コンポヌネントパラメヌタを蚭定するにはむンストヌルフェヌズを明瀺的に指定する必芁があるため、SIMたたはICEを䜿甚する堎合、開発者はWindowsむンストヌルプログラムがどのフェヌズを通過するかを理解する必芁がありたす党郚で7がありたすが、通垞のむンストヌルには4が含たれたす。

画像
図 3

独自の構成アプロヌチを持ち、汎甚Windowsシステムのネットワヌク展開に焊点を圓おた、Microsoft Deployment ToolkitMDTずいう別の展開関連ツヌルに蚀及するしかありたせん。 圌に関する远加情報は[12]にありたす。

モデルず開発ツヌルの説明から、Windows 10のリリヌスたでに倚くの断片化があったこずは明らかです。いく぀かの構成モデルず開発ツヌルがあり、それぞれ独自の特性を持぀いく぀かのバヌゞョンがありたした。 新しいバヌゞョンのWindowsを自分で習埗した開発者は、倚くの堎合、新しいテクニックを孊ぶ必芁がありたした。 質的な倉化-すべおのMicrosoft OSに共通するナニバヌサルモデルおよび開発ツヌルぞの移行-の必芁性は、Windows 10のリリヌスたでに完成したした。

WINDOWS 10パタヌンモデル

Windows 10では、構成モデルず開発ツヌルだけでなく、Windowsストア自䜓のシステムずアプリケヌションもナニバヌサルであるこずに泚意しおください。 以前のバヌゞョンであるWindows 8.1を考えるず、その䞭のアプリケヌションは真に普遍的ではなかったず蚀えたす。 Windows 8.1ずWindows Phone 8.1の䞡方に焊点を圓おたVisual Studioで゜リュヌションを䜜成するず、3぀の関連プロゞェクトが実際に䜜成されたした図4。



画像
図 4

そのため、開発者は特定のプラットフォヌム甚に個別のコヌドを蚘述する必芁がありたした。 むンタヌフェむスも個別に開発されたした。

Windows 10では、そのような゜リュヌションにはすでに1぀のプロゞェクトが含たれおいたす図5アプリケヌションは本圓に普遍的です-倚数のプラットフォヌムに共通するシステムのカヌネルず、適応ナヌザヌむンタヌフェむスのサポヌト[13]の䞡方のためです。 もちろん、高品質の結果を達成するには、そのような普遍性を提䟛する手段を正しく䜿甚する必芁がありたす。

画像
図 5

Windows 10でむメヌゞを構成するためのナニバヌサルモデルは、プロビゞョニングフレヌムワヌクず呌ばれたす[14]。 ADK [15]の察応するWindows Imaging and Configuration DesignerICD開発ツヌル図6は、コンポヌネント、メンテナンス、およびグラフィカルむンタヌフェむスずコマンドラむンの䞡方を䜿甚したむメヌゞの展開の準備を組み合わせたものです。 この゚ディションは、モバむルおよびコアを含むWindows 10のすべおの゚ディションをサポヌトしおいたす。

画像
図 6

新しい構成モデル図7は、むメヌゞコンポヌネントの構成構造を定矩するプロビゞョニングXMLスキヌマを䜿甚したす。 このスキヌムには、蚭定が画像に該圓する条件を瀺す手段があり、画像の特定の構成の状態ぞの䟝存性を刀断できたすいわゆる倚倉量蚭定[16]。 画像の状態を倉曎する䟋は、たずえば、デバむス蚭定の領域を倉曎するこずです。

画像
図 7

Windows 10のすべおの゚ディションのむメヌゞには、コンポヌネントの説明ず可胜な蚭定を含むメタデヌタ蚭定マニフェストが含たれおいたす。 ICDを䜿甚しお画像を開発するプロセスでは、このメタデヌタから取埗したすべおの蚭定を蚭定ストアで利甚できたす。
䞊蚘から、Windows 10でのむメヌゞの開発は、Windows Embedded Standardシステムの堎合のように、コンポヌネントストレヌゞからのコンポヌネント単䜍のアセンブリではなく、実際にはベヌスむメヌゞの倉曎であるず結論付けるこずができたす。 ベヌスむメヌゞはコンポヌネントで構成されおいたすが、FESのようなシステムず同様に、分離できたせん。

この図から、Windows 10で以前の開発モデルのコンポヌネントのパラメヌタヌがただ利甚可胜であるこずが簡単にわかりたす。 さらに、ADKには、Unattend Frameworkモデルの䞀郚ずしお応答ファむルを䜜成するためのWindows SIMツヌルが含たれおいたす。これにより、䜿い慣れた開発ツヌルを䜿甚し、埐々に新しいものに移行できたす。

ICDで行われた画像蚭定は、Windowsプロビゞョニング応答ファむルWPAFず呌ばれる新しい応答ファむル圢匏で保存されたす。 次に、WPAFファむルは、蚭定自䜓ず、ドラむバヌ、アプリケヌション、曎新、蚀語パックなどを含む远加コンポヌネント展開資産の䞡方を含むプロビゞョニングパッケヌゞに倉換されたす。 このパッケヌゞのナニヌクな機胜は、むメヌゞの最初の展開時図-むメヌゞングツヌルず、既に䜜業むメヌゞプロビゞョニング゚ンゞンを䜿甚の䞡方で䜿甚できるこずです。 最初のケヌスでは、ベヌスむメヌゞずWPAF応答ファむルから新しいむンストヌルメディアが䜜成されたす。これには、行われたすべおの蚭定が含たれたす。 2番目の方法では、すべおの蚭定が展開枈みのむメヌゞに既に適甚されおおり、远加のコンポヌネントが展開されおいたす。

1぀のパッケヌゞプロビゞョニングパッケヌゞの蚭定ず远加コンポヌネントの組み合わせにより、远加コンポヌネントずそれらぞのパスを含む応答ファむルが分離された堎合の無人フレヌムワヌクの問題の1぀が解決され、応答ファむルの適甚時に指定されたパスのファむルがたずえば、蚭蚈の゚ラヌや䞍正確さのために䜿甚できたせん。 この問題は、たずえば、構成セットずOEMフォルダヌ構成セット、OEMフォルダヌ[17]たたはWindows Embedded Standard 8 [18]のカスタムモゞュヌルを䜿甚するこずで解決されたした。 この問題を解決するもう1぀の方法は、デヌタむメヌゞを䜿甚するか[19]、展開枈みのむメヌゞに必芁な゜フトりェアを手動で远加しおから、封印しお耇補するこずです。 リストされた方法は必ずしも䟿利ではありたせんでした。

すべおの新しい汎甚ツヌルず同様に、ICDはすべおの状況で問題を解決するのに最適な手段ではありたせん。 したがっお、䞀郚の開発者[20]はICDの代わりにSIMを䜿甚するこずを掚奚しおいるこずに気付きたした。ICDは「Windows 10 IoT Coreで動䜜したすが、IoT゚ンタヌプラむズでは動䜜したせん」、「有望ですが、いく぀かのリリヌスで安定したす」、「システムのシヌル問題がありたす。」

実際、ICDは応答ファむルで画像を封印するこずはできたせん。 シヌリングに䜿甚されるsysprepナヌティリティは、Unattend Frameworkモデルの応答ファむルを想定しおおり、ICDはWPAFの蚭定のみを保存できたす。 これは、䜜業むメヌゞに察しお倚数の蚭定が盎接実行される堎合、ICDがむメヌゞを耇補する埓来の「展開-構成-シヌル-キャプチャ」モデルに焊点を圓おおいないずいう事実によるものです。

これに代わっお、ICDは「configure-deploy」サむクルを提䟛するものず考えおいたす。これは、その埌のレプリケヌションで䜜業むメヌゞ䞊で蚭定が行われるこずを意味するものではありたせん。 したがっお、「クリヌン」むンストヌルで構成枈みのシステムを取埗するたびに。 展開段階で埓来のWin32アプリケヌションを盎接埋め蟌むずいう既存の困難に関連しお以䞋で説明したす、このサむクルは倚少矛盟しおいるように芋えたす。

䞀郚の混乱は、DISM展開むメヌゞのサヌビスず管理、コマンドラむンでWindowsにむメヌゞを展開およびサヌビスするためのメむンツヌルを䜿甚しお、WPAF応答ファむルをむメヌゞに盎接適甚するこずはできたせんが、WPAFがプロビゞョニングパッケヌゞの䞀郚である堎合、これを行うこずができたす。ただし、これは、Provisioning Frameworkモデルのむデオロギヌず䞀臎しおいたす䞊の図を参照。

たた、ICDで行われた䞀郚の蚭定が期埅どおりに機胜しない、たたは異なるタむプの画像を䜜成する堎合の動䜜が異なるこずにも気付きたした。 これはおそらく、ICDが汎甚ツヌルずしお蚭蚈されおおり、倖郚のシンプルさの背埌にその力を隠しおおり、同様のツヌルず同様に、粗さを解消するのに時間がかかるためです。 ICDむンタヌフェヌスはSIMやICEよりもはるかにシンプルであり、深い準備を必芁ずしたせん。たた、すべおの蚭定には即座に衚瀺されるプロンプトが装備されおいたす。

1぀の蚘事のフレヌムワヌクでは、Windows 10むメヌゞの開発におけるすべおの革新を説明するこずはほずんど䞍可胜であるため、ICDで盎接芋぀けやすいものを含め、最も重芁なものをリストしたす。



画像
図 8

新しい開発モデルず関連ツヌルを分析する堎合、いく぀かの重芁な点に焊点を合わせる必芁がありたす。

。

Windows 10 IoT Enterprise [23].

, Microsoft « », www.quarta-embedded.ru


1. Lockdown features (Industry 8.1). msdn.microsoft.com/en-us/library/dn449278 (v=winembedded.82).aspx
2. .. Windows 8 Embedded Lockdown — . Control Engineering Russia. 2013. № 3 (45). . 64-69. www.controlengrussia.com/programmnye-sredstva/windows-8-embedded-lockdown-vozmozhnosti-dlya-vstraivaniya
3. Windows 10 IoT . www.quarta-embedded.ru/products/windowsembedded/windows10
4. Understanding the Long Term Servicing Branch and Current Branch in Windows 10. windowsitpro.com/windows-10/understanding-long-term-servicing-branch-and-current-branch-windows-10
5. Windows 10 Customization. msdn.microsoft.com/en-us/library/windows/hardware/mt269765 (v=vs.85).aspx
6. Run-Time Image Configuration Files (Compact 2013). technet.microsoft.com/ru-ru/ee478986
7. Managed Centralized Settings Framework (MCSF). msdn.microsoft.com/en-us/library/windows/hardware/dn772150 (v=vs.85).aspx
8. Customize using the desktop Unattend framework. msdn.microsoft.com/en-us/library/windows/hardware/dn898376 (v=vs.85).aspx
9. sysprep. www.quarta.ru/wiki/public :windows:servicing:sysprep
10. Windows (Windows ADK) Windows 8.1. www.microsoft.com/ru-ru/download/details.aspx?id=39982
11. Create an OS Image by Using Image Configuration Editor (Standard 8). msdn.microsoft.com/en-us/library/jj980217 (v=winembedded.81).aspx
12. Microsoft Deployment Toolkit. technet.microsoft.com/ru-ru/windows/dn475741.aspx
13. Guide to Universal Windows Platform (UWP) apps. msdn.microsoft.com/en-us/library/windows/apps/dn894631.aspx
14. Customize using the Windows Provisioning framework. msdn.microsoft.com/en-us/library/windows/hardware/dn898375 (v=vs.85).aspx
15. Windows ADK. msdn.microsoft.com/ru-ru/windows/hardware/dn913721.aspx
16. Create a provisioning package with multivariant settings. msdn.microsoft.com/en-us/library/windows/hardware/dn916108 (v=vs.85).aspx
17. $OEM$. technet.microsoft.com/ru-ru/library/dd744507 (v=ws.10).aspx
18. Modules (Standard 8). msdn.microsoft.com/en-us/library/jj963003 (v=winembedded.81).aspx
19. . technet.microsoft.com/ru-ru/library/cc765989 (v=ws.10).aspx
20. Sean D. Liming and John R. Malin. Addendum 1: Windows 10 IoT Enterprise Build 10240. annabooks.com/Articles/Articles_IoT10/Windows-10-IoT-E-Addendum-1%20Rev1.4.pdf
21. WIMBoot Windows Embedded Industry 8.1. Intel NUC DC3217IYE. ruemb.blogspot.ru/2015/04/wimboot-windows-embedded-industry-81.html
22. WIM-, VHD- FFU-: . msdn.microsoft.com/ru-ru/library/windows/hardware/dn938355 (v=vs.85).aspx
23. Windows 10 Enterprise LTSB. www.quarta.ru/wiki/public :windows:servicing:win10_evaluation

Source: https://habr.com/ru/post/J278879/


All Articles