오베론 (운영체제)

**오베론 시스템**(Oberon System)은 프로그래밍 언어 오베론으로 작성된 모듈식의 단일 사용자, 단일 프로세스, 다중 작업 운영체제이다. 이것은 1980년대 후반 취리히 연방 공과대학교에서 처음 개발되었다. 오베론 시스템은 기존의 명령줄 인터페이스 (CLI) 또는 그래픽 사용자 인터페이스 (GUI) 대신, 틀에 얽매이지 않는 시각적인 텍스트 사용자 인터페이스 (TUI)를 가지고 있다. 이 TUI는 당시 매우 혁신적이었다. 이는 플랜 9 (운영체제)용 Acme 텍스트 편집기 디자인에 영향을 미쳤으며, 매킨토시 프로그래머 워크숍의 워크시트 인터페이스의 "룩앤필"과 몇 가지 유사점을 가지고 있다.

이 시스템은 또한 다중 프로세스, 대칭형 다중 처리 (SMP)를 지원하는 A2 (이전에는 액티브 오브젝트 시스템 (AOS), 이후 Bluebottle)로 발전했으며, 주밍 사용자 인터페이스 (ZUI)를 특징으로 한다.

## 역사
오베론 운영 체제는 NS32032 기반 Ceres 워크스테이션 프로젝트의 일부로 시작되었다. 이 시스템은 거의 전적으로 (2013년 버전에서는 완전히) 오베론 프로그래밍 언어로 작성되었다.
기본 시스템은 니클라우스 비르트와 Jürg Gutknecht가 설계하고 구현했으며, 그들의 책 "Project Oberon"에 설계 및 구현 과정이 완전히 기록되어 있다. 사용자 인터페이스 및 프로그래머 참조는 마르틴 라이저의 책 "The Oberon System"에 나와 있다. 오베론 시스템은 이후 취리히 연방 공과대학교의 팀에 의해 확장되고 다른 하드웨어 플랫폼으로 포팅되었으며, 대중 잡지에서도 인정을 받았다.

비르트와 구트크네히트는 (비록 현직 컴퓨터 과학 교수였지만) 책 프로젝트 오베론에서 스스로를 '파트타임 프로그래머'라고 언급한다. 2013년 말, 80세 생일을 몇 달 앞두고 비르트는 프로젝트 오베론의 두 번째 에디션을 출판했다. 이 책은 그가 직접 설계한 축소 명령어 집합 컴퓨터 (RISC) CPU를 자일링스 FPGA 보드에 구현하여 오베론 시스템을 구현하는 과정을 상세히 설명한다. 이는 취리히 연방 공과대학교에서 그의 80세 생일을 기념하여 열린 심포지엄에서 발표되었다. 그동안 이 버전을 위한 여러 에뮬레이터가 구현되었다.

취리히 연방 공과대학교의 개발자 그룹 전 멤버이자 나중에 린츠 대학교 시스템 소프트웨어 연구소의 멤버였던 요제프 템플(Josef Templ)에 따르면, 한 분기된 버전(V4)이 유지되었던 오베론 시스템의 다양한 버전들의 계보는 다음과 같다:

## 사용자 인터페이스
오베론은 터미널 사용자 인터페이스와는 매우 다른 텍스트 사용자 인터페이스 (TUI)를 가지고 있다. 이것은 그래픽 사용자 인터페이스 (GUI)의 포인트 앤드 클릭 편의성과 명령줄 인터페이스 (CLI)의 언어적 강점을 결합하며, 오베론 언어의 명명 규칙과 밀접하게 연결되어 있다. 화면 거의 모든 곳에 나타나는 텍스트는 편집되어 명령어 입력으로 사용될 수 있다. 명령어는 `Module.Command` (선택적으로 `~`로 끝나는 매개변수 뒤에) 형식의 텍스트 조각을 중간 마우스 클릭으로 활성화된다. 명령어는 내보내지고 빈 인자 목록을 가진 모든 프로시저에 의해 정의된다. 명령어의 매개변수는 중간 클릭을 실행하기 전에 정의되어야 하며, 프로시저에 의해 명시적으로 스캔되고 검색되어야 한다. 명령어 실행 중에는 확인이나 질문이 발생하지 않는다. 이것을 때때로 비모달 사용자 인터페이스 (UI)라고 부른다.

## 버전 및 가용성
V1은 오베론 삼부작이 출판되기 전의 첫 번째 사용 가능한 버전이었다. Write라는 편집기와 함께 텍스트 모델의 주요 변경으로 V2가 나왔다. 위 역사 섹션의 표에서 예고된 바와 같이, 1990년대 초반에 V4 대 시스템 3이라는 큰 분기가 있었다. Jürg Gutknecht를 중심으로 한 그룹은 영구 객체와 객체 라이브러리를 도입하여 커널을 확장했다. 한스페터 메서뵈크를 중심으로 한 그룹은 특수 문자에 매핑된 활성 요소를 도입하여 커널을 변경하지 않고 글꼴을 확장하는 방식으로 유사한 기능을 구현했다. 시스템 3은 때때로 Spirit of Oberon이라고도 불렸고 나중에는 ETH Oberon으로 이름이 바뀌었으며, V4는 때때로 Linz Oberon이라고도 불렸다.

[255px|섬네일|[XO-1|XO-1.5의 A2 내 오베론 서브시스템.]] 2017년 현재 오베론 OS는 여러 하드웨어 컴퓨팅 플랫폼에서 사용 가능하며, 일반적으로 무료 버전으로 여러 출처에서 제공되므로 다소 혼란스럽다. 오베론 OS는 일반적으로 매우 작다. 컴파일러, 웹 브라우저를 포함한 다양한 유틸리티, TCP/IP 네트워킹, GUI를 포함하더라도 전체 패키지는 3.5인치 플로피 디스크 한 장으로 압축될 수 있다. 다른 운영 체제에서 오베론 OS를 에뮬레이트한 버전과 베어 하드웨어에서 실행되는 버전이 있다. 후자는 네이티브 오베론이라고 불린다. Ceres, 인텔 IA-32, ARM 플랫폼용 네이티브 버전이 있다. 2013년 니클라우스 비르트는 "Project Oberon"에 설명된 기본 시스템을 최신 FPGA 설계에 맞게 조정했다. 2013년판 서문에 따르면, 전체 시스템은 Spartan-3 보드에서 10초 이내에 컴파일된다. 이 버전은 때때로 V5라고도 불리지만, 기능적으로는 후기 버전들보다 Ceres에서 실행되는 원래 V1과 훨씬 더 유사하다.

### 플러그인 오베론 및 슬림 바이너리
오베론 시스템 3의 한 버전은 다른 구현들보다 마이크로소프트 윈도우 OS에 더 통합되었으며, 플러그인 오베론(Plugin Oberon)이라고 불렸다. 플러그인 오베론은 OLE, 넷스케이프 플러그인, 그리고 오베론 모듈 인터체인지(OMI) 또는 슬림 바이너리(slim binaries)라고 불리는 바이너리 형식을 지원했는데, 이는 인텔 x86, 모토로라 68K, 파워PC 아키텍처 간에 이식 가능한 오브젝트 코드를 허용했다. 슬림 바이너리는 마이클 프란츠가 1990년대 초에 발명했다. 이는 68k에서 파워PC 아키텍처로 전환하는 동안 애플이 발명한 팻 바이너리(fat binaries)에 대한 동기와 반대의 개념으로 만들어졌다. OMI는 압축된 추상 구문 트리에 기반한 이식 가능한 코드를 제공했다. 이 압축된 추상 구문 트리를 이용한 이식 가능한 코드 표현 방식은 자바 세계에서 GraalVM과 트러플에 의해 다시 사용되고 있다.

### 오베론 V4
오베론 V4 버전(역사 참조)은 비르트와 구트크네히트가 개발한 원래 운영 체제와 더 유사하다. 이 시스템은 원래 ETHZ에서 개발되었지만, H.P. 메서뵈크가 린츠 대학교의 시스템 소프트웨어 연구소(Institut für Systemsoftware)로 가면서 V4 개발도 그곳으로 옮겨졌다. 따라서 V4는 때때로 ETH-오베론과 대조적으로 린츠-오베론이라고도 불린다. V4와 확장 기능의 최신 버전은 린츠 대학교에서 구할 수 있다. 오베론 V4는 2000년 이후 거의 변경 사항이 없어 더 이상 유지되지 않는 것으로 보인다. 또 다른 V4 저장소는 클라우디오 니더(Claudio Nieder)의 Oberon V4이며, 이는 다양한 V4 구현 간의 차이점도 보여준다. 2013년부터 이 페이지는 소스포지로 이동/미러링되었다. V4는 자체 운영 체제라기보다는 현재 통합 개발 환경이라고 불릴 만한 것에 가깝다. V4를 위한 많은 확장 기능이 작성되었으며, 여전히 린츠 대학교의 SSW [ftp://ftp.ssw.uni-linz.ac.at/pub/Oberon/LinzTools/ FTP 서버]에서 구할 수 있다. 일부 문서는 그들의 웹페이지에서 찾을 수 있으며, 더 많은 정보는 일반적으로 패키지에 포함되어 오베론의 특별한 리치 텍스트 형식으로 제공된다.

### AOS/블루보틀/A2

2010년경, 취리히 연방 공과대학교 컴퓨터 과학과는 액티브 오브젝트 및 운영 체제용 병행성 연구를 시작했으며, 새로운 언어인 액티브 오베론과 이를 위한 새로운 운영 체제의 초기 버전을 출시했다. 이 시스템은 2002년 처음에는 액티브 오브젝트 시스템(AOS)으로 명명되었고, 이후 상표권 문제로 2005년 블루보틀(Bluebottle)로, 2008년 A2로 개명되었다. 취리히 연방 공과대학교에서 대부분의 소스 코드를 인터넷을 통해 이용할 수 있다. A2의 네이티브 버전은 단일 및 다중 프로세서 IA-32 및 x86-64 하드웨어에서 베어 메탈(bare metal) 환경과 가상 머신 내에서 모두 실행된다. 이전에는 StrongARM CPU 제품군에서도 사용할 수 있었다. 다른 운영 체제에서 프로그램으로 실행되는 버전은 윈도우 (WinAos), 유닉스 (UnixAos), 리눅스 (LinuxAos), MacOS (DarwinAos)에서 사용할 수 있다. A2에 대한 더 자세한 정보는 러시아 위키백과 A2 페이지에 있다.
섬네일|설치 프로그램, 달력 및 시계가 열려 있는 오베론 A2 데스크톱 화면. (기본 스타일 사용)
### stailaOS
산업 연구 프로젝트의 일환으로 취리히 연방 공과대학교의 네이티브 시스템 그룹은 최신 오베론 OS 버전을 기반으로 하는 애플리케이션별 운영체제인 stailaOS를 개발했다. 이 시스템은 실시간 애널리틱스, 금융 애플리케이션, 메인 메모리 기반 전사적 자원 관리 (ERP) 등과 같은 용도로 사용될 예정이다.

### 네이티브 오베론
[섬네일|320px|[데비안 위지에서 QEMU로 실행되는 오베론0 설치 프로그램. 파티션 테이블의 표시는 시스템 전반의 이해 가능성을 보여준다.]]
네이티브 오베론은 베어 하드웨어에서 실행되는 오베론 시스템이다. PC-네이티브 오베론은 IA-32 PC 하드웨어에서 실행되는 버전이다. V4 네이티브 오베론은 존재하지 않았으므로, 이 섹션의 모든 정보는 암묵적으로 시스템 3을 가정한다. 네이티브 오베론은 하드웨어 요구 사항이 적다: 133&nbsp;MHz 펜티엄, 100MB 하드 디스크, 최소 1024x768 픽셀 해상도의 VESA 2 그래픽 카드, 선택적으로 쓰리콤 네트워크 카드. 기본 시스템은 하나의 HD 플로피 디스크에서 실행되며, 추가 소프트웨어는 네트워크를 통해 설치할 수 있다. 전체 설치에는 Gadgets GUI가 포함된다. 이 시스템은 전적으로 오베론 언어로 작성되었다. 최신 버전은 2.3.7이었다. 이 버전은 2003년 1월 5일자이며, 특히 ETHZ의 FTP 서버에서는 Update/Alpha로도 표기된다. 이후 버전은 AOS/BlueBottle/A2에 통합되었다.

### LNO
리눅스 네이티브 오베론 (LNO)이라는 버전은 리눅스를 HAL로 사용한다. 이 목표는 PC-네이티브 오베론과 가능한 한 호환되도록 하는 것이다. 이름에 Native가 없는 다른 오베론 시스템 버전은 낮은 수준의 모듈 인터페이스를 부분적으로 수정했다. 2015년 피터 마티아스(Peter Matthias)는 LNO를 오베론 리눅스 리바이벌(OLR)이라는 이름으로 재활성화하여 인텔 x86, ARM, MIPS, RISC-V에서 원활하게 실행되는 다중 플랫폼 배포판으로 만들었다. 이는 라즈베리 파이와 저렴한 (단종된) CHIP 컴퓨터에서 잘 작동하며, 일부 조정 (그룹 멤버십 또는 일부 장치에 대한 권한 조정)을 통해 타이니 코어 리눅스에서도 잘 작동한다. OLR은 직접적인 시스템 호출을 통해 리눅스 커널과 인터페이스한다. , OLR은 네트워크 계층이 부족하다.

## 프로젝트 오베론 2013
2013년, 비르트와 폴 리드(Paul Reed)는 Digilent 자일링스 스파르탄 3 FPGA 스타터 보드용 오리지널 오베론 시스템의 재구현을 완료했다. 이 작업에는 "Project Oberon"의 개정이 포함되어 있으며, "Project Oberon (New Edition 2013)"으로 식별된다.

2015년, 리드는 빅터 유르코프스키(Victor Yurkovsky)와 협력하여 오베론을 실행하기 위해 특별히 설계된 자일링스 스파르탄 3 기반 컴퓨터인 오베론스테이션(OberonStation)을 만들었다.

이 시스템은 그 이후로 사안리마 일렉트로닉스(Saanlima Electronics)에 의해 자일링스 스파르탄 6 FPGA 페피노(Pepino) 개발 보드로, CFB 소프트웨어에 의해 자일링스 아틱스 7 기반 Digilent Nexys A7-100 FPGA 트레이너 보드로 포팅되었다.

피터 드 바흐터(Peter de Wachter)는 이를 위한 에뮬레이터를 구현했으며, 마이클 시어(Michael Schierl)에 의해 자바스크립트와 자바로도 포팅되어 현대 브라우저에서 실행된다.

## 갤러리

파일:TatungTWN5213Oberon.png|타퉁 TWN-5213 CU 태블릿의 오베론.
파일:AndroidOberonV5.jpg|알카텔 9015B 태블릿에서 블루투스로 키보드와 마우스를 연결하여 안드로이드 (운영체제) 상의 GNURoot 데비안에서 실행되는 오베론 V5 RISC 에뮬레이터.


## 용어집
*A2 – 2002년에는 액티브 오브젝트 시스템(AOS)이었으나, 상표권 문제로 2005년에 블루보틀(Bluebottle)로 이름이 변경되었고, 2008년에 A2로 다시 변경되었다.
*ALO – ARM 리눅스 오베론; LNO 제품군에 속하며 ARM CPU용이다.
*AOS – 위 A2 항목 참조.
*BB – 블랙박스 컴포넌트 빌더. 오베론 마이크로시스템즈의 컴포넌트 파스칼 IDE.
*Bluebottle – 위 A2 항목 참조.
*CP – 컴포넌트 파스칼. 오베론 제품군 중 오베론-2와 가장 유사한 방언.
*ETHO – 스위스 연방 공과대학교에서 개발된 오베론: Eidgenössische Technische Hochschule (ETH).
*Fox – AOS에 등장하는 액티브 오베론용 컴파일러. (위 A2 항목 참조).
*LEO – 리눅스 ETH 오베론. 리눅스 x86용 ETHO 2.4.3.
*LNO – 리눅스 네이티브 오베론.
*NO – 네이티브 오베론. 다른 운영 체제 위에서가 아니라 베어 하드웨어에서 실행된다.
*OLR – 오베론 리눅스 리바이벌. 리눅스를 HAL로 사용하며 x86, ARM, MIPS에서 실행되는 NO 버전.
*OP2 – 포터블 오베론-2 컴파일러. OP2는 오베론을 상용 플랫폼에 포팅하기 위해 개발되었다.
*PACO – (범위) PArallel COmpiler. A2에 등장한다 (위 항목 참조). 각 범위를 독립적인 스레드에서 컴파일한다.
*PIO - 오베론 프로그래밍.
*RISC5 – 비르트의 RISC 아키텍처를 기반으로 한 프로젝트 오베론 2013의 중앙 처리 장치 (CPU). RISC-V와 혼동하지 말 것.
*UnixAOS – 유닉스 기반 AOS, 위 A2 항목 참조.
*WinAOS – 윈도우 기반 AOS, 위 A2 항목 참조.

## 같이 보기
* 
* A2 (운영체제)
* 오베론 (프로그래밍 언어)
* 오베론-2 프로그래밍 언어

## 각주

## 외부 링크

* , ETH 오베론 구 홈페이지, 2020년 1월 이후 접속 불가, 아카이브.org로 리디렉션: 아카이브 버전
* 오베론 문서 위키위키웹
* 오베론 시스템의 계보 및 역사 archive.org의 버전
* 오베론 참고 문헌 

* 오베론 컴파일러. 
* QEMU를 이용한 ETH 오베론 설치
* BlueBottle/AOS/A2 액티브 오브젝트 (사용 가능한 경우 개별 프로세서에서 실행되는 스레드의 일종) 및 주밍 사용자 인터페이스를 지원하는 네이티브 오베론의 발전형.  취리히 연방 공과대학교의 레드마인 인스턴스에서 이용 가능.
* 네이티브 오베론 홈페이지가 Archive.org로 리디렉션됨 (2016년 5월 - 이 사이트는 ftp-서버 링크에 깨진 URL이 있음; 파일은 ftp://ftp.inf.ethz.ch/pub/ETHOberon/에서 ftp://ftp.ethoberon.ethz.ch/로 이동되었으며, 2022년 3월 10일 현재 해당 서버의 미러는 GWDG에서 여전히 사용 가능함)
* 네이티브 오베론 하드웨어 호환성이 archive.org로 리디렉션됨
* ETH PC 네이티브 오베론, 사용법 노트
* 루카스 마티스(Lukas Mathis)의 오베론 관련 블로그 사용자 인터페이스와 오베론의 역사에 대한 좋은 추적.
* 린츠 대학교의 오베론 V4 메인 페이지
* 오베론 V4 소스 소스포지에 있는 다양한 V4 구현 및 리눅스용 오베론 V4의 소스 코드 모음. 해당 위키에서 더 많은 정보를 확인할 수 있다.
* https://www.projectoberon.net/, 프로젝트 오베론.
* 실험적인 오베론
* WinOberon aka 플러그인 오베론 2010년경 에밀 젤러가 알렉산더 일진에게 제공한 버전 2.6
* 오베론 시스템 3 튜토리얼 앙드레 피셔 (1997), 아카이브 버전

분류:자유 소프트웨어 운영체제
분류:1987년 소프트웨어