Ken Thompson có ý gì khi anh ấy nói, tôi muốn đánh vần người sáng tạo với một chữ 'e'.


59

1
Trên thực tế, ông hầu như không có nghĩa là những gì ông nói: ông có thể có nghĩa rằng ông muốn vần creatvới hai 'của e - sau khi tất cả, một là đã hiện diện. Tất nhiên, thông điệp ngầm là UNIX hóa ra theo cách nó có nghĩa là không có bất kỳ thay đổi đáng kể nào chỉ yêu cầu sửa lỗi chính tả [một] này.
Dietmar Kühl 6/2/2017

Câu trả lời:



33

Không chỉ ông đề cập đến man 2 creatcuộc gọi hệ thống. Ông cũng đề cập đến các xu hướng lỗi thời để tiết kiệm cho mọi nhân vật nhỏ bé, khi có thể, đôi khi điều này chỉ gây nhầm lẫn, đặc biệt là bây giờ, khi gõ và lưu trữ một nhân vật khác hiếm khi là một trở ngại.


15
Tôi nghĩ trong bối cảnh của câu hỏi, anh ta chỉ đề cập đến creat (). Điểm mà anh ta đưa ra là không có gì về Unix anh ta sẽ làm khác đi ngoại trừ lỗi chính tả nhỏ này trong lệnh gọi hệ thống để tạo tệp.

15
@jmucchiello, đó không phải là lỗi chính tả. Đó là một từ viết tắt có chủ ý (mặc dù không chuẩn). Nó phù hợp với việc sử dụng nặng của chữ viết tắt như fcntl, ls, mv, vv, nói chung.
Matthew Flaschen

6
Đồng ý, nhưng tôi yêu những abbrvtns đó ngay cả khi chúng ta có TB để lưu trữ :)
tgkprog

2
Các phím teletype rất khó bấm. Nó có ích để lưu một vài chữ cái. Những cái đầu tiên có thể được loại bỏ là nguyên âm và phụ âm thừa.
Erkin Alp Güney

24

Nó đề cập đến cuộc gọi hệ thống UNIX để tạo các tệp mới. Trình liên kết trên một số máy bị giới hạn ở số nhận dạng tối đa 6 ký tự. Rõ ràng, Ken đã phải làm việc với một mối liên kết như vậy và do đó tạo cuộc gọi hệ thống được rút ngắn xuống còn tạo để phù hợp với hạn chế này. Điều trớ trêu là tạo ra quá.

Xem thêm: Điều răn thứ 9 có nghĩa là gì?


15
Giới hạn 6 ký tự được dịch thành 5, vì trình biên dịch (để tránh các ký hiệu người dùng xung đột với các trình biên dịch được tạo ra) đã đặt trước một '_'tên biến / hàm của người dùng và cẩn thận không sử dụng '_'khi tạo các ký hiệu.
vonbrand

3
@vonbrand: Điều đó dường như không giải thích làm thế nào unlinkhoặc umountcó thể tồn tại, tuy nhiên, điều mà tôi nghĩ là hợp thời creat.
Dolda2000

@ Dolda2000 Vâng, rất có thể trình liên kết có giới hạn này, trong khi trình biên dịch thì không. Vì vậy, umountsẽ đụng độ với umounhoặc umounxbất cứ điều gì, nhưng tên sẽ được cho phép. Nhưng đó là suy đoán thuần túy :)
Luaan

23

Tôi trễ sáu năm để trả lời, nhưng tôi tin rằng tất cả các câu trả lời còn lại đều bỏ lỡ quan điểm của trích dẫn của Thompson.

Tôi đánh vần người tạo với một 'e'.

Ken Thompson không than vãn tên của hàm được sử dụng để mở và có thể tạo một tệp. Thay vào đó, anh ta đang bày tỏ rằng Unix đã được thực hiện đúng, tức là không có gì quan trọng nên được thực hiện khác đi.

Điểm tinh tế là kiến ​​trúc Unix là âm thanh và việc triển khai vẫn ổn. Người ta sẽ cần phải đạp xe để tìm bất cứ điều gì để cải thiện trong Unix. Do đó, các tiêu đề rõ ràng về tên của một cuộc gọi hệ thống phổ biến.


3
Phải, anh ấy muốn nói với chúng tôi rằng kiến ​​trúc UNIX có thể được cải thiện ở những khía cạnh rất nhỏ. Nhưng về cơ bản UNIX đã làm đúng. BTW. creatlà một cuộc gọi hệ thống không phải là lệnh CLI.
ikrabbe
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.