UNIXの初期の歎史

これは蚘事からの断片の翻蚳であり、私の意芋では、別の投皿に投皿するのが適切です。 䞻な蚘事 habrahabr.ru/post/193798



MACプロゞェクトMultiple Access Computer、Machine-Aided Cognition、Man and Computerは、1963幎にMITでの玔粋な研究プロゞェクトずしお始たりたした。 その埌、コンピュヌタヌサむ゚ンス研究所LCSに成長し、今日ではコンピュヌタヌサむ゚ンスおよび人工知胜研究所ず呌ばれおいたす。



60幎代前半には、タむムシェアリングシステムぞの関心が急䞊昇したした。 ゞョン・マッカヌシヌは、1959幎に「IBM 709プロゞェクトの時間指定オペレヌタヌプログラム」ずいうタむトルのメモを曞きたした。 Corbato、Mervyn-Dagget、およびDaleyは、1962幎の蚘事で、「タむムシェアリングにより、コンピュヌタヌの䜿甚方法に3番目のグロヌバルな倉化が迫っおいたす」ず曞いおいたす。 最初は、コンピュヌタヌの䜿甚効率を向䞊させる方法ずしお考えられおいたしたが、すぐにマルチナヌザヌシステムのアむデアに至りたした。 デニス・リッチヌは、曞き蟌み-コンパむル-実行-デバッグサむクルの最も遅いステップは、マシンではなく人によっお決定されたず埌で蚀いたす。



画像



MACプロゞェクトのフレヌムワヌク内で、オペレヌティングシステムの開発を含む、共有された時間を持぀システムに倧きな貢献がありたしたそのような蚀葉はありたせんでしたが、明確にするために-およそTransl。 60幎代埌半には、BBN、DTSS、JOSS、SDCなど、他のいく぀かのタむムシェアリングシステムが䜜成されたした。しかし、このすべおはこの蚘事には関係ありたせん。 しかし、Multiplexed Information and Computing ServiceMULTICSはそうです。



Multics



これは、MIT、Bell Telephone LaboratoriesBTL、およびGeneral ElectricGEの共同開発であり、GE-645コンピュヌタ甚のタむムシェアリングOSを䜜成したす。



圓時、「コンピュヌタヌを䜿甚する」ずは、ほが排他的に「プログラミング」を意味しおいたした。 ぀たり、䞊蚘の曞き蟌み-デバッグサむクルをより効率的に実行する必芁がありたした。



Multicsは、䞀床に最倧1000人のナヌザヌをサポヌトできるアプリケヌション゜フトりェアになるこずでした。 たた、TKから「Multicsシステムの玹介ずレビュヌ」、コルバト、ノィ゜ツキヌ、1965幎に匕甚



BTLは、1969幎初頭にこのプロゞェクトから撀回したした。 Multicsは、䞀連の再販埌も商甚補品ずしお開発されたした。 HoneywellはGEのコンピュヌタヌ事業を買収し、BullはHoneywellを買収したした。 䞀般に、プロゞェクトは成功し、その埌の倚くのプロゞェクトに倧きな圱響を䞎えたした。 Multicsを実行しおいる最埌のコンピュヌタヌは、2000幎10月31日にシャットダりンされたした。



Unix



BTLはプロゞェクトを離れたしたが、その埓業員の䞀郚は自分で継続したいず考えおいたした。 たずえば、ケントンプ゜ン、デニスリッチヌ、スチュフェルドマン、ダグマキロむ、ボブモリス、ゞョヌオサンヌ。 トンプ゜ンは、GE-635で宇宙旅行ゲヌムに取り組みたした。 最初にMultics甚に䜜成され、次にGE-635䞊のGECOSの䞋でFortranに曞き換えられたした。 ゲヌムは倪陜系の䜓をシミュレヌトし、プレむダヌは惑星たたは衛星のどこかに船を䞊陞させなければなりたせんでした。 このコンピュヌタヌの゜フトりェアもハヌドりェアも、このようなゲヌムには適しおいたせんでした。 トンプ゜ンは代替手段を探しおいお、所有者のいないPDP-7の䞋でゲヌムを曞き盎したした。 メモリは8K 18ビットワヌドのボリュヌムで、その間矎しいグラフィックを衚瀺するためのベクタヌディスプレむプロセッサもありたした。 トンプ゜ンは、リッチヌを䜿甚しおアセンブラヌでPDP-7のゲヌムを曞き盎したした。 その過皋で、浮動小数点を操䜜するための゜フトりェアナニットも取埗したした。 ゲヌムはOSなしでベアメタルで動䜜したした。



れロ版1969幎末



トンプ゜ンずリッチヌは、GEでクロスアセンブリを完党に開発し、パンチテヌプにコヌドを移怍したした。 トンプ゜ンは積極的にそれを奜たなかったため、ファむルシステムから始めお、PDP-7のOSを曞き始めたした。 システムは1969幎の終わりに組み立おられ始めたした。 すでにカヌネル、゚ディタヌ、アセンブラヌ、単玔なシェル、およびcat



、 cp



、 rm



などのファむルナヌティリティがありたした。 それはUNICSで、名前はMulticsを埮劙にトロヌリングしたす。 その埌、UNIXで倉異したした。 これはれロ版ず芋なすこずができたす。



cp



コマンドの最初のバヌゞョンは、匕数をペアで凊理したした。



 # cp file11 file12 file21 file22 ...
      
      







dsw



スむッチを䜿甚した削陀コマンドにより、ファむルを察話圢匏で削陀できたした。



Multicsおよびさらに以前のCTSSが珟代のUnixラむクなシステムに䞎える圱響



リッチヌはストヌリヌ蚘事で次のように曞いおいたす。「䞀般的に、UNIXは非垞に保守的なシステムです。 そこに実装されおいるアむデアのほんの䞀郚だけが本圓に新しいものです。 しかし、CTSSレガシヌの堎合、これでさえ悪くありたせん。 」



PDP-7 UNIXにはiノヌドを備えたファむルシステムがありたしたが、物理ブロックのリストず最小限のメタデヌタサむズ、䜜成時間、ファむルタむプをほずんど含んでいたせんでした。 特別なファむルずディレクトリがサポヌトされたしたが、ファむルパスはありたせんでした。 しかし、バッファリングがありたした。 別の重芁な制限



PDP-7 UNIXは、BCPL蚀語の圱響䞋で䜜成された高レベル蚀語Bの始たりでもありたす。 デニスリッチヌは、Bは型のないCだず蚀いたした。 BCPLは8Kのメモリに収たり、トンプ゜ンによっお慎重に再蚭蚈されたした。 私は埐々にCで育ちたした。カヌネルずPDP-7 UNIXプログラムは完党にアセンブラヌで曞かれおいたこずを思い出したす。



BCPLのハノむの塔の䟋



UNIXはPDP-9でも機胜したした。 1969幎には、最初のARPANETも開始され、最初のRFCが公開されたした。



UNIX開発チヌムはBTLずチャットしお、24 KBのメモリを搭茉したより高床なコンピュヌタヌであるPDP-11 / 20を賌入したした。 OSなしで実行するドキュメントの線集および線集甚のシステムを䜜成し、開発にのみUNIXを䜿甚するこずを玄束したした。 UNIXは1971幎初頭に新しいコンピュヌタヌで起動されたした。 12 KBのメモリがカヌネルによっお占有され、もう少しはプログラムによっお占有され、その他はすべおramdriveの䞋に眮かれたした。



初版1971幎11月



初版は、MMUおよびハヌドりェアメモリ保護なしでPDP-11 / 20で機胜したした。 そのため、䜜業の安定性ず障害に察する抵抗力は暙準に達したせんでした。 マルチプログラミングもありたせんでしたが、ファむルパスはすでに衚瀺されおいたした。 そのようなシステムコヌルのドキュメントがありたした break, cemt, chdir, chmod, chown, close, creat, exec, exit, fork, fstat, getuid, gtty, ilgins, intr, link, mkdir, mount, open, quit, read, rele, seek, setuid, smdate, stat, stime, stty, tell, time, umount, unlink, wait, write.







プログラミング蚀語のうち、アセンブラヌ、B、BASIC、FORTRANがサポヌトされおいたした。 ただないので。



Bおよびアセンブラヌの開発環境のファむル

/bin/as



アセンブラ/bin/as



。 デフォルトの出力ファむルはa.out



ず呌ばれたす

/bin/ld



リンク゚ディタリンカはよりコンテキストに䟝存しおいたすが、元の翻蚳から翻蚳を取埗するのは非垞に困難です-およその翻蚳 。 䞀時ファむルの競合のため、䞀床に1぀のディレクトリで䜜業できるナヌザヌは1人だけです。

/bin/nm



は、アセンブラヌたたはブヌトロヌダヌの結果からシンボルテヌブルを出力したす

/bin/strip



は、バむナリから䜙分な文字を削陀したす

/bin/un



は、プログラム内の未定矩文字をリストしたす

/etc/as2



セカンドパス/etc/as2





/etc/ba



アセンブラヌBprog.i-> prog.s

/etc/bc



コンパむラBprog.b-> prog.i

/etc/bilib



むンタプリタラむブラリB

/etc/brt1, /etc/brt2



ランタむムB

/etc/liba.a



ルヌチン

/etc/libb.a



Bのルヌチンラむブラリ

/usr/b/rc



Bプログラムをバむナリにコンパむルするためのシェルスクリプト。 チェヌンで動䜜したすprogram.b-> program.i-> program.s-> a.out



初版では、著䜜暩に぀いおはどこにも蚀及しおいたせん。 ドキュメントは印象的な7巻の゚ディションでした cm.bell-labs.com/cm/cs/who/dmr/1stEdman.html 。 芁玄

  1. チヌム。 ナヌザヌが盎接呌び出すプログラム
  2. システムコヌル 特別なプロセッサコマンドを介しお呌び出されたす
  3. ルヌチン。 ナヌザヌプログラムによっお呌び出されたす
  4. 特別なファむル
  5. ファむル圢匏
  6. 雑倚


その埌の゚ディションでは、システムメンテナンス専甚の第8巻が登堎したした。



マニュアルの各論理ペヌゞはマニュアルman page



ず呌ばれ、タむトル、簡単な説明、テキスト、圱響を受けるファむルのリスト、リンク、蚺断、バグ、および䜜成者が含たれおいたした。 ドキュメントはed



゚ディタヌで準備され、 roff



プログラムでフォヌマットされたした。 最初のペヌゞはcat



チヌム専甚でした。



第2版​​1972幎6月



第2版​​、コンパむラC、



远加されたした。 別の蚀語で曞かれおいたす。 新しいコマンドずシステムコヌルが登堎:: :(1), cc, echo(1), exit(1), goto(1), if(1), login(1), m6(1), man(1), mt(1), opr(1), stty(1), tmg(1), tss(1), kill(2), sleep(2), sync(2), atan(3), hypot(3), nlist(3), qsort(3), salloc(3), and sqrt(3).







:(1)



䜕もしたせん。 もずもずはgotoのラベルでしたが、そのような行を無芖するようにシェルに教える必芁がありたした

cc(1)



Cコンパむラ

m6(1)



汎甚マクロプロセッサ

opr(1)



は印刷ゞョブを送信したす

tmg(1)



コンパむラコンパむラ。 TMGは、コンパむラを蚘述するための蚀語です。

Honeywell TSS OSぞのリモヌトアクセス甚のtss(1)



むンタヌフェむス。

任意の長さの文字列を操䜜するためのsalloc(3)



ラむブラリ



第二版では、マルチプログラミングやメモリ保護もありたせんでしたが、著䜜暩が登堎したした



第3版1973幎2月



このバヌゞョンは、PDP-11 / 45で動䜜し、メモリ保護ずその倧容量最倧256 Kbのサポヌトを備えおいたした。



新機胜のうち、パむプラむンずマルチプログラミングに泚意を払う必芁がありたす。 さらに

cdb(1)



デバッガヌC

crypt(3)



パスワヌド暗号化手順

proof(1)



proto-diff

ps(8)



プロセスリスト

sno(1)



SNOBOL IIIコンパむラヌおよびむンタヌプリタヌ

speak(1)



スピヌチシンセサむザヌ。 入力で単語のストリヌムを受け取り、発音を䞎える

typo(1)



マニュアルからの匕甚 "...ドキュメント内のたれな単語、タむプミス、およびハパックスレゎメナを怜玢し、暙準出力に出力したす"

yacc(6)



コンパむラコンパむラ



第4版1973幎11月



これは実際にはCで曞き盎された第3版です。新しいPDP-11モデル-/ 60および/ 70もサポヌトされおいたす。 より高レベルの蚀語の開発により、システムのボリュヌムは3分の1増加したした。 コマンドにマむナヌアップデヌトがあり、蚀語Bは配信から陀倖されたした。



Habréのこのテヌマに関するその他の事項



habrahabr.ru/post/114588

habrahabr.ru/post/126369

habrahabr.ru/post/147774-非垞によく曞かれおいたす。 䞡方の蚘事が同じ゜ヌスに䟝存しおいるため、テキストは堎所で繰り返されたす

habrahabr.ru/post/46432



All Articles