以前、よくwin32 APIを使用してGUIを作っていたんですが、このライブラリはwindows に依存しています。
GUIなどのシェルは、OSに依存しているものなのでしょうか??
win32 APIがwindows上でしか動かせないのはOSに依存しているからですよね。
GUIはシェルとして扱われると思います。
Linux では着せ替え人形のようにシェルを変えることができます。
システムコールなどはOSによって違いますが、アセンブリ言語レベルでの命令はCPUによって違います。
しかし**シェルとカーネルは別物です。**arch linux などは最初からGUIが入っているわけではないです。
シェルがカーネルに依存していないなら、どうして他の環境に移せないのでしょうか?
(windowsにしかないシステムコールがあるのかな?このシステムコールじゃないとGUIを使えないよ・・・と言うならOSに依存していることになりますが)
・・・GUIはあくまでシェルなので、OSに依存していると言えるのでしょうか?
標準ライブラリでGUIを作成するのは無理です。
(本当はできるのかな?)
なぜできなんですか?
例えば
Windows - win32 API
Mac OS - objective-C
Linux - GTK+
ライブラリはOSによって異なると言うよりそのGUIに採用されているアプリケーションによって異なるのではないでしょうか?
つまり、カーネルが着ているGUIを変えれば必然とライブラリも変わりますよね。
windows のネイティブGUIはwin32 APIを使用しています。
windowsのGUIシェルは剥ぎ取り、例えばLinuxが採用しているGUIをwindows着せればGUIのネイティブライブラリはwin32 APIではなくなるのでは?
(Linux のGUI はgnome, GTK+, X window systemなどなど)
もしかして、WindowsのGUIコンポーネントはカーネルと融合しているのでしょうか??
それだと、Windowsはシェルの着せ替えが出来ないことになりますよね。
独自のOSなので分からないですが・・・
GUIは他の環境に移せない・・・とよく言われますが(クロスプラットフォーム以外)
それは、OSが標準で採用しているGUIシステムの構成が異なるからですよね。
OSが標準で採用しているGUIシステムの構成を変えてしまえばよいのではないでしょうか?
windowsはブラックボックスで中身が分からないのですが・・・
分かる方いましたら教えて下さい。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/07/17 09:52
2017/07/17 10:01
2017/07/17 10:01
2017/07/17 10:02
2017/07/17 11:45
2017/07/17 12:13
2017/07/17 12:46
2017/07/17 12:56