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 foobar1e foobar2. Erano la stessa variabile)
(Pensavo di ricordare una umountpagina 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 passwdstato troncato a 6 caratteri (non c'era nemmeno un passwdcomando, solo /etc/passwd).
urandom
Sembra che ci siano state alcune informazioni errate qui da un po 'di tempo.
La ragione più probabile per il umountcomando 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 creatchiamata di sistema non è stata scritta create?
.c(o.s) estensione = limite di nome file a 8 caratteri.