オペレーティングシステム(OS)の種類によっても、考え方や立場によって分類方法は変わる。下図で基本ソフトウェアのうちどこまでをOSとするかも目的に応じて変化する。
現在PC用のOSには、BSD、Linux、Microsoft Windows、OS X などがある。タブレットやスマートフォンなどの携帯端末用には Android、iOS などが有名。
| 大雑把な分類 | ソフトウェアの種類 | |
|---|---|---|
| 応用ソフトウェア (アプリケーション) | いわゆるアプリケーションソフト | |
| 基本ソフトウェア? | プログラミング言語(開発環境) | |
| 基本ソフトウェア | インプットメソッド | |
| デスクトップ環境 | ||
| シェル | ||
| ライブラリ | ||
| デバイスドライバ | ||
| カーネルモジュール | ||
| カーネル |
機能を区切って部品化することで、改良や新機能の追加、新しいハードウェアへの対応がしやすくなる。
このため、分類にも新しい階層ができたり、統合されたりする。分類は固定されたものでない。
デバイスドライバはハードウェアに直結するのでカーネルより下に書かれるべきだという考えもあるが、モジュールの一種という考え方もある。
OSはハードウェアの操作と管理、プログラムの実行と管理をする
| アプリケーション | |
| 実行時間の割り当て⇑ | ⇓入出力の依頼 |
| OS | |
| データ出力⇓ | ⇑入力データ取り込み |
| ハードウェア | |
ハードウェアの違いを吸収する役目も持つ。ハードウェアに近い部分を部品化させたものをデバイスドライバという。
| アプリケーション |
| OS |
| ハードウェア |
| アプリケーション |
| OS |
| ハードウェア |