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

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

新規登録して質問してみよう
ただいま回答率
85.48%
OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

Q&A

解決済

3回答

3305閲覧

カーネルとGUIについて

strike1217

総合スコア651

OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

0グッド

0クリップ

投稿2016/07/13 04:30

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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

KenjiToriumi

総合スコア344

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

strike1217

2016/07/14 03:46

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

0

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

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

本を紹介します。

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

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

投稿2016/08/08 13:58

ai_2013_dev

総合スコア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

A.Ichi

総合スコア4070

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

strike1217

2016/07/14 03:48

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問