켄 톰슨은 "창조자를 'e'로 철자 할 것입니다."라고 말했을 때 무엇을 의미 했습니까?


59

1
실제로, 그는 아마도 자신이 말한 것을 의미하지는 않았을 것입니다. 그는 아마 두 개의 'e'로 철자 creat를 썼을 것입니다 . 물론, 유닉스 메시지는 유닉스가이 오타를 고치기 만하면되는 실질적인 변화없이 의도 된 방식으로 판명되었다.
Dietmar Kühl

답변:



33

뿐만 아니라 그는 man 2 creat시스템 호출 을 참조합니다 . 또한 가능한 한 모든 작은 캐릭터를 구하는 구식 트렌드를 언급합니다. 때로는 다른 캐릭터를 입력하고 저장하는 것이 혼란스럽지 않은 경우가 있습니다.


15
나는 질문의 맥락에서 그는 creat () 만 언급한다고 생각합니다. 그가 만든 요점은 파일을 만들라는 시스템 호출 에서이 작은 철자 오류를 제외하고는 유닉스에 대해 다르게 수행 한 것이 없다는 것입니다.

15
@jmucchiello, 맞춤법 오류가 아닙니다. 고의적 인 (비표준이지만) 약어입니다. 이 같은 약어를 많이 사용에 맞는 fcntl, ls, mv일반적으로 등.
Matthew Flaschen

6
동의하지만, 우리가 저장할 TB가 있어도 그 abbrvtns를 좋아합니다. :
tgkprog

2
텔레타이프 키를 누르기가 어렵습니다. 몇 글자를 저장하는 것이 유익했습니다. 제거 할 수있는 첫 번째 모음은 모음과 중복 자음이었습니다.
Erkin Alp Güney

24

새 파일을 작성하기위한 UNIX 시스템 호출을 나타냅니다. 일부 컴퓨터의 링커는 최대 6 자의 식별자로 제한되었습니다. 분명히 Ken은 이러한 링커를 사용해야했기 때문에이 제한에 맞 도록 시스템 만들기 호출이 creat 로 단축되었습니다 . 아이러니는 창조 도 마찬가지입니다.

참조 : 제 9 계명은 무엇을 의미합니까?


15
컴파일러에서 생성 된 사용자 기호와 충돌하는 사용자 기호를 피하기 위해 컴파일러가 '_'사용자 변수 / 함수 이름 앞에 붙기 때문에 '_'기호를 생성 할 때 사용하지 않도록주의 했기 때문에 6 자 제한은 5로 변환되었습니다 .
vonbrand

3
@vonbrand : 그러나 그것이 존재 unlink하거나 umount존재 하는 방법을 설명하지 않는 것 같습니다 creat.
Dolda2000

@ Dolda2000 글쎄, 링커에는이 제한이 있었지만 컴파일러에는 없었습니다. 그래서 umount과 충돌 것 umoun또는 umounx이든,하지만 이름이 허용됩니다. 그러나 그것은 순수한 추측입니다 :)
Luaan

23

나는 대답하기에 6 년 늦었지만, 현존하는 대답은 모두 톰슨의 말의 요점을 놓치고 있다고 생각합니다.

나는 'e'로 creat를 철자 할 것이다.

Ken Thompson은 파일을 열고 파일을 작성하는 데 사용되는 함수의 이름을 애도하지 않습니다. 오히려 그는 유닉스가 올바르게 수행되었다는 것을 표현하고있다. 즉 다르게 수행되어야 할 전공 은 없다 .

미묘한 점은 유닉스 아키텍처는 소리입니다, 그리고 구현은 정상입니다. 유닉스에서 개선 할 을 찾으 려면 자전거타야 합니다. 따라서 일반적인 시스템 호출의 이름에 대한 명백한 결정입니다.


3
그는 유닉스 아키텍처가 아주 작은 측면에서 개선 될 수 있다고 말하고 싶다. 그러나 기본적으로 유닉스가 제대로 해냈습니다. BTW. creatCLI 명령이 아닌 시스템 호출입니다.
ikrabbe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.