객체 지향 운영 체제
Object-oriented operating system객체지향적[1] 운영체제는 객체지향적 프로그래밍 원리를 이용하여 설계, 구조화, 운용하는 운영체제다.
객체 지향 운영 체제는 객체 지향 사용자 인터페이스나 프로그래밍 프레임워크와는 대조적이며, DOS나 유닉스 같은 비 객체 지향 운영 체제에서 실행될 수 있다.
유닉스와 같은 좀 더 전형적인 운영 체제의 설계에는 이미 객체 기반 언어 개념이 포함되어 있다.C와 같은 더 전통적인 언어는 더 최근의 언어처럼 유동적으로 개체 지향성을 지원하지 않지만, 예를 들어 파일, 스트림 또는 장치 드라이버(유닉스에서는 각각 파일 설명자로 표현됨)의 개념은 개체의 좋은 예로 간주될 수 있다.이들은 결국 추상적인 데이터 유형으로, 객체 유형에 따라 동작이 달라지는 시스템 호출의 형태와 발신자에게서 어떤 구현 세부 정보가 숨겨져 있는지 다양한 방법을 가지고 있다.
객체 지향성은 객체 + 상속으로 정의되어 왔으며, 상속은 모든 운영 체제에서 발생하는 위임의 보다 일반적인 문제에 대한 하나의 접근법일 뿐이다.[2]개체 지향성은 커널보다 운영 체제의 사용자 인터페이스에서 더 널리 사용되어 왔다.
배경
개체는 특정 기능 집합을 제공하는 클래스의 한 인스턴스다.두 개체는 그들이 지원하는 기능(또는 방법)에 따라 구별될 수 있다.운영 체제 컨텍스트에서 개체는 리소스와 연결된다.역사적으로, 객체 지향 설계 원칙은 운영 체제에서 몇 가지 보호 메커니즘을 제공하기 위해 사용되었다.[1]
운영 체제의 보호 메커니즘은 서로 다른 사용자 프로그램 간의 명확한 분리를 제공하는 데 도움이 된다.또한 악성 사용자 프로그램 동작으로부터 운영 체제를 보호한다.예를 들어 운영 체제에서 사용자 프로필의 경우를 생각해 보십시오.사용자는 다른 사용자의 리소스에 액세스할 수 없어야 한다.오브젝트 모델은 각 자원이 오브젝트로 작용하는 이러한 보호 문제를 다룬다.모든 개체는 일련의 작업만 수행할 수 있다.사용자 프로필의 맥락에서 작업 세트는 사용자의 권한 수준에 의해 제한된다.[1]
오늘날의 운영 체제는 보호 기능을 포함하는 시스템의 많은 구성요소에 객체 지향 설계 원칙을 사용한다.
예
- 아테네
- 아테네는 록리테시스템즈가 2000년 처음 출시한 객체 기반 운영체제다.[3][4]사용자 환경은 전적으로 런타임에 함께 연결된 개체로 구성되었다.Atherne을 위한 애플리케이션도 이 방법론을 사용하여 만들 수 있으며, 객체 스크립팅 언어 DML(Dynamic Markup Language)을 사용하여 일반적으로 스크립팅되었다. 객체는 공유 메모리에 생성하여 액세스에 필요한 대로 잠김으로써 프로세스 간에 공유될 수 있었다.아테네의 오브젝트 프레임워크는 멀티플랫폼으로, 윈도우와 리눅스 환경에서 오브젝트 지향 프로그램을 개발하는 데 사용할 수 있도록 했다.그 회사는 없어졌고 2009년쯤 프로젝트는 포기했다.
- BeOS
- 진정한 객체지향적 운영체제를 만들기 위한 한 가지 시도는 1990년대 중반의 BeOS로[5], 애플리케이션 프로그래밍 인터페이스(API)에 객체 및 C++ 언어를 사용했다.그러나 커널은 사용자 공간에 C++ 포장지로 C로 작성되었다.그 시스템은 주류화되지 않았고 상업적으로 생존할 수 없는 것으로 증명되었다.지금은 소수의 마니아 그룹에 의해 사용되고 개발되고 있다.
- 선택 사항
- 선택은 일리노이 대학교의 Urbana-Champaign에서 개발한 객체 지향 운영 시스템이다.[6][7]C++로 작성되어 있으며, CPU(중앙처리장치), 프로세스 등 핵심 커널 구성요소를 나타내는 객체를 사용한다.상속은 커널을 휴대용 기계 독립 클래스와 소형 비휴대용 종속 클래스로 분리하는 데 사용된다.선택은 SPARC, x86, ARM에 포팅되어 있다.
- 지오스
- PC/GEOS는 확장 가능한 글꼴이 특징인 정교한 창과 데스크톱 관리를 갖춘 경량 객체 지향 멀티태스킹 그래픽 운영체제다.주로 객체지향 x86 어셈블리 언어 방언과 일부 C/C++로 쓰여 DOS(Microsoft Windows to Windows Me와 유사함)에서 실행되도록 설계되었으며, GEOS는 1990년 버클리 소프트웍스에서 개발되어 후에 지오웍스 사가 되었고, 브레드박스 컴퓨터 컴퍼니에서 계속 유지되고 있다.관련 소프트웨어 제품군은 앙상블과 뉴딜 오피스로 명명되었다.어댑테이션은 다양한 팜탑과 비x86-CPU를 사용하는 32비트 시스템을 위해 존재한다.
- 하이쿠
- BeOS의 단종 이후, 오픈소스 대체물을 만들기 위한 노력이 시작되었다.하이쿠(원래 이름은 OpenBe)OS)는 2009년 9월 하이쿠 R1/Alpha 1의 발매와 함께 첫 대기록을 달성했다.x86 분포는 소스 레벨과 이진 레벨 모두에서 BeOS와 호환된다.BeOS와 마찬가지로 주로 C++로 작성되며 객체 지향 API를 제공한다.적극적으로 발전한다.
- IBM i(OS/400, i5/OS)
- IBM은 1988년에 OS/400을 도입했다.이 OS는 AS/400 플랫폼에서만 구동되었다.2008년에 IBM i로 이름이 바뀐 이 운영 체제는 AIX와 Linux를 실행할 수 있는 Power Systems에서만 운영된다.IBM i는 객체 지향 방법론을 사용하며 데이터베이스(Db2 for i)를 통합한다.IBM i OS에는 각 개체에 대해 128비트 고유 식별자가 있다.
- IBM OS/2 2.0
- IBM의 첫 번째 우선 순위 기반 사전 예방적 멀티태스킹, 그래픽 방식의 윈도우 기반 운영 체제는 객체 지향적인 사용자 셸을 포함했다.완전한 32비트 지원으로 가상 8086 모드를 사용한 인텔 80386용으로 설계되어 1992년에 출시되었다.처음에 블루라이온이라고[8] 불리는 새로운 OS/2 기반 운영체제인 ArcaOS는 Arca Noae에 의해 개발되고 있다.첫 번째 버전은 2017년 5월에 출시되었다.
- IBM TopView
- TopView는 DOS의 PC에 로딩한 다음 DOS로부터 제어권을 획득한 객체 지향 운영 환경이었다.그 시점에서 사실상 객체 지향 API(TopView API)를 갖춘 객체 지향 운영체제가 되었다.IBM의 최초의 멀티태스킹, 윈도우 기반의 객체 지향 운영체제였다.모릴, 1985년 2월 개봉.
- 자바 기반
- Oracle(옛 Sun Microsystems's) 자바어가 오늘날 가장 지배적인 객체 지향 언어 중 하나라는 점을 감안하면, 자바 기반의 운영체제가 시도된 것은 놀랄 일이 아니다.이 영역에서 커널은 Java 가상 머신(JVM)을 지원하는 데 필요한 최소값으로 구성된다.이것은 자바 이외의 언어로 작성되어야 하는 그러한 운영체제의 유일한 구성요소다.JVM과 기본 하드웨어 지원을 기반으로 구축된 나머지 운영 체제를 자바어로 작성할 수 있을 것이다. 예를 들어 장치 드라이버와 같이 전통적으로 낮은 수준의 언어로 작성된 시스템의 일부라도 자바어로 작성할 수 있다.
- 그러한 운영체제에 대한 시도의 예로는 자바OS, JOS,[9] JNode, JX 등이 있다.
- 리스프 기반
- Lisp 사투리 Lisp Machine Lisp(이후 Common Lisp)로 작성된 객체 지향 운영체제가 MIT에서 개발되었다.이 회사는 심볼릭스와 리스프 머신, 텍사스 인스트루먼트사의 리스프 머신으로 상용화되었다.심볼릭스는 운영 체제를 제네라라고 부른다.Lisp의 오브젝트 지향 확장, New Freats, CLOS(Common Lisp Object System)의 후속으로 개발되었다.
- 제록스는 Interlisp-D로 작성된 운영 체제를 갖춘 여러 대의 워크스테이션을 개발했다.인터리스프-D는 LOPS와 CLOST와 같은 객체 지향 확장 기능을 제공했다.
- Movitz와 Mezzano는 Common Lisp으로 작성된 운영체제에 대한 최근의 시도들이다.
- 메도스-2
- Medos-2는 워크스테이션의 Lilith 라인에 맞게 제작된 단일 사용자 객체 지향 운영 체제(프로세서:1980년대 초 스벤드 에릭 크누드센이 니클라우스 위스의 조언을 받아 ETH 취리히에서 개발한 어드밴스트 마이크로 소자(AMD) 2901이다.그것은 전적으로 프로그래밍 언어 Modula-2의 모듈로 만들어졌다.[10][11][12]ETH 취리히에서 오베론 시스템에 의해 계승되었고, 크로노스 워크스테이션에 엑셀시오르라는 변종이 소련 과학 아카데미, 시베리아 지사, 노보시비르스크 컴퓨팅 센터, 모듈형 비동기 개발 시스템(MARS) 프로젝트, 크로노스 연구 그룹(KRG)에 의해 개발되었다.[13]
- 마이크로소프트 특이점
- 특이점은 마이크로소프트 의 를 기반으로 한 실험 운영 체제다.NET Framework.자바 기반의 운영체제(OS)에 버금간다.
- 마이크로소프트 윈도 NT
- 윈도 NT는 마이크로소프트가 생산하는 운영체제(윈도우 7, 8, 전화 8, 8.1, 윈도 10, 엑스박스 포함) 계열로 의 첫 번째 버전이 1993년 7월에 출시되었다.이것은 높은 수준의 프로그래밍 언어 기반, 프로세서 독립, 다중 처리, 다중 사용자 운영 체제다.객체지향 언어의 완전한 상속 속성을 포함하지 않기 때문에 객체지향보다는 객체지향적인 것으로 가장 잘 묘사된다.[14]
- 오브젝트 매니저는 NT 오브젝트 관리를 담당한다.이 책임의 일환으로 다양한 운영체제 구성요소, 디바이스 드라이버, Win32 프로그램이 객체를 저장하고 조회할 수 있는 내부 네임스페이스를 유지한다.NT 네이티브 API는 사용자 공간(모드) 프로그램이 네임스페이스를 탐색하고 그곳에 위치한 개체의 상태를 조회할 수 있는 루틴을 제공하지만 인터페이스는 문서화되지 않았다.[15]NT는 풍부한 보안 권한 집합을 시스템과 서비스에 적용할 수 있도록 개체별(파일, 기능 및 역할) 액세스 제어 목록을 지원한다.WinObj는 NT Native API(NTDLL 제공)를 사용하는 Windows NT 프로그램이다.DLL) NT Object Manager의 이름 공간에 대한 정보에 액세스하고 정보를 표시.[16]
- 구성요소 객체 모델
- 윈도 사용자 모드 측면에서 컴포넌트 오브젝트 모델(COM)은 마이크로소프트가 1993년 도입한 소프트웨어 컴포넌트의 응용 바이너리 인터페이스 표준이다.광범위한 프로그래밍 언어에서 프로세스 간 통신과 동적 객체 생성을 가능하게 하기 위해 사용된다.COM은 OLE(Object Linking and Embedding), OLE Automation, ActiveX, COM+, DCOM(Distributed Component Object Model), Windows 셸, DirectX 및 Windows Runtime을 포함한 몇 가지 다른 마이크로소프트 기술과 프레임워크의 기반이다.OLE는 마이크로소프트가 개발한 독점 기술로 문서와 다른 오브젝트에 임베딩 및 연동이 가능하다.기술적 수준에서 OLE 오브젝트는 오브젝트의 필요에 따라 다양한 다른 인터페이스와 함께 IOleObject 인터페이스를 구현하는 모든 오브젝트다.복합 문서를 관리하는 데 주로 사용되지만 드래그 앤 드롭 및 클립보드 작업을 사용하여 서로 다른 응용프로그램 간에 데이터를 전송하는 데도 사용된다.
- 복합 파일 이진 형식
- 복합 파일 이진 형식(CFBF)은 디스크의 한 파일 내에 많은 파일과 스트림을 저장하기 위한 파일 형식이다.CFBF는 마이크로소프트에 의해 개발되었으며 마이크로소프트 COM Structured Storage의 구현이다.구조화된 스토리지는 Microsoft Word, Microsoft Excel, Microsoft PowerPoint, Microsoft Access 등 Microsoft Office 애플리케이션에서 메인 파일 형식으로 널리 사용되며 고급 저작 포맷의 기본이다.
- 객체 연결 및 임베딩
- OLE(Object Linking and Embedding, OLE)는 1991년부터 1996년까지 마이크로소프트(MS) 프로젝트의 코드 이름인 카이로라는 더 웅장한 계획의 일부였다.빌 게이츠의 '손끝에 닿는 정보'[17][18]라는 비전을 충족시킬 차세대 운영체제를 위한 기술을 구축하는 것이 헌장이었다.카이로의 기술 일부는 그 이후 다른 제품에서 등장했지만 카이로에서는 결코 선적되지 않았다.윈도 95 그래픽 사용자 인터페이스는 카이로 사용자 인터페이스에서 행해진 초기 설계 작업에 기초하였다.나머지 구성요소는 객체 기반 파일 시스템이다.한때 윈도 비스타의 일부로 윈FS(Windows Future Storage) 형태로 구현될 계획이었다.WinFS는 관계형 데이터베이스를 기반으로 하는 데이터 저장 및 관리 시스템 프로젝트의 코드명으로, NT 개체 식별자를 포함한 NT 개체를 저장할 수 있다는 점에서 객체 지향적이다.각 NTFS 개체에는 개체 식별자가 있으며, NTFS 볼륨에 있는 대상이 있는 바로 가기에는 바로 가기 대상의 개체 식별자와 드라이브의 개체 식별자도 기록된다.[19]WinFS는 구조화, 반구조화 및 구조화되지 않은 데이터의 지속성과 관리를 위해 설계된 마이크로소프트 윈도우즈 운영 체제를 위한 고급 스토리지 서브시스템으로 2003년에 처음 시연되었다.윈FS 개발은 2006년 6월 일부 기술이 마이크로소프트 SQL 서버 2008, 마이크로소프트 쉐어포인트 등 다른 마이크로소프트 제품에 합병되면서 취소됐다.이후 빌 게이츠와의 인터뷰에서 마이크로소프트가 WinFS를 데이터 스토리지 백엔드로 사용하기 위해 윈도 미디어 플레이어, 윈도 포토 갤러리, 마이크로소프트 오피스 아웃룩 등과 같은 애플리케이션을 마이그레이션할 계획을 세운 것으로 확인됐다.[20]
- 넥스트스텝
- 1980년대 후반 스티브 잡스는 컴퓨터 회사 NeXT를 만들었다.NeXT의 첫 번째 작업 중 하나는 객체 지향 운영 체제인 NeXTSTEP을 설계하는 것이었다.그들은 목표-C 언어를 기초로 하여 마하와 BSD에 객체지향적인 프레임워크를 추가함으로써 이것을 했다.그것은 월드 와이드 웹의 첫 구현을 개발 중인 팀 버너스-리가 특히 사용한 컴퓨터 시장에서 틈새 시장 지위를 획득했다.
- NeXTStep은 이후 Mac OS X와 iOS에서 OpenStep과 코코아 API로 진화했다.
- OpenStep은 HP-UX, NextStep, Solaris, Windows와 같은 많은 운영 체제에서 API 계층으로 제공되었다.
- 오베론
- Oberon은 Ceres 워크스테이션(프로세서: 프로세서:National Semiconductor NS32000)는 1980년대 후반 니클라우스 위스(Nikla Wirth)와 위르그 구트네히트가 ETH 취리히에서 개발했다.그것은 전적으로 프로그래밍 언어인 Oberon의 모듈로 만들어졌다.[21]이후 진화는 AOS(Active Object System)로 명명되었고,[22] 그 후 Bluebottle로 이름을 바꾸었으며, 그 후 A2로 이름을 바꾸었다.
- 오오스모스
- C로 작성된 OOSMOS(Object-Oriented State Machine Operating System)는 객체 지향 캡슐화를 촉진하고 전체 테이블 중심의 계층적 상태 머신 아키텍처를 구현한다.오픈소스 툴 UMLet으로 그린 상태 차트에서 직접 C 코드를 생성하며, OOSMOS는 상태별 스레드가 가능한 독특한 피쳐콜 '스테이트 스레드'도 지원한다.OOSMOS는 베어보드에서 작동하거나 기존 운영 체제와 협력하여 작동한다.
- 리액토스
- ReactOS는 마이크로소프트 윈도 NT 버전을 위해 만들어진 응용 프로그램 소프트웨어 및 장치 드라이버와 이진 호환되도록 고안된 오픈 소스 운영 체제다.처음부터 다시 작성된 이 책은 마이크로소프트가 설계한 윈도우 NT의 아키텍처를 하드웨어 레벨에서 응용 프로그램 레벨까지 따르는 것을 목표로 한다.이것은 리눅스 기반 시스템이 아니며 유닉스 아키텍처를 공유하지 않는다.[23][24]
- 셀프
- 셀프(프로그래밍 언어)는 제록스 PARC에서 발명되었다.그 후 스탠포드 대학과 썬 마이크로시스템스에서 개발되었다.
- 스몰토크
- 스몰토크는 1970년대에 제록스에서 발명되었다.스몰토크 시스템은 완전히 객체 지향적이며 BIOS와 런타임 시스템의 지원이 거의 필요하지 않다.
- 음절
- 음절은 C++를 많이 사용하므로 BeOS와 비교되기도 한다.
- 심볼릭 제네라
- Symbolicics의 Generena는 ZetaLisp 및 Symbolicics Common Lisp로 작성된 Lisp 머신을 위한 운영 체제다.향미(Lisp에 대한 초기 객체 지향 확장)와 CLOS(Common Lisp Object System)를 많이 활용한다.개발은 MIT에서 70년대 중반에 시작되었다.
- 탤리젠트
- Taligent는 애플사가 시작했으며 1990년대 IBM과 공동으로 개발한 객체 지향 운영체제 프로젝트였다.그것은 나중에 IBM 자회사로 분리되었고 운영 체제에서 프로그래밍 환경으로 전환되었다.
참고 항목
참조
- ^ a b c Pashtan, Ariel (1 January 1982). "Object Oriented Operating Systems: An Emerging Design Methodology". Proceedings of the ACM '82 Conference. Association for Computing Machinery (ACM): 126–131. doi:10.1145/800174.809777.
- ^ Wegner, Peter (December 1987). "Dimensions of Object-based Language Design". ACM SIGPLAN Notices. 22 (12): 168–182. doi:10.1145/38807.38823. 또한 객체 지향 프로그래밍 시스템에 대한 회의 절차, 언어.
- ^ "The Athene Operating System". LWN.net. Retrieved 13 February 2017.
- ^ "Rocklyte Systems". Rocklyte Systems.
- ^ Sydow, Dan Parks (1999). Programming the Be operating system (1st ed.). Beijing: O'Reilly. ISBN 978-1-56592-467-3.
- ^ Campbell, Roy; Johnston, Garry; Russo, Vincent (1 July 1987). "Choices (Class Hierarchical Open Interface for Custom Embedded Systems)". SIGOPS Operating Systems Review (OSR). 21 (3): 9–17. doi:10.1145/29321.29323. ISSN 0163-5980.
- ^ "Choices". choices.cs.illinois.edu.
- ^ "Blue Lion, by Arca Noae". Arca Noae. Retrieved 2017-02-18.
- ^ "About". JOS (A Free Java-Based Operating System). Retrieved 2012-09-03.
The JOS Project is a collaborative undertaking by an international group of Java™ programmers and enthusiasts aimed at the creation of a free and open Java™ based Operating System (JOS). As a collaborative effort, we work together to research how a Java-based operating system should work. Together, we work to build components for a Java-based operating system.
- ^ Knudsen, Svend Erik (1983). Medos-2: A Modula-2 Oriented Operating System for the Personal Computer Lilith (PhD). ETH Zurich. doi:10.3929/ethz-a-000300091.
- ^ Knudsen, Svend Erik (25 October 2000). "Medos in Retrospect". In Böszörményi, László; Gutknecht, Jürg; Pomberger, Gustav (eds.). The School of Niklaus Wirth: The Art of Simplicity. Morgan Kaufmann. pp. 69–86. ISBN 978-1558607231. ISBN 1-55860-723-4 & dpunkt, ISBN 3-932588-85-1.
- ^ Sand, Paul A. (September 1984). "The Lilith Personal Computer". Byte. pp. 300–311. Retrieved 6 March 2021. 재인쇄하다.
- ^ Kuznetsov, D.N.; Nedorya, A.E.; Tarasov, E.V.; Filippov, V.E. "Kronos: a family of processors for high-level languages". Kronos: History of a Project (in Russian). xTech. Retrieved 13 April 2021.
- ^ "Object-Based". Microsoft Hardware Development Centre. Retrieved Aug 23, 2015.
- ^ Nebbett, Gary (February 20, 2000). Windows NT/2000 Native API Reference. Sams Publishing. p. 528. ISBN 978-1578701995.
The Windows NT/2000 Native API Reference provides the first comprehensive look at these undocumented services. A unique tool for software developers, this reference includes documentation of over 200 routines included in the native API, detailed description of routines that are either not directly accessible via the Win32 API, or that offer substantial additional functionality.
- ^ Russinovich, Mark. "Windows Sysinternals WinObj". Microsoft. Retrieved 2014-05-16.
Obj is a must-have tool if you are a system administrator concerned about security, a developer tracking down object-related problems, or just curious about the Object Manager namespace.
- ^ Gates, Bill (1990). ""Information at Your Fingertips" Keynote - Comdex/Fall 1990". Microsoft. Retrieved 2014-05-16.
Bill Gates delivered on November 12, 1990 his famous Keynote titled "Information at Your Fingertips"
- ^ Gates, Bill (1994). ""Information at Your Fingertips" #2 Keynote (The Road Ahead) – Comdex 1994". Microsoft. Retrieved 2014-05-16.
Bill Gates' "Information At Your Fingertips" keynote speech for Comdex 1995 became the basis for his book The Road Ahead, predicting the next decade in technology – right and wrong. These predictions are enlivened by the interaction between Gates speaking and a made-for-Comdex future crime show.
- ^ Chen, Raymond (2007). "Windows Confidential: The NT Way (excerpts from "The Old New Thing" book)". Microsoft. Retrieved 2014-05-16.
The Windows NT file system folks looked at the Windows 95 shortcut resolution algorithm and scoffed. " We can do better than that: We're object-oriented!" Each NTFS object has an object identifier; a shortcut with a target that's on an NTFS volume also records the object identifier of the shortcut target, as well as the object identifier of the drive itself.
- ^ Kornev, Daniel (December 19, 2006). "A few words about WinFS: The project is back on track". Channel 9.
- ^ Wirth, Niklaus; Gutknecht, Jürg (1988). The Oberon System: Report Number 88 (PDF) (Report).
- ^ Muller, Pieter Johannes (2002). The active object system design and multiprocessor implementation (PDF) (PhD). Swiss Federal Institute of Technology, Zürich (ETH Zurich).
- ^ Friedl, Klemens. "About ReactOS: Object Based". ReactOS Project. Retrieved 2017-02-19.
ReactOS uses an object metaphor that is pervasive throughout the architecture of the system. Not only are all of the things in the UNIX file metaphor viewed as objects by ReactOS, but so are things such as processes and threads, shared memory segments, the global registry database and even access rights.
- ^ 필비, J. "리액트OS: NT?에 대한 오픈 소스 대안. IEEE 소프트웨어 16.1(1999년): 35–35.