2点質問がございます。
1、Linux カーネルはGNUのライブラリに依存しています。
つまり、Linuxカーネルの制作はGNUを使用していますよね??
では、WindowsはWin32(windows.hなど)を使用してカーネルを組立ているということで、合っていますか??
2、GUIには必ず ”ウィンドウ” がありますよね??
これはどのようにして作っているのでしょうか??
ウィンドウの画像がどこかに保存されていて、それをVRAMに書き込んで表示させているのですか??
ではそのウィンドウの画像はどこにあるのでしょうか??
それともRGBを指定してドット単位から作っているのでしょうか??
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
Windows において Win32/Win64は、ユーザモードのプログラムのためにWinsowsが提供している機能(API)の1つであり、カーネル本体も含め、カーネルモードで動作するドライバ群などは基本的にWin32/Win64には依存しません。
カーネルモードドライバなどの開発にはWindowsSDK(windows.hなど)ではなく、WindowsDDK(Ntddk.hなど)といった別のライブラリ群(開発キット)を使用する事になります。
WindowsOSのカーネルについて詳しく知りたいのであれば、
インサイドWindows
がおすすめです。
古いバージョンですが、下記サイトで一部の内容が参照できます。
http://www.atmarkit.co.jp/fwin2k/bookpreview/insidewin4/insidewin4_04.html
ウィンドウの画像ががどこかに保存されていてるかどうかは、Windowsにおいても、ウィンドウ表示に使用している機能、OSのバージョンによって、状況は変わります。
技術的に最も古いGDIの機能によるウィドウ表示では、ウィンドウの表示内容は基本的に保存されていません。ウィンドウが裏に隠れたりすれば、その画像情報は破棄され(アプリが自前の実装で保存しておくとかしない限り)、そのウィンドウが前面に表示された時に、OSからアプリのプログラムに対して、ウィンドウ内容を再描画しろという指示が毎回発行されます。(昔のメモリが潤沢に使えないPCのOSとしては、ウィンドウの表示画像情報をすべて保管しておくなんて事は出来なかったので、当然の仕様と言えます)
一方、大容量のビデオメモリを搭載したDirectX対応カードなどが標準的になった現在では、この辺の事情は変わってきて、ウィンドウ描画処理の高速化や省電力化(無駄な再描画処理でCPUパワーを消費しないために)ウィンドウの描画内容をメモリ内に保存するといったこともしています。
この辺は、同じGDIという機能を使っていても、OSのバージョンが変われば内部の処理方法も変化してきています。
WindowsOSのバージョンによる、OS内部での制御方法の遷移などは、下記サイトなどが参考になります。
http://jehupc.exblog.jp/11464034/
投稿2016/07/13 08:12
総合スコア344
0
2、GUIには必ず ”ウィンドウ” がありますよね??
これはどのようにして作っているのでしょうか??
ウィンドウの画像がどこかに保存されていて、それをVRAMに書き込んで表示させているのですか??
ではそのウィンドウの画像はどこにあるのでしょうか??
それともRGBを指定してドット単位から作っているのでしょうか??
特に画像があるわけではなく、描画を行いWindowを表示しています。
本を紹介します。
30日でできる!OS自作入門
たぶん、この本に知りたいことがのっていると思います。
投稿2016/08/08 13:58
総合スコア338
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ベストアンサー
概念的な大まかなお答えになりますが、お許しを
Linuxカーネルは、あのライナスさんが作成された、主にハードウエアと接点の処理を行うソフトウエアです。
PCマシン上に構築しました。UNIXマシンのハードは高価な時代でした。
これらにUNIXエンジニア達が、自分の作業に都合よくUNIXからライブラリを移植し多くがライセンスをGNUとなりました。
GNUライセンスで良いものが集まる事になります。同時にインターネットで世界が繋がった次期と重なった
事もLinuxは幸運でした。
Windowsは一企業(MS)が作成したものです、もともとIBMがPCを重要視せずにハード仕様を
オープンにした事が世界中のハード企業が参加でき拡大しました。その頃GUIと言えばMAC(アップル)で
したのでwindows+PCで対抗する形になりました。
windowsもハードウエアとの接点はドライバソフトが担当しています。
windowsもこれらを制御するLinuxカーネルと同じ構成要素を持っています。
ここからはインラインで
>1、Linux カーネルはGNUのライブラリに依存しています。
-->共存しているかな
>つまり、Linuxカーネルの制作はGNUを使用していますよね??
-->Linuxカーネルは新しいデバイスへの対応に重きを置いています。
>では、WindowsはWin32(windows.hなど)を使用してカーネルを組立ているということで、合っていま>すか??
-->カーネルの役割として組み立てられています。
2、GUIには必ず ”ウィンドウ” がありますよね??
-->UIがグラフィックと言う意味で現在のヒューマンインターフェイスは、この形が主流です。未来は違うものになるでしょう。
これはどのようにして作っているのでしょうか??
ウィンドウの画像がどこかに保存されていて、それをVRAMに書き込んで表示させているのですか??
-->まさにその通りです、昔は、画面の位ドットでプログラムしてました。今は豊富なライブラリ郡を
利用してゲーム等のソフトが作成されています。
ではそのウィンドウの画像はどこにあるのでしょうか??
-->メモリ上に有ります。
それともRGBを指定してドット単位から作っているのでしょうか??
-->色も大きさも形も動きも含めてグラフィックライブラリ郡を呼ぶだけで画面上に実現してくれます。
以上です。
投稿2016/07/13 09:04
総合スコア4070
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/14 03:46