¿Cuándo se introdujo por primera vez la distinción entre los modos UNIX de usuario único y multiusuario?

¿Cuándo se introdujo por primera vez la distinción entre los modos UNIX de usuario único y multiusuario?

Prácticamente, si no en realidad, todos los sistemas operativos tipo UNIX hoy en día hacen la distinción entre modos multiusuario y monousuario. El modo de usuario único generalmente está destinado al mantenimiento del sistema de bajo nivel que no se puede realizar mientras el sistema está funcionando normalmente, incluso con un conjunto reducido de servicios (a menudo, mantenimiento del sistema de archivos que generalmente debe realizarse sin conexión).

Sin embargo, obviamente alguien tuvo que escribir el primer código para distinguir realmente el modo de usuario único del modo multiusuario.

Sospecho que el modo multiusuario vino después del modo de usuario único, simplemente porque el modo multiusuario hace más cosas y tiene sentido iniciar el sistema inicialmente en modo de usuario único y solo después hacer la transición al modo multiusuario (y eso es ¿Cómo al menos Linux lo hace? El kernel funciona en modo de "usuario único", como se evidencia si init=/bin/bashlo pasa, por ejemplo, y luego initcambia efectivamente al modo multiusuario), pero mi pregunta es:¿Cuándo y qué variante/versión se hizo la distinción entre las dos por primera vez?

Respuesta1

Unix estuvo haciendo esa distinción desde el principio, es decir, desde que se lanzó la versión 1 en 1971.

El sistema se estaba iniciando en modo multiusuario (es decir, usuarios conectados a las interfaces seriales disponibles, tty0pero tty5se tomaron medidas para agregar cuatro ttys más).

manual de unix v1estados para la sección 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.

Tenga en cuenta que con esta primera versión de Unix, la generación de los procesos de inicio de sesión en cada línea serie estaba codificada y realizada por el propio proceso de inicio. La selección de qué modo usar se realizó antes de iniciar y el cambio al modo multiusuario se realizó modificando la configuración del interruptor y saliendo del shell del modo de usuario único.

Más tarde, con Unix Versión 7 (1979), en lugar de conmutadores de hardware, el sistema arrancaba primero en modo de usuario único y cuando salía el shell de usuario único, cambiaba al modo multiusuario.

Incluso más tarde, System III (1981) introdujo el inittabarchivo. Con él, fue posible definir y configurar mejor múltiples niveles de ejecución y seleccionar cuál usar. El nivel de ejecución 1 fue monousuario y el nivel de ejecución 2 multiusuario. Si faltaba el archivo inittab, el sistema se iniciaba en modo de usuario único.

Respuesta2

Originalmente, init abriría un shell en la consola en modo de usuario único, y cuando ese shell saliera, abriría el programa de inicio de sesión (en realidad, getty) en los puertos serie, además de montar el resto de los sistemas de archivos e iniciar cualquier demonio que estuviera configurado para ejecutarse en ese momento.

Todo esto estaba controlado por las entradas en /etc/inittab.

Todo esto estaba presente en las versiones PDP-11 de Unix a principios de los años 1970, y creo que antes.

Por supuesto, hay un sinfín de detalles, pero esa es la esencia.

Respuesta3

La razón más probable para usar los términos single uservs. multi useres que inmediatamente después del arranque, UNIX solo tenía un sistema de archivos raíz montado de solo lectura.

Lo siguiente que se hizo fue verificar el sistema de archivos raíz (aproximadamente 1 MB) y volver a montarlo en lectura/escritura.

Luego /usrse revisó y montó el sistema de archivos.

Dado que los usuarios pueden iniciar sesión sólo después de que /usr/se haya montado, este es el punto en el que UNIX puede admitir un entorno multiusuario.

información relacionada