Jawaban:
Ini tanggal semua jalan kembali ke edisi pertama Unix , di mana semua nama file standar hanya sepanjang 6 karakter (berpikir passwd
), meskipun versi ini mendukung 8 karakter rejan dalam nama file . Sebagian besar perintah memiliki file sumber terkait yang diakhiri dengan .c
(misalnya umount.c
), yang hanya menyisakan 6 karakter untuk nama dasar.
Batasan 6 karakter mungkin juga merupakan peninggalan dari versi pengembangan sebelumnya, atau diwarisi dari sistem IBM saat itu yang memang memiliki batasan 6 karakter. (Implementasi C awal memiliki batas 6 karakter pada pengidentifikasi - pengidentifikasi yang lebih lama diterima tetapi kompiler hanya melihat 6 karakter pertama, jadi foobar1
dan foobar2
merupakan variabel yang sama.)
(Saya pikir saya ingat umount
halaman manual yang mencantumkan ejaan sebagai bug yang tidak diketahui asalnya, tetapi saya tidak dapat menemukannya sekarang.)
directory
, yang belum cocok). Jadi saya bertanya-tanya mengapa passwd
dipotong menjadi 6 karakter (belum ada passwd
perintah juga, hanya /etc/passwd
).
urandom
Sepertinya ada beberapa informasi salah yang duduk di sini untuk sementara waktu sekarang.
Alasan yang paling mungkin untuk umount
perintah memiliki nama disingkat adalah karena mengikuti dari nama panggilan sistem yang menggunakan: umount()
.
Kemungkinan alasan pemanggilan sistem "unmount" yang memiliki nama itu umount()
adalah karena penghubung awal membatasi panjang pengidentifikasi eksternal hingga sedikitnya 6 karakter (hanya satu kasus) pada beberapa jenis sistem (dan masuk akal untuk mempertahankan kompatibilitas dengan alat tersebut) pada saat itu), dan "umount" adalah bentuk logis dari singkatan untuk "unmount". Lihat halaman 179 edisi pertama Bahasa Pemrograman C untuk daftar karakteristik pengidentifikasi eksternal dari berbagai sistem yang menarik pada saat publikasi.
Perhatikan juga bahwa kompiler C awal memperlakukan 8 karakter pertama dari pengidentifikasi sebagai signifikan, tetapi memungkinkan pengidentifikasi lebih lama. (K&R halaman 33)
Perhatikan bahwa panjang pengidentifikasi dalam tabel simbol tidak ada hubungannya sama sekali dengan panjang nama file, setidaknya tidak di dalam Unix (tabel simbol Unix, karena V1, memiliki 8 karakter untuk pengidentifikasi, meskipun dicatat dalam manual V1 bahwa assembler " menghasilkan simbol paling banyak 7 byte " ).
Untuk alasan yang sama creat
panggilan sistem tidak dieja create
?
.c
(atau.s
) ekstensi = batas nama file 8 karakter.