Thoth(운영 체제)

Thoth (operating system)
토스
개발자워털루 대학교
기입처제드, 어셈블리 언어
OS 패밀리RTOS
동작 상태단종
초기 릴리즈1976년 10월, 45년 전(1976-10년)
마케팅 대상조사.
이용가능기간:영어
갱신 방법재컴파일 중
플랫폼허니웰 6050
Data General Nova
텍사스 인스트루먼트 TI990/10
커널 타입마이크로커널
에 의해 성공자포트, 베렉스, 하모니, V

Thoth는 캐나다 온타리오주 워털루에 있는 워털루 대학에서 개발된 실시간 메시지 전달 운영체제(OS)입니다.

역사

Thoth는 캐나다 온타리오 워털루에 있는 워털루 대학에서 개발되었다.워털루의 커리큘럼에는 실시간 운영 체제 과정과 관련 "Train lab"이 포함되어 있으며,[1][2][3] 학생들은 여러 열차로 모델 트랙을 제어하기 위해 실시간 운영 체제(RTOS)를 개발해야 합니다.

1972년, BCPL의 파생어인 B 프로그래밍 언어는 Stephen C에 의해 워털루에 도입되었습니다. 존슨은 벨 [4]연구소에서 안식년을 보내고 있습니다.B에서 파생된 새로운 언어인 Eh가 워털루에서 개발되었습니다.Thoth는 원래 어셈블리 [5][6]언어로 쓰여졌다.

Thoth의 초기 개발은 Honeywell 6050 [7]컴퓨터에서 이루어졌다.1976년 5월에 Data General Nova 2에서 처음 실행되었으며 1976년 [7][5]8월에 Texas Instruments TI990/10으로 이식되었습니다.

1976년 10월, 워털루 대학은 로렌스 S를 출판했다."휴대용 실시간 이그제큐티브, Thoth"[8]라는 제목의 멜렌의 석사 논문.

Eh는 나중에 데이터 유형의 추가와 함께 업그레이드되어 Zed로 이름이 변경되었습니다.그리고 나서 Thoth는 [9][10][11][12][13]Zed로 다시 쓰여졌다.

Thoth의 초기 주요 개발자들 중 하나는 David Cheriton이었다.Cheriton은 계속해서 Verex 커널과 V-System OS를 개발했는데, 둘 다 Thoth의 영향을 받았습니다.또 다른 초기 개발자는 Michael Malcolm으로, 그는 나중Waterloo Microsystems, Network Appliances, Inc., Blue Coat Systems 및 Kaliedescape를 설립하게 되었습니다.이들 운영체제의 일부는 Thoth에서 유래했거나 Thoth에서 영향을 받은 것으로 생각됩니다.

일부 신문에서는 DEMOS를 Thoth의 [14]영감으로 묘사하고 있습니다.선행기술로서 Cheriton은 Per Brinch Hansen의 RC 4000인용한 후 Thoth, DEMOS 및 Accent를 후발 [15]개발로 나열했다.Thoth의 개발에 영향을 준 다른 요인으로는 Multics, Data General의 RTOS, Honeywell GCLS, [5]Unix 등이 있습니다.이후 참고 자료에서는 Thoth를 동기 메시지 전달 및 다중 처리 프로그램 구조의 특별한 사용의 최초 구현으로 언급하고 있으며, 이후 다른 [16]: 2 프로젝트에 의해 적용되었습니다.

Thoth에 대한 [17]작업은 1982년경에 끝났다.

특징들

Thoth는 네 가지 [7]목표를 달성하기 위해 개발되었습니다.

  1. 다른[3] 하드웨어로 쉽게 이동 가능
  2. 프로그램은 효율적인 프로세스통신(IPC)[5]을 통한 저렴한 동시 프로세스 세트로 실행된다.
  3. 외부 이벤트에 대한 시스템 응답에 대한 실시간 사용에 적합합니다.
  4. 광범위한 실시간 사용에 적응 및 확장 가능

Thoth는 기본 물리적 [5][18]시스템에 관계없이 동일한 추상 시스템을 애플리케이션 소프트웨어에 제공합니다.이 추상 머신은 특정 최소 요건을 충족하여 특정 컴퓨터를 잠재적인 Thoth 포트 타깃의 Thoth 도메인에 포함시킬 수 있도록 정의되었습니다.

Thoth에서 실행되는 프로세스는 "팀"으로 그룹화할 수 있습니다.팀 내의 모든 프로세스는 공통 주소 공간을 공유하며 데이터를 [19][7]공유할 수 있습니다.이는 다른 시스템의 "경량 프로세스" 또는 [20]스레드 개념과 유사합니다.같은 팀의 멤버가 아닌 프로세스는 Thoth의 IPC를 사용하여 통신합니다.

Thoth의 프로세스 간 통신은 주로 동기 메시지 [7]전달에 의해 이루어집니다.이 접근법에 의해 메시지 [21]큐잉이 대폭 간소화되었습니다.

원래 논문이 작성되었을 때 이 용어는 최신은 아니었지만,[22][20][23] Thoth는 마이크로커널이라고 불려왔다.

IPC를 통과하는 Thoth의 동기 메시지는 Carl Hewitt의 배우 모델 및 Smalltalk[17]작업을 기반으로 한 의인형 프로그래밍 모델 적용에 도움이 되었습니다.

레거시

Thoth 운영체제는 이후 몇 가지 프로젝트의 기초 또는 영감을 제공했으며, 그 중 일부는 다음과 같습니다.

학업의

  • Waterloo 대학의 microNet 분산 파일 서버 시스템은 Thoth [24]및 Port와 유사한 WatSys라는 운영 체제에서 실행되었습니다.왓시스는 [25]1981년에 데뷔했다.
  • 캐나다 국립연구위원회는 실시간 로봇 [26]제어를 지향하는 Thoth의 파생 모델인 Harmony 운영 체제의 개발 거점이었다.
  • Cheriton은 [12][27]이전에 Thoth에서 연구했던 많은 아이디어를 사용하여 Verex와 Distributed Verex를 개발하는 데 관여했던 British Columbia 대학에서 자리를 잡았습니다.
  • Cheriton은 이후 미국 스탠포드 대학으로 옮겨 V-System을 개발해 Thoth와 [15][28][29][30]함께 이전 작업을 계속했습니다.
  • Sylvan Multiprocessing 시스템의 아키텍처에는 하드웨어에서 [16][31]기본 요소(및 Ada의 확장 랑데부)를 전달하는 Thoth의 동기식 메시지를 구현하는 코프로세서가 포함되어 있습니다.
  • Thoth와 IPC 메시지를 전달하는 IPC는 의인형 프로그래밍 [32][33]모델을 채택한 다공정 페인트 프로그램을 지원하기 위해 사용되었습니다.
  • Thoth의 메시지 전달 의미론은 컴퓨터 대수 시스템([34]CAS) Maple의 실험적인 병렬 처리 버전의 일부였다.
  • 분산 프로세스 실행 및 통신 환경(PEACE)은 고성능 애플리케이션용으로 개발되었습니다.이 신문은 이 프로젝트의 "[35]주요 기반"으로 Thoth를 꼽고 있다.
  • Eindhoven Multi-Processor System(EMPS) 이그제큐티브는 효율성에 중점을 두고 있습니다.EMPS [36]커널 설계에 영감을 주었습니다.
  • Waterloo 항구에 Room 시스템이라는 이름의 실험적인 인체-컴퓨터 인터페이스 환경이 구축되었습니다.이것은 Thoth에서 파생되어 IPC 기술을 사용했습니다.회의실 논문은 이전의 [37]Thoth 논문을 참조한다.
  • 효율성과 휴대성에 중점을 둔 연구 프로젝트인 Flash 웹 서버는 다중 프로세스 구조화 방법과 메시지 [38]전달을 통한 프로세스 팀 간의 커뮤니케이션 개념에서 Thoth와 비슷하다고 합니다.

상업의

  • 실시간 운영체제를 전달하는 QNX 메시지 개발자인 Gordon Bell과 Dan Dodge는 둘 다 [39][40][41][42]Waterloo에서 학생이었을 때 Thoth와 함께 일했습니다.
  • AT&T의 System 75 Office Communication System은 Oryx 커널과 Pecos의 필수 시스템 프로세스 세트에 의해 제어되었습니다.이 프로세스는 공동으로 Oryx/Pecos라고 불립니다.Thoth, DEMOS 및 내부 AT&T [43]프로젝트의 아이디어를 사용했습니다.
  • 상용 워털루 항구 네트워크 운영 체제는 Thoth에서 [44]파생되었습니다.관련된 제드어가 워털루 [45][46]항구의 PORT 언어로 업그레이드되었습니다.
  • Hayes Microcomputer Products는 Waterloo Microsystems를 인수하여 Waterloo Port 제품을 브랜드 변경 및 업그레이드하여 LANstep을 [47][48]만들었습니다.
  • Auspex 스토리지 회사는 FMK([49]Functional Multiprocessing Kernel)를 생산했으며, FMK는 Thoth에서 최초로 개발된 개념으로 확인되었습니다.V-시스템 및 워털루 포트와 달리 FMK에는 메모리 관리가 없었습니다.
  • Network Appliance, Inc.의 스토리지 어플라이언스 운영 체제의 초기 버전은 Thoth와 [50]매우 비슷하다고 알려져 있습니다.NetApp의 OS는 이전에 Auspex에 있었던 David Hitz가 작성했습니다.
  • 1996년에 CacheFlow 웹 액셀러레이션 어플라이언스 회사는 Thoth를 [51]기반으로 한 CacheOS를 출시했습니다.2001년 CacheFlow는 Blue Coat Systems로 이름이 변경되었으며 정책 엔진을 추가하여 CacheOS가 Secure Gateway Operating System(SGOS)이 되었습니다.

레퍼런스

  1. ^ "CS 452 Real-Time Programming". University of Waterloo, Cheriton School of Computer Science.
  2. ^ "CS 452/652 - Real-time Programming". University of Waterloo, Computing Science Computing Facility.
  3. ^ a b Malcolm, Michael (24 March 2009). "2009 March 24: Deloitte speakers series". University of Waterloo, Institute of Computer Research.
  4. ^ Ritchie, Dennis M. (April 1993). The Development of the C Language (PDF). Association for Computing Machinery.
  5. ^ a b c d e Cheriton, David R.; Malcolm, Michael A.; Melen, Lawrence S.; Sager, Gary R. (March 1978). "Thoth, a Portable Real-Time Operating System (Revised)" (PDF). University of Waterloo Computer Science Department. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  6. ^ Braga, Reinaldo S. C. (November 1976). "Eh Reference Manual" (PDF). University of Waterloo Computer Science Department. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  7. ^ a b c d e Cheriton, David R.; Malcolm, Michael A.; Melen, Lawrence S.; Sager, Gary R. (February 1979). "Thoth, a Portable, Real-Time Operating System" (PDF). Communications of the ACM. 22 (2): 105–115. doi:10.1145/359060.359074. S2CID 14350500.
  8. ^ Melen, Laurence S. (October 1976). "A Portable Real-Time Executive, Thoth". Department of Computer Science, University of Waterloo. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  9. ^ Lion, John (October 1993). "Letter from New Jersey — January, 1979". Australian Unix Users Group Newsletter. Vol. 14, no. 5. The AUUG Inc. pp. 48–51.
  10. ^ "Programming Languages Database: Z". epocalc. 2012.
  11. ^ Bonkowski, G. Bert; Gentleman, W. Morven; Malcolm, Michael A. (May 1979). "Porting The Zed Compiler" (PDF). University of Waterloo Computer Science Department. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  12. ^ a b Lockhart, Thomas Wayne (November 1979). "The Design of a Verifiable Operating System Kernel". The University of British Columbia. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  13. ^ Kinnersley, Bill (23 January 1995). "The Language List: Version 2.4". ckw.phys.ncku.edu.tw.
  14. ^ Hutchinson, Norman A. (1987). "Emerald: An Object-Based Language for Distributed Programming" (PDF). University of Washington. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  15. ^ a b Cheriton, David R. (March 1988). "The V Distributed System" (PDF). Communications of the ACM. 31 (3): 314–333. doi:10.1145/42392.42400. S2CID 7523994.
  16. ^ a b Burkowski, Forbes J.; Clarke, Charles L. A.; Cowan, S. Crispin; Vreugdenhil, G. J. (February 1995). "Performance Evaluation of the Sylvan Multiprocessor Architecture". University of Waterloo. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  17. ^ a b Booth, Kellogg S.; Schaeffer, Jonathan; Gentleman, W. Morven (February 1984). "Anthropomorphic Programming" (PDF). University of Waterloo Computer Science Department. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  18. ^ Chubb, Lucy (1987). "A Multiprocess Operating System for 16 Bit Microcomputers". University of New South Sales, School of Electrical Engineering and Computer Science. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  19. ^ Comer, Douglas E.; Munson, Steven B (1988). "Efficient Interprocess Communication Using Shared Memory". Purdue University Department of Computer Science. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  20. ^ a b O'Sullivan, Bryan (13 August 1996). "Answers to frequently asked questions for comp.os.research: Part 1 of 3 — 2.2.3. The history of threads". University at Albany Department of Computer Science.
  21. ^ Fleisch, Brett D.; Co, Mark Allan A. (April 1997). "Workplace Microkernel and OS: A Case Study". Department of Computer Science, University of California. CiteSeerX 10.1.1.46.7315. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  22. ^ Appavoo, Jonathan. "Optimizing Multi-Processor Operating Systems Software Research Review" (PDF). Boston University Department of Computer Science. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  23. ^ Depoutovitch, Alexandre (2011). "Otherworld — Giving Applications a Chance to Survive OS Kernel Crashes" (PDF). University of Toronto Graduate Department of Computer Science. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  24. ^ Cowan, D. D.; Boswell, F. D.; Grove, T. R. (December 1984). "A Distributed File-Server for a Personal Computer Network" (PDF). University of Waterloo Computer Systems Department. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  25. ^ Fonds, Wes Graham (5 August 1983). "Chronology: 1980s: A Decade of Expansion — 1981". University of Waterloo — Cheriton School of Computer Science.
  26. ^ Tanner, P. P.; Buxton, W. (1985). Some Issues in Future User Interface Management System (UIMS) Development. User Interface Management Systems. Berlin. pp. 67–79.
  27. ^ Boyle, Patrick David (June 1982). "The Design of a Distributed Kernel for a Multiprocessor System". University of British Columbia Department of Computer Science. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  28. ^ Tevanian Jr., Avadis; Rashid, Richard F.; Golub, David B.; Black, David L.; Cooper, Eric; Young, Michael W. (August 1987). "Mach Threads and the Unix Kernel: The Battle for Control". Department of Computer Science Carnegie-Mellon University. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  29. ^ Chakraborty, Pinaki (2010). "Research Purpose Operating Systems — A Wide Survey" (PDF). GESJ: Computer Science and Telecommunications (3): 147–160. ISSN 1512-1232.
  30. ^ Bin Shafaat, Ahmed; Xu, Shuxiang (26 December 2017). "A Comparative Study of Technologies Developed in Perspective of Distributed Operating Systems" (PDF). AMSE Journals: AMSE IIETA Publication: 2017-Series: Advances B. 60 (3): 613–629.
  31. ^ Burkowski, F. J.; Cormack, G. V.; Dyment, J. D.; Pachl, J. K. (28 February 1987). "A Message-Based Architecture For High Concurrency". In Heath, Michael T. (ed.). Hypercube Multiprocessors 1986. Society for Industrial & Applied Mathematics, U.S. pp. 27–37. ISBN 978-0898712094.
  32. ^ Beach, Richard J.; Beatty, John C.; Booth, Kellogg S.; Plebon, Darlene A.; Fiume, Eugene L. (July 1982). "The Message is the Medium: Multiprocess Structuring of an Interactive Paint Program". Computer Graphics. Vol. 16, no. 3. Association for Computing Machinery. pp. 277–287. doi:10.1145/965145.801292.
  33. ^ Plebon, Darlene A.; Booth, Kellogg S. (1982). "Interactive Picture Creation System" (PDF). University of Waterloo. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  34. ^ Watt, Stephen Michael (1985). "Bounded Parallelism in Computer Algebra" (PDF). University of Waterloo. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  35. ^ Schröder, W. "A Distributed Process Execution and Communication Environment for High-Performance Application Systems" (PDF). Technische Universität Berlin. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  36. ^ van Dijk, G. J. W. (1 January 1993). "The design of the EMPS multiprocessor executive for distributed computing" (PDF). Technische Universiteit Eindhoven. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  37. ^ Chan, Patrick P. (July 1984). "Learning Considerations in User Interface Design: The Room Model" (PDF). University of Waterloo Computer Science Department. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  38. ^ Pai, Vivek S.; Druschel, Peter; Zwaenepoel, Willy. "Flash: An efficient and portable Web server" (PDF). Rice University Department of Computer Science. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  39. ^ "Embedded Applications — Technology for the Real World". The infraNET Project. 29 May 1998.
  40. ^ Morris, James B. (February–April 1983). "The Powerful Tools of QNX". PC Magazine. pp. 269–297.
  41. ^ Advani, Prakash (14 June 2001). "A talk with Paul Leroux". FreeOS.com.
  42. ^ Oberle, Bonnie (30 October 1998). "Returning the favour". Imprint. Impring Publications, Waterloo. p. 7.
  43. ^ Sager, Gary R.; Melber, John A.; Fong, Kenneth T. (January 1985). "System 75: The Oryx/Pecos operating system". AT&T Technical Journal. Vol. 64, no. 1. pp. 251–268. doi:10.1002/j.1538-7305.1985.tb00431.x.
  44. ^ Coppens, J.A.W.M (August 1988). "Information security in Local Area Networks, especially in Waterloo Port" (PDF). Technische Universiteit Eindhoven. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  45. ^ "Port - (Computer Language)". Online Historical Encyclopaedia of Programming Languages.
  46. ^ "Port". Computer Dictionary of Information Technology.
  47. ^ Rigney, Steve (April 1992). "LAN Fundamentals Part 2 — LANstep". PC Magazine. p. 316.
  48. ^ Nunn, Tom (24 August 1994). "Hayes tries to unload Kitchener-Waterloo research and development facility". The Gazette. Montreal, QC Canada.
  49. ^ Hitz, David; Harris, Guy; Lau, James K.; Schwartz, Allan M. (January 1990). "Using Unix as One Component of a Lightweight Distributed Kernel for Multiprocessor File Servers" (PDF). Auspex. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  50. ^ Kopp, Carlo (June 1997). "Brave Little Toasters?". Dr. Carlo Kopps's Industry Publications.
  51. ^ Jerian, Charles P. "Chuck's Home Page — I worked for CacheFlow Inc". jerian.tripod.com.

추가 정보