ブログ「サイバー少年」

ブログ「サイバー少年」へようこそ!
小学六年生ごろからプログラミングを趣味にしている高校生のブログです。
勉強したことについての記事などを書いています。フリーソフトも制作、公開しています。
(当ブログについて詳しくは「ブログ概要紹介」を参照)

サイバー少年が作ったフリーソフトは「サイバー少年の作品展示場」へ

ARM用Windowsは作らないのか

Windows RTでは既存のアプリケーションが動作しません。

ストアアプリしか動作しないのです。

なぜなら、Windows RTが動作するARMアーキテクチャはx86アーキテクチャとの互換性がないため、
x86アーキテクチャ用にコンパイルされている既存のアプリケーションは動かないのです。




・Windows RTについて


ではアプリケーションをARM用にコンパイルすればWindows RTでも動くではないかと思いますが、違うようです。

しかし、現在のARM用Windowsと言えるWindows RTには、x86用Windowsと同等の機能が搭載されていません。

そのため、全てのアプリケーションが動作しないわけではないでしょうけど、動作するアプリケーションは限られてくるでしょうね。


なんで同等の機能を搭載しないのかは分かりませんが、推測ではWindows RTは軽量性重視で作っているんじゃないかなと思います。

たしかにx86用のWindowsはデカいです。
(Windows RTは軽量なのかというと、調べていませんが)



じゃあ、ARM用のWindows(Windows RT)では既存のアプリケーションを動かせないまま、

「完全なWindowsをモバイル機に搭載したいなら、Intel Atomを使ってね」、というのはもったいないと思うのです。


今やほとんどのモバイル機器がARMアーキテクチャで作られています。

AtomがARMアーキテクチャの諸CPUに比べ劣っているのかは、私には分かりませんが、

少なくともARMアーキテクチャのCPUは無視できない存在でしょう。


つまり、何が言いたいのかというと、MSにはx86用のWindowsと同等の機能を持つARM用のWindowsを作ってほしいのです。

Intel Atomの存在意義が崩壊するのは、まぁ良いとして…。


しかし前述したように、Windowsに比べてWindows RTが機能削減されている理由にはOSの軽量化があると思うのです。

確かにそれも捨てがたいと思います。

そこでこんなふうにすれば良いんじゃないでしょうか。


Windows Phone OS
Windows RT
Windows(x86)

Windows RTとPhoneは統合でいいでしょう。

Windows Mobile(RTとPhone)
Windows(x86)
Windows(ARM)

こういうラインナップです。

OSの軽量化方面はWindows Mobileに担わせて、ARM用Windowsも機能をフルにするわけです。

こうなることを望んでいる人は多いのではないでしょうか。


とにかく、Windows RTは…要らないと思うんですよ。




・ネイティブアプリケーションとARM

ここからは仮にARM用Windowsが発売されたときの、個人的な理想のWindowsのありかたを書いていきます。


機械語ネイティブなアプリケーションはARMでは動作しません。

そのため、ネイティブアプリケーションはx86用、x64用、ARM用の3つを公開すれば幸せになれると思います。

まぁ、コンパイラのWindows向けコンパイルにARM対応をさせる必要はありますね。


既存のアプリケーションをわざわざARM対応させるために再コンパイルするのは面倒というのはあります。

Linuxとかはこのためにソースコードで配布して、各自でコンパイルする、という方式をとっているわけですね。


ただ、Windowsはバイナリ配布でやっているので、面倒な再コンパイルは免れられないですね。

他に方法といえば、x86用のバイナリを逆コンパイルして、ARM用にコンパイルするという方法がありますか…。

ただ、企業などはソースコードを見られたくないでしょうから、あまり現実的ではないです。


やはり再コンパイルするしかないと思います。

古いアプリケーションでは開発者がサポートを打ち切っていて、ARM用が存在しないということにもなると思います。




・CLIアプリケーションとARM

CLI、.NET Framework用に作られたアプリケーションなら、ネイティブアプリケーションのような問題は発生しません。

ARM用のCLRさえ作ればいいのです。
(ライブラリ群にネイティブで実装しているものがあるならそれも)

CLRはC++等で書かれているでしょうから、そのプログラムをARM用にコンパイルすればいいだけですね。


というか実際すでにやっていて、Windows RTにはARM用の.NET Frameworkが搭載されています。

しかし、軽量化のためなのか、CLRと一部のライブラリしか搭載されておらず、
機能不足で.NET Framework用のアプリケーションは動作しないみたいですね。

ここらへんを詳しく話すと、WinRTというAPIがあったりするようですが、そこは検索してください。

なんでこんな中途半端なことをしたんでしょうかね~。


ネイティブアプリケーションは動かないにしても、
せめて.NET Frameworkアプリケーションは動いてほしかったんですけどね。

もしかしたら将来的に“Windows RT”という形のまま、.NET Frameworkアプリケーションに動作対応するのかもしれません。


ちなみに、もし対応したとして、とても小さな問題が一つあります。

.NET Framework用にアプリケーションを作成しても生成されるのはEXEファイルです。

このEXEファイルは中にデータとしてILコード等をラップしていて、さらに


・必要とされているバージョンの.NET Frameworkがインストールされていなかったらインストールさせる。

・ILコード等のCLI用のデータをCLIに渡す。


といった僅かなネイティブコードが含まれています。


ここが問題です。
このネイティブコードがARMでは動きません(多分)

なのでもう、EXEファイルのラップはやめて、JavaのJARファイルみたいにすればいいと思うんです。


まぁ、もしARMで.NET Framework用のアプリケーションが動くようになったら、の話ですけどね。




ARM用Windowsはまだしも、ARM用.NET Frameworkの作成はそれほど手間が掛かりそうにありません。


それなのに、なぜMicrosoftはARMに進出したがらないのでしょうかね。

MSはどんな方針なのだろうか…。

tag:

コメント

RE:小遣い帳ソフトのプログラムの行数!

千行プログラムすごいですね~
もちろん受託なら一行から対価があるわけですが
何気なく作ったプログラムでも、3~4000を超えるものは、何かしらお金になる、って言われてますね(シェアウェア化の目安もこの辺りと思います)

そのままソフトをWindows RTに持ってきた時の対応については、API単位で対応/非対応が異なるようです。MSDNに個別に記載があります

フリープログラマの報酬の基準となる、公平な単位…ですか。さすがサイバーさん考えることがスゴイっすねぇ。。。
現状はサラリーマンの収入を5ぐらいとすると、フリーランスは2~3辺りに大量に集まってて、極小数40~1000(それ以上も)ぐらい稼ぐのがいる感じですね。上に入れるという自信があるなら、フリーランスは最高です

  • 2014/02/07(金) 22:28:10 |
  • URL |
  • ポケモンYZ #-
  • [ 編集 ]

Re: RE:小遣い帳ソフトのプログラムの行数!

(コメントタイトルにRE: は要りませんのでよろしくお願いします。)

3000から4000行ですか~。
やはり稼ぐとなると難しいですね。

Windows RTでは従来のソフトは動きませんが、.NETアプリなんかは「いつでも対応できるぜ!」と言ってそうな印象です。

フリープログラマの作業量の公平な単位があればいいんですが…ないんですよね。

コメントの投稿

トラックバック

トラックバック URL
http://cyberboy6.blog.fc2.com/tb.php/323-777e24e0
この記事にトラックバックする(FC2ブログユーザー)

当ブログをご利用(閲覧等)になる場合は必ず「当ブログの利用規定」をお守りください。