オペレーティングシステム
ハードウェアを抽象化し資源を管理する層。仮想化・並行性・永続化の3つに役割が整理できる。
ハードウェアを抽象化し、資源を管理し、プログラムを隔離する。
3 つの役割#
| 役割 | 提供する幻想 |
|---|---|
| 仮想化 | 各プロセスが CPU とメモリを独占しているように見せる |
| 並行性 | 複数の処理が同時に進んでいるように見せる |
| 永続化 | 電源が切れても消えない記憶(ファイル) |
OSTEP はこの 3 つを「3 つの易しい部品」として整理している。 OS の仕事はほぼすべてこの 3 つのどれかに分類できる。
カーネルモードとユーザモード#
CPU には特権レベルがある。
| モード | できること |
|---|---|
| カーネルモード | すべての命令、すべてのメモリ |
| ユーザモード | 制限された命令、自分のアドレス空間のみ |
アプリケーションはユーザモードで動き、 特権が必要なことは システムコールで カーネルに依頼する。
この境界がすべての保護の土台になっている。 ハードウェアの支援なしにはソフトウェアだけで実現できない。
構成#
参考文献#
- Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau. Operating Systems: Three Easy Pieces. Arpaci-Dusseau Books, 2018.(全文公開) https://pages.cs.wisc.edu/~remzi/OSTEP/
- Andrew S. Tanenbaum, Herbert Bos. Modern Operating Systems, 4th ed. Pearson, 2014.