blog

Linuxオペレーティングシステムの基本

ユーザーアプリケーションが実行されている状態は、カーネルの状態に依存します。 システムクラッシュによるファイルのメタデータの悪用を避けるため、ユーザー状態へのアクセスはInodeに制限されています。 ...

Nov 26, 2020 · 2 min. read
シェア

カーネル状態 ユーザー状態

カーネルの状態

オペレーティング・システム・カーネルの動作モード。コンピュータのハードウェア・リソースを制御し、上位レイヤーのアプリケーションに実行環境を提供します。

ユーザーランド

ユーザーアプリケーションが実行される状態は、カーネルの状態に依存します。 悪用によるシステムクラッシュを避けるため、ユーザー状態での特権を制限しています。

システムコール

オペレーティングシステムは、ユーザー状態からカーネル状態のリソースにアクセスするためのインターフェイスを提供します。システムコールを使用すると、ユーザー状態からカーネル状態にプロセスを切り替えることができます。

ユーザーランドからカーネルランドへの切り替え方法

  1. システムコール

  2. 例外

    ユーザーランドプロセスで例外が発生すると、例外を処理するカーネルプログラムに切り替わります。

  3. ハードウェアデバイス割り込み

    ハードウェア・デバイスが要求を完了すると、CPU に割り込み信号が送信され、CPU は現在のスレッドを一時停止し、割り込み信号に対応する割り込みハンドラを実行します。

Linuxファイルシステム

LinuxやUnixシステムでは、すべてがファイルです。

ハードディスク

ハードディスクの最小読み取り単位はブロックであり、通常4KBのサイズです。

ハードディスクの最小記憶単位はセクタで、各セクタは512B = 0.5Bです。

一度に1ブロック、通常は8セクタを読み込みます。

ファイルのメタデータ(uid、gid、作成時刻、最終アクセス/変更時刻、パーミッション、サイズ、ファイル・タイプなど)はInodeに格納され、それぞれのInodeには異なるファイルを区別するための番号が振られています。

ファイルの種類

共通ファイル
ディレクトリファイル

ディレクトリ内のファイル、すなわちそれらへのポインタを格納します。

リンクファイル
  1. ハード・リンク・ファイル

    ファイルがソース ファイルと同じ Inode を持つ場合、それは同じファイルです。 同じInodeのファイルを削除する前に、同じInodeのファイルをすべて削除してください。

  2. ソフトリンク

    ソース・ファイルへのリンクを保持します。 は別のInodeファイルです。

デバイスファイル

キャラクタデバイスファイル

データへのバイト/文字アクセス、データ・デバイスへのシーケンシャル・アクセス、通常はキーボードやシリアル・ポートなどのランダム・アクセスをサポートしていません。

ブロックデバイスファイル

ランダム・アクセス・データ・デバイス、ブロック・デバイス上の任意の場所にアクセス可能、キャラクタ・アドレッシングはサポートしていません。 ハードディスク、フロッピーディスク、CD-ROMなど。

パイプファイル

mkfifo を使用して作成されたプロセス間通信用のファイル。

Socketソケットファイル

ローカルまたは異なるマシン間のネットワーク通信に使用されるファイル。

Read next

CGAffineTransformMake(a,b,c,d,tx,ty) 行列演算の原理.

座標系における2次元グラフィックスの変化を統一するために、カイ2乗座標の概念が導入されます。つまり、グラフは3次元行列で表現され、3番目の列は常に座標系の基準として使われます。つまり、すべての変更は最初の2列によって行われます。 つまり、関数(CGF...

Nov 25, 2020 · 2 min read