Apa yang dimaksud Ken Thompson ketika dia berkata, "Saya akan mengeja makhluk dengan 'e'."

59

Ken Thompson, pencipta Unix, pernah ditanya apa yang akan dia lakukan jika dia harus melakukannya lagi. Dia berkata, "Aku akan mengeja makhluk dengan 'e'."

Apa yang dimaksud Ken? Apakah ada perintah "creat"?

Kusalananda
sumber
1
Sebenarnya, dia kemungkinan besar tidak bermaksud apa yang dia katakan: dia mungkin berarti bahwa dia akan mengeja creatdengan dua e - setelah semua, satu sudah ada. Tentu saja, pesan tersirat adalah bahwa UNIX ternyata seperti yang seharusnya tanpa perubahan substansial hanya membutuhkan perbaikan salah ketik ini.
Dietmar Kühl

Jawaban:

33

Bukan hanya dia mengacu pada man 2 creatpanggilan sistem. Dia juga mengacu pada tren usang untuk menghemat setiap karakter kecil, di mana mungkin, kadang-kadang ini hanya membingungkan, terutama sekarang, ketika mengetik dan menyimpan karakter lain jarang menjadi kendala.

P Shved
sumber
15
Saya pikir dalam konteks pertanyaan dia hanya merujuk ke creat (). Maksudnya adalah tidak ada apa-apa tentang Unix yang akan dia lakukan secara berbeda kecuali untuk kesalahan ejaan kecil dalam pemanggilan sistem untuk membuat file.
15
@ jmucchiello, ini bukan kesalahan pengejaan. Ini adalah singkatan yang disengaja (meskipun tidak standar). Ini cocok dengan penggunaan berat singkatan seperti fcntl, ls, mv, dll, pada umumnya.
Matthew Flaschen
6
Setuju, tapi saya suka abbrvtns itu bahkan ketika kami memiliki TB untuk disimpan :)
tgkprog
2
Kunci teletype sulit ditekan. Itu bermanfaat untuk menyimpan beberapa surat. Yang pertama yang bisa dihilangkan adalah vokal dan konsonan berlebihan.
Erkin Alp Güney
24

Ini mengacu pada panggilan sistem UNIX untuk membuat file baru. Linker pada beberapa mesin terbatas pada pengidentifikasi paling banyak 6 karakter. Rupanya, Ken harus bekerja dengan penghubung seperti itu dan karenanya system call create disingkat menjadi creat agar sesuai dengan batasan ini. Ironisnya, buat itu juga.

Lihat juga: Apa arti perintah ke-9?

ubiyubix
sumber
15
Batas 6 karakter diterjemahkan menjadi 5, sebagai kompiler (untuk menghindari simbol pengguna berbenturan dengan kompiler yang dihasilkan) '_'sebelum menambahkan variabel / nama fungsi pengguna, dan berhati-hati untuk tidak menggunakan '_'saat membuat simbol.
vonbrand
3
@vonbrand: Namun, sepertinya itu tidak menjelaskan bagaimana unlinkatau umountbisa ada, yang menurut saya kontemporer creat.
Dolda2000
@ Dolda2000 Yah, sangat mungkin linker memiliki batasan ini, sedangkan kompiler tidak. Jadi umountakan berbenturan dengan umounatau umounxatau apa pun, tetapi nama itu akan diizinkan. Tapi itu spekulasi murni :)
Luaan
23

Saya terlambat enam tahun untuk menjawab, tetapi saya percaya bahwa jawaban yang ada semuanya kehilangan inti dari kutipan Thompson.

Saya akan mengejanya dengan 'e'.

Ken Thompson tidak meratapi nama fungsi yang digunakan untuk membuka dan mungkin membuat file. Sebaliknya, ia menyatakan bahwa Unix dilakukan dengan benar, yaitu tidak ada hal besar yang seharusnya dilakukan secara berbeda.

The halus titik adalah bahwa arsitektur Unix adalah suara, dan implementasi baik-baik saja. Orang perlu bikeshed untuk menemukan sesuatu untuk ditingkatkan di Unix. Dengan demikian, jelas nitpick tentang nama panggilan sistem yang umum.

dotancohen
sumber
3
Benar, dia ingin memberi tahu kami, bahwa arsitektur UNIX dapat ditingkatkan dalam aspek yang sangat kecil. Tetapi pada dasarnya UNIX telah melakukannya dengan benar. BTW. creatadalah panggilan sistem bukan perintah CLI.
ikrabbe