ARM版Windows 10の制約とは? 63
ストーリー by hylom
驚きはない 部門より
驚きはない 部門より
headless曰く、
MicrosoftがARM版Windows 10の制約を解説するドキュメントを公開した。その後ドキュメントは削除されたが、Internet Archiveにスナップショットが保存されている(Neowin、The Verge、Register)。
リストアップされていた制約は以下のようなものだ。
- 使用できるドライバーはARM64版のみ
- x64アプリは動作しない
- OpenGL 1.1以降またはOpenGLのハードウェアアクセラレーションを使用するアプリは動作しない
- 「アンチチート」ドライバーに依存するゲームは非サポート
- ネイティブOSコンポーネントから非ネイティブコンポーネントを呼び出すことはできないため、x86版のIMEやユーザー支援技術、シェル拡張などは動作しない
- モバイル版Windowsデバイスを想定したARMアプリは正常に動作しない可能性がある
- Hyper-Vを使用するバーチャルマシンは動作しない
現在、同URLへアクセスすると、「Troubleshooting x86 desktop apps」というドキュメントへリダイレクトされる。内容としては似通っているが、制約をメインにしたものからx86アプリの問題解決をメインにしたものに変更されている。
エミュレーションと割り切る分には (スコア:0)
何も問題ないでしょう、x86でもx64でもないんだから。
Re: (スコア:0)
ARM64版シェル拡張がx86アプリでも動作するなら良いのですが
Re: (スコア:0)
x64版シェル拡張がx86アプリでも動作するなら良いのですが
と言ってるようなものだな
Re:エミュレーションと割り切る分には (スコア:1)
x64ならx86とx64の両方のシェル拡張を入れれば問題ありませんが、x86版のシェル拡張が動作しないというのであればx86アプリにシェル拡張を提供する手段がないのではないかという事です
Re: (スコア:0)
x86アプリからはx86版としてインストールされてるシェル拡張しか呼び出せない
という認識なんだけど、x86版シェル拡張(やIME)のインストール自体もできないのかな
だろうね、という内容 (スコア:0)
使用できるドライバーはARM64版のみ
x64版でもそうでしたよね?
x64アプリは動作しない
去年発表済み
OpenGL 1.1以降またはOpenGLのハードウェアアクセラレーションを使用するアプリは動作しない
モバイル環境でOpenGL使うアプリなんか使いたいものか?
「アンチチート」ドライバーに依存するゲームは非サポート
使ってるゲームあんのかな、あれ
ネイティブOSコンポーネントから非ネイティブコンポーネントを呼び出すことはできないため、x86版のIMEやユーザー支援技術、シェル拡張などは動作しない
x64版でもそうでしたよね?
モバイル版Windowsデバイスを想定したARMアプリは正常に動作しない可能性がある
Windows 10 IoTに興味ない方面からすればArm版=Mobileだったから仕方ない
Hyper-Vを使用するバーチャルマシンは動作しない
CPUエミュレーターではないHyper-Vで何動かす気?
Re:だろうね、という内容 (スコア:1)
これは結構致命的かも知れないよ。
最近は何気ないアプリまでGPU支援を使って動作負荷の低減や高速描画やってるようなのあるし。ブラウザとかもそう。ゲームなんかもそうだし。
互換モード持っているだろうから動作しないと言うことは少ないかも知れないけど、バッテリーの持ちが悪くなるとかそう言う事は起きそう。
Re: (スコア:0)
それOpenGL使ってるの?
Re:だろうね、という内容 (スコア:1)
新しいアプリがVirtualBoxで表示が壊れることが増えたよ。
描画性能とかそんなの関係なく普通の処理として使うのが増えた。
MAGIXだと2016年版あたりから多くのソフトがそう。
音楽系のアプリなんで画面周りは大して必要じゃないんだが。
Cyberlinkのソフトも2年ぐらい前から多くのソフトがそうだし
Corelのそんな感じ。
ちょっとソフトを評価するのがとても面倒になった。
VMware無料版はスナップショット周りをフリーソフトに頼るしかないし。
無いよりましとはいえ使い勝手が格段に落ちるんだよな。
Re: (スコア:0)
それはそもそもスナドラ835程度のプロセッサ積んだPCで走らせるソフトウェアじゃないんじゃないですかね
Re: (スコア:0)
ちょっとしたメディアプレーヤー程度でも引っかかるのだけど。
そんなソフトすら使えない環境って何の役に立つの?
あと835って3Dゲームが結構普通に動く手持ちのandroidタブより何倍も3D性能いいぞ。
宝の餅が腐りすぎだろう。
Re: (スコア:0)
それOpenGL使ってるの?Direct2DやらDirect3Dではなく?
Re: (スコア:0)
WebGL って OpenGL ES なので OpenGL 1.1 は関係ないんじゃないかな…?
モバイルプロセッサで OpenGL ES が使えないということはありえないので普通にアクセラレーション聞くと思いますよ?
Re: (スコア:0)
WindowsでOpenGL ESがネイティブで動く事を期待してるアプリは無いと思いますよ。
ちなみにChromeやFirefoxの初期のWebGLサポートはWebGLはESでないOpenGLで動いてましたが、Intelとかの内臓GPUのOpenGLサポートが酷いため、Direct3DでOpenGLESをエミュレーションするANGLEに変りました。
IEとEdgeは自前のGLES互換レイヤーを持ってるみたいですが、EdgeはANGLEに変わりそう。
だから、Direct3Dがx86エミュレーションでも動けば問題無いと思いますが、制限に書かれてないのでおそらく動くのでしょう。
Re: (スコア:0)
ブラウザの話はWebGLの話じゃなくて、普通のサイトの描画とかをGPU支援使ってやってるはず。そんで、クロスプラットフォームを意識している奴は、OpenGL系をデフォで使うんじゃないか。昔はWindowsが最初のターゲットだったけど、今はスマフォだし。アプリはWindowsしかなくても、使われている開発環境とか、ライブラリとかが引っかかったりとか。
もちろん(ちゃんと作ってあれば)無くても動くはずだけど、パフォーマンスが落ちる。
Re: (スコア:0)
そういうのはANGLE使ってるでしょ
Re: (スコア:0)
MicrosoftがOSとしてサポートしているOpenGLは1.1までで、それより新しいのはサードパーティーのドライバーが必要だからこれ実は最初のやつのバリエーションな気がする。ARM64用のOpenGLドライバー開発がそもそもできないのかもしれないけど。
用途によってはANGLEが使えるかもしれない(ARM64で動くのか知らんが)
Re: (スコア:0)
1) 32bit Windows原理主義者が不満を抱いても、それについては無視する、という意味
2) 同上
3) Minecraftのデスクトップ版はJava+OpenGLだが、これも無視するという意味(現行のストアアプリ版は問題ない)
4) 基本無料の日中韓ネトゲ、一部の日本製ゲームでは効果に関わらず上必須となっていて、一種の死刑宣告になりうる
5) まあ妥当
6) まあ妥当
7) Android Emulator、Docker for Windowsなどが動かなくなる
全体的に「x86_64に深く依存するものは動かない」ということと「x86_64で許していたようなマルウェア的動作について、
ARM版では必ずしもサポートせず、特別対応も行わない」という二点辺りを改めて明確化したものという印象があるかな。
実際にこれで対応方法を知るというより方針を周知するのが目的ではないだろうか。
ネイティブOSコンポーネント?? (スコア:0)
頭が切り替わってなかった。ARMがネイティブで、x86が非ネイティブ。
で、ソースを見るとシェルエクステンション関連(右クリックメニューや、エクスプローラーのアイコンまで??)アクセスできなくなるから、それ系統のアプリは動作しないと。
多機能な圧縮解凍ソフト、git用のGUIツールなども動作しなくなる感じかな。
挙げられた中では一番大きな制約かも。
Re: (スコア:0)
本当に需要があればARM用に開発するんでないの?
Re: (スコア:0)
対処方法を見たかんじでは、ほとんどが「ARM用にコンパイルし直して」みたいだね。
よほど変なことしてない限りソースレベルやAPIレベルで互換が取れているんじゃないかな。
以前ストーリーにあった非公開APIを使用しているようなやつとか、もしかしたらAPIが廃止や非推奨のものとかは無理かも。
Re: (スコア:0)
ビルドし直さなくて動く!っていうのが売りなのに・・・
Re:ネイティブOSコンポーネント?? (スコア:1)
32bitWindowsと64bitWindowsのときとまったく同じ制限なので文句言い出すのが15年ぐらい遅かったですね
Re: (スコア:0)
32/64でもここまでの制限なかった記憶あるけどなぁ。シェル系使ってもx86ビルドで動かなくて困ることないし。そりゃドライバとか当然ダメだけどさ。
Re: (スコア:0)
64bit版Windowsに32bit版Windows用のシェル拡張系のアプリ入れたら動かないとかいっぱいあったじゃん
Re: (スコア:0)
シェル拡張系の、32bitと64bit はいまでも互換ないよ。
両方のバイナリが必要。
そもそもCOMのレベルで別々なのだから、両方で動く単一バイナリは実装不可能
両方サポートするやつは、両方のバイナリ用意するか、32bit版を提供して、Proxy になるだけの64bit版バイナリ用意する。
Re: (スコア:0)
シェル拡張系はx86のWindowsからx64になったときでも動かないのとかあったし、
有名どころはコンパイルし直したビルドがすぐ出てくるんじゃないかな
結局誰得なんだろう (スコア:0)
個人的な印象で申し訳ないが
・Windows成功の大きな要因はソフトウェアの互換性
・マイクロソフトがPC以外のデバイスに手を出すと失敗する
と思ってるので成功する気がしない
Re:結局誰得なんだろう (スコア:2, すばらしい洞察)
個人的な印象で申し訳ないが
・Windows成功の大きな要因はソフトウェアの互換性
・マイクロソフトがPC以外のデバイスに手を出すと失敗する
と思ってるので成功する気がしない
MSの出してたマウスやらキーボード、各種ゲーム用のコントローラみたいなデバイスは失敗してるようには見えないのですが...
Re: (スコア:0)
物事には例外というものが大抵あります
Re: (スコア:0)
例外デカすぎだろw
Re: (スコア:0)
言葉足らずでしたね
「PC以外のデバイス用のOS」です
ゲーム機が現役でそれなりに成功してるし
結構前からPOSレジとかATMとか電光掲示板も中身がPCっぽいので的外れな印象かもしれませんが
WindowsCE前後あたりの印象が強くて
Re: (スコア:0)
WindowsCEは他のハンドヘルド機がほとんど存在しないから成功の部類じゃない?
WindowsPhoneになって駄目になったけど。
Re: (スコア:0)
.NET Frameworkへの移行も進んできたし、ビジネスアプリの互換性という点ではARM版もそれなりに需要あるんじゃないだろうか。
というかWindows10 IoT CoreとかARMでもちゃんと動くしね。
Re:結局誰得なんだろう (スコア:1)
.NETで書かれているクライアント側のアプリってどんだけ広く使われてるの?
個人的には.NETアプリなんて2-3度しか見たことないが、ぱっと見ただけじゃ分からんので知らんところで浸透しているのかもしれない。
Re:結局誰得なんだろう (スコア:1)
.NET はOSにランタイムがプリインストールされてるけど、VisualC++は、ユーザーが後からインストールが必要。
開発してるPCだと、どうせVCランタイム入るから気にならんけど、アプリインストールになんらかのランタイムの追加を求められないものは、一部の例外のぞいて全部.NETアプリってことですよ。
Qtみたいにアプリとランタイムを一緒に配布しちゃうのもあるから全てじゃないけど。
Re:結局誰得なんだろう (スコア:1)
Win95の時代から存在しているような老舗ソフトは.NETに移行できずに旧式の技術で作られている可能性が高いが、
Vista, 7あたりから出てきたようなものはほぼ.NET製と考えていいだろう。
今はmacOSやLinuxで動く.NET(.NET Core)が存在するし、今後はWindows専用の.NETよりもマルチプラットフォームの.NET Coreに開発リソースを割いていく方針。
Re: (スコア:0)
ただ、.NETでアプリを作っても、結局Win32を呼ばざるを得ないことが多々あるので、一部の実装をC++に頼ったりすることはありますね。
(サウンドがらみとか、.NET上の実装がヘボすぎて……)
そういう意味で、x86エミュレーションが乗っているのは助かるのかも。
Re: (スコア:0)
画面周りのマルチはまだ.NETは満足に使えるレベルのはないから
(ゲームならUnityがあるけど)
市販でマルチOSのはC++のフルスクラッチかQTだね。ほぼ。
仮面も含めたマルチOSが.NETで楽になれば最高なんだけどね。
Re: (スコア:0)
visual studio自体もC#の割合増えてるらしいよ。excelもそうだって聞いた。
Re: (スコア:0)
MS純正品を除けば、Java同様に業務用の方が多いからオフィスワーカーじゃなきゃそう見かけないでしょ
Re: (スコア:0)
.NETアプリ自体は結構あるけど
下位レイヤーがネイティブなのも少なくないので
ARM環境にそのまま適応できるのはそう多くないかもね。
Re: (スコア:0)
ハンディターミナルみたいな奴とか。
MS以外だとRFCやIEEEにある用語まで独自の意味定義してて会話が成立しない(-_-#)とか。
ある関数をリファレンスにあるパラメーター仕様どおりに渡すとエラーとか記載無い値渡さんとダメ(-_-#)とか。
マジでふざけたレベルでブチ切れたから。
Re: (スコア:0)
ここ数年の市販ソフトは半分以上.NETになってるよ。
見た目的には区別できないので、見たことないというより、気づいてないってことですよ。
Re: (スコア:0)
Visual Studioでさえ.NET化できたんだから簡単にできるはずなのにねぇ
Re:結局誰得なんだろう (スコア:1)
Officeは今でもマクロやVBAによる制御などが使われているため、互換性維持のために.NET化できないアプリの代表格だと思う
うじゃうじゃ
Re:結局誰得なんだろう (スコア:1)
弥生会計 [yayoi-kk.co.jp]のデスクトップアプリ版とか、ノートン ユーティリティーズ [norton.com]とか、あるいはFileMaker ProのWindows版 [filemaker.com]とか、.NET Framework版になってますが。
Re: (スコア:0)
ぱっと見ただけじゃ分からんので知らんところで浸透しているのだよ
システム屋の話だとしても、そういう仕事が無い(できる技術者がいない)会社しか知らないだけ
Re: (スコア:0)
今世に出ていて最近まで更新されているソフトの7~8割ぐらいは.NET製だろ。
Re: (スコア:0)
>Windows成功の大きな要因はソフトウェアの互換性
これは時間が経つにつれて評価されてきた内容だからな。
今回のも成功するか否かは「MSがいつまで我慢できるか」に掛かってる気がする。