アプリケーションプログラム③:OSの基本概念と主要機能
本記事はコンピュータサイエンス学習サービスRecursionの学習記録です。
OSの基本
オペレーティングシステム(OS)は、コンピュータのハードウェアとソフトウェアのリソースを制御するソフトウェアの集合体。
OSの構成要素
カーネル(karnel)
OSにある様々な機能のうち、核となるプログラム。
ハードウェアを制御する。
起動時にブートローダによってメモリのロードされ、常にメモリ内に存在する。
主な役割
機能 | 例 |
---|---|
メモリ管理 | メモリの割り当てや解放、アクセス制御など。 |
プロセス管理 | プロセスの作成。終了や実行の制御。 |
ファイル管理 | ファイルやディレクトリの操作。 |
I/O管理 | 入出力捜査の管理。 |
ネットワーキング | ネットワーク上の管理。 |
セキュリティ | 認証やアクセス制御、システム保護。 |
プロセス間通信 | プロセス同士の通信と同期。 |
エラー処理 | エラーの報告と処理。 |
// ロックマンにいたカーネルを思い出した。
ブートローダ(boot loader)
ブートローダは、システムの電源が入った際に起動する特別なプログラム。
カーネルをストレージからメモリにロードし、システムの起動プロセスを開始する。
デバイスドライバ(device driver)
OSは、デバイスドライバを使用して、さまっざまなハードウェアデバイスを認識・アクセスする。
デバイスドライバは、特区帝のデバイ氏の内部構造を理解し、OSに対して通信と制御の方法を提供する。
プログラムがデバイスを使用する際、システムコールをい介してOSにリクエストを送る。
システムコール(system call)
システムコールは、プログラムがカーネルにたいして特定の機能やサービスを要求する仕組み。
OSの周辺機能
C標準ライブラリ(libc)
C標準ライブラリは、OSやシステムに対して降水jンのインターフェースを提供するライブラリ。(OSの機能ではない)
libcの中にはシステムコールを呼び出す関数が含まれており、libcがOSとのインターフェースの役割を果たす。
ライブラリとAPI
OSには、プログラムがカーネルに命令を送るためのインターフェースとしてライブラリやAPIが提供されている。
例えば、WindowsではWinAPIと呼ばれるライブラリがあり、Windowsの機能にアクセスする際に利用できる。
ユーザーインターフェース
ユーザーがOSと対話するために複数のインターフェースが用意されている。
- CUI
- GUI
- タッチスクリーンインターフェース
- 音声コントロールインターフェース
メモ
ブートローダは、システムの電源が入った際に起動する特別なプログラム。
カーネルをストレージからメモリにロードし、システムの起動プロセスを開始する。
カーネルの実体がどこにあるのか気になったので調べてみた。
Windowsの場合、カーネルはC:\Windows\System32
フォルダーにntoskrnl.exe
というファイルとして格納されてる。
// 確かにあった。
Discussion