オペレーティングシステム
386BSDを皮切りにフリーのBSD系UNIXも登場したが、UNIXの権利者だったノベルとBSDを開発したカリフォルニア大学バークレー校との訴訟に巻き込まれ、開発中止を余儀なくされた(1994年からFreeBSDとNetBSDの開発が再開される)。
1994年には、Windowsとしては初めて、32ビットに本格対応(カーネルの32ビット化)し、堅牢なマルチタスク機能を備えたWindows NTが登場した。ただこれも負荷や互換性の問題などから個人用途にはあまり普及せず、かわって急速に普及したのはWindows 3.xを拡張しつつ、Windows NTの機能を限定的に取り入れたWindows 95であった。以降、Windows NT系とWindows 9x系との並存が続き、WindowsがWindows NTベースに一本化されたのは2001年のWindows XPからである。
また、Appleも同年、NEXTSTEPを発展させたMac OS Xを新たにリリース、従来の Mac OS の後継となった。このころには低価格なパーソナルコンピュータでも、これらのオペレーティングシステムの負荷を問題としないほどに高性能化しており、オープンで低価格な分散コンピューティングを広めた(ダウンサイジング)。
ファームウェアとデバイスドライバの助けを借り、カーネルはコンピュータの全ハードウェアデバイスの基本的制御を提供する。RAM上のプログラムのメモリアクセスを管理し、どのプログラムがどのハードウェア資源へのアクセスを得るかを決定し、常に運用が最適化されるようCPUの状態を設定し、ファイルシステムと共にディスク、磁気テープ、フラッシュメモリといった長期的不揮発性記憶装置でのデータの編成を行う。
マルチタスク
シングルタスク
リアルタイムオペレーティングシステム
1960年代前半には、オペレーティングシステム機能の増強が進められた。スプール、ジョブ管理、記憶保護、マルチプログラミング、タイムシェアリングシステム、そして、仮想記憶の概念が登場し始めた。これらの概念を複数搭載するオペレーティングシステムも登場していた。また、マルチプロセッシングシステムに対応するオペレーティングシステムもあった。
1960年代後半には、オペレーティングシステムは著しい進化を遂げた。現在のオペレーティングシステムの概念や基本部分(カーネル)の技術の大半は、この時期に完成された。
1962年、ゼネラル・エレクトリックがGECOS(後のGCOS)の開発を開始した。
1964年発表のIBM System/360シリーズに搭載されたOS/360およびDOS/360は世界初の商用オペレーティングシステムとされ、単一のOSシリーズで幅広いモデル(性能、容量、価格帯)と周辺機器を稼働させ、更にハードディスクドライブをサポートし、本格的な(プリエンプティブな)マルチタスクを実現した。「オペレーティングシステム」という用語が一般化したのもOS/360からである。
オペレーティングシステムの主な目的は、ハードウェアの抽象化、リソースの管理、そしてコンピュータ利用効率の向上である。
協調的メモリ管理では、たった1つのプログラムがおかしな動作をするだけでシステム全体がクラッシュする。
カーネルによるメモリ保護により、プロセスのメモリへのアクセスが制限される。メモリ保護には様々な技法があり、セグメント方式とページング方式が代表的である。どの技法でも何らかのハードウェアサポートが必要であり(例えば、80286のMMUなど)、あらゆるコンピュータがそのようなハードウェア機構を備えているわけではない。
セグメント方式でもページング方式でも、CPU内のユーザーがアクセスできないレジスタ群でユーザープログラムがアクセス可能なメモリアドレスの範囲を設定している。その範囲外のアドレスにアクセスしようとすると割り込みが発生してCPUがスーパーバイザモードに遷移し、カーネルがその状況に対処する。これをセグメンテーション違反と呼ぶ。セグメンテーション違反は一般にプログラムの間違いから発生するので、実行を継続するような対処は困難であり、カーネルは問題のプログラムを強制終了させ、エラーを報告するのが一般的である。
Windows 3.1からWindows Meまでは何らかのメモリ保護機構を備えていたものの、それを回避するのも容易だった。そのためセグメンテーション違反の発生を知らせる一般保護違反(英語版)が考案されたが、それでもシステムがクラッシュすることが多かった。