WisdomSoft - for your serial experiences.

Windows Runtimeとは?

Windows 8 からは、従来の Windows デスクトップ環境に加えて、タッチパネルを搭載したスレートPCに最適化された Metro UI が追加されました。Windows Runtime (WinRT)の概要と Windows 8 から採用された Metro スタイルアプリケーションとの関係について解説します。

Windows Runtime と Windows ストアアプリケーション

Windows Runtime とは、通称 WinRT と呼ばれる Windows 8 から新しく追加された API です。WinRT が新たに誕生した理由は様々な角度から説明できますが、本質的には Windows 1.0 から継承されてきた古い Windows API と、現代的で強力ながらも肥大化した .NET Framework の整理です。1990年代に積み重ねられてきた Windows API を中心とするコア技術と、2000年代に積み重ねられてきた .NET Framework を中心とする技術の集大成が Windows Runtime であり、おそらく Microsoft にとって 2010 年代を走り抜ける基礎技術となるでしょう。

WinRT は、表面的には「Windows ストア アプリケーション」を開発するための API であると説明できます。Windows ストアアプリケーションは Windows 8 で追加された、スレート PC のようなタッチパネル環境に最適化された Windows の新しい UI 上で動作するアプリケーションです。新しい UI は Windows 8 が発売される直前まで Metro UI と呼ばれていましたが、商標の問題から Microsoft は Metro の名前を使うことを止めるとアナウンスしています。

図1 Windows 8 の 新しい UI
図1 Metro UI

Windows 8 からの新しい試みである Windows ストアアプリケーションは WinRT を基盤に開発しなければなりません。Windows 8 で動作する Windows ストアアプリケーションは、開発者が自由にバイナリを配布することはできず、Windows ストアを通してのみユーザー環境にインストールできます。Windows ストアでアプリケーションを配信するには、開発者登録を行い、アプリケーションを提出し、審査を通過する必要があります。

Windows 8 では、もうひとつ大きな変更があります。ARM アーキテクチャへの対応です。基本的に PC 向けの Windows は Intel x86 及び x64 互換プロセッサのみを対象とし、ARM プロセッサの対応は組み込み向けの Windows Embedded の一部のみでした。Metro スタイルアプリケーションは x86、x64 に加えて、ARM プロセッサへの対応が可能です。

PC を前提として開発されてきた .NET Framework や Win32 API は、API が肥大化しすぎているため、アプリケーションが OS の機能を、どの程度の範囲で利用しているのかを分析することが困難です。多様な環境での互換性やセキュリティを向上させるには、肥大化した API を整理し、現代的なフレームワークとして再構築する必要がありました。WinRT は API が機能ごとに整理されており、開発者はアプリケーションが使用する機能をマニフェストで宣言し、利用者はアプリケーションがシステムのどの機能にアクセスするのかを確認できる(図2の赤枠)仕組みになっています。

図2 Windows Store
図2 Windows Store

よって Windows ストアアプリケーションは、匿名のソフトウェアが何をしているのか不明な状態ということがなくなります。Windows ストアから配信されている全てのアプリケーションは Microsoft により基本的な機能と品質が審査されており、登録されている開発者の証明書で署名された状態で配信されます。