OS:(operating system,オペレーティングシステム)
概要[1][2]
記憶容量(ストレージ)、入出力装置などコンピュータのハードウェア資源の管理、外部の別の装置やネットワークとのデータ通信の制御などが主な役割で、コンピュータに電源が投入されると最初に起動し、電源が落とされるまで動作し続ける。
利用者に対するコンピュータの基本的な操作手段も提供し、入力装置による操作の受け付けや出力装置への情報の提示、OS自体が備える様々な機能の実行、記憶装置内に格納されたプログラムの起動や終了、ストレージに格納されたファイルやディレクトリの操作などを行うことができる。
OSを構成する概念
CPU、メモリ、入出力装置の管理などを行う中核部分を「カーネル」と呼び、OS上で動作するアプリケーションソフトの起動や終了、ファイルの管理など、ユーザーが操作する部分を「シェル」と呼ぶ。
カーネル
カーネル(kernel)とは、『核』の意味。
命令や、ソレに伴う実行に関する処理を、ハードウェアとソフトウェアの仲立ちするために、あれこれを行う中枢。
シェル
シェル(Shell)とは、『殻』の意味。
要するに、カーネルと、その他の間にあるもの、という意味で、例えば人間がマシン語等を覚えなくてもカーネルの機能を簡単に使うための操作、確認方法を提供する。
sh,bash,ash などが一般的。
主要なOS[2]
主要なOSとして、クライアントPC向けではMicrosoftの「Windows」やAppleの「Mac OS」、モバイル機器向けではGoogleの「Android」やAppleの「iOS」がある。
オープンソースの「Linux」は、サーバ、PC、組み込みシステムなどに幅広く採用されている。
UNIXは、、、今頃どうしているのだろう。
MS-DOSもOSだったような。
そのほか、サーバ向けではIBMの「AIX」、HPの「HP-UX」、Oracleの「Oracle Solaris」など。
OSの機能
OSの基本的な機能としては、下記のようなものがある。
起動
デバイスの起動管理。OS側のユーザー操作等で、物理的な電源を切ることすらできる。
メモリ管理
OSは、コンピュータのアプリケーションを調整し、コンピュータにインストールされているさまざまなプログラムにメモリを割り当てる。
データセキュリティ
OSは、サイバー攻撃からユーザーのデータを保護(できるように、アップデートが必要)
ロードと実行
OSはプログラムを起動し、実行する。
ドライブとディスクの管理
OSによってはコンピュータのドライブを管理し、ディスクを分割する。
デバイス権限の制御
OSは、デバイスへのアクセスを許可または拒否することができる。
ユーザーインターフェース
OSの一部で、UIとも呼ばれ、ユーザーが情報を入力したり、受け取ったりするのを可能にします。大体、GUI、CUIもあるけど。
プロセス管理
OSは、情報の保存や共有など、コンピュータの処理の単位であるプロセスの割り当てを管理します。
メモリ保護
「メモリ保護」は、コンピュータシステムにおいて重要なセキュリティ機能の一つで、不正なメモリアクセスを防ぎ、プロセス間のデータの不正使用やシステムクラッシュを防止するための仕組みである。
具体的には、異なるプロセスが他のプロセスのメモリ領域に無断でアクセスするのを防ぐための機能を提供し、この保護は、オペレーティングシステムのレベルで強制され、各プロセスに独自のアドレス空間が与えられるなどの仕組みで実現される。
メモリ保護の重要性
メモリ保護は、システムの安定性とセキュリティを保つ上で非常に重要で、適切なメモリ保護がなければ、バグを持つプログラムや悪意のあるソフトウェアがシステム全体に深刻な影響を与える可能性がある。
また、データの整合性とプライバシーを確保し、プロセス間でのデータの不正な利用を防ぐためにも必要となる。
メモリ保護の主要な側面と技術
より詳細には下記のような概念で実現される。
仮想メモリシステム
現代のオペレーティングシステムでは、物理メモリ(RAM)を仮想アドレス空間にマッピングすることでメモリ保護を実装する。
これにより、各プロセスは独自の仮想メモリアドレス空間を持ち、他のプロセスのメモリにアクセスすることができないようになっている。
ページングとセグメンテーション
ページングシステムでは、メモリは固定サイズの「ページ」に分割され、セグメンテーションシステムでは異なるサイズの「セグメント」に分割される。
これらの各ページまたはセグメントは、特定のプロセスに割り当てられ、メモリ管理ユニット(MMU)によって管理される。
MMUは、無効なアドレスへのアクセスが行われた場合に、プロセスに対してページフォルトやセグメントフォルトを発生させることで、不正アクセスをブロックする。
アクセス制御リスト(ACL)
各ページやセグメントには、アクセス制御リストが設定されており、どのプロセスが読み取り、書き込み、または実行する権限を持つかを定義する。
これにより、プロセスが許可されていないメモリ操作を行うことを防ぐ。
カーネルとユーザーモードの分離
オペレーティングシステムはカーネルモード(高権限)とユーザーモード(低権限)の間で明確に区分され、カーネルモードではシステム全体のリソースにアクセスできるが、ユーザーモードでは制限されたアクセスしか許可されない。
これにより、ユーザープログラムがシステムに危害を加えるリスクが低減されている。
自作OS
Cドライブの移行
Cドライブは、Windowsにおける、OS本体のデータが存在しているドライブ(記憶領域)の通称である。
【特集】OSはそのままに、Cドライブを大容量SSDにまるっと換装する方法。2パターンで手順解説 - PC Watch