👌

アプリケーションプログラム③:OSの基本概念と主要機能

2024/10/13に公開

本記事はコンピュータサイエンス学習サービス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