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

3

Praticamente, se não, na verdade, cada sistema operacional semelhante ao UNIX hoje faz a distinção entre os modos multiusuário e usuário único. O modo de usuário único geralmente é destinado a 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 a manutenção do sistema de arquivos 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 de usuário único, simplesmente porque o modo multiusuário faz mais coisas e faz sentido iniciar o sistema inicialmente no modo de usuário único e só depois passar para o modo multiusuário ( e é assim que pelo menos o Linux funciona: o kernel funciona no modo "usuário único", como evidenciado se você passa, por exemplo, init=/bin/bash para ele, e efetivamente init alterna para o modo multiusuário), mas minha pergunta é: quando, e qual variante / versão, foi a distinção entre os dois primeiros feitos?

    
por a CVn 19.05.2016 / 11:44

3 respostas

11

O Unix estava fazendo essa distinção desde o começo, ou seja, desde que a versão 1 foi lançada em 1971.

O sistema estava sendo inicializado para o modo multiusuário (ou seja, os usuários conectados às interfaces seriais disponíveis, tty0 to tty5 , mas a provisão foi feita para adicionar mais quatro ttys).

Manual do Unix v1 indica a seção 4, tty page:

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.

Note que com este primeiro lançamento do Unix, gerar os processos de login para cada linha serial foi codificado e feito pelo próprio processo init. A seleção do modo a ser usado foi feita antes que a inicialização e a mudança para o modo multiusuário fossem feitas modificando as configurações do switch 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 estava inicializando primeiro no modo de usuário único e quando o shell de usuário único saía, ele alternava para o modo multiusuário.

Mais tarde, o System III (1981) introduziu o arquivo inittab . Com ele, foi possível definir melhor e configurar vários níveis de execução e selecionar aquele a ser usado. O nível de execução 1 era de usuário único e executou o nível 2 para vários usuários. Se o arquivo inittab estava faltando, o sistema inicializou no modo de usuário único.

    
por 19.05.2016 / 15:52
-1

Originalmente, o init criava um shell no console no modo de usuário único e, quando ele saía, ele trazia o programa de login (na verdade, getty) nas portas seriais, junto com a montagem do restante do arquivo. sistemas e iniciar os 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.

Existem, é claro, detalhes infinitos, mas essa é a essência.

    
por 19.05.2016 / 11:59
-1

O motivo mais provável para usar os termos single user vs. multi user é que diretamente após a inicialização, o UNIX só tinha um sistema de arquivos raiz montado somente para leitura.

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

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

Como os usuários podem fazer o login somente depois que /usr/ foi montado, esse é o ponto em que o UNIX se tornou capaz de suportar um ambiente multiusuário.

    
por 19.05.2016 / 13:02