マエカワの備忘録的な何か

思い立ったが吉日

オペレーティングシステム 其の一 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の状態を開示しているのでおすすめとのこと