Mengapa 'umount' tidak dieja 'unmount'?

64

Saya bertanya-tanya apakah ada alasan historis atau praktis mengapa umountperintah itu tidak unmount.

uloBasEI
sumber

Jawaban:

79

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 foobar1dan foobar2merupakan variabel yang sama.)

(Saya pikir saya ingat umounthalaman manual yang mencantumkan ejaan sebagai bug yang tidak diketahui asalnya, tetapi saya tidak dapat menemukannya sekarang.)

Gilles 'SANGAT berhenti menjadi jahat'
sumber
21
6 karakter nama perintah + .c(atau .s) ekstensi = batas nama file 8 karakter.
geekosaur
@geekosaur: Ah, benar, file sumber. Jika Anda menulis jawaban, saya akan menghapus jawaban saya.
Gilles 'SANGAT berhenti menjadi jahat'
5
Tingkatkan, cukup beri catatan jika Anda mau.
geekosaur
@geekosaur: Saya memikirkan halaman manual, juga, tetapi V1 tidak memiliki perintah man (dan salah satu halaman manual dipanggil directory, yang belum cocok). Jadi saya bertanya-tanya mengapa passwddipotong menjadi 6 karakter (belum ada passwdperintah juga, hanya /etc/passwd).
Gilles 'SO- berhenti bersikap jahat'
2
Mungkin itu karena akhiran bahasa Yunani, yang berarti "tidak", itu juga akan menjelaskanurandom
Anthony Garcia
8

Sepertinya ada beberapa informasi salah yang duduk di sini untuk sementara waktu sekarang.

Alasan yang paling mungkin untuk umountperintah 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 " ).

Greg A. Woods
sumber
-1

Untuk alasan yang sama creatpanggilan sistem tidak dieja create?

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

philfr
sumber
4
Nggak. Penyesalan dalam kutipan yang Anda referensikan adalah karena mereka dapat menambahkan 'e' walaupun ada batas 6 karakter yang diperdebatkan dalam jawaban yang lain. Benar-benar tidak ada alasan yang baik untuk memotongnya, tidak seperti umount.
Warren Young
Saya menduga pada saat itu sudah menjadi tradisi untuk memotong huruf jika Anda bisa.
Shadur