プロセス分離とは何ですか?
コンピュータープログラミングのプロセス分離は、さまざまなソフトウェアプロセスの分離であり、所有していないメモリスペースにアクセスできないようにします。プロセス分離の概念は、特定のプログラムに異なる特権レベルを提供し、それらのプログラムが使用できるメモリを制限することにより、オペレーティングシステムのセキュリティを改善するのに役立ちます。プロセス分離には多くの実装がありますが、Webブラウザーで複数のタブを分離し、プロセスが失敗した場合にコアブラウザー自体を保護するために頻繁に使用されます。ハードウェアベースまたはソフトウェアベースにすることもできますが、どちらもシステムリソースへのアクセスを制限し、プログラムを独自の仮想アドレス空間に隔離するという同じ目的を果たします。
プロセス分離の基本機能には、プロセスまたはプログラムが明確に定義された仮想アドレス空間を割り当てることが含まれます。このスペースは、プログラムとすべての関連データを保持しています。プロセスにはより多くのスペースが必要な場合は、オペレーティングシステムから要求され、利用可能な場合は割り当てられますe。このようにして、オペレーティングシステムは、2つのプロセスが誤って互いのメモリにアクセスしないようにすることができます。
プロセス分離のもう1つの目的は、プログラムが実行できるようにしながら、重要なシステムに影響を与えないようにすることです。プログラムがオペレーティングシステムの重要な領域にアクセスし、それらを変更または変更しようとすることを防ぐことができます。これにより、より大きなオペレーティングシステムもシャットダウンすることなく、問題が発生した場合にプログラムを終了できます。
分離にはさまざまなバリエーションがあります。 1つは、他の人を保護しながらシステム上の特定のリソースにアクセスできるように、プロセスに特権を割り当てることです。これは、プログラムがインターネットソケットまたはプリンターを使用できるようにしながら、ディスクドライブまたはファイルシステムへのアクセスを制限できるようにするために行われます。
異なることを許可するために特定の手順をとることができる状況もありますentプロセスは互いに安全に通信しますが、互いに独立していることを続けます。プロセス間通信(IPC)や共有メモリなどのメカニズムを通じて、プロセスは情報を交換できますが、それでも独自のメモリ空間に限定されます。この機能は、プロセスがオペレーティングシステムが所有するさまざまな管理プロセスからの情報を必要とする場合に重要です。
プロセス分離は、いくつかのテクノロジーを可能にするのに役立つ重要なソフトウェアとハードウェア機能です。仮想マシンサーバーは、ハードウェアとソフトウェア管理の両方に基づいて、高度な形式のプロセス分離で動作します。ウェブサイトからアプレットやその他のスクリプトを安全に実行できることは、重要なシステムリソースから分離されているプロセスに依存しています。モバイルデバイスと組み込みシステムは、プロセス分離を使用して、故障したまたは悪意のあるソフトウェアが実行されているにもかかわらず、コアハードウェアを安全に保つことができます。