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

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

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

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

Q&A

解決済

5回答

346閲覧

OSについての僕の理解が正しいか

TOOO

総合スコア40

OS

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

0グッド

1クリップ

投稿2019/03/20 10:28

気になっていること

最近、僕はハードウェアなどに興味を持っています。
その延長線上としてOSに出会い、興味を持ち始めました。
そこで、本を読んだりなどしてOSの理解を深めようと思ったのですが
僕の理解が正しいかわかりません。
僕の理解

OSはハードウェアとソフトウェアの仲立ちをするものであるから
ハードウェアのボタンを押したとき、画面がつくのも
OSだろう...
と考えています。
どうでしょうか。

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

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

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

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

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

KojiDoi

2019/03/20 10:43

ディスプレイの電源スイッチを押したときに画面が明るくなるのは、通電するからで、OSは特になにもしてないと思いますが。
scsi

2019/03/20 11:08

という事で理解は間違ってますね
Hideki0302

2019/03/20 11:38 編集

画面が明るくなるのは、接続されたパソコンから入力信号を受けたからつくのです。 ディスプレイの電源がつくのは、BIOSが入力信号を送信するのであって、OSではありません。
wwbQzhMkhhgEmhU

2019/03/20 11:44

■最初の画面について PCの場合、最初に出てくる画面はBIOSによるものです。 ブートの手順は必要であれば自分で調べてみてください。 ■OSの定義 OSの詳細な定義はWebならWikipediaが一番正解に近いと思いますが、それ以上の個人的な感覚を回答に求めているなら、そこに正解はありません。個人的な意見で言えば、あなたの言う、ハードウェアとソフトウェアの仲立ちというのが一番近いと思います。ただし、OSもソフトウェアなので、アプリケーションとハードウェアの仲立ちといった方がいいかもしれません。 ■OSの中身 PC上のOSであれば、基本的にOSはカーネル+デバイスドライバが合わさったものになっていることが多いです。原始的なOSであれば、デバイスドライバが分かれていないものもあると思います。今は仮想マシン上で自作OSを動かしたりということも比較的容易に出来るので、PC上で実際に作ってみようとするのが一番早いかもしれません。「自作OS」で検索するといくつか出てくると思います。興味があれば調べてみるといいと思います。
TOOO

2019/03/20 23:13

■最初の画面について ■OSの定義 についてなのですが、BIOSはハードウェアとOSをつなぐものなのでしょうか? BIOSについて調べてみたら、最も簡単な入出力(CPU, キーボードの起動などなど)をするものなのかなぁ と思いました。 ■OSの中身 はい、実はOSを自作しようっていう本を買おうと思っていて その前にOSについて理解しておこうかな と、思ったのです。ありがとうございました!
wwbQzhMkhhgEmhU

2019/03/21 03:51

> BIOSはハードウェアとOSをつなぐものなのでしょうか? おおよそ、そのためのモノだと思います。 自作OS頑張ってください。
TOOO

2019/03/23 12:58

はい!
guest

回答5

0

ベストアンサー

まず知っておいて欲しいことは、「OS はハードウェアとソフトウェアの仲立ちをするもの」というのは正確には誤りだということです。OSは、プログラム実行環境とアプリケーションプログラマの仲立ちをするものです。ハードウェアとソフトウェアの仲立ちをするのはどちらかといえばデバイスドライバの仕事で、OSには大抵の場合含まれるのは事実ですが、必須要素ではありません。

このあたりを理解するには、まずはマイコンボードのような、OSのない根源的なプログラム実行環境でアプリケーションを作る場合の話を理解する必要があります。

OSのないプログラム実行環境上でプログラムを動かすには、まずプログラム自身を読み込むメモリ領域を適切に設定し、プログラムを用意したメモリ領域上に読み込んで、プログラムカウンタ(これから読み込んで実行する命令が置かれたメモリ位置)を、読み込んだプログラムがあるメモリ領域の先頭に持っていく、というような処理が本題の処理の前に必要になってきます。

このあたりの処理は、プログラム単体だけを動作させればいいのであればただ上記のとおりにするだけでいいので簡単なのですが、不特定多数のプログラムを動かそうとなると話は変わってきます。他のプログラムに悪影響を及ぼさないように、及ぼされないようにするための調整を行う必要が出てきますし、各種デバイスを扱う場合にも、自身はもちろんとして、他のプログラムが利用中だったりしないかの確認も必要です。しかし、いちいちこのような部分を作るところから始めていると、本題となる部分(アプリケーション)を作り始める前に日が暮れてしまいますし、かといってあまり適当にやってしまうと、デバッグするにも他のプログラムに邪魔されていないかのチェックまで必要になったりして大変なことになっていきます。

ではどうすればいいのか?このようなプログラム間の利害関係を調整する仕組みを予め作っておき、その仕組みに沿って動作させるようにアプリケーションプログラムを書けばよいのです。この仕組みがOS=Operating Systemです。アプリケーションプログラマが、アプリケーション部分以外の余計なことをできるだけ考えなくて良くするための仕組みということです。

大事なことは、OS という言葉が指すのは、必ずしもプログラム(実体)に限ったものではなく、運用ルール(概念・規則)を含む広い意味でのソフトウェアだということです。上記のようなプログラム共存のための機能しか持たない非常に小さいOS もあれば、デバイスドライバの規格やGUI機能までを含む巨大なOSもありますが、どちらもOSであることに違いはありません。

投稿2019/03/21 01:10

himazin.blm

総合スコア581

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

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

0

OS => Operating System
Wiki Pediaによると、コンピュータのオペレーション(操作・運用・運転)を司るシステムソフトウェアである。 との事です。
確かに、電源を入れた時に、画面を表示する事も行ってますが、それは本質ではありません。(画面が無いシステムもある)
むちゃ怪しいですが、今さら聞けない!OSとは何か?〜基礎の基礎を学ぼう〜 とか、読まれる事をお勧めします。

まあ、いろんなアプリを動かす上で、ハードウェアとの仲介を行うプログラムと言えば、良いのかな、、と思いますが。

なお、時代によってOSの定義は変わります。昔、MSは、MS-DOSを OSを言っていました。 DOS = Disk Operating System ちょっと苦しい気もしましたが、そういう事になっているようです。


Wiki pediaにも細々と書いてありますが、
比較的、メジャーな Linuxは、Unixを元にしていますが、Unixは、Multics の否定から、生まれたとか。詳しくは知らないですが、OSとして、全てをカバーしようとしたらしいです。それに対し、Uni... シンプルを基本として、Unixが生まれた。更には、Mach なんて、メモリ管理まで、OSの外に出したOSまで作られました。(さすがに生き残っていないと思うが)
と、OSの定義で厳密な物は何かは無いのでは無いかと思います。
メモリ、CPU等のリソース管理とかを主に行うのがOSでは無いかと。狭い範囲で言えば、それらの管理は、Kernelと呼ばれる OSの中核部分で行われ、サポートツールまで含んだものが、OSで無いかと思います。

投稿2019/03/20 11:15

編集2019/03/21 11:17
pepperleaf

総合スコア6383

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

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

Hideki0302

2019/03/20 11:57

質問に関係ないですが、sejuku.netはオススメできないですよねw
pepperleaf

2019/03/20 12:12

おススメ出来ない気もしたのですが、今回の場合、厳密さよりも、見た目の派手さ(と検索上位)でリンクしてみました。前置きが長すぎて、肝心なところが少ないので、自分の調べものでは大抵、パスなんですが、、、今回はなぜか。
TOOO

2019/03/20 23:23

>コンピュータのオペレーション(操作・運用・運転)を司るシステムソフトウェアである。 オペレーティングシステムという名前ですからコンピュータのオペレーションを するなんて、情報量ゼロです... その点についいては、僕はハードウェアとソフトウェアを仲立ちするものだと 理解しています。
pepperleaf

2019/03/23 10:23 編集

今更ですが、 > ハードウェアとソフトウェアを仲立ちする 違います。 それをするのは、主に(今では)デバイスドライバの役割。
guest

0

回答というにはナンですが、
CQ出版社の雑誌Interfaceの5月号(3/25発売)の特集が「あなたの知らないモダンOSの世界」だそうで。WindowsだのLinuxだのしか知らない人にはちょっと違う世界かも。ボタンはともかく画面がなかったりするから...
出版社リンク

投稿2019/03/23 07:39

thkana

総合スコア7639

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

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

pepperleaf

2019/03/23 10:23

> Interfaceの5月号(3/25発売)の特集 最近、見る機会が減ったので、チェックして無かった。ただ、目次を見た限りでは買うまでの内容はなさそう。 > ボタンはともかく画面がなかったりするから... 元々は、ただの箱。昔の手足は、CRT端末(シリアル接続)だったり、カードリーダー、テープ、プリンタだったりと。(古いSF映画見ると、出てきますね) で、一部屋占めて、空調は必須。
thkana

2019/03/23 11:23

最近はInterfaceも随分「ライト」になった感がありますね。読むときもあまり気合を入れることがないです。 > 元々は OSってのがどの辺からか、というとまたひと論争になりそうな。それはともかく、昨今のWindowsやらMacしか知らない人のOSのイメージとは違うものを紹介したくての先のInterface誌ネタ振りです。
pepperleaf

2019/03/23 12:04

Interfaceの記事、目次を見る限り、Linuxにページを割いてますね。まあ、当然かもしれませんが、コアの部分、一緒なので、UIの違いしか無いような気がします。当事者にとっては大切かも知れませんが、OSの観点で見ると枝葉の部分みたいな気がします。(それで買う気がしない) 置いてある店、行ってみようかな、、、でもどこにあったか。
TOOO

2019/03/23 12:59

空調は必須... 昔は大変だったんですね...
thkana

2019/03/23 13:57

完全オフトピですけれど、大変だったと言えば先日の国立博物館の「日本を変えた千の技術展」に出てたHITAC5020。ラックの中がべったりと配線で、根の張った植木鉢の中みたいな。'日本を変えた千の技術展 HITAC5020'をキーに画像でググれば出てくると思いますけれど、例えばhttps://pbs.twimg.com/media/DxgvF6OU8AAJUJV.jpg とか。これを手で作ったんですよねぇ。私も68000のボード手配線で組んだことはありますけど...
guest

0

ここではLinuxを参考に考えます。

LinuxはあくまでハードウェアとOSをつなぐカーネルというもので、それ単体ではGUIはなく、いくつかのコマンドが使えるようになるだけです。
それにGUIやドライバーなどを追加したものがUbuntuなどのOSなのです。(別の言い方をすると。UbuntuなどのLinux系OSには、Linuxが内蔵されています。)

ちなみにWindowsのカーネルはMS-DOSというもので聞いたことがあると思います... たぶん...

電源ボタンを押した時
1.CPUなどが動きます
2.BIOSが起動します(この時、画面が付きます)
3.BIOSがHDD上のカーネルを実行します
4.カーネルがOSを起動します
5.GUIが表示されてパソコンの起動が完了します

投稿2019/03/20 11:26

Hideki0302

総合スコア41

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

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

Hideki0302

2019/03/20 11:32 編集

追記 ハードウェアの上にBIOSがあり、BIOSの上にカーネルがあり、 カーネルの上にOSがあり、 OSの上でアプリを動かします。 ソフトウェア(カーネルやOS、アプリなど)にも色々あるので、ひとつにまとめるとややこしい事になります。
pepperleaf

2019/03/20 12:13

BIOSは必須じゃないです。その時点で、MSのワナにはまってます。
dodox86

2019/03/20 18:47

> ちなみにWindowsのカーネルはMS-DOSというもので聞いたことがあると思います... たぶん... Windows NTベースの今のWindowsはMS-DOSはまったく関係ありません。関係するのはせいぜい90年代前半のWindows 3.1xまで。譲歩して2000年のWindows Me まで。それらも、稼働中のカーネルはMS-DOSではありません。(この辺はもうオッサン案件なので、区別つかないのは無理も無いことか。。。)
TOOO

2019/03/20 23:20

>LinuxはあくまでハードウェアとOSをつなぐカーネルというもの LinuxはOSではないんですか...? 僕は、Unix系のLinix系のUbuntuだと思っていました。
Zuishin

2019/03/21 00:04

カーネルは OS の一部です。
TOOO

2019/03/21 00:05

はい。 ありがとうございます。
Zuishin

2019/03/21 00:08

一部と言うか OS の「核」をカーネルと呼びます。これと対比するなら「シェル」でしょう。今の OS はもっと複雑ですが。
TOOO

2019/03/21 00:10

OSの"核"に対になるのが「シェル」なんですね? ではシェルはどういう位置づけなのでしょうか。
Zuishin

2019/03/21 00:18

現時点では「対」と呼ぶには格が低いと思います。詳しく説明すると長くなりますし、あまり長々と説明する気にはなりません。 OS を作ろうと言うのであれば、膨大な知識が必要になりますから、最初から本を読む方が手っ取り早いと思います。 自分がまず詳しくなって、その上で高度なことを聞くのであれば、詳しい人から高度な解説がもらえます。素人丸出しで尋ねれば素人が自分の感想を適当に答えます。
TOOO

2019/03/21 00:27

なるほど... もっと詳しくなってから、ここで聞いたりするのがいいのですね?
pepperleaf

2019/03/21 11:21

シェルは、OSとユーザーとの I/Oを引き受ける (OSに含まれる)ツールの一つですね。とは言うものの、別のものに入れ替える人もいる。 > Windows NTベースの今のWindowsはMS-DOSはまったく関係ありません。 そうですね。ただ、Win9x系は、内部で、DOS(BIOS)が動いていたみたいですね。そこが 16bitなんで、色々とあったとか、無かったとか。
guest

0

「なにか」をさせるためのソフトウエア<OS

投稿2019/03/20 11:02

y_waiwai

総合スコア87774

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問