OS-9

OS-9
Deweloper
Napisane w C , język asemblera
Stan roboczy Aktualny
Model źródłowy Zamknięte źródło
Pierwsze wydanie 1979 ; 44 lata temu ( 1979 )
Najnowsze wydanie 6.1 / 14 listopada 2017 ; 5 lat temu ( 14.11.2017 )
Cel marketingowy wysokowydajne oprogramowanie o wysokiej dostępności działające w czasie rzeczywistym dla zaawansowanej automatyki przemysłowej i sterowania, oprzyrządowania medycznego, systemów lotniczych i transportowych
Dostępne w język angielski
Platformy Procesory Motorola 6809 , Motorola 680x0 , ColdFire , SuperH , ARM/XScale , MIPS , PowerPC , architektura Intel x86
Typ jądra Jądro czasu rzeczywistego

Domyślny interfejs użytkownika
CLI we wszystkich wersjach, niektóre platformy obsługują GUI
Licencja Prawnie zastrzeżony
Oficjalna strona internetowa www.microware.com _ _

OS-9 to rodzina działających w czasie rzeczywistym , opartych na procesach , wielozadaniowych systemów operacyjnych dla wielu użytkowników , opracowanych w latach 80. XX wieku, pierwotnie przez Microware Systems Corporation dla mikroprocesora Motorola 6809 . Został zakupiony przez Radisys Corp w 2001 roku i ponownie zakupiony w 2013 roku przez obecnego właściciela Microware LP .

Rodzina OS-9 była popularna w komputerach ogólnego przeznaczenia i nadal jest używana w komercyjnych systemach wbudowanych i wśród hobbystów. Obecnie OS-9 to nazwa produktu używana zarówno przez języka maszynowego Motorola z serii 68000 , jak i wersję przenośną ( PowerPC , x86 , ARM , MIPS , SH4 itp.) napisaną w C , pierwotnie znaną jako OS-9000 .

Historia

Pierwsza wersja („OS-9 Level One”), która pochodzi z lat 1979–1980, została napisana w języku asemblera dla procesora Motorola 6809 , a wszystkie jej procesy przebiegały w przestrzeni adresowej 64 KB procesora bez zarządzania pamięcią jednostka. Został opracowany jako pomocniczy system operacyjny dla BASIC09 , zakontraktowanego przez firmę Motorola w ramach rozwoju 6809. Późniejsza wersja 6809 („Poziom drugi”) wykorzystuje sprzęt do mapowania pamięci, obsługuje do 2 MB pamięci (ok. 1980) w większości implementacji i zawiera GUI na niektórych platformach .

W 1983 roku OS-9/6809 został przeniesiony do języka asemblera Motorola 68000 i rozszerzony (nazwany OS-9/68K); a jeszcze późniejsza (1989) wersja została przepisana głównie w C w celu dalszej przenośności. Wersja przenośna nosiła początkowo nazwę OS-9000 i została wydana dla 80386 około 1989 r., A następnie przeniesiona do PowerPC około 1995 r. Te późniejsze wersje nie mają mapowania pamięci udogodnienia OS-9/6809 poziomu drugiego po prostu dlatego, że ich nie potrzebują. Użyli jednej płaskiej przestrzeni adresowej, którą współdzielą wszystkie procesy; sprzęt do mapowania pamięci, jeśli jest obecny, jest najczęściej używany do zapewnienia, że ​​procesy uzyskują dostęp tylko do pamięci, do której mają prawo dostępu. jednostki MPU 680x0 i 80386 (i nowsze) bezpośrednio obsługują znacznie więcej niż 1 MB pamięci w każdym przypadku .

W wyniku wczesnych wszechobecnych decyzji projektowych wykorzystujących łatwe w użyciu możliwości ponownego wprowadzania kodu obiektowego procesora 6809, programy przeznaczone dla OS-9 muszą być ponownie wprowadzane; kompilatory automatycznie tworzą kod reentrant, a asemblery dla OS-9 oferują dla niego znaczne wsparcie. OS-9 używa również kodu niezależnego od pozycji i dane, ponieważ 6809 obsługuje je również bezpośrednio; kompilatory i asemblery obsługują niezależność pozycji. Jądro OS-9 ładuje programy (w tym współdzielony kod) i przydziela dane, jeśli na mapie pamięci jest dostępna wystarczająca ilość wolnego miejsca. Pozwala to na umieszczenie całego systemu operacyjnego i wszystkich aplikacji w pamięci ROM lub Flash oraz ułatwia zarządzanie pamięcią, gdy programy są ładowane do pamięci RAM i uruchamiane. Programy, sterowniki urządzeń i menedżery we/wy w systemie OS-9 są „modułami” i mogą być dynamicznie ładowane i usuwane (w zależności od liczby łączy) w razie potrzeby.

OS-9/6809 działa na systemach Motorola EXORbus wykorzystujących systemy Motorola 6809 , SS-50 Bus i SS-50C bus firm takich jak SWTPC , Tano , Gimix , Midwest Scientific i Smoke Signal Broadcasting , systemy STD-bus 6809 z kilku dostawców, komputerów osobistych takich jak Fujitsu FM-11 , FM-8 , FM-7 i FM-77, Hitachi MB-S1 i wielu innych.

System Industries , zewnętrzny dostawca sprzętu kompatybilnego z DEC, używał procesora 68B09E z systemem OS9 w swoich kontrolerach kopii zapasowych na taśmach QIC ( kaseta ćwierćcalowa ) w instalacjach VAX .

Najbardziej znanym sprzętem (ze względu na niską cenę i szeroką dystrybucję) był kolorowy komputer TRS-80 (CoCo) i podobna seria Dragon . Nawet na CoCo, dość minimalistycznej platformie sprzętowej, pod OS-9/6809 poziom pierwszy można było mieć więcej niż jednego interaktywnego użytkownika działającego jednocześnie (na przykład jeden na klawiaturze konsoli, inny w tle i być może trzeci interaktywnie przez połączenie szeregowe), jak również kilka innych nieinteraktywnych procesów. Druga implementacja procesora dla BBC Micro została wyprodukowana przez firmę Cumana . Zawierał on pokładową pamięć RAM, Interfejs dysku twardego SCSI i procesor MC68008 .

OS-9 został również przeniesiony na Commodore SP-9000 lub SuperPET, który oprócz 6502 z podstawowego modelu 8032 miał 6809, a także 64 KB więcej. Toronto PET Users Group sponsorowała projekt HW/SW, który obejmował płytkę-córkę z MMU oraz dyski dystrybucyjne OS-9. Z dwoma procesorami, 96 KB, ekranem 25 × 80 oraz portami szeregowymi, równoległymi i IEEE-488 oraz wieloma urządzeniami peryferyjnymi był to jeden z najbardziej wydajnych dostępnych systemów OS-9.

Możliwości OS-9 dla wielu użytkowników i wielozadaniowości sprawiają, że można go używać jako interaktywnego systemu komputerowego ogólnego przeznaczenia. Napisano dla niego wiele interaktywnych aplikacji innych firm, takich jak arkusz kalkulacyjny Dynacalc , formater tekstu VED oraz edytory tekstu Stylograph i Screditor-3 WYSIWYG . Formater emulujący nroff TSC został również przeniesiony na OS-9 przez MicroWay.

W połowie lat 80. OS-9 został wybrany jako system operacyjny CD-i . Mniej więcej w tym samym czasie Microsoft zwrócił się do Microware o przejęcie firmy głównie dlatego, że zainteresował ją CD-RTOS, system operacyjny CD-i. Negocjacje nie powiodły się i nie zawarto żadnej umowy; Microware postanowiło pozostać niezależne.

Pod koniec lat 80. firma Microware wypuściła OS-9000, bardziej przenośną wersję systemu operacyjnego. Zdecydowana większość jądra systemu operacyjnego została przepisana w C , pozostawiając kilka części zależnych od sprzętu w asemblerze. Dodano kilka „bardziej zaawansowanych funkcji”, takich jak drzewiasta przestrzeń nazw modułów jądra. OS-9000 został początkowo przeniesiony na Motorola 680x0 , Intel 80386 i PowerPC . OS-9000/680x0 okazał się porażką marketingową i został bardzo szybko wycofany, prawdopodobnie dlatego, że niewielu klientów chciało wypróbować grubszy i wolniejszy system operacyjny w porównaniu z istniejącym systemem OS-9/680x0 o potwierdzonej stabilności. producenci komputerów z rodziny Motorola 680x0 i VME zbliżali się do końca życia, mogło wpłynąć na niepopularność systemu OS-9000/680x0. Firma Microware zaczęła później nazywać wszystkie swoje systemy operacyjne — w tym system, który pierwotnie nosił nazwę OS-9000 — po prostu OS-9 i zaczęła przenosić swoje zainteresowania biznesowe na rynki przenośnych urządzeń konsumenckich, takich jak telefony komórkowe, nawigacje samochodowe i multimedia.

Pod koniec lat 80. i na początku lat 90. komputery generatorów znaków używane w systemach nadawczych intensywnie korzystały z systemów OS-9 i OS-9000. Nieistniejąca już Pesa Electronica używała OS-9 w swoich CG, takich jak CG 4722 i CG4733.

Konflikty nazw i decyzje sądów

W 1999 roku, dziewiętnaście lat po pierwszym wydaniu systemu OS-9, firma Apple Computer wypuściła system Mac OS 9 . Firma Microware pozwała Apple w tym roku za naruszenie znaku towarowego, chociaż sędzia orzekł, że prawdopodobieństwo pomyłki między tymi dwoma jest niewielkie. Niektórzy użytkownicy komputerów Macintosh, którzy nie znają mniej znanego systemu OS-9 firmy Microware, opublikowali posty na grupie dyskusyjnej comp.os.os9, nie zdając sobie sprawy, czym jest OS-9.

W 2001 roku firma RadiSys kupiła firmę Microware w celu pozyskania zasobów procesora sieciowego Intel IXP-1200 . To przejęcie zasiliło Microware kapitałem i pozwoliło Microware kontynuować rozwój i wsparcie OS-9.

21 lutego 2013 r. Microware LP (spółka utworzona przez Freestation z Japonii, Microsys Electronics z Niemiec i RTSI LLC z USA) ogłosiła podpisanie umowy zakupu aktywów w celu zakupu praw do nazw Microware, OS-9 i wszystkich zasoby firmy RadiSys .

Technologia

Nowoczesny i archaiczny design

OS-9 (zwłaszcza wersja 68k i późniejsze) wyraźnie różni się od poprzedniej generacji wbudowanych systemów operacyjnych pod wieloma względami.

W porównaniu z bardziej nowoczesnymi systemami operacyjnymi:

  • Jądro jest napisane w całości w języku asemblera (tylko wersja OS-9/68K) i C (wersja przenośna do innych architektur) przy użyciu prostych wewnętrznych struktur danych, zmniejszając elastyczność i zakres ulepszeń, jednocześnie poprawiając określalność wymaganą w systemach operacyjnych czasu rzeczywistego .
  • W przypadku niektórych operacji wpłynęło to również na wydajność, ale język asemblera pomógł w rozwiązaniu problemu z szybkością.
  • Systemy bez jednostki zarządzania pamięcią (MMU) nie mają ochrony pamięci przed nielegalnym dostępem ani ochrony pamięci dla poszczególnych procesów, podczas gdy systemy z MMU mogą mieć włączoną ochronę pamięci. Moduł sterujący MMU może zostać włączony lub pominięty przez integratora systemu w celu włączenia lub wyłączenia ochrony pamięci. Dzięki temu OS-9 może działać na starszych systemach, które nie zawierają MMU.
  • Starsze wersje OS-9 nie obsługują wątków POSIX , podczas gdy wszystkie procesory obsługiwane przez OS-9 obsługują wątki POSIX.
  • Brak obsługi SMP dla wielu gniazd, rdzeni lub wątków sprzętowych w tej samej instancji OS-9 (może działać jako RTOS na jednym z rdzeni procesorów dwurdzeniowych, takich jak Core Duo i Core 2 Duo , gdy Linux działa na drugim rdzeniu wykonywanie zadań ogólnych).

Planowanie zadań

Jądro czasu rzeczywistego OS-9 umożliwia jednoczesne wykonywanie wielu niezależnych aplikacji poprzez przełączanie zadań i komunikację między procesami. Wszystkie programy OS-9 działają jako procesy zawierające co najmniej jeden lekki proces (wątek), ale mogą zawierać praktycznie nieograniczoną liczbę wątków. W ramach procesu te lekkie procesy współdzielą pamięć, ścieżki we/wy i inne zasoby zgodnie ze specyfikacją wątków POSIX i interfejsem API. OS-9 planuje wątki przy użyciu algorytmu planowania z wywłaszczaniem o stałym priorytecie z planowaniem okrężnym w ramach każdego priorytetu. Podział czasu jest obsługiwany. Poziomy priorytetów można podzielić na zakres, który obsługuje starzenie się i zakres o wyższym priorytecie, który wykorzystuje ścisłe planowanie priorytetów. Każdy proces może uzyskać dostęp do dowolnego zasobu systemowego, wysyłając odpowiednie żądanie usługi OS-9. W każdym punkcie planowania OS-9 porównuje priorytet wątku na początku aktywnej kolejki z priorytetem bieżącego wątku. Kontekst przełącza się na wątek w aktywnej kolejce, jeśli jego priorytet jest wyższy niż priorytet bieżących procesów. Starzenie się sztucznie zwiększa efektywny priorytet wątków w aktywnej kolejce w miarę upływu czasu. W określonych odstępach czasu podział czasu zwraca bieżący wątek do aktywnej kolejki za innymi wątkami o tym samym priorytecie.

Moduły jądra

  • Jądro — zawiera przełączanie zadań, alokację pamięci i większość wywołań innych niż we/wy
  • IOMAN — obsługuje połączenia we/wy z różnymi menedżerami plików i sterownikami.
  • Podstawowy zestaw menedżerów plików:
    • SCF, pliki szeregowe (urządzenia szeregowe)
    • RBF, losowy blok (urządzenia dyskowe)
    • SBF, blok sekwencyjny (urządzenia taśmowe)
    • Urządzenia NFM, NULL (USB i inne urządzenia)
    • MMF, Wiadomość
    • Pliki PCF, PC FAT
    • PIPEMAN, kierownik rurociągu
    • Modman - Katalogi modułów pamięci
  • SSM – Bezpieczeństwo systemu (obsługa MMU)
  • Cache – obsługa pamięci podręcznej,
  • VectXXX – program obsługi wektorów/PIC
  • FPU – Emulacja zmiennoprzecinkowa
  • Align — program obsługi błędów wyrównania adresów

Polecenia

Poniższa lista poleceń jest obsługiwana przez powłokę OS-9.

Polecenia wbudowane w powłokę

Narzędzia do obsługi funkcji systemu operacyjnego

Narzędzia do zarządzania systemem

Narzędzia ogólne

Porównania z Unixem

Pojęcie procesów i ścieżek we/wy w systemie OS-9 jest dość podobne do tego w systemie Unix pod prawie wszystkimi względami, ale istnieją pewne znaczące różnice. Po pierwsze, system plików nie jest pojedynczym drzewem, lecz lasem, w którym każde drzewo odpowiada urządzeniu. Po drugie, OS-9 nie ma fork() w stylu uniksowym — zamiast tego ma wywołanie systemowe, które tworzy proces uruchamiający określony program, wykonujący prawie tę samą funkcję, co fork -exec lub spawn . Ponadto procesy OS-9 śledzą dwa „bieżące katalogi”, a nie tylko jeden; „bieżący katalog wykonawczy” to miejsce, w którym domyślnie najpierw będzie ładowane programy do uruchomienia (co jest podobne do użycia zmiennej środowiskowej PATH w systemie UNIX). Drugi to bieżący katalog danych.

Inną różnicą jest to, że w OS-9 katalogi dziadków mogą być wskazywane przez powtarzanie kropek trzy lub więcej razy, bez żadnych pośrednich ukośników (funkcja występująca również w 4DOS / 4OS2 / 4NT / TC ). Na przykład ..../file w systemie OS-9 jest podobny do ../../../file w systemie Unix. ale . i .. , tylko z jedną lub dwiema kropkami, każda działa tak samo w OS-9 i Uniksie.

OS-9 od samego początku miał konstrukcję modułową, na którą wpływ miały koncepcje projektantów 6809 i oczekiwany przez nich sposób dystrybucji oprogramowania w przyszłości (patrz trzyczęściowa seria artykułów w styczeń-marzec 1979 Byte autorstwa Terry'ego Rittera i wsp. firmy Motorola, która zaprojektowała procesor).

Struktura modułów wymaga więcej wyjaśnień: OS-9 przechowuje „katalog modułów”, rezydującą w pamięci listę wszystkich modułów, które znajdują się w pamięci po załadowaniu lub znalezieniu w pamięci ROM podczas wstępnego skanowania podczas uruchamiania. Gdy ktoś wpisze polecenie do powłoki OS-9, najpierw wyszuka w bieżącym katalogu modułów moduł o określonej nazwie i użyje go (i zwiększy liczbę dowiązań), jeśli zostanie znaleziony, lub poszuka na dysku odpowiednio nazwany plik, jeśli nie. W systemach OS-9/6809 i OS-9/68000 katalog modułów jest płaski, ale w systemie OS-9000 katalog modułów ma strukturę drzewiastą. Powłoka OS-9000 szuka w alternatywnym katalogu modułów zmiennej środowiskowej MODPATH, analogicznej do zmiennej PATH we wszystkich wersjach, wskazującej kolejność katalogów modułów, w których należy szukać wstępnie załadowanych modułów.

Moduły są używane nie tylko do przechowywania programów, ale mogą być również tworzone w locie do przechowywania danych i są sposobem, w jaki OS-9 obsługuje pamięć współdzieloną. OS-9/non-68000 obsługuje wątki POSIX . Pojedynczy proces może uruchomić dowolną liczbę wątków.

Status

OS-9 zniknął z powszechnego użytku, chociaż Microware LP nadal go obsługuje i działa na nowoczesnych architekturach, takich jak ARM i x86. Dostarczony kompilator, Ultra C/C++, obsługuje C89 , ale nie obsługuje ani C99 , ani C++98 . Ultra C++ zapewnia ograniczoną obsługę szablonów C++. Jest również wspierany przez popularne SSL/TLS, takie jak wolfSSL .

  • Wersja OS-9 z systemem G-Windows Steve'a Adamsa jest obecna w płuczkach do płytek półprzewodnikowych produkowanych przez Ontrak Systems / Lam Research. Tysiące tych systemów są obecnie w użyciu, jednak działające na nich oprogramowanie pochodzi z 1999 roku, kiedy to stworzono ostatnią wersję do obsługi problemów z roku 2000.
  • Wersje OS-9/68K działały na wielu różnych platformach rodziny 68000 , w tym na Sharp X68000 w Japonii, na niektórych komputerach osobistych, które ich projektanci pomyśleli jako uaktualnienia z komputera kolorowego (np. oparte na 68070 i 68340 MM/1, i na innych komputerach z Frank Hogg Laboratories, PEP Modular Computers i Delmar Co.) Został również przeniesiony na Atari ST przez Recc-o-ware na początku lat 90. i był dystrybuowany przez Cumana w Europie. Istnieje port dla komputerów Apple Macintosh z procesorami 68000 , dystrybuowanych przez Ultrascience. Port na Amigę przez Digby'ego Tarvina również rzekomo istnieje.
  • OS-9/68K jest upoważniony przez Caltrans do używania w kartach kontrolerów 2070-1B i 2070-1E, a więc ostatecznie jest używany do obsługi wielu północnoamerykańskich systemów sterowania sygnalizacją świetlną.
  • OS-9/68K można również znaleźć w niektórych innych aplikacjach wbudowanych, w tym w generatorze znaków transmisji telewizyjnej Quanta Delta, wciąż produkowanym przez ScanLine Technologies w Utah. Podczas gdy kod interfejsu na poziomie użytkownika w tym systemie był uruchamiany podczas uruchamiania, istniała ukryta, nieudokumentowana sekwencja klawiatury, która zapewniała użytkownikowi monit powłoki roota w oknie przewijania na monitorze kanału edycji urządzenia.
  • Na rynku urządzeń wbudowanych, gdzie OS-9 znalazł zastosowanie w takich urządzeniach, jak syntezatory Fairlight CMI , robotyka, systemy nawigacji samochodowej oraz branżowy standard Compact Disc-Interactive ( CD-i ) firmy Philips .
  • Kolorowy komputer TRS-80 ( i klony) nadal ma użytkowników i coroczną konferencję w Chicago; od 2018 r. 27. doroczny „ostatni” Chicago CoCoFEST zaplanowano na 21-22 kwietnia 2018 r. Grupa kanadyjskich programistów przepisał OS-9/6809 poziom II dla CoCo 3 (ze sprzętem do translacji adresów) w celu zwiększenia wydajności i do skorzystaj z natywnego trybu Hitachi 6309 . Dzisiejsi poważni użytkownicy CoCo zazwyczaj wymieniają 68B09E w CoCo 3 na Hitachi 63B09E i przeprowadzają przepisanie, zwane NitrOS-9. Połączenie jest zaskakująco szybkie, biorąc pod uwagę, że działa na wyjątkowo tanim, 8-bitowym systemie komputerowym.
  • CoCo3 FPGA Gary'ego Beckera to zsyntetyzowany kolorowy komputer TRS-80, który obsługuje NitrOS-9 na płycie rozwojowej Altera DE-1. Rdzeń procesora 6809 został zaprojektowany przez Johna Kenta i obecnie pracuje z częstotliwością 25 MHz.
  • OS-9000/80x86 można uruchomić na komputerach typu PC zbudowanych wokół procesorów Intel x86. OS-9000 został również przeniesiony na PowerPC , MIPS , niektóre wersje procesorów ARM firmy Advanced RISC Machines oraz niektóre procesory z rodziny Hitachi SH .
  • Odtwarzacz dźwięku DigiCart/II Plus pracuje pod kontrolą OS-9/ 68K . Jest to półprzewodnikowy zamiennik dla odtwarzaczy wózków w stylu stacji radiowej . Jednostki te są używane w radiu i miejscach takich jak Walt Disney World, gdzie odtwarzają ogłoszenia parkowe.
  • Niemiecki producent elektroniki, Eltec, od późnych lat 70. XX wieku produkuje płyty procesorów typu Eurocom do celów przemysłowych, zaczynając od 6802 i 6809 Eurocom-1 i Eurocom-2, a następnie z płytami procesorów 68K i pochodnymi aż do dzisiaj. Nowoczesne płyty mogą być dostarczane z różnymi systemami operacyjnymi, wśród których znajduje się OS-9.
  • Firma Omron zastosowała system OS-9 w swoich panelach HMI serii NS. Jednak w przypadku nowej serii NA firma Omron wybrała system Windows Embedded Compact 7 . Firma Omron wskazała, że ​​w systemie OS-9 prawie wszystkie sterowniki, na przykład do pamięci USB, musiały być napisane przez firmę Omron.

Dalsza lektura

Linki zewnętrzne