Thoth(운영 체제)
Thoth (operating system)| 개발자 | 워털루 대학교 |
|---|---|
| 기입처 | 제드, 어셈블리 언어 |
| OS 패밀리 | RTOS |
| 동작 상태 | 단종 |
| 초기 릴리즈 | 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]목표를 달성하기 위해 개발되었습니다.
- 다른[3] 하드웨어로 쉽게 이동 가능
- 프로그램은 효율적인 프로세스 간 통신(IPC)[5]을 통한 저렴한 동시 프로세스 세트로 실행된다.
- 외부 이벤트에 대한 시스템 응답에 대한 실시간 사용에 적합합니다.
- 광범위한 실시간 사용에 적응 및 확장 가능
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)이 되었습니다.
레퍼런스
- ^ "CS 452 Real-Time Programming". University of Waterloo, Cheriton School of Computer Science.
- ^ "CS 452/652 - Real-time Programming". University of Waterloo, Computing Science Computing Facility.
- ^ a b Malcolm, Michael (24 March 2009). "2009 March 24: Deloitte speakers series". University of Waterloo, Institute of Computer Research.
- ^ Ritchie, Dennis M. (April 1993). The Development of the C Language (PDF). Association for Computing Machinery.
- ^ 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=(도움말) - ^ Braga, Reinaldo S. C. (November 1976). "Eh Reference Manual" (PDF). University of Waterloo Computer Science Department.
{{cite journal}}:Cite 저널 요구 사항journal=(도움말) - ^ 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.
- ^ Melen, Laurence S. (October 1976). "A Portable Real-Time Executive, Thoth". Department of Computer Science, University of Waterloo.
{{cite journal}}:Cite 저널 요구 사항journal=(도움말) - ^ 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.
- ^ "Programming Languages Database: Z". epocalc. 2012.
- ^ 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=(도움말) - ^ a b Lockhart, Thomas Wayne (November 1979). "The Design of a Verifiable Operating System Kernel". The University of British Columbia.
{{cite journal}}:Cite 저널 요구 사항journal=(도움말) - ^ Kinnersley, Bill (23 January 1995). "The Language List: Version 2.4". ckw.phys.ncku.edu.tw.
- ^ Hutchinson, Norman A. (1987). "Emerald: An Object-Based Language for Distributed Programming" (PDF). University of Washington.
{{cite journal}}:Cite 저널 요구 사항journal=(도움말) - ^ 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.
- ^ 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=(도움말) - ^ 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=(도움말) - ^ 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=(도움말) - ^ Comer, Douglas E.; Munson, Steven B (1988). "Efficient Interprocess Communication Using Shared Memory". Purdue University Department of Computer Science.
{{cite journal}}:Cite 저널 요구 사항journal=(도움말) - ^ 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.
- ^ 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=(도움말) - ^ Appavoo, Jonathan. "Optimizing Multi-Processor Operating Systems Software Research Review" (PDF). Boston University Department of Computer Science.
{{cite journal}}:Cite 저널 요구 사항journal=(도움말) - ^ 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=(도움말) - ^ 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=(도움말) - ^ Fonds, Wes Graham (5 August 1983). "Chronology: 1980s: A Decade of Expansion — 1981". University of Waterloo — Cheriton School of Computer Science.
- ^ Tanner, P. P.; Buxton, W. (1985). Some Issues in Future User Interface Management System (UIMS) Development. User Interface Management Systems. Berlin. pp. 67–79.
- ^ 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=(도움말) - ^ 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=(도움말) - ^ Chakraborty, Pinaki (2010). "Research Purpose Operating Systems — A Wide Survey" (PDF). GESJ: Computer Science and Telecommunications (3): 147–160. ISSN 1512-1232.
- ^ 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.
- ^ 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.
- ^ 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.
- ^ Plebon, Darlene A.; Booth, Kellogg S. (1982). "Interactive Picture Creation System" (PDF). University of Waterloo.
{{cite journal}}:Cite 저널 요구 사항journal=(도움말) - ^ Watt, Stephen Michael (1985). "Bounded Parallelism in Computer Algebra" (PDF). University of Waterloo.
{{cite journal}}:Cite 저널 요구 사항journal=(도움말) - ^ Schröder, W. "A Distributed Process Execution and Communication Environment for High-Performance Application Systems" (PDF). Technische Universität Berlin.
{{cite journal}}:Cite 저널 요구 사항journal=(도움말) - ^ 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=(도움말) - ^ 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=(도움말) - ^ 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=(도움말) - ^ "Embedded Applications — Technology for the Real World". The infraNET Project. 29 May 1998.
- ^ Morris, James B. (February–April 1983). "The Powerful Tools of QNX". PC Magazine. pp. 269–297.
- ^ Advani, Prakash (14 June 2001). "A talk with Paul Leroux". FreeOS.com.
- ^ Oberle, Bonnie (30 October 1998). "Returning the favour". Imprint. Impring Publications, Waterloo. p. 7.
- ^ 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.
- ^ 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=(도움말) - ^ "Port - (Computer Language)". Online Historical Encyclopaedia of Programming Languages.
- ^ "Port". Computer Dictionary of Information Technology.
- ^ Rigney, Steve (April 1992). "LAN Fundamentals Part 2 — LANstep". PC Magazine. p. 316.
- ^ Nunn, Tom (24 August 1994). "Hayes tries to unload Kitchener-Waterloo research and development facility". The Gazette. Montreal, QC Canada.
- ^ 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=(도움말) - ^ Kopp, Carlo (June 1997). "Brave Little Toasters?". Dr. Carlo Kopps's Industry Publications.
- ^ Jerian, Charles P. "Chuck's Home Page — I worked for CacheFlow Inc". jerian.tripod.com.
추가 정보
- Malcolm, Michael A.; Stafford, Gary J. (September 1977). "The Thoth Assembler Writing Kit" (PDF). University of Waterloo Computer Science Department.
{{cite journal}}:Cite 저널 요구 사항journal=(도움말) - Cheriton, D. R.; Murphy, W. (September 1979). "Verex System Programmer's Manual". University of British Columbia.
{{cite journal}}:Cite 저널 요구 사항journal=(도움말) - Cheriton, David R. (1979). "Designing an Operating System to be Verifiable".
{{cite journal}}:Cite 저널 요구 사항journal=(도움말) - Cheriton, D. R. (September 1980). "The Verex Kernel". University of British Columbia.
{{cite journal}}:Cite 저널 요구 사항journal=(도움말) - Cheriton, D. R. (November 1981). "The Design of a Distributed Kernel". Proceedings of ACM National Conference.
- Wallis, Peter J. L. (1982). Portable programming. Macmillan. ISBN 0333310365.
- Cheriton, David R. (1982). The Thoth system: multi-process structuring and portability. North-Holland. ISBN 0-444-00701-6.
- Malcolm, Michael Alexander; Dyment, Doug (December 1983). "Experience designing the waterloo port user interface". SIGSMALL '83: Proceedings of the 1983 ACM SIGSMALL Symposium on Personal and Small Computers: 168–175. doi:10.1145/800219.806664. ISBN 0897911237. S2CID 14736242.