Quando a distinção entre modos de usuário único e multiusuário do UNIX foi introduzida pela primeira vez?

Quando a distinção entre modos de usuário único e multiusuário do UNIX foi introduzida pela primeira vez?

Praticamente, se não de fato, todos os sistemas operacionais do tipo UNIX hoje fazem a distinção entre os modos multiusuário e monousuário. O modo de usuário único geralmente se destina à manutenção de sistema de baixo nível que não pode ser executada enquanto o sistema está funcionando normalmente, mesmo com um conjunto reduzido de serviços (geralmente manutenção do sistema de arquivos que geralmente precisa ser feita offline).

No entanto, alguém obviamente teve que escrever o primeiro código para realmente distinguir o modo de usuário único do modo multiusuário.

Eu suspeito que o modo multiusuário veio depois do modo monousuário, simplesmente porque o modo multiusuário faz mais coisas e faz sentido iniciar o sistema inicialmente no modo monousuário e só depois fazer a transição para o modo multiusuário (e isso é como pelo menos o Linux faz isso; o kernel funciona no modo "usuário único", como evidenciado se você passar, por exemplo, init=/bin/bashpara ele e depois initalternar efetivamente para o modo multiusuário), mas minha pergunta é:quando e qual variante/versão foi feita a distinção entre as duas pela primeira vez?

Responder1

O Unix fez essa distinção desde o início, ou seja, desde que a versão 1 foi lançada em 1971.

O sistema estava inicializando no modo multiusuário (ou seja, usuários conectados às interfaces seriais disponíveis, tty0mas tty5foi feita provisão para adicionar mais quatro ttys).

Manual do Unix v1estados para a seção 4, ttypágina:

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.

Observe que com esta primeira versão do Unix, a geração dos processos de login para cada linha serial foi codificada e feita pelo próprio processo init. A seleção de qual modo usar foi feita antes da inicialização e a mudança para o modo multiusuário foi feita modificando as configurações da chave e saindo do shell do modo de usuário único.

Mais tarde, com o Unix Versão 7 (1979), em vez de switches de hardware, o sistema inicializou primeiro no modo de usuário único e quando o shell de usuário único foi encerrado, ele mudou para o modo multiusuário.

Ainda mais tarde, o System III (1981) introduziu o inittabarquivo. Com ele foi possível definir e configurar melhor vários níveis de execução e selecionar aquele a utilizar. O nível de execução 1 era monousuário e o nível 2 multiusuário. Se o arquivo inittab estiver faltando, o sistema será inicializado no modo de usuário único.

Responder2

Originalmente, o init abriria um shell no console no modo de usuário único e, quando esse shell fosse encerrado, abriria o programa de login (na verdade, getty) nas portas seriais, juntamente com a montagem do restante dos sistemas de arquivos e a inicialização. quaisquer daemons que foram configurados para serem executados.

Tudo isso foi controlado pelas entradas em /etc/inittab.

Tudo isso estava presente nas versões PDP-11 do Unix no início dos anos 1970, e acredito que antes disso.

É claro que existem infinitos detalhes, mas essa é a essência.

Responder3

A razão mais provável para usar os termos single uservs. multi useré que logo após a inicialização, o UNIX tinha apenas um sistema de arquivos raiz montado somente leitura.

A próxima coisa que foi feita foi verificar o sistema de arquivos raiz (aproximadamente 1 MB) e remontá-lo para leitura/gravação.

Em seguida, o /usrsistema de arquivos foi verificado e montado.

Como os usuários só podem efetuar login após /usr/a montagem, este é o ponto em que o UNIX se torna capaz de suportar um ambiente multiusuário.

informação relacionada