OSまとめ
OS, オペレーティングシステムとその基礎技術について.
主なOS
OSとは
🔌OSの役割のキモは資源管理者 - ゆるコンピュータ科学ラジオ
OSの機能のキモは資源管理者. リソースを管理することが仕事.
思考のOSをアップデートとは変な例え. たしかにOSが変われば見た目もUIで変わるけどそれはおまけ. 🎙コテンラジオを攻撃し始めたwww
思考のOSはアップデートできない。OSの本懐は「資源管理者」。【OS1】#114 - YouTube
📝Kernel
Kernel.
- ハードウェアとソフトウェアアプリケーションをつなぐOSの機能.
- ハードウェアのソフトウェア抽象化.
- カーネルの仕事はコンピュータのリソースを管理し、他のプログラムがそれらのリソースを使って動作できるようにすること.
📁ファイルシステム
コンピュータのリソースを操作するための, オペレーティングシステム (OS) が持つ機能の一つ.
📁ファイル(OS)
OSなどの情報システムからみた, データの管理単位.
-
名前, 拡張子, idなどの識別子をもつ.
-
size, 作成日などの属性をもつ.
-
所有権などのパーミッションをもつ.
-
read/write, または両方の機能をもつ.
📂ディレクトリ
💡フォルダはGUI/WindowsでディレクトリはCLI/Linuxの文化
フォルダとディレクトリの名前の違いは文化の違い.
タスク管理
📝タスク(OS)
OSからみたプログラムの実行単位.
📝バックグラウンドタスク
📝プロセス(OS)
実行中のプログラムのインスタンス.
cf. 📝プロセス(計算機科学)
Definition
- A process is defined as the action of software as it executes.
- A process is an instance of a running program.
Features
プロセスは 2 つの抽象化をおこなう
- 論理制御フロー
- それぞれのプロセスが 1 つの CPU で実行しているように見える
- プライベートな仮想メモリ空間
- それぞれのプロセスが 1 つの メインメモリ で実行しているように見える
Process は一度にひとつのことしか実行できない.
- concurrently: 平行で動作しているように見える
- 実際はシーケンシャル.
その秘密は, OS のコンテキストスイッチにある!
fork-exec model
Fork-exec is a commonly used technique in Unix whereby an executing process spawns a new program.
fork-exec モデルは, プロセス管理手法.
forc と exec の説明は以下.
- fork: 現在のプロセスのコピーを生成.
- execve: 現在のプロセスのコードとメモリ空間を別のものへ置き換える.
📝プロセス制御ブロック(PCB)
Process Control Block, PCB.
プロセスの状態を表すデータ構造.
📝スレッド
プログラムの処理の単位 (Thread of Programs).
- Each thread is sequential.
- Each thread is independent of the others.
- Two threads can communicate if they share a variable
Wikipedia では CPU のひとつの処理単位と定義されている.
A thread is defined as the path of action of software as it executes.
📝ハイパーバイザ(OS)
仮想化技術.
- VMware
- Virtualbox
📝コンテナ(OS)
プロセス隔離技術. コンテナは仮想ではなく隔離.
- 他のプロセスから隔離された仮想的な空間で動くプロセス.
- 様々なカーネルを組み合わせて起動する.
- いくつかのユーザプロセスをまとめて閉じ込めたユーザ空間. コンテナ内で動くプロセスは通常のプロセスと同じもの.
Linux コンテナ
- namespace: 隔離空間
- cgroup: コンテナ(プロセスグループ)に対してリソース制限
2013, 📝Dockerの登場によって一躍メジャーに!!!
ハイパーバイザとの比較
- コンテナ
- 1 つの OS.
- カーネル空間共有, ユーザ空間が別々
- ハイパーバイザ
- 独立した複数 OS
- カーネル空間/ユーザ空間が別々
📝パニック(OS)
予期しないエラーや致命的なエラーに遭遇したときに発生する状態. このようなエラーが発生すると、システムは通常の動作を継続することができないため、停止または再起動を強制されることが多い.
- Kernel Panic (UNIX)
- ブルースクリーン(Windows)
関連レイヤ
- 上位レイヤ: 📱アプリケーション
Related
- up: 📂ソフトウェア開発ドメイン