켄 톰슨은 "창조자를 '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.