Risposte:
Questo risale alla primissima edizione di Unix , dove tutti i nomi di file standard erano lunghi al massimo 6 caratteri (pensa passwd
), anche se questa versione supportava un enorme 8 caratteri in un nome di file . Alla maggior parte dei comandi era associato un file di origine che termina con .c
(ad esempio umount.c
), che ha lasciato solo 6 caratteri per il nome di base.
Una limitazione di 6 caratteri potrebbe anche essere stata una sospensione da una versione di sviluppo precedente o ereditata da un sistema IBM di allora in vigore che aveva una limitazione di 6 caratteri. (Early C implementazioni avevano un limite di 6 caratteri su identificatori - identificatori più lunghi sono stati accettati, ma il compilatore guardato solo i primi 6 caratteri, quindi foobar1
e foobar2
. Erano la stessa variabile)
(Pensavo di ricordare una umount
pagina man che elencava l'ortografia come un bug di origine sconosciuta, ma non riesco a trovarlo ora.)
directory
, che non si sarebbe ancora adattata). Quindi mi chiedo perché sia passwd
stato troncato a 6 caratteri (non c'era nemmeno un passwd
comando, solo /etc/passwd
).
urandom
Sembra che ci siano state alcune informazioni errate qui da un po 'di tempo.
La ragione più probabile per il umount
comando di avere il nome abbreviato è perché segue dal nome della chiamata di sistema che utilizza: umount()
.
Il probabile motivo per cui la chiamata di sistema "smonta" con il nome umount()
è perché i linker iniziali limitavano la lunghezza degli identificatori esterni a un minimo di 6 caratteri (di un solo caso) su alcuni tipi di sistemi (ed era logico mantenere la compatibilità con tali strumenti al momento) e "umount" è una forma logica di abbreviazione di "smontare". Vedi pagina 179 della prima edizione di The C Programming Language per un elenco delle caratteristiche identificative esterne di vari sistemi di interesse al momento della pubblicazione.
Si noti inoltre che i primi compilatori C consideravano i primi 8 caratteri di un identificatore come significativi, ma consentivano agli identificatori di essere più lunghi. (K&R pagina 33)
Nota che la lunghezza degli identificatori nelle tabelle dei simboli non ha nulla a che fare direttamente con la lunghezza del nome file, almeno non all'interno di Unix (le tabelle dei simboli Unix, dal momento che V1, hanno 8 caratteri per gli identificatori, sebbene nel manuale V1 si noti che l'assemblatore " genera simboli di massimo 7 byte " ).
Per lo stesso motivo la creat
chiamata di sistema non è stata scritta create
?
.c
(o.s
) estensione = limite di nome file a 8 caratteri.