勝手に想像! 開催直前でWindows 8に期待することBUILD(2/3 ページ)

» 2011年09月12日 22時17分 公開
[鈴木淳也(Junya Suzuki),ITmedia]

ARMで“PC版”ベースのアプリケーションは動くのか?

“すべてのサイズのデバイスにWindowsを”がWindows 8のコンセプトだ

 間もなく始まるBUILDでは、Windows 8の詳細が明らかになると期待されている。9月12日には報道関係者にBUILDで発表する情報を事前に公開するという“うわさ”もあるが、ここでは、Microsoftがこれまで明らかにしてきた情報を整理したうえで、事前に公開するという情報の“予想”にも挑んでみる、

 まず、Windows 8について、現時点で明らかになっていない、または、疑問とされている項目をまとめておこう。

  • ARM搭載デバイスにおける“PC版”ベースアプリケーションのサポート
  • Windows 8のアプリケーション開発環境と配布方法
  • Windows 8におけるエディション構成と提供モデル


 これまで「ARMで動作する」「タブレットデバイス用に新しいUIを導入する」といった情報は公開されてきたが、その“内部”については明らかになっていない。そのため、「既存の“PC版”ベースのWindowsアプリケーションがそのまま動くのか?」「Windows 8では異なるデバイスをターゲットにして、どのようにアプリケーションを開発すればいいのか?」といった根本的な部分が不明だった。開発者向けカンファレンスのBUILDで、その秘密が明らかになることと期待されている。

 MicrosoftでWindows 8の開発チームを率いるスティーブン・シノフスキー氏は、「Building Windows 8」という公式ブログをスタートさせ、BUILDに向けてWindows 8の情報を定期的に公開している。これまでに、従来のInternet Explorerを改良することやUSB 3.0のサポート、Mac App Storeにようなアプリストアの導入、Hyper-Vのサポートといった情報が、シノフスキー氏のブログで明らかになっている。だが、前述のような“PC版”ベースアプリケーションのサポートや、Windows 8をターゲットとした開発環境については、このブログでも触れられていない。そこで、これらのポイントがそのような扱いになるのか、その可能性について推察してみたい。

ARMで“PC版”ベースアプリケーションは動く?開発環境は?

 現役のARMがx86系CPUと比べて非力なことは語るまでもない。その一方で、既存の“PC版”ベースのアプリケーションを動作させるにはx86系CPU向けに記述されたネイティブコードをバイナリトランスレーション、あるいは、エミュレーションの形で実行するしかない。これらをARMで実行すると、パフォーマンスの大幅な低下が予想される。そのため、ARM版Windows 8では“PC版”ベースのアプリケーションをサポートしない、あるいは、非常に限定的なサポートになる可能性が高い。

ARMデバイスでビデオ再生を行う。タスクマネージャに4つのCPU負荷率が表示されているが、これはNVIDIAが開発中の“Kal-El”でデモを行っていることを示している

 ARMとx86では命令セットが異なるため、そのままでは互いのネイティブコードを実行できない。x86であればARM環境のエミュレーションを実行するのに十分なパフォーマンスはあると思われるが、x86向けに専用バイナリを用意したほうが実行効率は高い。

 そのため、Visual Studioのような開発環境では1つのソースコードでARMとx86の2つのプラットフォーム向けのアプリケーションを開発できるようにして、コンパイルで2つのターゲットに向けた2種類のバイナリを同時に生成することが考えれる。この場合、開発自体はx86マシンで行うことになるが、動作検証のためのARMエミュレータが同時に提供されるだろう。これは現行のWindows Phone 7と同様だ。

 問題はアプリケーションの配付形態で、前述のようにWindows 8がアプリストアを導入するのであれば、オンライン購入時にターゲットデバイスに適したバイナリがダウンロードできるようにすればいい。DVDのようなディスクメディアの配布であれば、2種類のバイナリが1枚のディスクに収録され、インストールで適切なバイナリが導入されるというユニバーサルバイナリの仕組みになる可能性がある。

 ただ、台湾で開催された6月のパートナーイベントであった「すべてのアプリケーションはHTML5で記述される」という発言に注意する必要がある。Officeを含むすべてのアプリケーションがHTML5を採用する可能性は低いと考えたいが、「共通コードで複数デバイスをターゲット」という目的を優先させる場合、HTML5も選択となりえる。そうなると、アプリケーションの種類や配布形態によって、ハイブリッドに環境が使い分けられるようになると考えられる。

 さらに、ARMによる“PC版”ベースアプリケーションのサポートとの関連で、ネイティブコード生成においてもどこまで従来のハードウェア環境がサポートされるのかという点が問題になる。具体的には「ARM向けのWin32コードが記述できるのか」といったものだ。従来のWin32で動くことを前提としたアプリケーションがあったとして、ソースコードをリコンパイルするだけでそのままARMで動くのかという点がここでポイントになる。

 ARMのパフォーマンスが低いこともさることながら、搭載するメモリもPCと比べて少ない。現状のスマートフォンに搭載されたARMがシングルコアで1GHz駆動、搭載するシステムメモリの容量が256〜512Mバイト程度、ハイエンドモデルでも1〜1.5GHz駆動のデュアルコアでシステムメモリが1Gバイト搭載であることを考えれば、その動作環境はWindows XP時代の初期に近い。

 Windows 8の登場時期が2012年後半であり、そのころにはクアッドコア搭載やDirectX 11サポートが標準になったARM Cortex-A15世代が登場して、パフォーマンスやリソースの問題がある程度解決する可能性もある。だが基本的には、PCより少ないリソースで、“PC版”ベースのアプリケーションをどこまで動作できるのか、あるいは、できないのかが、BUILDに参加する開発者が最も注目する情報になるだろう。

 いずれにせよ、この違いすぎるハードウェア環境を意識したプログラミングが、Windows 8時代の開発者には求められるはずだ。

Copyright © ITmedia, Inc. All Rights Reserved.

アクセストップ10

2024年04月16日 更新
  1. 「JBL Tune 310C USB」レビュー USB Type-C接続×ハイレゾ対応でAndroidスマホやiPhone 15シリーズにもお勧め! (2024年04月15日)
  2. Amazonのタイムセールが「スマイル SALE」に変更 4月19日からゴールデンウィークセール開催 (2024年04月13日)
  3. アキバでは散りはじめた桜 それでも桜デザインが注目を集める理由 (2024年04月15日)
  4. Googleが生成AI向け独自CPU「Google Axion」プロセッサを発表/Intel N100を採用した超小型コンピューティングモジュール「LattePanda Mu」 (2024年04月14日)
  5. Synology「BeeStation」はNASより便利な一面も 家族の“秘密”も守れるストレージ、共有リンクや写真管理もある (2024年04月16日)
  6. これを待ってた! ロープロ版GeForce RTX 4060搭載カードがASUSから登場! (2024年04月13日)
  7. 玄人志向、M.2 NVMe SSDを2枚装着可能なUSB外付けスタンド クローン作成も可能 (2024年04月15日)
  8. 自宅の「スマートロック」にありがちな誤解 家から締め出されないために心掛けている実践的な5つのこと (2024年04月12日)
  9. 8コア16スレッドのRyzen 9 7940HS×Radeon 780M搭載! 片手で握れるミニデスクトップPC「GEEKOM A7」の“強さ”をチェック! (2024年04月10日)
  10. 「SwitchBot ハブ2」と「ハブミニ(Matter対応)」のMatter機能がアップデート 多くの同社製デバイスがホームアプリで操作可能に (2024年04月13日)
最新トピックスPR

過去記事カレンダー