TOPS-20

TOPS-20
TOPS-20 시스템의 로그인 프롬프트 스크린샷
개발자디지털 이큅먼트 코퍼레이션
프로그래밍 언어어셈블리어
OS 계열TENEX
상태단종
최초 버전 출시일1976년(50년 전)(1976)
최신 버전7.1 / 1988년 6월(38년 전)(1988-06)
마케팅 대상메인프레임
플랫폼PDP-10
기본 UI명령줄 인터페이스
라이선스사유 소프트웨어
이전TENEX

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"는 주로 다음을 사용하여 작업을 수행했다.

명령 프로세서

당시로서는 상당히 발전된 몇 가지 TOPS-20 전용 기능이 있었다.

  • 보충어(noise-words) - DIR을 입력하고 Esc 키를 누르면 다음과 같은 결과가 나타남
DIRectory (of files)
I를 입력하고 Esc 키를 누르면 다음과 같은 결과가 나타남
Information (about)

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

사용 가능한 프로그래밍 언어

사용 가능한 프로그래밍 언어로는 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는 Jump to SYStem의 약자이다. 피연산자는 때때로 메모리 주소였다. "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 공개 접속 유닉스 시스템도 참조하라.

같이 보기

각주

  1. ↑ Richard Stallman (1986년 10월 30일). “RMS lecture at KTH (Sweden)”. 1998년 1월 26일에 원본 문서에서 보존된 문서. 2026년 1월 27일에 확인함.
  2. 1 2 3 4 “TOPS-20 Command manual” (PDF). Digital Equipement Corporation. September 1985. 2024년 6월 16일에 원본 문서 (PDF)에서 보존된 문서. 2024년 2월 10일에 확인함.
  3. 1 2 “Origins and Development of TOPS-20”.
  4. ↑ “ITS reference manual” (PDF).
  5. ↑ “TWENEX”. 《The Jargon File》.
  6. ↑ “What does UUO mean in Software?”. 《abbreviations.com》.
  7. 1 2 당시 10/50은 최상위 KA 기계였다. Dan Murphy (1989). “Origins and Development of TOPS-20”. 이 가계는 다른 KA인 10/55로 이어졌고, 그 후 KI, KL, KS가 등장했다.
  8. ↑ JSYS는 TOPS-10이 "10"에서 수행한 작업에 대응하는 20의 기능이었으며, 따라서 DEC PDP-10 모델 50용 에뮬레이터는 PA1050이 에뮬레이션하고 있었던 것이었다. 10의 시스템 호출은 UUO로 알려져 있었다.
  9. ↑ “DECSYSTEM-20 Assembly Language Guide”. 《The Kermit Project》. 1980년 7월 3일.
  10. ↑ “DIGITAL Computing Timeline”. 《vt100.net》.
  11. ↑ “JSYS means Jump to System”. 《All Acronyms》.
  12. 1 2 《TOPS-20 Programmable Command Language / User's Guide and Reference Manual》. Carnegie Mellon University Computation Center. 1981.
  13. ↑ “Programmable Command Language”. 《fileformats.archiveteam.org》. 2016년 3월 11일.
  14. ↑ R. J. Cohn (1988). “Programmable Command Languages for Window System” (PDF). 2003년 9월 26일에 원본 문서 (PDF)에서 보존된 문서.
  15. ↑ Ray Scott (1983년 1월 12일). “TOPS-20 Programmable Command Language”. 2008년 10월 7일에 원본 문서에서 보존된 문서.

더 읽어보기

외부 링크