TENEX(운영체제)
TENEX (operating system)개발자 | BBN |
---|---|
기입처 | 어셈블리 언어 |
동작 상태 | 이력 |
초기 릴리즈 | 전 |
마케팅 대상 | 메인프레임 컴퓨터 |
플랫폼 | PDP-10 |
영향을 받다 | TOPS-10 |
체납 사용자 인터페이스 | 명령줄 인터페이스 |
면허증. | 독자 사양 |
에 의해 성공자 | TOPS-20 |
TENEX는 1969년 BBN이 개발한 PDP-10용 운영체제이며, 후에 Digital Equipment Corporation의 TOPS-20 운영체제의 기반이 되었습니다.
배경
1960년대에 BBN은 DARPA를 위한 다수의 LISP 기반 인공지능 프로젝트에 참여했으며, 그 중 상당수는 매우 큰 메모리 요건을 가지고 있었다.이 문제의 해결 방법 중 하나는 LISP 언어에 페이징 소프트웨어를 추가하는 것입니다.이를 통해 필요 시 나중에 리콜할 수 있도록 메모리의 미사용 부분을 디스크에 쓸 수 있습니다.그러한 시스템 중 하나는 다니엘 머피가 BBN에 입사하기 전에 MIT의 PDP-1을 위해 개발되었습니다.초기 DEC 머신은 18비트 워드를 기반으로 하여 256킬로코드 메모리에 대해 주소를 인코딩할 수 있었습니다.이 기계들은 고가의 코어 메모리를 기반으로 하며 필요한 양에는 전혀 미치지 못했습니다.호출기는 주소의 최상위 비트를 사용하여 호출기의 백업 저장소로 기능하는 자기 드럼의 블록 테이블을 인덱싱했습니다.소프트웨어는 필요에 따라서 페이지를 취득해, 주소를 RAM 의 적절한 영역에 해결합니다.
1964년 DEC는 PDP-6을 발표했습니다. DEC는 여전히 MIT의 AI Lab과 밀접하게 관련되어 있으며 LISP 해커의 많은 기능 요청이 이 기계로 이동되었습니다.36비트 컴퓨팅은 LISP 프로그래밍에 특히 유용했습니다.이러한 시스템의 스토리지 워드에는 2개의 주소가 포함되어 있어 일반적인 LISP CAR 및 CDR 조작에 매우 적합합니다.BBN은 AI가 출시되었을 때 AI를 위한 호출기를 구입하고 싶었지만, DEC는 머피의 호출기의 하드웨어 버전을 시스템에 직접 추가하기를 원했다.이러한 추가 기능을 사용하면 시스템의 모든 프로그램이 눈에 띄지 않게 페이징 지원을 제공하므로 기계에서 어떤 종류의 프로그래밍도 훨씬 쉽게 수행할 수 있습니다.DEC는 처음에는 관심을 보였지만 곧(1966년) PDP-6을 폐기하고 더 작은 18비트 및 새로운 16비트 회선에만 집중하겠다고 발표했습니다.PDP-6는 비싸고 복잡하며 이러한 이유로 잘 팔리지 않았습니다.
곧 DEC가 PDP-10이 될 36비트 사업에 다시 참여한다는 것이 밝혀졌습니다.BBN은 CPU 이름인 KA-10으로 알려진 새로운 기계에 페이징 서브시스템을 도입하기 위해 DEC와 협의를 시작했습니다.DEC는 그다지 관심이 없었습니다.단, 이러한 토크의 개발 중 하나는 두 번째 가상 메모리 세그먼트를 지원하는 것으로, 사용자 주소 공간의 절반을 물리 메모리의 개별(잠재적으로는 읽기 전용) 영역에 매핑할 수 있게 되었습니다.또한 DEC는 성능 저하를 크게 감수하면서 최소 16,000단어의 코어를 가진 베어본 시스템을 지원하고 고속 반도체 레지스터 옵션(대체 코어)을 생략하는 등 기계 비용을 가능한 낮게 유지하는 데 주력했습니다.
BBN 및 PDP-10
그럼에도 불구하고 BBN은 여러 대의 PDP-10을 구입하여 자체 하드웨어 호출기를 구축하기로 결정했습니다.이 기간 동안 새로운 기계에서 어떤 운영 체제를 실행할지에 대한 논의가 시작되었습니다.기존의 소프트웨어를 최소한의 노력으로 계속 가동시키기 위해 TOPS-10을 계속 사용할 것을 강력히 주장했습니다.이 경우 호출 시스템을 지원하려면 TOPS-10을 다시 써야 합니다.이것은 큰 문제인 것 같습니다.동시에 TOPS-10은 개발자들이 원하는 많은 기능을 지원하지 않았습니다.결국 그들은 새로운 시스템을 만들기로 결정했지만, 약간의 노력으로 기존의 TOPS-10 소프트웨어를 실행할 수 있는 에뮬레이션 라이브러리를 포함하기로 했습니다.
Daniel Murphy와 Daniel G. Bobrow를 포함한 개발자 팀은 새로운 시스템의 이름을 TENEX(TEN-ExTENDED)로 정했습니다.완전한 가상 메모리 시스템이 포함되어 있습니다.즉, 프로그램은 262144 워드의 가상 메모리 18비트 주소 공간에 액세스 할 수 있을 뿐만 아니라, 모든 프로그램이 동시에 액세스 할 수 있습니다.호출기 시스템은 항상 그렇듯이 매핑을 처리하고 필요에 따라 백업 스토어와 데이터를 복사합니다.필요한 변경은 호출기가 시스템을 사용하는 각 프로그램별로 RAM과 스토어 간의 매핑 세트를 여러 개 유지할 수 있도록 하는 것뿐입니다.호출기는 성능을 조정하기 위해 액세스 시간 정보도 보유하고 있습니다.이 호출기는 매우 복잡하여 풀 하이트 19인치 랙마운트 섀시를 채웠습니다.
TENEX의 주목할 만한 기능 중 하나는 사용자 지향 명령줄 인터프리터였습니다.당시의 일반적인 시스템과 달리 TENEX는 의도적으로 긴 명령어 이름을 사용했으며 명확성을 위해 중요하지 않은 노이즈 워드를 포함하기도 했습니다.예를 들어 Unix는ls
디렉토리 내의 파일 목록을 인쇄하는 반면, TENEX는DIRECTORY (OF FILES)
. "DIRECTORY
"는 명령어였다.(OF FILES)
명령어의 목적을 명확히 하기 위해 노이즈가 추가되었습니다.사용자가 이러한 긴 명령어를 입력할 필요성을 줄이기 위해 TENEX는 명령어 완성 시스템을 사용하여 명령어를 명확하게 생략하고 부분 명령어를 완전한 단어나 구문으로 확장했습니다.예를 들어, 사용자는 다음과 같이 입력할 수 있습니다.DIR
그리고 탈출 키도 있어요. 이 시점에서 테넥스는DIR
모든 명령어를 사용합니다.완료 기능은 인터프리터 측에서도 약간의 노력이 필요했던 파일 이름과 함께 작동했으며, 시스템에서 사람이 읽을 수 있는 설명이 포함된 긴 파일 이름을 사용할 수 있었습니다.TENEX에는 명령어 인식 도움말 시스템도 포함되어 있습니다.물음표 입력( )?
) 에서는 일치하는 명령어 목록을 출력한 후 물음표를 삭제하고 명령줄로 돌아갑니다.명령줄 완료 및 도움말은 tcsh 등의 현재 CLI에서 실행됩니다.
TENEX에서 TOPS-20까지
TENEX는 소규모 PDP-10 시장에서 상당히 인기를 끌었고 외부 호출기 하드웨어는 소규모 기업으로 발전했습니다.1970년 초 DEC는 PDP-10 프로세서인 KI-10으로의 업그레이드를 시작했습니다.BBN은 다시 한번 DEC가 간접 페이지 테이블이 있는 복잡한 호출기를 지원하도록 시도했지만 DEC는 훨씬 더 단순한 단일 레벨 페이지 매핑 시스템을 결정했습니다.이 타협은 시스템 판매에 영향을 미쳤습니다.지금까지 TENEX는 고객이 작성한 가장 인기 있는 PDP-10 운영체제였지만 보다 빠른 새로운 KI-10에서는 실행되지 않았습니다.
이 문제를 해결하기 위해 DEC PDP-10 세일즈 매니저는 BBN에서TENEX에 대한 권한을 구입하여 새로운 머신에 TENNEX를 이식하는 프로젝트를 셋업했습니다.이 무렵에 머피는 BBN에서 DEC로 옮겨 포팅 프로젝트를 지원했습니다.대부분의 작업은 소프트웨어와 KI-10의 단순한 하드웨어를 조합하여 BBN 호출기 하드웨어를 에뮬레이트하는 데 초점이 맞춰졌습니다.PDP-6에 비해 KI-10의 속도가 이를 가능케 했다.게다가 포팅 작업에서는, 사용되고 있는 새로운 백업 스토어 디바이스를 서포트하기 위해서, 다수의 새로운 디바이스 드라이버가 필요했습니다.
새로운 TENEX가 출하되고 있을 때, DEC는 KI-10의 저가 버전인 KL-10에 대한 작업을 시작했습니다.이 과정에서 MIT 졸업생인 스탠포드 대학의 AI 프로그래머들은 오리지널 KA-10보다 10배 빠른 PDP-10을 만들기 위한 프로젝트를 진행하고 있었습니다.이 프로젝트는 Foonly 계열의 컴퓨터로 발전했다.DEC는 그들을 방문했고, 그들의 아이디어의 많은 부분이 KL-10 프로젝트에 반영되었다.같은 해 IBM은 가상 메모리가 탑재된 자체 시스템을 발표하여 모든 컴퓨터의 표준 요구 사항이 되었습니다.결국 KL은 시스템에 대한 많은 주요 변경 사항을 통합했지만 비용이 절감되지는 않았습니다.처음부터 새로운 DECSYSTEM-20은 기본 운영체제로서 TENEX 버전을 실행하게 됩니다.
KL-10 프로세서 아키텍처의 기능 업그레이드는 제한되었습니다.가장 중요한 신기능(확장 어드레싱이라고 불립니다)은 모델B 하드웨어 리비전에서 실행 중인 호출기 마이크로코드 변경으로 사용자의 가상 주소 공간이 확대되었습니다.원래 18비트 주소 공간보다 큰 위치에 있는 명령에 의한 효과적인 주소 계산은 30비트로 실행되었지만 23비트 가상 주소 공간만 지원되었습니다.원래 18비트 주소 공간에 위치한 프로그램 코드는 하위 호환성을 위해 변경되지 않은 의미론을 가지고 있습니다.
운영체제의 첫 번째 사내 코드명은 VIROS(VIRTUAL Memory Operating System)였습니다.고객이 질문을 하기 시작했을 때 SNARK로 변경되어 DEC가 VIROS라는 프로젝트가 존재했음을 진실하게 부인할 수 있게 되었습니다.SNAK라는 이름이 알려졌을 때 이 이름은 잠시 뒤바뀌어 KRANS가 되었습니다."크란스"가 스웨덴어로 "장례용 화환"을 의미한다고 이의를 제기했을 때(단순히 "화환"을 의미하지만, 이야기의 이 부분은 외설일 수 있음).
결국 DEC는 운영체제 명칭으로 TOPS-20을 선정했으며, TOPS-20으로 시판되었다.이 점에 의해 비록은 원래 TENEX 코드의 작은 여전히( 비슷하게 AT& 사이의 차이점에&TV7은 유닉스와 BSD)그 해커 공동체의 기원을 마음에 두고, 빨리 TWENEX("20TENEX"의 대형 여행 가방),."TWENEX" 들은 DEC사람들을 움츠렸다,의 그럼에도 불구하고(내가 쓴 abbreviat에 걸렸다 그것.이온"20x"도 [1]사용되었습니다).
TWENEX는 성공적이었고 매우 인기가 있었습니다.실제로 1980년대 초반에는 Unix나 ITS와 같이 열렬한 빨치산 문화를 이끌었던 시기가 있었습니다.그러나 VAX 아키텍처와 VMS 운영체제에 대한 모든 내부 경쟁자를 폐기하기로 한 DEC의 결정으로 인해 DEC-20의 짧은 인기 기간이 종료되었습니다.DEC는 TOPS-20 사용자에게 VMS로 변환하도록 설득하려고 했지만 1980년대 후반까지 대부분의 TOPS-20 사용자는 Unix로 이행했습니다.TOPS-20 마니아들의 충성스러운 그룹은 TOPS-20, 특히 마크 크리스핀과 팬더 TOPS-20 배포를 보존하고 확장하기 위한 다양한 프로젝트를 계속 진행했습니다.