Neden Linux için / usr ve / tmp dizinleri yazımlarında ünlüleri özlüyor?


34

Sık sık bunun hakkında düşünmeye başladım ama asla iyi bir cevap bulamadım. Neden bu iki Unix klasörü değil /userve /tempyerine?

Diğer tüm dizinler roottam olarak birinin tahmin ettiği gibi görünüyor, fakat bu ikisi garip görünüyor, her zaman userve olarak tahmin ederdim temp.

Yazımların tarihi bir nedeni var mı?


2
Bir şey bana bunun Unix’in bir taşınması olduğunu söylüyor. Bu varsayım üzerine, bu gibi kesmelerin çoğunun belirgin hecelere dayandığını tahmin ediyorum.
Ken

17
Bir kez, Ken Thompson, o Unix yeniden tasarlama edildi farklı bir şey yapacağını sordu, ve o "cevabını" Ben bir e creat büyü olurdu."
mattdm

3
"Kök altındaki tüm diğer dizinler tam olarak birinin tahmin edeceği gibi görünüyor" -> Bu bana doğru gelmiyor. Hariç boot, home, mediave roother şey kısalır. mntayrıca ünlülerinden de yoksun.
phunehehe

7
Ben ... 'u' sesli harf olduğunu düşündüm
Sn Shickadance

1
@Bay. Shickadance: öyle.
0xC0000022L

Yanıtlar:


49

Evet, sebepler vardı. Onlar telaffuz kullanıcı ve geçici. passwd, resolv.conf ile aynıdır. Unix uzman dostu, kullanıcı düşmanca bir işletim sistemidir.

Ben 300 Baud modeminin norm olduğu bir öğrenciydim. Çalıştığım Control Data'dan Silent 700 terminaline sahip olduğum için arkadaşlarımın kıskanıyorum. Her karakteri yazmanın ve yankılanmasını beklemenin gecikmesini görebilirsiniz. Her karakter sayılır; Ayrıca leet konuşmasının başlangıcını teşvik ediyor olarak görüyorum.

Vi den hjkl, az bilinen bir tarihe sahiptir. vi, aynı yıllarda UCB'de yüksek lisans öğrencisiyken Bill Joy tarafından geliştirilmiştir. Cory Hall'deki ADM 3a terminallerinde bu harflerin üzerinde ok tuşları vardı.


22
Ben tasarlandığında "uzman dostu, kullanıcı karşıtlığı" fikrinin amacın bir parçası olduğunu sanmıyorum . Aksine, tüm kullanıcıların idi uzmanlar, bu nedenle anlamlı bir fark vardı.
mattdm

7
LOL "Uzman dostu, kullanıcı karşıtlığı". Günümü gün etti. 1!
nico

5
Sadece küçük bir not (herhangi bir yolla düzeltme değil). Bazen "kullanıcı" olarak telaffuz edilse de, / usr "evrensel sistem kaynağı" veya "unix sistem kaynağı" anlamına gelir. Hangisi olursa olsun, Unix'in antik tarihinin
sisinde kaybolmuş

20
/ Usr'ın kodlandığı tarihte, anlamı kullanıcı ve ev dizinleri oradaydı. unix / universal system kaynağı aslında bir backronym.
jlliagre

2
Unix çıktığında 300 bps gürdü . Orada hantal, yavaş, elektromekanik teletypewriters (genellikle Teletype® ASR-33) tarafından ele 75 bağlantı vardır.
Alexios

20

Unix’den devraldılar. Bellek ve disk alanı yetersiz tedarik edildi. Birkaç ünlü ve diğer kısaltmaları kırmak, gerçek bir tasarruf sağladı. Birkaç disk bloğu veya birkaç bayt, bir programı çalıştırıp çalıştırmamaktaki fark anlamına gelebilir. (Bir keresinde bir programı çalıştırmadan önce 24 bayta kadar kesmek zorunda kaldım.)

Ayrıca Tom'un belirttiği gibi terminal hızları yavaştı. 1200 baud yüksek hızda tanıtıldı ve öyleydi. Konsol olarak yarım hızlı teletype (55 baud veya 5 cps) kullanan bir sistemle çalıştım.

Grafiksel arayüzleri çalıştıran sistemlerde, genellikle ortalama bir kullanıcının çevrelerinde oynamayacağı kadar önemli değildir. Dizinler genellikle hierkılavuz sayfasında iyi belgelenmiştir .

Daha uzun isimlere geçmek mevcut programlar için çok fazla soruna neden olur. Ayrıca komut dosyası taşınabilirliğini de kısıtlar. Birden fazla adı aynı klasörlere bağlamak, muhtemelen yardımcı olmaktan daha kafa karıştırıcı olabilir.

EDIT: Unix'in geliştirildiği PDP-7, 4KW belleğin temel yapılandırmasına ve maksimum 32KW'a sahiptir. 18 bit genişliğinde kelimeler. Girdi bir teletipti, bu nedenle hız 110 baud veya 10cps, kabaca 100 kelime konuşmadan önemli ölçüde yavaştı.


8
Ben mmory nd dsk spc almıyorum ama yavaş tltyps. Ne kadar uzun zamandır dcphr th cronyms - neden olmasın?
kullanıcı bilinmeyen,

@ user unknown: O zaman gençsiniz ve asla bellek ya da disk alanı için endişelenmenize gerek kalmadı. İlk bilgisayarım şu an 30 yaşında.

1
Daha önce hiç bir dosya sistemini yazmadım ya da kontrol etmedim, ancak dosya sistemindeki bir dosya / dizinin adı 1 karaktere bağlı olarak az ya da çok yer kaplar mı? Dosyaların kendileri her zaman bazı boyutların çoğunu işgal eder - bugün 4k. Bu nedenle / usr veya / tmp yolunu içeren dosyaların çoğu, bir taneye bağlı olarak etkili bir şekilde küçülmez veya büyür e. Eh - bazen onlar olacak, ve sonra bir bütün olarak blok boyu büyürler, ancak nadiren. Ve RAM'de? Bilmiyorum.
kullanıcı bilinmeyen,

1
ve yazmak için daha can sıkıcı olurdu. "geçici vs tmp" ugh ... neden birileri onları daha çok istiyor?
xenoterracide

4
Modern Unix dizinleri değişken uzunluktaki girişlere sahiptir. Research Unix’e geri dönersek, bir dizin girişi 16 byte: 14 dosya adı, 14 inode numarası için sabitti. Ve usr vb. Kanonize edildiğinde daha küçük olabilirdi.
geekosaur

5

/userHenüz kimsenin yorum yapmamasına şaşırdım . Bu açıktır: "kullanıcı" olmadığı için "Evrensel Sistem Kaynakları" dır.

Gelince /tmp, sadece kısa ve yazmak kolaydır. C programcıları mümkün olduğunda kısa isimler kullanma alışkanlığına sahiptir çünkü bir programda birçok kez yazmayı bırakmaktadırlar. Aynı nedenden dolayı "temp" yerine "tmp" adında geçici bir değişken olması çok yaygındır, "i" i, "index" veya "counter" yerine bir for döngüsünde indeks için kullanırsınız.


22
/ Usr'ın kodlandığı tarihte, anlamı kullanıcı ve ev dizinleri oradaydı. unix / universal system kaynağı aslında bir backronym.
jlliagre

3
@jlliagre Awesome. Gerçekten yetkili bir kaynağı olan başka bir konu buldum. us.generation-nt.com/answer/…
Shawn J. Goff

2
En erken C programcıları ilk FORTRAN programcılarıydı. Fortran IV'te tamsayıları yazma şekliniz, tanımlayıcıyı 'i' ile 'n' arasındaki bir karakterle başlatmaktı, her şey GERÇEK bir sayıydı. Bu nedenle döngü endeksleri tipik olarak i, j veya k idi; Bilimsel programcıların o zamanlar uğraştığı matrisler için yeterliydi.
Tom Murphy

@ TomMurphy, C ile başlayan çoğu insan büyük olasılıkla assembly dili programcıları veya belki BCPL veya B kullanıcılarıydı. Elinde iyi bir dili olmayan fakir ruhlar için RATFOR icat edildi. Ve Kernighan ve Plaugher kitabı "Yazılım araçları" RATFOR'da yazıldı (ve tam bir önişlemcisini listeliyor). Hala çok okunmaya değer.
von

1
/usr"Evrensel Sistem Kaynakları" değildi, gerçekten kullanıcıydı . Youtube'a bakınız : AT&T Arşivi: UNIX İşletim Sistemi (1982'de üretildi) yaklaşık 13dk 35sn'de /usr/bwkaçıkça "user-bwk" /usrolarak telaffuz edildi ve Brian W. Kernighan tarafından "slash-user" olarak telaffuz edildi . / usr ayrıca şemada 13dk 30sn'de ev dizinleri içeren konum olarak açıkça ifade edilir. Bundan daha yetkili olabileceğini sanmıyorum.
CVn

4

Hiç kimsenin bahsetmediği bir faktör, zamanın klavye teknolojisi göz önüne alındığında, yazılması daha kolay olan kısa adların kullanılmasında önemli bir avantaj olduğu. Yazdırma userVS. usrmuhtemelen büyük bir anlaşma değildi, hatta bir 110-BPS teleks üzerine; zorunda tip ekstra mektubu muhtemelen daha anlamlıdır.


1

Kök altındaki tüm diğer dizinler tam olarak birinin tahmin ettiği gibi görünüyor.

Ayrıca var / var, / mnt ve / opt;)

ama bu ikisi garip görünüyor, her zaman onları kullanıcı ve geçici olarak tahmin ederdim.

Neredeyse. Shawn'un dediği gibi "kullanıcı", "Evrensel Sistem Kaynakları" anlamına gelir (buna rağmen , google’a göre diğer kaynaklar "Unix Sistem Kaynakları" anlamına gelir).

Yazımların tarihi bir nedeni var mı?

Kısa yollar, kısaltmalar. Herhangi bir işletim sistemindeki komutların hem etkileşimli hem de programatik olarak erişime yönelik olduğunu unutmayın. Özellikle hızlı komut yazmanın bir öncelikli sorun olduğu sistem yönetimi için, kısaltmalar, anımsatıcılar, tam yazılmış kelimeden / komuttan daha iyidir (veya daha da iyidir).

Ayrıca, güne geri döndüğünüzde, bir melas gibi yavaş modemle uzaktan bağlanırsanız, burada birkaç ünlü kılıcı traş ediyorsanız ve hayatınızı kolaylaştıracak (ya da cehennemin ne olduğunu anlamaya çalışan bir sysadmin olsaydınız daha az sefil) Uzak kutuda yanlış.)

Daha önce de belirtildiği gibi, / usr ve / tmp'ye özgü değildir (bkz. / Var, / mnt ve / opt).

Ayrıca, Unix'e özgü değil. Örneğin DOS al (örneğin chkdsk.) Ünlüleri traş ettiğiniz anımsatıcılar güçlü, kullanışlı bir konsepttir.

Doğal dillerde bile (Semitik diller gibi), kavram var (kelimelerin kökü evrensel ve neredeyse kesin olarak 3 ünsüzlü gruplar tarafından tanımlanıyorsa). Bilgi yönetimi için doğuştan gelen bir insan mekanizmasıdır.


/ Var, / mnt ve / opt daha sonra geldi. Ancak, / bin, / dev ve / etc çok erken UNIX'taydı ve aynı nedenle insanlar belirtti - çünkü tty'ler yavaş ve hepsi CRT ve disk alanı değildi. Kağıt bant, küçük (yerden akıllı) pahalı sürücüler ve hatta 8 "
floplar

1
Semitik dillerin aslında ünsüzleri kullanmadıkları, ancak belirsiz ünlüleri olan heceler olduğu söylenebilir. Bu nedenle, kök heceler anlamsal anlam sağlarken, belirli ünlüler gramer anlamını ekler.
ninjalj
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.