Version 7 Unix

Version 7 UnixまたはSeventh Edition Unixは、UNIXオペレーティングシステムにおける初期の重要なリリースのひとつ。Version 7とかV7とも呼ばれる。ベル研究所が1979年にリリースし、ベル研究所による最後のリリースであった。AT&TはV7が普及するのを待って、1980年代初期にUNIXの有料化を行った。V7 はディジタル・イクイップメント・コーポレーションのPDP-11ミニコンピュータ向けに開発されたが、他のプラットフォームにも移植された。

 概要 
ベル研究所からのUNIXのバージョンは、そのユーザーズマニュアルの版によって識別されていた。ベル研究所が外部に対して広くリリースを行った最初のバージョンは第6版であった。
1979年にリリースされたSeventh Editionは、初めて商業的にライセンスされたSixth Editionの後継である。
ベル研究所内のResearch Unixの系統は Version 8 Unix に引き継がれているが、実際にはV8は4.1BSDを導入して開発された。そして第10版まで開発した後、Plan 9の開発に集中するようになった。

V7は最初の真に移植可能なUNIXであり、様々な移植が行われた。当時はミニコンピュータ全盛期であり、16ビットのマイクロプロセッサも登場しつつあった。そういった様々なアーキテクチャにリリースから数年で移植が行われている。サン・マイクロシステムズの最初のワークステーションでは（MC68010ベース）、Unisoft社が移植したV7が動作した。最初のXENIXはV7の拡張であり、Intel 8086 向けである。Onyx SystemsはZilog Z8000に移植している。VAXに移植されたV7はUNIX/32Vと呼ばれ、BSD系UNIXの直接の先祖にあたる。ウーロンゴン大学のチームはミニコンピュータInterdata 7/32にV7を移植した。これをInterdataと同社を買収したPerkinElmer が Edition VII として製品化し販売。世界初のUNIXの商用製品とされている。

DECは、修正を加えたV7をV7M（Mはmodifiedを意味した）としてPDP-11向けに配布した。V7MはDECのUに Engineering Group (UEG) の開発によるもので、テキストとデータの分離、ハードウェアエラー対応、数々のデバイスドライバなどが加えられている。多数のテープ装置やディスク装置を接続した環境で問題なく動作できるようにすることにも力が注がれた。V7Mは品質が高く評価されていた。UEGが後にUltrix開発部門へと発展していったのである。

高性能とエレガントな単純さを兼ね備えていたため、多くの古くからのUNIXユーザーによって、V7はUnix開発の頂点であると記憶されており、前後のどのUNIXより優れており「最後の真のUNIX」であるとされている。
しかし、リリースされた時点では、大きく拡張された機能のためにV6に比較してパフォーマンスが低下していた。
しかしこの問題は、主にユーザーコミュニティーによって修正されることとなった。

V7のシステムコールは約50個しかなかった。後のUNIXやUnix系システムは数多くのシステムコールを追加し続けたStevens, W Richard. Rago, Stephen A. Advanced Programming in the UNIX Environment, 3rd Edition. 2013. p. 21。

 フリーソフトウェアとしてのリリース 
2002年、カルデラ社はパーミッシブなBSDライセンスでV7をリリースしたCaldera releases original unices under BSD license。

V7のブートイメージはこちらでダウンロードでき、などPC上のPDP-11エミュレータ上で実行可能である。

Nordier & Associatesはx86への移植版を今も活発に開発している。2012年現在のバージョンは0.8aで、インストーラのスクリプトを含むブート可能CDイメージが用意されているhttps://www.nordier.com/#v7x86 UNIX v7/x86。

ポール・アレンは、V7を実行するPDP-11/70を含む数台の歴史的なコンピューターシステムを、アクセス可能な状態で公開している。

 Version 7の新機能 
Version 7で登場した新機能として、以下のものがある。
 プログラミングツール: lex、yacc、lint、makeなど
 デニス・リッチーによる従来のPDP-11専用のCコンパイラに加え、pcc

以下は、Research UnixとしてはV7で初めて提供されたが、より古いバージョンがPWB/UNIXに含まれていた。

 新コマンド: Bourne Shell、at、awk、calendar、f77、fortune、tar（従来のtpというコマンドの置換）、touch
 新しいネットワークサポート: uucp、Datakit
 新システムコール: access、acct、alarm、chroot（ディストリビューションの準備で評価用に使用）、exece、ioctl、lseek（従来は24ビットのオフセットだった）、、utime
 新ライブラリ関数: stdioルーチン群、malloc、getenv、popen/system
 環境変数
 シェルスクリプト先頭行の "#!" で、実行すべきシェルコマンドを指定する方式
 システムの間接アドレッシングを利用した1ファイルで1GBを超える最大ファイル容量のサポート

 多重化ファイル 
短期間しか提供されなかった機能には、パイプに次ぐプロセス間通信方法である多重化ファイルがある。
プロセスはmpxシステムコールにより特別なファイルを作成することができ、他のプロセスはこのファイルを開くことで「チャネル」をファイルディスクリプターとして取り扱えるようになり、これを通じて多重化ファイルを作成したプロセスと通信することができた。
mpxファイルは実験的なものとされ、デフォルトのカーネルでは有効化されていなかった。
また、後のバージョンでは削除され、BSD socketやCB UNIXのIPC (System Vのもの)が代わりに提供された(しかし、mpxファイルは、4.1BSDには存在したままだった)。

 脚注 

 関連項目 
 Version 6 Unix
 Ancient UNIX

 外部リンク 
 マニュアル ベル研究所
 ブラウジング可能なソースコード
 PDP Unix Preservation Society

Category:Unix系オペレーティングシステム
Category:BSD
Category:1979年のソフトウェア
Category:自由ソフトウェアOS