カーネル
コンピュータには何らかの入出力デバイスがある(キーボード、HDD、USBなど)。カーネルはアプリケーションから入出力要求を受け付け、適切なデバイス(あるいはデバイスの一部、たとえばファイルやウィンドウなど)に対して入出力を実行し、デバイスを使用するための便利な方法を提供する(一般に、アプリケーションがデバイスの実装の詳細を知らなくてもすむように抽象化する)。
リソース管理に必要な重要な観点は、実行領域(アドレス空間)の定義とその領域内のリソースへのアクセスを調停する保護機構である。
また、カーネルは一般にプロセス同士の同期と通信の手段も提供しており、プロセス間通信 (IPC) と呼ぶ。
カーネルは自前でそれらの機能を実装していることもあるし、何らかのプロセスに委任していることもあるが、後者の場合はプロセス間で機能へのアクセスを可能にするIPCを提供する必要がある。
最後に、カーネルはそれら機能群へのアクセスを要求する手段をプログラムに提供しなければならない。
ナノカーネルは全てのサービスをデバイスドライバとして分離する。これにはたとえば最も基本的な割り込みコントローラやタイマーの制御も含まれる。これによりカーネルメモリはマイクロカーネルよりもさらに小さくなる。