オペレーティングシステム 其の一 20170412
電卓程度のアセンブリ言語(わかりにくい)
↓ ここのギャップをOSが埋めている
普段使っているPCのスペック(簡単)
OS:ハードウェアを抽象化してソフトウェア開発をしやすい形にする
OSを学ぶとは
①コンピュータの低レイヤを学ぶ
②OSが提供する環境を学ぶ
このふたつの意味合いを持つ
OSを学んでここがうれしい!!
・低レイヤのことがわかる
⇒デバイスドライバ:ハードウェアと新しい機器とをつなぐ役割…OSの知識が不可欠
⇒組み込み:単純な危機に搭載するCPUの設計のためには低レイヤの設計、ハードウェア寄りの設計が必要
・セキュリティ
⇒攻撃も防御もOSの知識が必要
⇒フォレンジック(コンピュータから情報を集める技術)
・プログラムの高速化
⇒アルゴリズムでどうにかなるならばいいが、OSに関する箇所がボトルネックになっていることが多々ある
OSが隠しているもの、やっていること
・実行ファイルが実行できるように準備をする
・ハードウェアが文字を表示するまでにいくつもの層やインターフェースを通らなければならない
例えば…
#include<stdio.h>
int main(void){
printf("Hello,world");
return 0;
}
上のような単純なプログラムを実行するためにもかなりの手順を踏んでいて、そこにOSが密接に絡んでくる。
補足:LinuxはユーザーにOSの状態を開示しているのでおすすめとのこと