OS-9

OS-9
OS-9
개발자2001년에 Radisys가 전자레인지 구입(2013년부터 전자레인지 LP 소유)
기입처C, 어셈블리 언어
동작 상태현재의
소스 모델폐쇄 소스
초기 릴리즈1979년; 43년 전 (1979년)
최신 릴리즈6.1 / 2017년 11월 14일, 4년 전(2017-11-14)
마케팅 대상고도의 산업 자동화 및 제어, 의료기기, 항공우주 및 운송 시스템을 위한 고성능, 고가용성 실시간 소프트웨어 솔루션
이용가능기간:영어
플랫폼Motorola 6809, Motorola 680x0 CPU, ColdFire, SuperH, ARM/XScale, MIPS, PowerPC, 인텔 x86 아키텍처
커널 타입실시간 커널
체납
사용자 인터페이스
CLI는 모든 버전에서 GUI를 지원하는 플랫폼도 있습니다.
면허증.독자 사양
공식 웹사이트www.microware.com

OS-9은 1980년대에 Motorola 6809 마이크로프로세서용 Microware Systems Corporation에 의해 개발된 프로세스 기반멀티태스킹 멀티사용자 운영체제 패밀리입니다.2001년 래디시스사에 인수됐으며 2013년 현재 소유주인 마이크로파 LP에 의해 재매입됐다.

OS-9 패밀리는 범용 컴퓨팅에서 인기가 높았으며, 상업용 임베디드 시스템 및 취미 생활자 사이에서 여전히 사용되고 있습니다.현재 OS-9은 Motorola 68000 시리즈 기계어 OS 및 원래 OS-9000으로 알려진 C로 작성된 휴대용 버전(PowerPC, x86, ARM, MIPS, SH4 등)에서 사용되는 제품 이름입니다.

역사

1979~1980년에 만들어진 첫 번째 버전("OS-9 레벨 원")은 모토로라 6809 CPU용 어셈블리 언어로 작성되었으며, 모든 프로세스는 메모리 관리 장치 없이 CPU의 64KB 주소 공간 내에서 실행되었습니다.6809 개발의 일환으로 모토로라가 계약한 BASIC09 프로젝트의 지원 운영체제로 개발되었습니다.이후 6809 버전('레벨 2')은 메모리 매핑 하드웨어를 활용하여 대부분의 구현에서 최대 2MB의 메모리(1980년 경)를 지원하며 일부 플랫폼에는 GUI가 포함되어 있습니다.

1983년, OS-9/6809는 모토로라 68000 어셈블리 언어로 이식되어 확장되었습니다(OS-9/68K로 불림). 그리고 그 이후의 버전(1989년)은 휴대성을 높이기 위해 주로 C로 다시 쓰여졌습니다.이 휴대용 버전은 처음에는 OS-9000으로 불리며 1989년경에 80386 PC 시스템용으로 출시되었고 1995년경에 PowerPC로 이식되었습니다.이러한 최신 버전에는 OS-9/6809 레벨2의 메모리 매핑 기능이 없습니다.단, 이 기능이 필요하지 않기 때문입니다.이들은 모든 프로세스가 공유하는 단일 플랫 주소 공간을 사용했습니다.메모리 매핑 하드웨어가 있는 경우 대부분 프로세스가 액세스할 수 있는 메모리만 액세스하도록 하기 위해 사용됩니다.680x080386 이후의 MPU는 모두 1MB가 넘는 메모리를 직접 지원합니다.

6809 프로세서의 사용하기 쉬운 재입력 오브젝트 코드 기능을 이용한 초기 설계의 결정으로 OS-9용 프로그램을 재입력해야 합니다.컴파일러는 자동으로 재입력 코드를 생성하고 OS-9용 어셈블러는 이를 상당히 지원합니다.또한 6809는 직접 지원하므로 OS-9은 위치에 의존하지 않는 코드와 데이터를 사용합니다. 컴파일러와 어셈블러는 위치에 의존하지 않습니다.OS-9 커널은 프로그램(공유 코드 포함)을 로드하고 메모리 맵에 충분한 빈 영역이 있는 경우 데이터를 할당합니다.이것에 의해, OS 전체와 모든 애플리케이션을 ROM 또는 플래시 메모리에 배치할 수 있게 되어, 프로그램을 RAM에 로드해 실행할 때의 메모리 관리 요건이 경감됩니다.OS-9의 프로그램, 디바이스 드라이버 및 I/O 매니저는 모두 '모듈'이며 필요에 따라 동적으로 로드 및 언로드할 수 있습니다(링크 수에 따라 다름).

OS-9/6809는 SWTPC, Tano, Gimix, Midswest Scientific, Smoke Signal Broadcasting, STD-bus 6809와 같은 여러 공급업체의 개인용 컴퓨터로부터 Motorola 6809, SS-50 Bus 및 SS-50C 버스 시스템을 사용하여 Motorola EXORbus 시스템에서 작동합니다.

DEC 호환 기기의 서드파티 프로바이더인 System Industries는 VAX 설치의 QIC(쿼터인치 카트리지) 테이프 백업 컨트롤러에서 OS9를 실행하는 68B09E 프로세서를 사용했습니다.

가장 잘 알려진 하드웨어(저렴한 가격과 광범위한 유통으로 인해)는 TRS-80 컬러 컴퓨터(CoCo)와 유사한 Dragon 시리즈입니다.최소한의 하드웨어 플랫폼인 CoCo에서도 OS-9/6809 레벨 1에서는 여러 명의 인터랙티브 사용자(예를 들어 콘솔 키보드로 한 명, 백그라운드에서 한 명, 아마도 세 번째 사용자)를 동시에 실행하는 것이 가능했으며 다른 여러 비인터랙티브 프로세스도 가능했습니다.BBC Micro의 두 번째 프로세서 구현은 Cumana에 의해 제작되었습니다.온보드 RAM, SCSI 하드 디스크 인터페이스 및 MC68008 [1]프로세서가 포함되어 있습니다.

OS-9는 코모도어 SP-9000 또는 SuperPET에도 포팅되어 있습니다.코모도어 SP-9000 또는 SuperPET에는 베이스 8032 모델의 6502와 더불어 64KB가 더 많은 6809가 탑재되어 있습니다.토론토 PET 사용자 그룹은 OS-9 디스트리뷰션 디스크뿐만 아니라 MMU가 장착된 도터보드를 포함하는 HW/SW 프로젝트를 후원했습니다.2개의 프로세서, 96KB, 25×80 화면과 시리얼 포트, 패럴렐 포트 및 IEEE-488 포트를 탑재하여 많은 주변기기를 갖춘 이 OS-9 시스템은 가장 성능이 뛰어난 시스템 중 하나였습니다.

OS-9의 멀티 유저와 멀티 태스킹 기능을 통해 범용 인터랙티브 컴퓨터 시스템으로 사용할 수 있습니다.Dynacalc 스프레드시트, VED 텍스트 포맷터, Stylograph 및 Screditor-3 WYSIWYG 워드 프로세서와 같은 많은 타사 인터랙티브 응용 프로그램이 이를 위해 작성되었습니다.TSCnroff 에뮬레이트 포메터도 MicroWay에 의해 OS-9로 이식되었습니다.

1980년대 중반에는 OS-9가 CD-i 운영체제로 선택되었습니다.비슷한 시기에 마이크로소프트가 마이크로파 인수에 접근한 은 주로 CD-i 운영체제인 CD-RTOS에 이끌렸기 때문이다.협상은 실패했고 거래는 이루어지지 않았다. 마이크로파는 독립을 유지하기로 결정했다.

1980년대 후반, Microware는 OS-9000을 출시했는데, OS는 보다 휴대성이 뛰어난 버전입니다.운영체제 커널의 대부분은 C로 다시 쓰여졌고 일부 하드웨어 의존 부품은 어셈블리 언어로 되어 있습니다.트리와 같은 커널 모듈 이름 공간 등 몇 가지 "고급 기능"이 추가되었습니다.OS-9000은 처음에 Motorola 680x0 패밀리 CPU, Intel 80386PowerPC에 이식되었습니다.OS-9000/680x0은 마케팅에 실패하여 단기간에 철수했습니다.이는 기존 OS-9/680x0의 안정성에 대한 실적이 있는 기록에 비해 더 뚱뚱하고 느린 운영체제를 사용하려는 고객이 적었기 때문일 것입니다.Motorola 680x0 패밀리 및 VME 보드 컴퓨터 시스템 벤더가 수명이 다한 것이 OS-9000/680x0의 비인기에 영향을 미쳤을 수 있습니다.Microware는 이후 OS-9000이라고 불리던 모든 운영체제를 단순히 OS-9로 부르기 시작했고 휴대전화, 내비게이션, 멀티미디어 등 휴대용 소비자 기기 시장으로 사업 관심을 옮기기 시작했다.

1980년대 후반과 1990년대 초반에 Broadcast Systems에서 사용된 문자 생성기 컴퓨터는 OS-9과 OS-9000을 광범위하게 사용했습니다.현재는 사용되지 않게페사 일렉트로니카에서는 CG 4722나 CG4733등의 CG에 OS-9 를 사용하고 있습니다.

이름 충돌 및 법원 결정

1999년, OS-9의 첫 출시로부터 19년 후, 애플 컴퓨터는 맥 OS 9를 출시했다. 마이크로파는 그 해 애플을 상표권 [2]침해로 고소했지만, 판사는 이 둘 사이에 혼란의 가능성은 거의 없다고 판결했다.Microware의 덜 알려진 OS-9을 모르는 Macintosh 사용자 중 일부는 OS-9이 무엇인지 인식하지 못하는 comp.os.os.os9 뉴스 그룹에 글을 올렸습니다.

2001년에, RadiSys는 마이크로파를 구입해, 인텔 IXP-1200 네트워크 프로세서의 자원을 취득했습니다.이 인수를 통해 Microware는 자금을 조달하여 OS-9 개발과 지원을 계속할 수 있게 되었습니다.

2013년 2월 21일, Microsys LP(일본의 Freestation, 독일의 Microsys Electronics 및 미국의 RTSI LLC에 의해 체결된 파트너십)는 RadiSys로부터 Microsare, OS-9 및 모든 자산에 대한 권리를 구입하기 위한 자산 구매 계약을 체결했다고 발표했습니다.

테크놀로지

모던하고 고풍스러운 디자인

OS-9(특히 68k 버전 이후)는 많은 면에서 이전 세대의 임베디드 운영 체제와 명확하게 구분됩니다.

  • 8비트, 16비트 및 32비트 CPU에서 실행됩니다.
  • 사용자 모드와 슈퍼바이저(커널) 모드를 명확하게 구분합니다.
  • 정적으로 링크된 단일 단일 이미지가 아닌 개별적으로 구축된 소프트웨어 컴포넌트(실행 가능한 프로그램 이미지 및 커널 모듈)를 동적으로 사용합니다.
  • Unix와 유사한 프로세스 이름 공간 모델(메모리 모델이 아님) 및 사용자 셸 프로그램.
  • 하드웨어에 의존하지 않는 레이어(파일 매니저 등)와 하드웨어에 의존한 레이어(디바이스 드라이버 등)를 명확하게 구분합니다.

최신 운영 체제와 비교했을 때:

  • 커널은 단순한 내부 데이터 구조를 사용하여 어셈블리 언어(OS-9/68K 버전만) 및 C(다른 아키텍처에 대한 휴대용 버전)로 작성되므로 유연성과 개선 범위를 줄이고 실시간 운영 체제에 필요한 결정성을 향상할 수 있습니다.
  • 일부 작업에서는 성능도 영향을 받았지만 어셈블리 언어가 속도 문제에 도움이 되었습니다.
  • 메모리 관리 유닛(MMU)이 없는 시스템은 부정 액세스로부터 메모리를 보호하거나 프로세스별 메모리를 보호하지 않습니다.MMU를 탑재한 시스템은 메모리 보호를 유효하게 할 수 있습니다.시스템 인테그레이터는 MMU를 제어하는 모듈을 포함하거나 생략하여 메모리 보호를 활성화 또는 비활성화할 수 있습니다.이것에 의해, OS-9 는 MMU 를 탑재하고 있지 않은 낡은 시스템으로 동작할 수 있습니다.
  • 이전 버전의 OS-9은 POSIX 스레드를 지원하지 않지만 모든 OS-9 지원 프로세서는 POSIX 스레드를 지원합니다.
  • 같은 OS-9 인스턴스에서 여러 소켓, 코어 또는 하드웨어 스레드에 대한 SMP는 지원되지 않습니다(Linux가 다른 코어에서 실행되고 범용 태스크를 수행하는 경우 Core Duo 및 Core 2 Duo 의 듀얼 코어 프로세서의 코어 중 하나에서 RTOS로 실행할 수 있습니다).

태스크 스케줄링

OS-9의 실시간 커널을 사용하면 태스크 전환 및 프로세스 간 통신 기능을 통해 여러 개의 독립 애플리케이션을 동시에 실행할 수 있습니다.모든 OS-9 프로그램은 최소 1개의 경량 프로세스(스레드)를 포함하는 프로세스로 실행되지만 실질적으로 스레드 수는 무제한입니다.프로세스 내에서 이러한 경량 프로세스는 POSIX 스레드 사양 및 API에 따라 메모리, I/O 경로 및 기타 리소스를 공유합니다.OS-9는 고정 priority 프리엠프티브스케줄링 알고리즘을 사용하여 스레드를 스케줄링하고 각 priority 내에서 라운드로빈 스케줄링을 실시합니다.타임 슬라이싱이 지원됩니다.priority 레벨은 에이징을 지원하는 범위와 완전 priority 스케줄링을 사용하는 고 priority 범위로 나눌 수 있습니다.각 프로세스는 적절한 OS-9 서비스 요청을 발행하여 모든 시스템 리소스에 액세스할 수 있습니다.OS-9는 스케줄링 포인트마다 액티브 큐의 선두에 있는 스레드의 priority와 현재 스레드의 priority를 비교한다.priority가 현재 프로세스의 priority보다 높은 경우 컨텍스트는 활성 큐의 스레드로 전환됩니다.에이징은 시간이 지남에 따라 액티브큐의 스레드의 유효 priority를 인위적으로 높입니다.정의된 간격으로 타임슬라이싱은 현재 스레드를 동일한 우선순위의 다른 스레드 뒤에 있는 액티브큐로 되돌립니다

커널 모듈

  • 커널 – 태스크 스위칭, 메모리 할당 및 대부분의 비 I/O콜이 포함됩니다.
  • IOMAN – 다양한 파일 매니저 및 드라이버에 대한 I/O 호출을 처리합니다.
  • 파일 관리자 기본 설정:
    • SCF, 시리얼 파일(시리얼 디바이스)
    • RBF, 랜덤 블록(디스크 디바이스)
    • SBF, 순차 블록(테이프 장치)
    • NFM, NULL 디바이스(USB 및 기타 디바이스)
    • MFM, 메시지
    • PCF, PC FAT 파일
    • 파이프맨, 파이프 매니저
    • Modman - 메모리 모듈 디렉토리
  • SSM – 시스템 보안(MMU 처리)
  • 캐시 – 캐시 처리,
  • VectXX – 벡터 / PIC 핸들러
  • FPU부동소수점 에뮬레이션
  • Align – 주소 정렬 장애 핸들러

명령어

다음 명령어 목록은 OS-9 쉘에서 지원됩니다.

셸 내장 명령어

운영 체제 기능용 유틸리티

시스템 관리 유틸리티

일반 유틸리티

Unix와의 비교

프로세스와 I/O 경로에 대한 OS-9의 개념은 거의 모든 면에서 Unix의 개념과 비슷하지만 몇 가지 중요한 차이가 있습니다.첫째, 파일 시스템은 단일 트리가 아니라 각 트리가 디바이스에 대응하는 포레스트입니다.둘째, OS-9에는 Unix 스타일의 fork() 시스템콜이 없습니다.대신 지정된 프로그램을 실행하는 프로세스를 생성하는 시스템콜이 있어 포크 exec 또는 생성과 거의 같은 기능을 수행합니다.또, OS-9 프로세스에서는, 1개의 디렉토리가 아니고, 2개의 「현재 디렉토리」를 추적합니다.「현재 실행 디렉토리」는, 디폴트로 실행할 프로그램을 로드하는 장소입니다(유닉스 환경에서 PATH 환경 변수를 사용하는 경우와 유사합니다).다른 하나는 현재 데이터 디렉토리입니다.

또 다른 차이점은 할아버지 디렉토리는 슬래시 없이 3회 이상 반복하여 표시할 수 있다는 것입니다(4DOS/4OS2/4NT/TC에서도 볼 수 있는 기능).예를들면,..../fileOS-9에서는 다음과 같습니다.../../../fileUNIX에서는, UNIX 에서는.그렇지만.그리고...OS-9 와 Unix 의 양쪽 모두에서 동작하는 것은, 1 개 또는 2 개 뿐입니다.

OS-9은 6809의 설계자의 개념과 향후 소프트웨어가 어떻게 배포될 것으로 예상하는가에 영향을 받아 처음부터 모듈식 설계를 해 왔다.

모듈 구조에는 더 많은 설명이 필요합니다.OS-9은 메모리 내에 있는 모든 모듈의 메모리 상주 목록인 "모듈 디렉토리"를 로드 또는 부트 시 초기 스캔 중에 ROM에 발견하여 보관합니다.OS-9 쉘에 명령어를 입력하면 지정한 이름의 모듈이 현재 모듈디렉토리에서 먼저 검색되어 사용(및 링크카운트 증가)되거나 검출되지 않은 경우 디스크에서 적절한 이름의 파일이 검색됩니다.OS-9/6809 및 OS-9/68000에서는 모듈 디렉토리는 플랫하지만 OS-9000에서는 모듈 디렉토리가 트리 구조로 되어 있습니다.OS-9000 셸은 대체 모듈디렉토리에서 MODPATH 환경변수를 찾습니다.이는 모든 버전의 PATH 변수와 유사하며 프리 로드된 모듈을 찾는 모듈디렉토리의 시퀀스를 나타냅니다.

모듈은 프로그램 유지에 사용될 뿐만 아니라 데이터를 보유하기 위해 즉시 생성될 수 있으며 OS-9이 공유 메모리를 지원하는 방법입니다.OS-9/68000 이외는 POSIX 스레드를 지원합니다.단일 프로세스로 임의의 수의 스레드를 시작할 수 있습니다.

상황

OS-9은 널리 사용되지 않게 되었습니다만, Microware LP는 여전히 OS-9을 지원하며, ARM이나 x86 등의 최신 아키텍처에서 작동합니다.제공된 컴파일러 Ultra C/C++는 C89를 지원하지만 C99도 C++98지원하지 않습니다.Ultra C++ 에서는 C++ 템플릿의 지원이 한정되어 있습니다.또한 wolfSSL과 같은 일반적인 SSL/TLS 라이브러리에서도 지원됩니다.

  • Ontrak Systems / Lam Research에서 제조한 반도체 웨이퍼 스크러버에는 Steve Adams의 G-Windows를 실행하는 OS-9 버전이 있습니다.이러한 시스템 중 수천 대가 현재 사용되고 있지만 이 시스템에서 실행되고 있는 소프트웨어는 Y2K 문제를 처리하기 위해 마지막 버전이 작성된 1999년으로 거슬러 올라갑니다.
  • OS-9/68K 버전은 일본의 샤프 X68000을 비롯한 다양한 68000 패밀리 플랫폼에서 실행되었으며, 컬러 컴퓨터(68070 및 68340 기반 MM/1 및 Frank Hogg Laboratories, PEP Modular Computers, Comar, Color Computers 등)로부터의 업그레이드로 설계자가 의도한 일부 개인용 컴퓨터에서도 실행되었습니다.1990년대 초 Recc-o-ware에 의해 Atari ST로 포팅되어 유럽에서 Cumana에 의해 배포되었습니다.Ultrascience에서 배포하는 68000 기반의 Apple Macintosh용 포트가 있습니다.디그비 타빈의 아미가로 가는 항구도 존재한다고 한다.
  • OS-9/68K는 Caltrans에 의해 2070-1B 및 2070-1E 컨트롤러 카드로 사용이 의무화되어 있기 때문에 많은 북미 교통신호제어시스템 실행에 사용됩니다.
  • OS-9/68K는 또한 Quanta Delta TV 방송 문자 생성기 등 일부 임베디드 응용 프로그램에서도 볼 수 있으며, 여전히 유타주 ScanLine Technologies에서 제작 중입니다.이 시스템의 사용자 수준 인터페이스 코드는 부팅 시 시작되었지만, 문서화되어 있지 않은 키보드 시퀀스가 있어 디바이스의 편집 채널모니터 스크롤창에 루트셸 프롬프트가 표시됩니다.
  • OS-9가 Fairlight CMI 신시사이저, 로보틱스, 차내 내비게이션, 필립스 CD-i(Compact Disc-Interactive) 업계 표준 등의 기기에 적용되고 있는 임베디드 시장에서.
  • TRS-80 컬러 컴퓨터(및 클론)는 아직 시카고에서 사용자와 연례 회의를 개최하고 있습니다. 2018년 제27회 "마지막" 시카고 CoCoFEST는[3] 2018년 4월 21일부터 22일까지 예정되어 있습니다.캐나다 프로그래머 그룹은 효율성을 높이고 Hitachi 6309네이티브 모드를 활용하기 위해 CoCo 3(주소 변환 하드웨어 포함)용으로 OS-9/6809 레벨 II를 다시 작성했습니다.오늘날의 진지한 CoCo 사용자는 일반적으로 CoCo 3의 68B09E를 Hitachi 63B09E로 교체하고 NitrOS-9로 불리는 개서를 실행합니다.이 조합은 명백히 저비용의 8비트 컴퓨터 시스템에서 실행된다는 점을 고려하면 놀라울 정도로 빠릅니다.
  • Gary Becker의 CoCo3 FPGA는 Altera DE-1 개발 보드에서 NitrOS-9를 실행하는 합성 TRS-80 컬러 컴퓨터입니다.코어 6809 CPU는 존 켄트에 의해 설계되어 현재 25MHz로 동작하고 있습니다.
  • OS-9000/80x86은 인텔 x86 CPU를 기반으로 구축된 PC 타입 머신에서 실행할 수 있습니다.OS-9000은 PowerPC, MIPS, Advanced RISC Machines의 ARM 프로세서 일부 버전 및 Hitachi SH 시리즈의 프로세서 일부에도 이식되어 있습니다.
  • DigiCart/II Plus 오디오 재생 유닛은 OS-9/68K를 실행합니다.이것은 라디오 방송국 스타일의 카트 플레이어를 위한 솔리드 스테이트 대체품입니다.이 유닛들은 라디오나 월트 디즈니 월드와 같은 공원 안내방송을 재생하는 곳에서 사용된다.
  • 독일 전자업체 엘텍은 1970년대 후반부터 68026809 Eurocom-1Eurocom-2를 시작으로 지금까지 68K와 파생 CPU 보드를 생산하고 있습니다.최신 보드는 OS-9를 포함한 다양한 운영체제를 탑재할 수 있습니다.
  • Omron은 NS 시리즈 HMI 패널에 OS-9을 사용했습니다.그러나 Omron은 새로운 NA 시리즈를 위해 Windows Embedded Compact 7을 선택했습니다.Omron은 OS-9에서는 USB 스틱을 비롯한 거의 모든 드라이버가 Omron에 의해 작성되어야 한다고 지적했습니다.[4]

레퍼런스

  1. ^ Vogler, Jon (June 1987). "Down to Business: Cumana / The upgrade". A & B Computing. Argus Specialist Publications. pp. 80–86.
  2. ^ Smith, Tony (1999-09-03). "OS-9 developer sues Apple over MacOS 9". The Register UK. Situation Publishing. Retrieved 2014-06-01.
  3. ^ 코코페스트
  4. ^ "NA Training Book 2.4" (PDF). industrial.omron.eu/NA. Retrieved 2019-03-16.

추가 정보

  • Paul S. Dayan (1992). The OS-9 Guru - 1 : The Facts. Galactic Industrial Limited. ISBN 0-9519228-0-7.
  • Mark A. Heilpern (1995). OS-9 Primer. Microware Systems Corp. ISBN 0-918035-04-X.
  • Peter Dibble (1994). OS-9 Insights. Microware Systems Corp. ISBN 0-918035-05-8.

외부 링크