メモ
目次
OSの役割とアプリケーションからOSの機能を利用する
OSの歴史
- OSがない。マシン語で記述。めんどい
- OSの原型(モニタープログラム)が登場。プログラムのロードと実行のみ行う
- 初期のOSの誕生。基本的な入出力プログラムを搭載+モニタープログラム
- 現在のOSの誕生。複数のプログラムを集合。例えば、制御プログラム(ハードウェア制御、プログラム実行制御)、言語プロセッサ(アセンブラ、コンパイラ、インタプリタ)、ユーティリティ(テキストエディタ、デバッガ、ダンプ)
OSを意識する
プログラマ ↓ OSの機能を利用(プログラマはOSを意識する必要がある) OS ↓ 制御(プログラマはハードウェアをあまり意識しなくていい)※ ハードウェア
※ただし一人前のプログラマになるためにはハードウェアの理解も必要
例:時計を表示するプログラムを動作させる場合
アプリケーション ↓ OSの機能を利用(時刻取得関数とディスプレイ表示関数を使う) OSの基本的な入出力プログラム ↓ ハードウェア制御(時計ICやディスプレイI/Oを制御) リアルタイムクロック + ディスプレイI/O
システムコール
OS(システム)の機能を呼ぶ(コール)
printf関数などは内部的にシステムコールを使っている
graph LR C言語でprintfを使用 -->|Windowsでコンパイル| Windowsのシステムコール C言語でprintfを使用 -->|Linuxでコンパイル| Linuxのシステムコール
直接、Windowsのシステムコールを使うと
Linuxで動作しなくなっちゃうから
移植性が悪い
ハードウェアを抽象化
ハードウェアの詳細を知らなくても使える
- ファイル:OSが物理ディスクを抽象化したもの
- メモリ :OSが物理メモリを抽象化したもの