回答受付が終了しました

ID非公開

2021/10/14 7:46

55回答

WindowsのプログラムはなぜMacやLinuxなどの上でそのまま動作しないのでしょうか? どこにその差異が生じるのでしょうか?

回答(5件)

1

雑にいえば、日本では日本語の手紙がよめるけど、英語の手紙が読めない! みたいな話ですよ。 仮に、マルチリンガルな人はいないとして。 OSが違えば、そこで使われる話し言葉がそもそも違うって話です。 でも、共通に動くものあるじゃん?ってのは、OSの上で動いている動作環境が、頑張って、そのまま動くようにしてくれています。 また、日本でも、翻訳機を通せば、英語の手紙もよめるよね?ってことで、仮想化技術とかが使われ、そこが、翻訳機的な中間の処理をしてくれて、動くケースもあります。 なんか、Windows11では、Linux系であるAndroidのアプリが動くらしい。 たぶん、OSレベルで翻訳機があるのでしょう。しらんけど。

1人がナイス!しています

0

CPUは同一だと仮定して、まず実行ファイルのフォーマットの違いがあります。次に、プログラムにリンクされているシステムライブラリがそれぞれのOSに依存しているからです。 ネイティブプログラムでないインタプリタ形式のプログラムやJava、.Netなどの仮想マシン上で動くプログラムは、同一のプログラムを複数OSで動かすことができます。

0

プログラムはそのプログラムだけで動いている訳では無く、OS側のプログラムも使って動いています、OS側のプログラムの使い方がOS毎に異なる為、OSが異なると動かない訳です。因みに、C#やJavaはOS上では無く仮想マシンソフト上で動かしているので、同じプログラムが別OSでも動くように作れます、又、インタプリタ言語はインタプリタソフトをOS毎で作って有るので、やはり同じプログラムを別OS上でもそのまま動かせます。

1

画面の操作やディスクなどの入出力、その他いろいろとWindowsの機能を使っているからです。 例えば、役所で住民票を発行してもらうことを考えましょう。 どんな自治体でも住民票を発行はしてもらえますが、自治体ごとに、依頼の用紙も違えば記入項目も多少違う(住民票ぐらいだとほとんど一緒かな?)、ハンコが要るところもあるかも知れません。当然ながら、役所の建物はそれぞれ違っていて、書類をもらう場所、提出する場所もちがうでしょう。 もちろん、発行された住民票も、書いてある内容はほぼ一緒とはいえ、書式などは自治体によって異なるでしょう。 そんなように、例えば画面に'A'という文字を表示するにもプログラム側が「'A'という文字を表示して」と依頼する手順や付加するデータがWindowsとMacとLinuxではそれぞれ異なっているのです。 (もちろん、やることが同じなら概ね似たような手順で、必要なデータも同じようなものになるでしょうが)

1人がナイス!しています