質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.13%

カーネルとGUIについて

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 1,511

strike1217

score 583

2点質問がございます。
1、Linux カーネルはGNUのライブラリに依存しています。
つまり、Linuxカーネルの制作はGNUを使用していますよね??
では、WindowsはWin32(windows.hなど)を使用してカーネルを組立ているということで、合っていますか??

2、GUIには必ず ”ウィンドウ” がありますよね??
これはどのようにして作っているのでしょうか??
ウィンドウの画像がどこかに保存されていて、それをVRAMに書き込んで表示させているのですか??
ではそのウィンドウの画像はどこにあるのでしょうか??
それともRGBを指定してドット単位から作っているのでしょうか??

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

+1

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/14 12:46

    なるほど!
    バージョンによって異なる場合があるということですね!
    有難うございます!

    キャンセル

checkベストアンサー

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/14 12:48

    昔はドットでやっていたんですね!
    今はウィンドウの画像を持っているということですね!
    ありがとうございます!!

    キャンセル

0

>2、GUIには必ず ”ウィンドウ” がありますよね??
>これはどのようにして作っているのでしょうか??
>ウィンドウの画像がどこかに保存されていて、それをVRAMに書き込んで表示させているのですか??
>ではそのウィンドウの画像はどこにあるのでしょうか??
>それともRGBを指定してドット単位から作っているのでしょうか?? 

特に画像があるわけではなく、描画を行いWindowを表示しています。

本を紹介します。

30日でできる!OS自作入門

たぶん、この本に知りたいことがのっていると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.13%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る