tanke25616429のアウトプット

IT技術の基本を勉強したことをアウトプットします。Linux、Kubernetes、クラウド中心です。百番煎じくらいだけど誰かの役に立てばそれはそれでうれしい。

オペレーティングシステム(OS)

オペレーティングシステムについて

定義

オペレーティングシステム(OS)とは、ハードウェアを管理し、アプリケーションがハードウェアへアクセスするためのインタフェースを提供するソフトウェア。

ハードウェアって?

定義より例で理解したほうが良い気がする。例としては、以下。

  • CPU
  • モリー
  • ストレージ
  • ネットワークカード

インタフェースの提供、の意味

ハードウェアの違いを吸収し統一的なアクセス方法を規定すること。アプリケーションはハードウェアの違い(例えばCPUの違いや、ネットワークカードの違い)を意識する必要はない。具体的には、アプリケーションのプログラミング時にハードウェア依存したコードにならない*1

OSが管理するリソース

OSは上記のハードウェアだけではなく、ソフトウェアで定義されたリソースの管理とそれらにアクセスするためのインタフェースの提供も行う。 - ハードウェア - ソフトウェアとして定義されたリソース - 例)ユーザー、アクセス権、ファイルシステム排他制御

参考にしたもの

active.nikkeibp.co.jp

この @uchan_nos 氏の一連の考察ツイートが非常に参考になる。

「そもそもOSって何だろう?」

https://mobile.twitter.com/uchan_nos/status/1257219121910972423

*1:実際にそういうハードウェアの違いを意識した実装が皆無かは不明。あるかもしれないし、まれにありそうな気もするが筆者がよくわかってない