System operacyjny zorientowany obiektowo - Object-oriented operating system

System operacyjny zorientowany obiektowo to system operacyjny zaprojektowany, skonstruowany i obsługiwany przy użyciu zasad programowania obiektowego .

System operacyjny zorientowany obiektowo jest w przeciwieństwie do interfejsu użytkownika zorientowanego obiektowo lub struktury programistycznej , które można uruchomić w systemie operacyjnym niezorientowanym obiektowo, takim jak DOS lub Unix .

W projektowaniu bardziej typowego systemu operacyjnego, takiego jak Unix, istnieją już koncepcje językowe oparte na obiektach . Podczas gdy bardziej tradycyjny język, taki jak C , nie obsługuje orientacji obiektowej tak płynnie, jak nowsze języki, pojęcie na przykład pliku , strumienia lub sterownika urządzenia (w systemie Unix każdy reprezentowany jako deskryptor pliku ) można uznać za dobry przykład obiektów. Są to przecież abstrakcyjne typy danych , z różnymi metodami w postaci wywołań systemowych, których zachowanie różni się w zależności od typu obiektu i które szczegóły implementacji są ukryte przed wywołującym.

Orientacja obiektowa została zdefiniowana jako obiekty + dziedziczenie , a dziedziczenie jest tylko jednym podejściem do bardziej ogólnego problemu delegowania, który występuje w każdym systemie operacyjnym. Orientacja obiektowa jest szerzej stosowana w interfejsach użytkownika systemów operacyjnych niż w ich jądrach .

Tło

Obiekt to instancja klasy, która zapewnia pewien zestaw funkcjonalności. Dwa obiekty można rozróżnić na podstawie obsługiwanych przez nie funkcjonalności (lub metod). W kontekście systemu operacyjnego obiekty są powiązane z zasobem. Historycznie rzecz biorąc, zasady projektowania zorientowanego obiektowo były używane w systemach operacyjnych w celu zapewnienia kilku mechanizmów ochrony.

Mechanizmy ochrony w systemie operacyjnym pomagają w zapewnieniu wyraźnego oddzielenia różnych programów użytkownika. Chroni również system operacyjny przed wszelkimi zachowaniami złośliwego programu użytkownika. Rozważmy na przykład przypadek profili użytkowników w systemie operacyjnym. Użytkownik nie powinien mieć dostępu do zasobów innego użytkownika. Model obiektowy zajmuje się tymi problemami ochrony, a każdy zasób działa jako obiekt. Każdy obiekt może wykonać tylko zestaw operacji. W kontekście profili użytkowników zestaw operacji jest ograniczony poziomem uprawnień użytkownika.

Współczesne systemy operacyjne wykorzystują zasady projektowania obiektowego dla wielu komponentów systemu, w tym ochrony.

Przykłady

Ateny
Athene to system operacyjny oparty na obiektach, wydany po raz pierwszy w 2000 roku przez Rocklyte Systems. Środowisko użytkownika zostało w całości skonstruowane z obiektów, które są ze sobą połączone w czasie wykonywania. Aplikacje dla Athene również mogły być tworzone przy użyciu tej metodologii i były powszechnie skryptowane przy użyciu języka skryptów obiektowych Dynamic Markup Language (DML). Obiekty mogły być współdzielone między procesami, tworząc je w pamięci współdzielonej i blokując je w razie potrzeby w celu uzyskania dostępu. Struktura obiektowa Athene była wieloplatformowa, co pozwalało na używanie jej w środowiskach Windows i Linux do tworzenia programów zorientowanych obiektowo. Firma zniknęła, a projekt porzucono w 2009 roku.
BeOS
Jedną z prób stworzenia prawdziwie obiektowego systemu operacyjnego był BeOS z połowy lat 90., który wykorzystywał obiekty i język C++ do interfejsu programowania aplikacji (API). Ale jądro zostało napisane w C z nakładkami C++ w przestrzeni użytkownika. System nie wszedł do głównego nurtu i okazał się komercyjnie nieopłacalny. Obecnie jest używany i rozwijany przez niewielką grupę entuzjastów.
Wybory
Choices to obiektowy system operacyjny opracowany na Uniwersytecie Illinois w Urbana-Champaign . Jest napisany w C++ i używa obiektów do reprezentowania podstawowych komponentów jądra, takich jak jednostka centralna (CPU), procesy i tak dalej. Dziedziczenie służy do rozdzielenia jądra na przenośne klasy niezależne od komputera i małe nieprzenośne klasy zależne. Choices został przeniesiony i działa na SPARC , x86 i ARM .
GEOS
PC/GEOS to lekki, zorientowany obiektowo, wielozadaniowy graficzny system operacyjny z zaawansowanym zarządzaniem oknami i pulpitem oraz skalowalnymi czcionkami. Jest on głównie napisany w zorientowanym obiektowo dialekcie języka asemblera x86 i niektórych C/C++ i jest przeznaczony do pracy w systemie DOS (podobnie jak Microsoft Windows aż do Windows Me ). GEOS został pierwotnie opracowany przez Berkeley Softworks w 1990 roku, który później przekształcił się w GeoWorks Corporation, i jest nadal utrzymywany przez BreadBox Computer Company. Powiązane pakiety oprogramowania zostały nazwane Ensemble i New Deal Office . Istnieją adaptacje dla różnych palmtopów i systemów 32-bitowych z procesorami innymi niż x86.
Haiku
Po wycofaniu BeOS -a rozpoczęto prace nad stworzeniem zamiennika o otwartym kodzie źródłowym. Haiku (pierwotnie nazwany OpenBeOS ) osiągnął swój pierwszy kamień milowy we wrześniu 2009 roku wraz z wydaniem Haiku R1/Alpha 1. Dystrybucja x86 jest kompatybilna z BeOS zarówno na poziomie źródłowym, jak i binarnym. Podobnie jak BeOS, jest napisany głównie w C++ i zapewnia obiektowe API. Jest aktywnie rozwijany.
IBM i (OS/400, i5/OS)
IBM wprowadził OS/400 w 1988 roku. Ten system operacyjny działał wyłącznie na platformie AS/400 . Ten system operacyjny, przemianowany na IBM i w 2008 roku, działa wyłącznie na systemach Power Systems, które mogą również obsługiwać systemy AIX i Linux . IBM i korzysta z metodologii obiektowej i integruje bazę danych ( Db2 for i ). System IBM i OS ma dla każdego obiektu 128-bitowy unikalny identyfikator.
IBM OS/2 2.0
Graficzny, oparty na systemie Windows, oparty na pierwszym priorytecie, wielozadaniowy system operacyjny IBM z wywłaszczaniem zawierał zorientowaną obiektowo powłokę użytkownika. Został zaprojektowany dla Intel 80386, który używał wirtualnego trybu 8086 z pełną obsługą 32-bitów i został wydany w 1992 roku. ArcaOS , nowy system operacyjny oparty na OS/2, początkowo nazwany Blue Lion, jest rozwijany przez Arca Noae. Pierwsza wersja została wydana w maju 2017 roku.
IBM TopView
TopView było zorientowanym obiektowo środowiskiem operacyjnym, które ładowało się na komputerze PC w systemie DOS, a następnie przejmowało kontrolę z systemu DOS. W tym momencie skutecznie stał się systemem operacyjnym zorientowanym obiektowo z interfejsem API zorientowanym obiektowo (TopView API). Był to pierwszy wielozadaniowy, oparty na oknie, zorientowany obiektowo system operacyjny IBM dla komputerów PC kierowany przez Davida C. Morrilla i wydany w lutym 1985 roku.
Oparty na Javie
Biorąc pod uwagę, że Java firmy Oracle (dawniej Sun Microsystems ') jest obecnie jednym z najbardziej dominujących języków obiektowych, nie jest niespodzianką, że podjęto próby systemów operacyjnych opartych na Javie. W tym obszarze, idealnie, jądro składałoby się z absolutnego minimum potrzebnego do obsługi wirtualnej maszyny Java (JVM). To jedyny składnik takiego systemu operacyjnego, który musiałby być napisany w języku innym niż Java. Zbudowany na JVM i podstawowym wsparciu sprzętowym, możliwe byłoby napisanie reszty systemu operacyjnego w Javie; nawet części systemu, które są bardziej tradycyjnie napisane w języku niższego poziomu, takim jak C, na przykład sterowniki urządzeń , mogą być napisane w Javie.
Przykłady prób takiego systemu operacyjnego obejmują JavaOS , JOS, JNode i JX .
Oparte na sepleniu
System operacyjny obiektowego napisane w Lisp dialekcie Lisp Maszyna Lisp (a później Common Lisp ) został opracowany w MIT. Został skomercjalizowany z Lisp Machines z Symbolics , Lisp Machines Inc. i Texas Instruments . Symbolics nazwali swój system operacyjny Genera . Został on opracowany z Flavors obiektowym rozszerzeniem Lisp, a następnie z nowych smaków, a następnie z Object Common Lisp systemu (CLOS).
Xerox opracował kilka stacji roboczych z systemem operacyjnym napisanym w Interlisp-D . Interlisp-D dostarczył rozszerzenia zorientowane obiektowo, takie jak LOOPS i CLOS.
Movitz i Mezzano to dwie kolejne próby systemów operacyjnych napisanych w Common Lisp.
Medos-2
Medos-2 to jednoużytkownikowy , obiektowy system operacyjny stworzony dla linii stacji roboczych Lilith (procesor: Advanced Micro Devices (AMD) 2901 ), opracowany na początku lat 80. w ETH Zurich przez Svenda Erika Knudsena za radą Niklausa Wirtha . Jest zbudowany w całości z modułów języka programowania Modula-2 . Został on zastąpiony w ETH Zurich przez system Oberon , a wariant o nazwie Excelsior został opracowany dla stacji roboczej Kronos , przez Akademię Nauk Związku Radzieckiego , oddział Syberyjski, Nowosybirskie Centrum Obliczeniowe, projekt Modular Asynchronous Developable Systems (MARS), Kronos Grupa Badawcza (KRG).
Osobliwość Microsoft
Singularity to eksperymentalny system operacyjny oparty na platformie .NET Framework firmy Microsoft . Jest porównywalny z systemami operacyjnymi opartymi na Javie.
Microsoft Windows NT
Windows NT to rodzina systemów operacyjnych (m.in. Windows 7 , 8 , Phone 8 , 8.1 , Windows 10 , Xbox ) wyprodukowana przez firmę Microsoft , której pierwsza wersja została wydana w lipcu 1993 roku. Jest to język programowania wysokiego poziomu oparty na , niezależny od procesora , wieloprocesorowy , wieloużytkownikowy system operacyjny. Najlepiej jest opisać go jako obiektowy, a nie obiektowy, ponieważ nie zawiera pełnych właściwości dziedziczenia języków zorientowanych obiektowo.
Object Manager jest odpowiedzialny za zarządzanie obiektów NT. W ramach tej odpowiedzialności utrzymuje wewnętrzną przestrzeń nazw, w której różne składniki systemu operacyjnego, sterowniki urządzeń i programy Win32 mogą przechowywać i wyszukiwać obiekty. Native API NT udostępnia procedury, które umożliwiają programom w przestrzeni użytkownika (trybach) przeglądanie przestrzeni nazw i sprawdzanie statusu obiektów tam znajdujących się, ale interfejsy są nieudokumentowane. NT obsługuje listy kontroli dostępu dla poszczególnych obiektów (plików, funkcji i ról), umożliwiając zastosowanie bogatego zestawu uprawnień bezpieczeństwa do systemów i usług. WinObj to program Windows NT, który wykorzystuje natywny interfejs API NT (dostarczany przez NTDLL.DLL) do uzyskiwania dostępu i wyświetlania informacji w przestrzeni nazw Menedżera obiektów NT.
Komponentowy model obiektowy
Po stronie trybu użytkownika systemu Windows Component Object Model (COM) jest standardem interfejsu binarnego aplikacji dla komponentów oprogramowania wprowadzonym przez firmę Microsoft w 1993 roku. Służy on do umożliwienia komunikacji międzyprocesowej i dynamicznego tworzenia obiektów w wielu językach programowania . Model COM jest podstawą kilku innych technologii i struktur firmy Microsoft, w tym łączenia i osadzania obiektów (OLE), automatyzacji OLE , ActiveX , COM+ , Distributed Component Object Model (DCOM), powłoki systemu Windows , DirectX i środowiska wykonawczego systemu Windows . OLE to zastrzeżona technologia opracowana przez firmę Microsoft, która umożliwia osadzanie i łączenie z dokumentami i innymi obiektami. Na poziomie technicznym obiekt OLE to dowolny obiekt, który implementuje interfejs IOleObject , prawdopodobnie wraz z szeroką gamą innych interfejsów, w zależności od potrzeb obiektu. Jego głównym zastosowaniem jest zarządzanie dokumentami złożonymi , ale jest również używany do przesyłania danych między różnymi aplikacjami za pomocą operacji przeciągania i upuszczania oraz schowka .
Złożony format binarny pliku
Compound File Binary Format (CFBF) to format pliku do przechowywania wielu plików i strumieni w jednym pliku na dysku. CFBF jest rozwijany przez Microsoft i jest implementacją Microsoft COM Structured Storage . Strukturalna pamięć masowa jest szeroko stosowana jako główny format plików w aplikacjach Microsoft Office, takich jak Microsoft Word , Microsoft Excel , Microsoft PowerPoint , Microsoft Access i stanowi podstawę Advanced Authoring Format .
Linkowanie i osadzanie obiektów
Łączenie i osadzanie obiektów (OLE) było częścią wspanialszego planu nazwanego Cairo , co jest kryptonimem projektu w firmie Microsoft od 1991 do 1996 roku. Jego statutem było stworzenie technologii dla systemu operacyjnego nowej generacji, który spełniłby wizję Billa Gatesa : informacje na wyciągnięcie ręki ”. Cairo nigdy nie został wysłany , chociaż część jego technologii pojawiła się od tego czasu w innych produktach. Windows 95 graficzny interfejs użytkownika oparty był na początkowej pracy projektowej, która została sporządzona na interfejsie użytkownika w Kairze. Pozostały składnik to system plików oparty na obiektach . Kiedyś planowano jego wdrożenie w postaci Windows Future Storage ( WinFS ) jako część systemu Windows Vista . WinFS to nazwa kodowa projektu systemu przechowywania i zarządzania danymi opartego na relacyjnych bazach danych , działającego w systemie plików Windows NT ( NTFS ), który jest zorientowany obiektowo, ponieważ może przechowywać obiekty NT, w tym jego identyfikator obiektu NT. Każdy obiekt NTFS ma identyfikator obiektu; skrót z celem znajdującym się na woluminie NTFS rejestruje również identyfikator obiektu celu skrótu oraz identyfikator obiektu dysku. WinFS został po raz pierwszy zademonstrowany w 2003 roku jako zaawansowany podsystem pamięci masowej dla systemu operacyjnego Microsoft Windows , przeznaczony do utrzymywania i zarządzania danymi ustrukturyzowanymi , częściowo ustrukturyzowanymi i nieustrukturyzowanymi . Rozwój WinFS został anulowany w czerwcu 2006 roku, a niektóre z jego technologii połączono z innymi produktami Microsoft, takimi jak Microsoft SQL Server 2008 i Microsoft SharePoint . Następnie w wywiadzie z Billem Gatesem potwierdzono, że Microsoft planował migrację aplikacji takich jak Windows Media Player , Windows Photo Gallery , Microsoft Office Outlook itp., aby używać WinFS jako zaplecza do przechowywania danych.
Następny krok
Pod koniec lat 80. Steve Jobs założył firmę komputerową NeXT . Jednym z pierwszych zadań NeXT było zaprojektowanie obiektowego systemu operacyjnego NeXTSTEP . Zrobili to, dodając framework zorientowany obiektowo na Mach i BSD, używając jako podstawy języka Objective-C . Osiągnął status niszowy na rynku komputerowym, wykorzystywany w szczególności przez Tima Berners-Lee rozwijającego pierwszą implementację sieci WWW .
NeXTStep przekształcił się później w OpenStep i Cocoa API na Mac OS X i iOS .
OpenStep został dostarczony jako warstwa API w wielu systemach operacyjnych, a mianowicie HP-UX , NextStep, Solaris i Windows.
Oberon
Oberon to jednoużytkownikowy , obiektowy system operacyjny stworzony dla linii stacji roboczych Ceres (procesor: National Semiconductor NS32000 ), opracowany w późnych latach 80. w ETH Zurich przez Niklausa Wirtha i Jürga Gutknechta . Jest zbudowany w całości z modułów języka programowania Oberon . Późniejsza ewolucja została nazwana Active Object System (AOS), a następnie przemianowana na Bluebottle , a następnie na A2 .
OOSMOS
Object-Oriented State Machine Operating System (OOSMOS), napisany w C, promuje enkapsulację obiektową i implementuje pełną, sterowaną tabelami, hierarchiczną architekturę maszyny stanów. Generuje kod C bezpośrednio z wykresów stanów narysowanych za pomocą narzędzia open source UMLet . OOSMOS obsługuje również unikalną funkcję nazywania „wątków stanu”, która umożliwia wykonanie wątku na stan. OOSMOS działa na samej płycie lub we współpracy z istniejącym systemem operacyjnym.
ReactOS
ReactOS to system operacyjny typu open source, który ma być binarnie kompatybilny z oprogramowaniem aplikacji i sterownikami urządzeń stworzonymi dla wersji Microsoft Windows NT. Napisany od podstaw, ma na celu śledzenie architektury Windows NT zaprojektowanej przez Microsoft od poziomu sprzętu aż po poziom aplikacji. To nie Linux oparte, i akcji żaden z architektury Uniksa .
Samego siebie
Self (język programowania) został wynaleziony w Xerox PARC . Został on następnie opracowany na Uniwersytecie Stanforda i Sun Microsystems .
Pogawędka
Smalltalk został wynaleziony w firmie Xerox w latach 70. XX wieku. System Smalltalk jest w pełni zorientowany obiektowo i potrzebuje bardzo mało wsparcia ze strony systemu BIOS i systemu run-time .
Sylaba
Sylaba intensywnie korzysta z C++ iz tego powodu jest często porównywana do BeOS .
Rodzaje symboliki
Genera from Symbolics to system operacyjny dla maszyn Lisp napisany w ZetaLisp i Symbolics Common Lisp . W dużym stopniu wykorzystuje Flavors (wczesne rozszerzenie obiektowe do Lisp) i Common Lisp Object System (CLOS). Rozwój rozpoczął się w połowie lat 70. w MIT.
Talent
Taligent był projektem systemu operacyjnego zorientowanego obiektowo, zapoczątkowanym przez Apple Inc. i rozwijanym wspólnie z IBM w latach 90. XX wieku. Został on później wydzielony do spółki zależnej IBM i przekształcony z systemu operacyjnego w środowisko programistyczne.

Zobacz też

Bibliografia

Zewnętrzne linki