¿Por qué 'umount' no se escribe 'desmontar'?

64

Me pregunto si hay alguna razón histórica o práctica por la cual el umountcomando no lo es unmount.

uloBasEI
fuente

Respuestas:

79

Esto se remonta a la primera edición de Unix , donde todos los nombres de archivo estándar tenían solo 6 caracteres como máximo (piense passwd), a pesar de que esta versión admitía 8 caracteres en un nombre de archivo . La mayoría de los comandos tenían un archivo fuente asociado que terminaba en .c(por ejemplo umount.c), que dejaba solo 6 caracteres para el nombre base.

Una limitación de 6 caracteres también podría haber sido un remanente de una versión de desarrollo anterior, o heredada de un sistema IBM actual que tenía una limitación de 6 caracteres. (Early C implementaciones tenían un límite de 6 caracteres en identificadores - identificadores más largos fueron aceptadas pero el compilador solo tuvieron en cuenta los primeros 6 caracteres, por lo que foobar1y foobar2. Eran la misma variable)

(Pensé que recordaba una umountpágina de manual que enumeraba la ortografía como un error de origen desconocido, pero ahora no puedo encontrarla).

Gilles 'SO- deja de ser malvado'
fuente
21
Nombre de comando de 6 caracteres + .c(o .s) extensión = límite de nombre de archivo de 8 caracteres.
geekosaur
@geekosaur: Ah, cierto, el archivo fuente. Si escribes una respuesta, eliminaré la mía.
Gilles 'SO- deja de ser malvado'
55
Enh, solo anótala si quieres.
geekosaur
@geekosaur: También pensé en la página de manual, pero V1 no tenía un comando de manual (y se llama a una de las páginas de manual directory, que todavía no encajaría). Así que me pregunto por qué passwdse truncó a 6 caracteres (tampoco había un passwdcomando todavía, solo /etc/passwd).
Gilles 'SO- deja de ser malvado'
2
Tal vez sea por el sufijo griego οὐ, que significa "no", eso también explicaríaurandom
Anthony Garcia
8

Parece que ha habido información errónea aquí por un tiempo.

La razón más probable para el umountcomando que tiene el nombre abreviado es porque sigue a partir del nombre de la llamada al sistema que utiliza: umount().

La razón probable de que la llamada al sistema "desmontada" tenga el nombre umount()es porque los primeros enlazadores limitaron la longitud de los identificadores externos a tan solo 6 caracteres (de un solo caso) en algunos tipos de sistemas (y tenía sentido mantener la compatibilidad con tales herramientas en ese momento), y "umount" es una forma lógica de abreviatura para "desmontar". Consulte la página 179 de la primera edición de The C Programming Language para obtener una lista de las características del identificador externo de varios sistemas de interés en el momento de la publicación.

Tenga en cuenta también que los primeros compiladores de C trataron los primeros 8 caracteres de un identificador como significativos, pero permitieron que los identificadores fueran más largos. (K&R página 33)

Tenga en cuenta que la longitud de los identificadores en las tablas de símbolos no tiene nada que ver directamente con la longitud del nombre de archivo, al menos no dentro de Unix (las tablas de símbolos de Unix, desde V1, tienen 8 caracteres para los identificadores, aunque en el manual de V1 se indica que el ensamblador " genera símbolos de como máximo 7 bytes " ).

Greg A. Woods
fuente
-1

¿Por la misma razón que la creatllamada al sistema no está escrita create?

https://stackoverflow.com/questions/1713457/what-did-ken-thompson-mean-when-he-said-id-spell-create-with-an-e

philfr
fuente
44
No. El remordimiento en la cita a la que hace referencia se debe a que podrían haber agregado la 'e' a pesar del límite de 6 caracteres que se discute en la otra respuesta. Realmente no hay una buena razón para que se trunca, a diferencia de umount.
Warren Young
Supongo que para entonces era tradición truncar las letras si pudieras.
Shadur