GCOS

**GCOS**（ジーコス、**''G**eneral **C**omprehensive **O**perating **S**ystem*）は、[[メインフレーム]]向けの[[オペレーティングシステム]] (OS) のファミリー。[[1962年]]、[[ゼネラル・エレクトリック]] (GE) が開発したものが起源となっており、当初の名称は GECOS (*the **G**eneral **E**lectric **C**omprehensive **O**perating **S**upervisor*)であった。

今日でもごく一部で使用されている。このOS上の[[プログラム (コンピュータ)|プログラム]]は GMAP[[アセンブリ言語|アセンブラ]]、[[COBOL]]、[[FORTRAN]]、[[ALGOL]]などで書かれることが多い。[[日本電気]]の[[Advanced Comprehensive Operating System|ACOS]]はGCOSから派生したOSである。

== システムアーキテクチャとコンセプト ==
GCOSでは[[プロセス]]という概念を使用する。これは[[プロセッサ]]上で実行される命令列と対応するデータの集合である。[[マルチスレッド]]の概念もある。また、[[プロセスグループ]]に相当する概念もあり、同時にロードされスケジュールされるプロセス群を意味する（その意味では、UNIXのプロセスグループではなく、ギャングスケジューリングに近い。→[[スケジューリング]]）。GCOSには[[セマフォ]]もあり、プロセス間の[[同期 (情報工学)|同期]]に使用する。

各プロセスは自身の[[アドレス空間]]を持ち、そこでのアクセス権は*READ*、*WRITE*、*EXECUTE*の混合である。[[アドレス空間]]は[[セグメント方式|セグメント]]化されており、プロセス間で[[データ]]を共有することもできる。特権管理は[[リングプロテクション]]である。各プロセスはいずれかのリングに属し、低いリングであれば、より高い特権を持つことになる。

このOSは[[対称型マルチプロセッシング]]をサポートしている。これは[[ファームウェア]]に組み込まれた[[マイクロカーネル]]に基づくものである。また、ファームウェアにその機能が無くともエミュレーションで実現してもそれほど性能は低下しない。

== 歴史 ==
GEは36ビットの[[GE-600シリーズ|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」とされた。ハネウェルの[[ヨーロッパ]]での系列会社[[Bull|ハネウェル-ブル]]は同じシリーズ60の「レベル64」という新しい系列の開発を開始した（後に DPS-7 となった）。

それに伴ってGCOSという名称は、ハネウェルの全製品で使われることになった。
;GCOS-3:レベル66(つまりGE-600シリーズの後継)用。[[DTSS]]の影響がある。[[ACOS-6]]に相当。
;GCOS-64:レベル64用。ハネウェルとハネウェル-ブルの開発。新たに開発されたシリーズであり、GCOS-3をベースとしている。[[ACOS-4]]に相当。
;GCOS-62:レベル62用。[[イタリア]]で開発された32ビット小型機向けOS。[[ACOS-2]]に相当。
;GCOS-61:レベル61用。[[フランス]]で開発した卓上機向けOS
;GCOS-6:レベル6用。16ビット[[ミニコンピュータ]]用OS

1979年、再度シリーズ名称の変更が行われた。
* レベル66→*'DPS-8**:対応OSは GCOS-3→**GCOS-8**
* レベル64→**DPS-7**:対応OSは GCOS-64→**GCOS-7**
* レベル62→**DPS-4**:対応OSは GCOS-62→**GCOS-4**
* レベル6→**DPS-6**:対応OSは **GCOS-6'''
この改称は顧客を混乱させることになった。例えば、突然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" として残っており、現在では人間が読んで理解できるユーザー単位の情報（フルネームや所属など）を書くのに使われている。

## 関連項目
*Multics
*GE-600シリーズ
*GE-200シリーズ
*ACOS

## 外部リンク
*
以下、英文
* From GECOS to GCOS8 （GCOSの（Bullから見た）歴史）
* Bull GCOS8 Mainframes
* Bull GCOS8 Documentation（リンク先の "click here" をクリックすると、PDFマニュアルが参照できる）