GCOS(ジーコス、General Comprehensive Operating System)は、メインフレーム向けのオペレーティングシステム (OS) のファミリー。1962年、ゼネラル・エレクトリック (GE) が開発したものが起源となっており、当初の名称は GECOS (the General Electric Comprehensive Operating Supervisor)であった。
今日でもごく一部で使用されている。このOS上のプログラムは GMAPアセンブラ、COBOL、FORTRAN、ALGOLなどで書かれることが多い。日本電気のACOSはGCOSから派生したOSである。
GCOSではプロセスという概念を使用する。これはプロセッサ上で実行される命令列と対応するデータの集合である。マルチスレッドの概念もある。また、プロセスグループに相当する概念もあり、同時にロードされスケジュールされるプロセス群を意味する(その意味では、UNIXのプロセスグループではなく、ギャングスケジューリングに近い。→スケジューリング)。GCOSにはセマフォもあり、プロセス間の同期に使用する。
各プロセスは自身のアドレス空間を持ち、そこでのアクセス権はREAD、WRITE、EXECUTEの混合である。アドレス空間はセグメント化されており、プロセス間でデータを共有することもできる。特権管理はリングプロテクションである。各プロセスはいずれかのリングに属し、低いリングであれば、より高い特権を持つことになる。
このOSは対称型マルチプロセッシングをサポートしている。これはファームウェアに組み込まれたマイクロカーネルに基づくものである。また、ファームウェアにその機能が無くともエミュレーションで実現してもそれほど性能は低下しない。
GEは36ビットのGE-635向けに GECOS-IIを開発した(1962年〜1964年)。噂に反して GECOS はSystem/360のクローンではなかった(ジャーゴンファイルでは噂を真に受けて「System/360の素早く汚いクローン」としていたため、この噂が長生きしてしまった)。GE-635 のアーキテクチャは360とは全く異なり、GCOSも360のOSとは全く違う。その差が歴然とするのは、第二世代でタイムシェアリングシステム (TSS) とバッチ処理を同時にサポートした点である。
GEのコンピュータ部門がハネウェルのものとなった後、GECOS-IIIはGCOS-3に改名された。対応ハードウェアもハネウェル6000シリーズとなった。1974年、ハネウェルは自社の従来からのコンピュータなどとの統一性をもたせるため、「シリーズ60」という名称で統一し、6000シリーズはその中の「レベル66」とされた。ハネウェルのヨーロッパでの系列会社ハネウェル-ブルは同じシリーズ60の「レベル64」という新しい系列の開発を開始した(後に DPS-7 となった)。
それに伴ってGCOSという名称は、ハネウェルの全製品で使われることになった。
1979年、再度シリーズ名称の変更が行われた。
この改称は顧客を混乱させることになった。例えば、突然GCOS-8となったGCOS-3は、この発表後も数年間GCOS-3の名前でも保守が行われた。なお、GCOS-61(レベル61)はマイクロプロセッサの登場と共に消えた。
GCOS-3(と後継のGCOS-7およびGCOS-8)はCODASYLデータベース Integrated Data Store (IDS) を備えていた。これは後にさらに成功したIDMSのモデルとなった。
いくつかのトランザクション処理モニター(TPモニター)がGCOS-3およびGCOS-8向けに設計された。最初のGCOS-3での試みは、UNIX風に言えば各トランザクションを処理するために新たにプロセスを生成する方式である。IBMの顧客はもっと効率的な方式、すなわちマルチスレッドでリソースを共有してメッセージを待ち受ける方式を望んだ。このような機能はサブシステムとして実装された。
GCOS-3は間もなくもっと適切なTPモニター Transaction Driven System (TDS) を装備した。TDS はハネウェルの開発したものである。これは後にTP8としてGCOS-8上で拡張された。TDSとその開発は、同様のアーキテクチャであるIBMのCICSより先行しており、成功した機能であった。同様の機能がGCOS-7にもTDSとして組み込まれた。
GCOS-6およびGCOS-4は、MC68000ベースのUNIX系OSの動作するミニコンピュータで置き換えられた。さらに、その後PowerPCベースのサーバとなっている。GCOS-6はAIX上のエミュレータで動作した。GCOS-7の動作するDPS-7シリーズはDPS-7000ハードウェアに発展した。日本電気 (NEC) はACOS-4のCPUをこのシリーズに供給したことがある。
1980年代後半、ハネウェルは主にハードウェア面で開発の遅れが目立っていたコンピュータ部門をNECおよびBullと共同出資する合弁会社という形で手放した。 開発の遅れを挽回しメインフレーム市場での競争力を維持するため、NECはハイエンド (ACOS-6) のメインフレームACOS1000とACOS2000のOEM供給を行う。 (ACOS1000シリーズはDPS90、ACOS2000シリーズはDPS9000として全世界で販売されNECの生産台数を大きく伸ばすことになる) この過程では特許技術の回避やGCOS8の拡張機能への対応など、単純なOEM供給ではないハードウェア、ソフトウェア両面での作業が必要となった。 最終的にこの合弁会社はBullが取得している。
1990年代終盤から2000年代にかけて、Bullはハードウェアベースを1つに統一しようと、インテルのチップを使ったシステムに集中するようになった。Itanium 2ベースで、Microsoft WindowsとLinuxが動作する。ただし、エミュレータでGCOS-7とGCOS-8がこのプラットフォーム上で動作するようにした。Bullは現在もGCOS-7とGCOS-8をサポートするための開発費用を出費し続けており、いくつかの国に顧客がいる。
ベル研究所では、初期のUNIXシステムでGCOSマシンをプリンタスプーラとして接続していた。このため "/etc/passwd" にGCOSと接続するためのID情報を書いておくフィールド "GCOSフィールド"が作られた。このフィールドは今日でも "pw_gecos" として残っており、現在では人間が読んで理解できるユーザー単位の情報(フルネームとか所属など)を書くのに使われている。
以下、英文