Tại sao các thư mục / usr và / tmp cho Linux bỏ lỡ các nguyên âm trong cách viết của chúng?


34

Tôi thường bắt đầu nghĩ về điều này nhưng không bao giờ tìm thấy một câu trả lời hay. Tại sao hai thư mục Unix này không /user/tempthay vào đó?

Tất cả các thư mục khác bên dưới rootdường như chính xác là những gì người ta sẽ đoán chúng là, nhưng hai thư mục này có vẻ kỳ lạ, tôi sẽ luôn đoán chúng là usertemp.

Có một số lý do lịch sử cho các cách viết?


2
Một cái gì đó cho tôi biết đó là một sự chuyển giao từ Unix. Dựa trên giả định đó, tôi đoán rằng hầu hết các lần cắt như vậy đều dựa trên các âm tiết nổi bật.
Ken

17
Một lần, Ken Thompson được hỏi liệu anh ta có làm gì khác không khi anh ta thiết kế lại Unix và anh ta trả lời "" Tôi sẽ đánh vần người tạo ra một e. "
mattdm

3
"Tất cả các thư mục khác trong thư mục gốc dường như chính xác là những gì người ta đoán chúng là" -> Điều đó dường như không đúng với tôi. Ngoại trừ boot, home, mediarootmọi thứ khác được rút ngắn. mntcũng thiếu nguyên âm của nó.
phunehehe

7
Tôi nghĩ 'u' là một nguyên âm ...
Ông Shickadance

1
@Ông. Shickadance: nó là.
0xC0000022L

Câu trả lời:


49

Yup có lý do. Họ được phát âm người dùng và tạm thời. passwd là tương tự, như là độ phân giải. Unix là một chuyên gia thân thiện, hệ điều hành đối kháng người dùng.

Tôi là một sinh viên khi 300 modem Baud là chuẩn mực. Tôi ghen tị với các sinh viên của mình, vì tôi có thiết bị đầu cuối Silent 700 từ Control Data nơi tôi đang làm việc. Bạn có thể thấy độ trễ từ việc gõ từng ký tự và chờ cho nó được lặp lại. Mỗi nhân vật đều được tính; Tôi cũng xem nó như thúc đẩy sự khởi đầu của leet speak.

Các hjkl từ vi có một lịch sử mà ít ai biết. vi được Bill Joy phát triển khi anh còn là học sinh tốt nghiệp tại UCB trong những năm này. Thiết bị đầu cuối ADM 3a trong Cory Hall có các phím mũi tên phía trên các chữ cái đó


22
Tôi không nghĩ rằng khi nó được thiết kế , ý tưởng "thân thiện với chuyên gia, đối kháng người dùng" là một phần của mục tiêu. Thay vào đó, tất cả người dùng chuyên gia, vì vậy không có sự phân biệt có ý nghĩa.
mattdm

7
LOL "Thử nghiệm thân thiện, đối kháng người dùng". Nó làm cho ngày của tôi. +1!
nico

5
Chỉ cần một lưu ý nhỏ (không phải là một sự điều chỉnh bằng bất kỳ phương tiện nào). Mặc dù đôi khi nó được phát âm là "người dùng", / usr là viết tắt của "tài nguyên hệ thống phổ quát" hoặc "tài nguyên hệ thống unix". Dù đó là gì đi nữa, nó đã bị mất giữa
làn

20
Tại thời điểm / usr được đặt ra, ý nghĩa của nó là thư mục người dùng và nhà được đặt ở đó. tài nguyên hệ thống unix / vạn năng thực sự là một từ viết tắt.
jlliagre

2
Khi Unix ra 300 bps là tươi tốt . Có 75 liên kết bps ngoài kia, được xử lý bởi các máy điện báo cồng kềnh, chậm, điện cơ (thường là Teletype® ASR-33).
Alexios

20

Họ đang nắm giữ từ Unix. Bộ nhớ và không gian đĩa bị thiếu. Việc hack một vài nguyên âm và các chữ viết tắt khác đã mang lại sự tiết kiệm thực sự. Một vài khối đĩa hoặc một vài byte có thể có nghĩa là sự khác biệt trong việc có thể chạy một chương trình hay không. (Tôi đã từng phải cắt một chương trình 24 byte trước khi nó chạy.)

Cũng như Tom lưu ý tốc độ thiết bị đầu cuối là chậm. 1200 baud được giới thiệu là tốc độ cao và nó đã được. Tôi đã làm việc với một hệ thống sử dụng teletype tốc độ một nửa (55 baud hoặc 5 cps) làm bàn điều khiển.

Trên các hệ thống chạy giao diện đồ họa, điều đó thường không quan trọng bằng việc người dùng trung bình sẽ không chọc vào chúng. Các thư mục thường được ghi chép tốt trong hiertrang man.

Thay đổi tên dài hơn sẽ gây ra nhiều vấn đề cho các chương trình hiện có. Nó cũng sẽ hạn chế tính di động của tập lệnh. Liên kết nhiều tên với cùng một thư mục có thể sẽ gây nhầm lẫn hơn là hữu ích.

EDIT: PDP-7 mà Unix được phát triển có cấu hình cơ bản là 4KW bộ nhớ và tối đa 32KW. Từ rộng 18 bit. Đầu vào là một teletype, vì vậy tốc độ có thể là 110 baud hoặc 10cps, khoảng 100 từ chậm hơn đáng kể so với lời nói.


8
Tôi không mua mmory nd dsk spc, nhưng tltyps chậm. Miễn là bạn cn dcphr thronrons - tại sao không?
người dùng không xác định

@user unknown: Sau đó, bạn còn trẻ và không bao giờ phải lo lắng về bộ nhớ hoặc dung lượng đĩa. Máy tính đầu tiên của tôi bây giờ đã 30 tuổi - ngạc nhiên trước thông số kỹ thuật.

1
Tôi chưa bao giờ viết hoặc kiểm tra một hệ thống tập tin chuyên sâu, nhưng tên của một tập tin / thư mục trong hệ thống tập tin chiếm nhiều hay ít không gian, tùy thuộc vào 1 ký tự? Bản thân các tệp luôn chiếm nhiều kích cỡ - hôm nay là 4k. Vì vậy, hầu hết các tệp chứa đường dẫn đến / usr hoặc / tmp sẽ không thực sự nhỏ hơn hoặc lớn hơn, tùy thuộc vào một tệp e. Chà - đôi khi họ sẽ, và sau đó họ phát triển toàn bộ khối, nhưng hiếm khi. Và trong RAM? Tôi không biết.
người dùng không xác định

1
và nó sẽ gây khó chịu hơn khi gõ. "tạm thời vs tmp" ugh ... tại sao mọi người muốn họ lâu hơn?
xenoterracide

4
Các thư mục Unix hiện đại có các mục có độ dài thay đổi. Quay lại với Research Unix, một mục nhập thư mục là 16 byte cố định: 14 cho tên tệp, 2 cho số inode. Và nó có thể đã nhỏ hơn khi / usr, vv được phong thánh.
geekizard

5

Tôi ngạc nhiên khi chưa có ai bình luận /user. Điều này là hiển nhiên: bởi vì nó không phải là "người dùng", đó là "Tài nguyên hệ thống toàn cầu".

Đối với /tmp, nó chỉ đơn giản là ngắn hơn và dễ dàng hơn để gõ. Các lập trình viên C có thói quen sử dụng tên ngắn khi có thể vì cuối cùng họ gõ chúng nhiều lần trong một chương trình. Rất phổ biến có một biến tạm thời có tên là "tmp" thay vì "temp" vì lý do tương tự, bạn sử dụng "i" i cho chỉ mục trong một vòng lặp for thay vì "index" hoặc "counter".


22
Tại thời điểm / usr được đặt ra, ý nghĩa của nó là thư mục người dùng và nhà được đặt ở đó. tài nguyên hệ thống unix / vạn năng thực sự là một từ viết tắt.
jlliagre

3
@jlliagre Tuyệt vời. Tôi tìm thấy một chủ đề khác thực sự có một nguồn có thẩm quyền về điều đó. us.generation-nt.com/answer/ từ
Shawn J. Goff

2
Hầu hết các lập trình viên C đầu tiên là những lập trình viên FORTRAN đầu tiên. Cách bạn nhập số nguyên trong Fortran IV là bắt đầu định danh bằng một ký tự từ 'i' đến 'n', mọi thứ khác là số THỰC. Do đó, các chỉ số vòng lặp thường là i, j hoặc k; Điều đó là đủ cho các ma trận mà các lập trình viên khoa học của chúng ta đã thu thập lại.
Tom Murphy

@TomMurphy, hầu hết những người bắt đầu với C có lẽ là lập trình viên ngôn ngữ lắp ráp, hoặc có lẽ là người dùng BCPL hoặc B. RATFOR được phát minh cho những linh hồn nghèo khổ, những người không có ngôn ngữ đàng hoàng. Và cuốn sách "Công cụ phần mềm" của Kernighan và Plaugher đã được viết bằng (và liệt kê một bộ tiền xử lý đầy đủ cho) RATFOR. Vẫn còn rất nhiều giá trị đọc.
vonbrand

1
/usrkhông phải là "Tài nguyên hệ thống toàn cầu", nó thực sự là người dùng . Xem Youtube: AT & T Archives: Hệ điều hành UNIX (được sản xuất vào khoảng năm 1982) trong đó, vào khoảng 13 phút 35 giây, /usr/bwkđược phát âm rõ ràng là "user-bwk" và /usrđược phát âm là "người dùng gạch chéo" bởi Brian W. Kernighan . / usr cũng được ngụ ý rõ ràng là vị trí chứa các thư mục chính trong sơ đồ vào lúc 13 phút 30 giây. Tôi không nghĩ rằng bạn có thể có nhiều thẩm quyền hơn thế.
một CVn

4

Một yếu tố mà không ai đề cập đến là, với công nghệ bàn phím thời đó, có một lợi thế đáng kể trong việc sử dụng các tên ngắn dễ gõ hơn. In userso với usr, ngay cả trên máy điện báo 110 BPS, có lẽ không phải là một vấn đề lớn; phải thêm chữ cái đó có lẽ có ý nghĩa hơn.


1

Tất cả các thư mục khác trong thư mục gốc dường như chính xác là những gì người ta sẽ đoán chúng là,

Ngoài ra còn có / var, / mnt và / opt;)

Nhưng hai điều này có vẻ kỳ lạ, tôi sẽ luôn đoán họ là người dùng và tạm thời.

Gần đến rồi. Như Shawn đã nói, "người dùng" là viết tắt của "Tài nguyên hệ thống chung" (mặc dù các tài nguyên khác theo google chỉ ra nó là viết tắt của "Tài nguyên hệ thống Unix").

Có một số lý do lịch sử cho các cách viết?

Cắt ngắn, viết tắt. Hãy nhớ rằng các lệnh trong bất kỳ hệ điều hành nào đều có nghĩa là để truy cập cả tương tác và lập trình. Đặc biệt đối với quản trị hệ thống, trong đó kịch bản nhanh là một trong những mối quan tâm chính, viết tắt, ghi nhớ là tốt (hoặc thậm chí tốt hơn) so với từ / lệnh được đánh vần đầy đủ.

Ngoài ra, vào thời trước, nếu bạn kết nối từ xa thông qua modem chậm như mật mía, cạo một vài nguyên âm ở đây và sẽ giúp cuộc sống của bạn dễ dàng hơn (hoặc bớt đau khổ hơn nếu bạn là một sysadmin đang cố gắng tìm hiểu cái quái gì là sai với một hộp từ xa.)

Như đã nói trước đây, nó không phải là duy nhất cho / usr và / tmp (xem / var, / mnt và / opt).

Ngoài ra, nó không phải là duy nhất cho Unix. Lấy ví dụ về DOS (chkdsk chẳng hạn.) Mnemonics nơi bạn cạo nguyên âm là một khái niệm mạnh mẽ, tiện dụng.

Ngay cả trong các ngôn ngữ tự nhiên (như ngôn ngữ Semitic), khái niệm này tồn tại (nơi gốc của các từ được xác định phổ biến và gần như rõ ràng bởi các nhóm 3 phụ âm.) Đây là một cơ chế con người bẩm sinh để quản lý thông tin.


/ Var, / mnt và / opt xuất hiện NHIỀU sau. Tuy nhiên, / bin, / dev và / etc đã có trong UNIX rất sớm và vì lý do tương tự mà mọi người đã nêu - vì ttys chậm và không phải tất cả đều là CRT và dung lượng đĩa. Có những hệ thống khởi động UNIX ngoài kia bằng băng giấy, ổ đĩa nhỏ (không gian thông minh) và thậm chí là 8 "đĩa mềm. Không gian dành cho những thứ đó có giá cao.
Arcege

1
Có thể lập luận rằng các ngôn ngữ semitic không thực sự sử dụng phụ âm, nhưng âm tiết với nguyên âm không xác định. Vì vậy, các âm tiết gốc cung cấp ý nghĩa ngữ nghĩa, trong khi các nguyên âm cụ thể thêm ý nghĩa ngữ pháp.
ninjalj
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.