TOPS-20

**TOPS-20**은 디지털 이큅먼트 코퍼레이션(DEC)이 개발한 운영체제로, DEC의 일부 36비트 메인프레임에서 사용된 사유 OS이다. 하드웨어 참조 매뉴얼에는 "DECsystem-10/DECSYSTEM-20 프로세서"(DEC PDP-10과 DECSYSTEM-20을 의미)용으로 설명되어 있다.

TOPS-20은 1969년 볼트 베라넥 앤 뉴먼(BBN)의 TENEX 운영체제로 시작되었으며, 1976년부터 DEC에서 제품으로 출시되었다. TOPS-20은 이름이 비슷한 TOPS-10과 거의 전혀 관련이 없으나, PA1050 TOPS-10 모니터 호출 에뮬레이션 기능을 포함하여 출시되어 대부분의(전부는 아님) TOPS-10 실행 파일을 수정 없이 실행할 수 있었다. 정책상 DEC는 DEC 소프트웨어에서 필요한 경우를 제외하고는 이후의 TOPS-10 추가 기능을 지원하기 위해 PA1050을 업데이트하지 않았다.

TOPS-20은 이 시기 PDP-10용으로 주목받았던 시분할 시스템인 TOPS-10, ITS, WAITS와 경쟁했다. TOPS-20은 비공식적으로 TWENEX라고도 불린다.

## TENEX

TOPS-20은 디지털사의 PDP-10 컴퓨터를 위해 볼트 베라넥 앤 뉴먼이 개발한 TENEX 운영체제를 기반으로 한다. 디지털이 PDP-10의 KI-10 버전 개발을 시작한 후 문제가 발생했다. 당시 TENEX는 고객이 작성한 가장 인기 있는 PDP-10 운영체제였으나, 더 빠르고 새로운 KI-10에서는 실행되지 않았다. 이 문제를 해결하기 위해 DEC PDP-10 영업 관리자는 BBN으로부터 TENEX에 대한 권리를 구매하고 이를 새 기계로 이식하는 프로젝트를 세웠다. 결국 원래 TENEX 코드의 아주 적은 부분만 남게 되었고, 디지털은 최종적으로 결과물인 운영체제를 TOPS-20으로 명명했다.

## PA1050
TOPS-20과 함께 제공된 기능 중 일부는 단순히 TOPS-10 운영체제의 호출을 에뮬레이션한 것이었다. 이들은 구현되지 않은 사용자 작업(Unimplemented User Operation)을 뜻하는 UUO로 알려져 있으며, 20 전용이 아닌 컴파일러의 실행과 해당 언어로 작성된 사용자 프로그램을 위해 필요했다. 사용자의 주소 공간으로 매핑된 패키지의 이름은 PA1050이었다. PA는 호환성(compatibility)을 뜻하는 PAT에서, 10은 DEC 또는 PDP 10에서, 50은 PDP 10 모델 50, 10/50, 1050에서 유래했다.

때때로 PA1050은 PAT으로 불리기도 했는데, 이 이름은 PA1050이 "단순히 비특권 사용자 모드 코드"였으며 "필요한 경우 JSYS 호출을 사용하여 요청된 작업을 수행했다"는 사실과 잘 맞아떨어졌다.

## TOPS-20의 기능
TOPS-20의 기능을 활용하는 주요 방법이자 TOPS-20을 중요하게 만든 요소는 다음과 같다.
* 명령 프로세서인 EXEC.EXE를 통해 입력되는 명령어
* MACro-language(.MAC) 프로그램에서의 JSYS(Jump to System) 호출

"EXEC"는 주로 다음을 사용하여 작업을 수행했다.
* JSYS를 통한 호출을 포함한 내부 코드
* "GALAXY" 구성 요소(예: 스풀러)로부터의 서비스 요청

### 명령 프로세서
당시로서는 상당히 발전된 몇 가지 TOPS-20 전용 기능이 있었다.
* 명령줄 완성
* 다음과 같은 형태의 동적 도움말
:* 보충어(noise-words) - DIR을 입력하고  키를 누르면 다음과 같은 결과가 나타남
::::DIRectory (of files)
::를 입력하고  키를 누르면 다음과 같은 결과가 나타남
:::: Information (about)

그 후 를 입력하여 허용되거나 필요한 피연산자가 무엇인지 확인할 수 있었다. 를 누르면 상태 정보가 표시된다.

### 사용 가능한 프로그래밍 언어
사용 가능한 프로그래밍 언어로는 FORTRAN, 코볼, 베이직, ALGOL, CPL, APL 등이 있었다.

### 명령어
다음은 TOPS-20 명령 프로세서에서 지원하는 명령어 목록이다.

* ACCESS
* ADVISE
* append
* ARCHIVE
* ASSIGN
* ATTACH
* BACKSPACE
* BLANK
* BREAK
* BUILD
* CANCEL
* CLOSE
* COMPILE
* CONNECT
* CONTINUE
* COPY
* CREATE
* CREF
* CSAVE
* DAYTIME
* DDT
* DEASSIGN
* DEBUG
* DEFINE
* DELETE
* DEPOSIT
* DETACH
* DIRECTORY
* DISABLE
* DISCARD
* DISMOUNT
* EDIT
* ENABLE
* END-ACCESS
* EOF
* ERUN
* EXAMINE
* EXECUTE
* EXPUNGE
* FDIRECTORY
* FORK
* FREEZE
* GET
* HELP
* INFORMATION
* KEEP
* LOAD
* LOGIN
* LOGOUT
* MERGE
* MODIFY
* MOUNT
* PERUSE
* PLOT
* POP
* PRINT
* PUNCH
* PUSH
* RECEIVE
* REENTER
* REFUSE
* REMARK
* RENAME
* RESET
* RETRIEVE
* REWIND
* RUN
* SAVE
* SEND
* SET
* SET HOST
* SKIP
* START
* SUBMIT
* SYSTAT
* TAKE
* TALK
* TDIRECTORY
* TERMINAL
* TRANSLATE
* TYPE
* UNATTACH
* UNDELETE
* UNKEEP
* UNLOAD
* VDIRECTORY

### JSYS 기능
JSYS는 **J**ump to **SYS**tem의 약자이다. 피연산자는 때때로 메모리 주소였다. "TOPS-20은 18비트 또는 30비트 주소를 사용할 수 있게 해준다. 일부 모니터 호출은 한 종류를 요구하고, 다른 것들은 다른 종류를 요구하며, 어떤 호출들은 두 종류 모두를 허용한다. 일부 모니터 호출은 주소를 보관하기 위해 18비트만 사용한다. 이러한 호출들은 18비트 주소를 현재 섹션 내의 위치로 해석한다."

내부적으로 파일은 먼저 GTJFN(Get Job File Number) JSYS를 사용하여 식별되었으며, 그 후 해당 JFN 번호를 사용하여 파일을 열고(OPENF) 파일 내용을 조작했다.

## PCL (Programmable Command Language)
**PCL**(Programmable Command Language)은 TOPS-20에서 실행되는 프로그래밍 언어이다. PCL 소스 프로그램은 기본적으로 .PCL 확장자로 저장되며, DECLARE라는 동사를 통해 TOPS-20 EXEC를 확장할 수 있게 해준다. 새로 컴파일된 명령어들은 기능적으로 EXEC의 일부가 된다.

### PCL 언어 기능
PCL의 기능은 다음과 같다.
* 흐름 제어: DO While/Until, CASE/SELECT, IF-THEN-ELSE, GOTO
* 문자열 연산 (길이, 부분 문자열, 연결)
* 시스템 정보 액세스 (날짜/시간, 파일 속성, 장치 특성)

## 오늘날의 TOPS-20
폴 앨런은 사망 전 TOPS-20을 실행하는 XKL TOAD-2를 포함하여 공개적으로 접근 가능한 여러 역사적 컴퓨터 시스템을 유지 관리했다.

SDF 공개 접속 유닉스 시스템도 참조하라.

## 같이 보기
* 시분할 시스템의 진화

## 각주

## 더 읽어보기
* Storage Organization and Management in TENEX.  Daniel L. Murphy.  AFIPS Proceedings, 1972 FJCC.
* Implementation of TENEX on the KI10.  Daniel L. Murphy.  TENEX Panel Session, NCC 1974.
* "TOPS-20 User's Guide ." 1988.
* "DECSYSTEM-20 Assembly Language Guide." Frank da Cruz and Chris Ryland, 1980.
* "Running TOPS-20 V4.1 under the SIMH Emulator."

## 외부 링크
* Origins and Development of TOPS-20 is an excellent longer history.
* Panda TOPS-20 distribution.
* SDF Public Access TWENEX.
* SIMH Simulator capable of simulating the PDP-10 and running TOPS-20.
* Manuals for DEC 36-bit computers .
* PDP-10 Software Archive.
* 36-bits Forever.
* Request a login  to Living Computers: Museum + Labs TOAD-2 running TOPS-20.

분류:1969년 소프트웨어
분류:시분할 운영체제