Neden 'umount' yazılmıyor 'unmount'?


64

umountKomutun olmamasının herhangi bir tarihsel veya pratik sebebi olup olmadığını merak ediyorum unmount.

Yanıtlar:


79

Bu , tüm standart dosya adlarının en fazla 6 karakter uzunluğunda (düşünen ) olduğu Unix'in ilk basımına kadar uzanıyor ( passwdbu sürüm bir dosya adında 8 karakter boğmaca) desteklese de . Çoğu komutun .c(örneğin umount.c) biten , temel ad için sadece 6 karakter bırakan bir ilişkili kaynak dosyası vardı .

6 karakterlik bir sınırlama, daha önceki bir geliştirme sürümünden bir sahip olabilir veya 6 karakterlik bir sınırlamaya sahip olan mevcut bir IBM sisteminden miras kalmış olabilir. (Erken C uygulamaları tanımlayıcıları üzerinde 6 karakterlik sınırı vardı - uzun tanımlayıcıları kabul ama derleyici yalnızca bu yüzden, ilk 6 karakterden da inceleniyor foobar1ve foobar2. Aynı değişken idi)

( umountYazımı bilinmeyen bir hata olarak listeleyen bir adam sayfasını hatırladığımı sanıyordum , ancak şimdi bulamıyorum.)


21
6 karakter komut adı + .c(veya .s) extension = 8 karakter dosya adı sınırı.
geekosaur

@geekosaur: Ah, doğru, kaynak dosya. Bir cevap yazarsan benimkini silerim.
Gilles,

5
Enh, sadece istersen not al.
geekosaur

@geekosaur: Ben de man sayfasını düşündüm, ama V1'in bir man komutu yoktu (ve man sayfalarından birine denir directory, ki henüz uymayacaktı). Bu yüzden neden passwd6 karaktere kısaltıldığını merak ediyorum ( passwdhenüz bir komut da yoktu /etc/passwd).
Gilles

2
Belki de Yunanca eki, yani "değil" anlamına gelir, bu da açıklarurandom
Anthony Garcia

8

Bir süredir burada oturup yanlış bilgiler varmış gibi görünüyor.

En olası nedeni umounto kullandığı sistem çağrısının adından izlediğinden kısaltılmış ismi olan komutu geçerli: umount().

İsmi sahip "unmount" sistem çağrısının muhtemel nedeni, umount()erken linkerlerin harici tanımlayıcıların uzunluğunu bazı sistemlerde 6 karaktere kadar (sadece tek bir durumda) sınırlandırmasıdır (ve bu araçlarla uyumluluğu korumak mantıklıdır). zamanda) ve "umount", "unmount" için kısaltmanın mantıksal bir şeklidir. Yayınlanma sırasında çeşitli ilgili sistemlerin harici tanımlayıcı özelliklerinin bir listesi için C Programlama Dilinin ilk baskısının 179. sayfasına bakınız .

Ayrıca erken C derleyicilerinin bir tanımlayıcının ilk 8 karakterini anlamlı olarak kabul ettiğini, ancak tanımlayıcıların daha uzun olmasına izin verdiğini unutmayın. (K&R sayfa 33)

Sembol tabloları tanımlayıcılar uzunluğu vardır unutmayın hiçbir şey , V1 beri en azından Unix (Unix sembol tabloları içinde, dosya adı uzunluğu ile direkt olarak yapmak olursa olsun o V1 kılavuzunda belirtildiği olsa, tanımlayıcılar için 8 karakterden olduğu montajcı " en fazla 7 baytlık semboller üretir " ).


-1

4
Hayır! Referans gösterdiğiniz alıntıdaki pişmanlık, diğer cevapta tartışılan 6 karakter sınırına rağmen 'e' ekleyebilmeleridir. Gerçekten de, umount'un aksine kesilmesi için iyi bir sebep yoktur.
Warren Young

O zamana kadar mümkünse harfleri kesmenin bir geleneği olduğunu tahmin ediyorum.
Shadur
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.