web-dev-qa-db-ja.com

UNIXのシングルユーザーモードとマルチユーザーモードの区別が最初に導入されたのはいつですか。

実際には、実際にはそうではないにしても、今日のUNIXライクなオペレーティングシステムはすべて、マルチユーザーモードとシングルユーザーモードを区別しています。シングルユーザーモードは、一般に、サービスのセットが少なくても、システムが正常に稼働している間は実行できない低レベルのシステムメンテナンスを対象としています(多くの場合、ファイルシステムのメンテナンスは通常オフラインで行う必要があります)。

ただし、シングルユーザーモードとマルチユーザーモードを実際に区別するには、明らかに最初のコードを作成する必要がありました。

マルチユーザーモードはシングルユーザーモードの後に​​来たのではないかと思います。マルチユーザーモードはより多くのことを実行し、最初はシングルユーザーモードでシステムを起動し、後でマルチユーザーモードに移行するのが理にかなっているからです(つまり、少なくともLinuxはどのように機能しますか。たとえば、init=/bin/bashを渡すと、カーネルは「シングルユーザー」モードで動作し、その後、事実上initがマルチユーザーモードに切り替わります)が、私の質問です。は:いつ、どのバリアント/バージョンで、最初に2つの区別がなされましたか?

5
a CVn

Unixは当初から、つまりバージョン1が1971年にリリースされて以来、その区別を行っていました。

システムはマルチユーザーモードで起動していました(つまり、利用可能なシリアルインターフェースに接続しているユーザー、tty0からtty5しかし、さらに4つのttyを追加するための準備が行われました)。

nix v1マニュアル セクション4の状態、ttyページ:

By appropriate console switch settings, it is possible to
cause UNIX to come up as a single—user system with I/O on
this device.

この最初のUnixリリースでは、各シリアル行へのログインプロセスの生成がハードコーディングされ、initプロセス自体によって実行されたことに注意してください。使用するモードの選択は、起動前に行われ、マルチユーザーモードへの切り替えは、スイッチ設定を変更してシングルユーザーモードのシェルを終了することによって行われました。

その後、Unixバージョン7(1979)では、ハードウェアスイッチの代わりに、システムは最初にシングルユーザーモードで起動し、シングルユーザーシェルが終了するとマルチユーザーモードに切り替わりました。

その後、System III(1981)はinittabファイルを導入しました。これにより、複数の実行レベルをより適切に定義および構成し、使用するレベルを選択することができました。実行レベル1はシングルユーザーで、実行レベル2はマルチユーザーでした。 inittabファイルが見つからなかった場合、システムはシングルユーザーモードで起動しました。

12
jlliagre