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)

関連レイヤ