ผมสงสัยว่าถ้ามีเหตุผลทางประวัติศาสตร์หรือการปฏิบัติใด ๆ ว่าทำไมคำสั่งไม่ได้umount
unmount
ผมสงสัยว่าถ้ามีเหตุผลทางประวัติศาสตร์หรือการปฏิบัติใด ๆ ว่าทำไมคำสั่งไม่ได้umount
unmount
คำตอบ:
วันนี้ตลอดทางกลับไปที่รุ่นแรกของระบบปฏิบัติการยูนิกซ์ที่ทั้งหมดชื่อไฟล์มาตรฐานยาวเท่านั้นที่มากที่สุด 6 ตัวอักษร (คิดว่าpasswd
) แม้ว่ารุ่นนี้ได้รับการสนับสนุนไอกรน8 ตัวอักษรในชื่อไฟล์ คำสั่งส่วนใหญ่มีไฟล์ต้นฉบับที่เกี่ยวข้องซึ่งลงท้ายด้วย.c
(เช่นumount.c
) ซึ่งเหลือเพียง 6 ตัวอักษรสำหรับชื่อฐาน
ข้อ จำกัด แบบ 6 อักขระอาจเป็นแบบโฮลด์จากเวอร์ชันการพัฒนาก่อนหน้านี้หรือสืบทอดจากระบบ IBM ปัจจุบันที่มีข้อ จำกัด แบบอักขระ 6 ตัว (การใช้งานในช่วงต้นของ C มีขีด จำกัด 6 ตัวอักษรสำหรับตัวระบุ - ตัวระบุที่ยาวกว่านั้นได้รับการยอมรับ แต่คอมไพเลอร์มองที่ตัวอักษร 6 ตัวแรกเท่านั้นfoobar1
และfoobar2
เป็นตัวแปรเดียวกัน)
(ฉันคิดว่าฉันจำumount
หน้าคนที่ระบุการสะกดว่าเป็นจุดบกพร่องที่ไม่ทราบที่มา แต่ตอนนี้ฉันหาไม่พบ)
directory
ซึ่งยังไม่พอดี) ดังนั้นฉันจึงสงสัยว่าทำไมpasswd
ถูกตัดเหลือ 6 ตัวอักษร (ยังไม่มีpasswd
คำสั่ง แต่อย่างใด/etc/passwd
)
urandom
ดูเหมือนว่ามีข้อมูลผิดพลาดอยู่ที่นี่มาระยะหนึ่งแล้ว
เหตุผลส่วนใหญ่สำหรับคำสั่งที่มีชื่อย่อเป็นเพราะมันดังมาจากชื่อของสายระบบที่จะใช้:umount
umount()
เหตุผลที่เป็นไปได้ที่การเรียกระบบ "unmount" ที่มีชื่อumount()
นั้นเนื่องจากตัวเชื่อมโยงแรก ๆ จะจำกัดความยาวของตัวระบุภายนอกให้เหลือเพียง 6 ตัวอักษร (เพียงแค่หนึ่งกรณี) ในระบบบางประเภท (และทำให้รู้สึกถึงความเข้ากันได้ ในขณะนั้น) และ "umount" เป็นรูปแบบเชิงตรรกะของตัวย่อสำหรับ "unmount" ดูหน้า 179 ของภาษาการเขียนโปรแกรม Cครั้งแรกเพื่อดูรายการคุณลักษณะของตัวระบุภายนอกของระบบที่น่าสนใจต่าง ๆ ณ เวลาที่เผยแพร่
โปรดทราบว่าคอมไพเลอร์ C ต้น ๆ ถือว่าอักขระ 8 ตัวแรกของตัวระบุสำคัญ แต่อนุญาตให้ตัวระบุยาวขึ้น (K&R หน้า 33)
โปรดสังเกตว่าความยาวของตัวระบุในตารางสัญลักษณ์ไม่มีอะไรเกี่ยวข้องกับความยาวของชื่อไฟล์อย่างน้อยไม่ได้อยู่ในยูนิกซ์ (ตารางสัญลักษณ์ Unix ตั้งแต่ V1 มี 8 ตัวอักษรสำหรับตัวระบุแม้ว่ามันจะถูกบันทึกไว้ในคู่มือ V1 ที่ผู้ประกอบ" สร้างสัญลักษณ์ไม่เกิน 7 ไบต์ " )
ด้วยเหตุผลเดียวกันการcreat
โทรของระบบไม่ถูกสะกดcreate
?
.c
(หรือ.s
) นามสกุล = 8 ชื่อไฟล์ จำกัด ตัวอักษร