動作環境(どうさかんきょう、英: system requirements)とは、ソフトウェアや周辺機器が正常に動作する上で要求される必要最低限の条件のことである。システム要件とも呼ばれる。

パッケージ製品であればパッケージ上に記載されていることが多く、最低動作環境と推奨動作環境の2種類が指定されている場合がある。

すべてのコンピュータソフトウェアを効率的に使用するには、特定のハードウェアコンポーネントまたはその他のソフトウェアリソースがコンピュータに実装されている必要がある。これらの前提条件のことを動作環境と呼ぶ。新しいバージョンのソフトウェアでより高い処理能力とリソースに対する需要が高まるにつれ、動作環境の要件は時間の経過とともにハードルが上がる傾向がある。業界アナリストは、この傾向は、技術の進歩よりも既存のコンピューターシステムのアップグレードを推進する上で大きな役割を果たしていると示唆する。動作環境のより一般化された意味は、システムまたはサブシステムの設計で満たされる要件のこと。

システムによっては単純なガイドラインとしていることもあるが、場合によっては要件を満たしていないと動作しないようにソフトウェアがプログラムされていたり、正式なサポートが受けられなかったりすることがある。

## 推奨動作環境

多くの場合、ゲームの製造元は、ソフトウェアの実行に必要な動作環境とは異なる要件を消費者に示す。これらの要件は通常、推奨要件と呼ばれる。これらの要件は、ほとんどの場合、最小要件よりも大幅に高いレベルであり、ソフトウェアを実行するための理想的な状況を示している。一般的に言って、そのソフトウェアを完全に使いこなし快適な体験にするためには、最小動作環境ではなく推奨動作環境を満たすことが推奨される。

## ハードウェア要件

オペレーティングシステムまたはソフトウェアアプリケーションによって定義される最も一般的な要件は、ハードウェアとも呼ばれる物理コンピュータリソースの要件である。ハードウェア要件リストには、特にオペレーティングシステムの場合、ハードウェア互換性リスト(HCL)が付随することがある。 HCLには、特定のオペレーティングシステムまたはアプリケーション用にテストされ、互換性があり、場合によっては互換性のないハードウェアデバイスが一覧表示される。次のサブセクションでは、ハードウェア要件のさまざまな側面について説明する。

### アーキテクチャ

すべてのコンピュータオペレーティングシステムは、特定のコンピュータアーキテクチャ用に設計されている。ほとんどのソフトウェアアプリケーションは、特定のアーキテクチャで実行されている特定のオペレーティングシステムに制限されている。アーキテクチャに依存しないオペレーティングシステムとアプリケーションも存在するが、新しいアーキテクチャで実行するには、ほとんどを再コンパイルする必要がある。

### プロセッサ

中央処理装置(CPU)の能力は、あらゆるソフトウェアの基本的なシステム要件である。 x86アーキテクチャで実行されているほとんどのソフトウェアは、CPUのモデルとクロックレートとして処理能力を定義している。バス速度、キャッシュ、 MIPSなど、CPUの速度と電力に影響を与える他の多くの機能までは規定されない。なぜならAMDのAthlonとインテルのPentiumでは、同じクロック速度でもスループット速度が異なるためだ。 インテルのPentium CPUはかなりの人気を博しており、このカテゴリでよく言及されている。

### メモリ

すべてのソフトウェアは、実行されると、コンピューターのランダムアクセスメモリ(RAM)に常駐する。メモリ要件は、アプリケーション、オペレーティングシステム、サポートソフトウェアとファイル、およびその他の実行中のプロセスの要求を考慮して定義される。この要件を定義する際には、マルチタスクコンピュータシステムで実行されている他の無関係なソフトウェアの状況も考慮される。

### 二次記憶装置

データストレージデバイスの要件は、ソフトウェアのインストールのサイズ、ソフトウェアのインストールまたは実行中に作成および維持される一時ファイル、およびスワップスペース使用の可能性(RAMが不十分な場合)によって異なる。

### ディスプレイアダプタ

グラフィックエディタやハイエンドゲームなど、平均よりも優れたコンピュータグラフィックディスプレイを必要とするソフトウェアは、多くの場合、システム要件でハイエンドディスプレイアダプタを要件として定義する。

### 周辺機器

一部のソフトウェアアプリケーションは、一部の周辺機器を広範囲および/または特別に使用する必要があり、そのような周辺機器のより高いパフォーマンスや機能を要求することがある。このような周辺機器には、 CD-ROMドライブ、キーボード、ポインティングデバイス、ネットワークデバイスなどがある。

## ソフトウェア要件

ソフトウェア要件は、アプリケーションの最適な機能を提供するためにコンピューターにインストールする必要があるソフトウェアリソース要件と前提条件の定義を行う。これらの要件または前提条件は通常、ソフトウェアインストールパッケージに含まれておらず、ソフトウェアをインストールする前に個別にインストールする必要がある。

### プラットホーム

コンピューティングプラットフォームは、ハードウェアまたはソフトウェアのいずれかで、ソフトウェアの実行を可能にするある種のフレームワークを記述する。 一般的なプラットフォームには、コンピューターのアーキテクチャ、オペレーティングシステム、プログラミング言語、およびそれらのランタイムライブラリが含まれる。

オペレーティングシステムは、システム要件を定義するときに言及される要件の1つである。ソフトウェアは、同じラインのオペレーティングシステムの異なるバージョンと互換性がない場合があるが、下位互換性がある程度維持されていることがある。たとえば、 Microsoft Windows XP用に設計されたほとんどのソフトウェアは、 Microsoft Windows 98で実行できないが、その逆は常に当てはまる。同様に、 Linux Kernel v2.6の新しい機能を使用して設計されたソフトウェアは、通常、Kernel v2.2またはv2.4を使用するLinuxディストリビューションでは正しく(またはまったく)実行またはコンパイルされない。

### APIとドライバー

ハイエンドディスプレイアダプターなどの特別なハードウェアデバイスを広範囲に使用するソフトウェアには、特別なAPIまたは新しいデバイスドライバが必要となる。良い例はDirectXで、これは マイクロソフトプラットフォームでマルチメディア、特にゲームプログラミングに関連するタスクを処理するためのAPIの集まりである。

### ウェブブラウザ

ほとんどのWebアプリケーションとソフトウェアは、システムにインストールされているデフォルトのブラウザを利用するためにWebテクノロジに大きく依存している。 Microsoft Internet Explorerと、脆弱性がたびたび指摘されるActiveXコントロールを要件として指定するMicrosoft Windowsで実行されるソフトウェアが結構ある。

## その他の要件

一部のソフトウェアには、適切なパフォーマンスのための他の要件もある。インターネット接続(種類と速度)と表示画面の解像度は指定されることがよくある。