W1: Wprowadzenie do problematyki systemów otwartych
Informatyzacja to proces wprowadzania technologii przetwarzania informacji do firmy. Informatyzacja jest z jednej strony postrzegana jako zjawisko w skali globalnej. Z drugiej zaś jest widziana lokalnie przez pojedynczego użytkownika oraz producenta, który w określony sposób oferuje rozwiązanie informatyczne.
Informatyzacja globalna - lata przełomu wieków zostały już nazwane erą informatyzacji następującą po erze industrializacji. Podstawowym czynnikiem decydującym o podkreśleniu roli informatyki jest jej wpływ na rozwój gospodarczy świata.
Obecnie tylko prawidłowe zastosowanie informatyki w każdej z dziedzin działalności gospodarczej daje możliwość przyrostu dochodów, czyli wartość dodaną. Już dzisiaj największe wydatki na informatykę są ponoszone przez firmy działające w sektorach najbardziej zagrożonych recesją.
Informatyzacja lokalna - z punktu widzenia użytkownika ciekawszym jest widzenie informatyki w skali jego przedsiębiorstwa. Najistotniejsze jest tutaj pogodzenie swoich potrzeb, czasami nie dość dobrze sprecyzowanych, z ofertami różnych dostawców. Problem jest w tym, że każdemu potencjalnemu klientowi jest bardzo trudno zrozumieć i porównać oferty, nawet na dość standardowe rozwiązania. Ponadto obie strony patrzą na ten sam problem z przeciwnych perspektyw.
Dla klienta - użytkownika przyszłego systemu najważniejsza jest (i być powinna) aplikacja, jaką chce wykorzystywać, potem narzędzia służące do realizacji lub eksploatacji aplikacji, następnie środowisko systemowe i na końcu dopiero sprzęt.
Dla dostawcy najważniejsze jest zaoferowanie rozwiązania kompleksowego, czyli zestawu własnych produktów: komputera, systemu operacyjnego, środowiska aplikacji oraz samej aplikacji.
Informatyzację lokalną zatem rozumie się jako (dobrze) określony proces dochodzenia do rozwiązania kompleksowego, ale widzianego z punktu użytkownika systemu informatycznego. Nie wolno też zapominać, że kojarzenie użytkownika z dostawcą odbywa się w świecie globalnym, stale zmieniającym się pod wpływem różnych czynników.
POTRZEBY I OFERTY
Przyjmując informatyzację globalną jako swego rodzaju organizację można wyróżnić kilka istotnych źródeł wpływających na jej zachowanie. Są to takie źródła, jak: technologia, ludzie, recesja gospodarcza, wiedza i umiejętności ludzi, obawy społeczne, finanse, reorganizacja gospodarki oraz pojawiające się nowe potrzeby.
Technologia - Gwałtowny rozwój technologii informatycznej jest istotnym czynnikiem rozwoju informatyzacji. Stale dokonywany postęp technologiczny w upakowaniu milionów tranzystorów na mikroukładzie oraz w budowaniu coraz pojemniejszych dysków zaspokaja zwiększające się potrzeby użytkowników, ale generuje również nowe zapotrzebowanie na oprogramowanie oraz aplikacje, a w rezultacie nowe potrzeby użytkowników.
Ludzie - Pracownicy oraz użytkownicy informatyki są siłą przyspieszającą. Szczególne znaczenie ma wchodzenie w wiek produkcyjny młodych ludzi, dla których komputer to coś normalnego.
Wiedza i umiejętności - Połączenie technologii z młodą dobrze wykształconą kadrą daje ogromny potencjał wiedzy i umiejętności. Obecnie podstawowe odkrycia mające wpływ na rozwój informatyki bazującej na technologii elektronowej zostały wdrożone. Pozostaje jednak praca nad uporządkowaniem wiedzy i dobraniem nowoczesnych metod wprowadzania informatyki w każdą dziedzinę życia. Konieczne jest przy tym wykorzystywanie umiejętności nie tylko ściśle informatycznych, ale też wiedzy z zakresu np. prawa, socjologii i wielu innych dziedzin.
Recesja gospodarcza - Jest czynnikiem zmniejszjącym zapotrzebowanie na informatykę ( z braku pieniędzy i potrzeb). Z drugiej strony informatyzacja daje szansę wyprzedzenia konkurencji i zmniejszenia kosztów, a tym samym utrzymania się na rynku pomimo recesji.
Obawy społeczne - Ludzie, zwłaszcza w okresach rececji uważają wszelkie nowości techniczne za zagrożenie swoich miejsc pracy. Nowe technologie informatyczne sa dla nich zbyt trudne do poznania oraz niekiedy radykalnie zmniejszją zapotrzebowanie na pracowników o danej specjalizacji, tworząc nowe miejsca dla nowokwalifikowanych, przeważnie znacznie młodszych pracowników.
Finanse - Opracowywanie nowych produktów informatycznych jest coraz kosztowniejsze. Koszty badań i produkcji nowego mikroprocesora i jego dalszy rozwój pochłaniają koszty przekraczające możliwości największych korporacji. Realizacja nowych aplikacji wymaga również dużych nakładów finansowych, których znaczną część pochłaniają wynagrodzenia dla wysokokwalifikowanych inżynierów oprogramowania. Co więcej, kosztowne wdrożenie informatyki nie zawsze przynosi bezpośrednio wymierne korzyści finansowe. Często zwrot poniesionych nakładów następuje pośrednio poprzez poprawę organizacji przedsiębiorstwa, jego promocję, zwiększenie bezpieczeństwa operacyjnego banku, itp. Bezpośrednio księgowane koszty i dochody z reguły wykazują straty.
Reorganizacja gospodarki - Jedną z możliwości wyjścia firmy z recesji lub też uchronienia się przed nią jest informatyzacja. W powiązaniu z finansami, wdrażanie informatyki pociąga za sobą konieczność zreorganizowania przedsiębiorstwa oraz gałęzi gospodarki co może przynieść w przyszłości dodatkowe pozytywne skutki.
Nowe potrzeby - Rozwój technologii stymuluje wytwarzanie nowych produktów, które po odpowiednim zareklamowaniu generują nowe potrzeby użytkowników, choć zdarza się, że użytkownicy żądają nowych produktów. W rozwoju informatyki przeważa pierwszy czynnik. Przykład: rozwój rynku mikrokomputerowego.
SYSTEM OTWARTY INFORMATYZACJI
INFORMATYZACJA
Technologia informacyjna (IT - Information Technology) staje się w coraz większym stopniu czynnikiem wpływającym decydująco na konkurencyjność przedsiębiorstw od * lat 80-tych. Na technologię informacyjną składają się takie elementy, jak oprogramowanie, komputery osobiste, stacje robocze, komputery typu mainframe, superkomputery, różnego rodzaju sieci komputerowe współpracujące ze sobą.
Przed systemami komputerowymi stawiane są wymogi takie, jak przykładowo:
-dostarczanie użytkownikom informacji w sposób dla niego wygodny (dźwięk i obraz jako dodatki do tekstu i liczb),
-dostarczanie modelu interakcji z użytkownikami znanego im lub też łatwego do nauczenia się,
-zapewnienie szerokiego spektrum funkcjonalności,
-możliwości łączenia ze sobą elementów sprzętowych pochodzących od różnych dostawców,
-możliwości łączenia i wzajemnej współpracy ze sobą różnych komputerów via sieci,
Spełnienie ww wymogów stało się możliwe poprzez zastosowanie podejścia systemów otwartych do projektowania i konfigurowania systemów komputerowych.
Geneza systemów otwartych:
- rozwój środków technicznych (sprzęt i oprogramowanie) informatyki,
- rozwój telekomunikacji,
- migracja informatyki do telekomunikacji i odwrotnie,
- rozwój cywilizacyjny społeczeństw,
- globalizacja gospodarki i unifikacja cywilizacyjna.
Co to jest system otwarty?
Dennis Ritchie - jeden z twórców systemu Unix i języka C:
System otwarty jest to idea zapewniająca możliwość przenoszenia i działanie systemów operacyjnych na różnych platformach sprzętowych.
John Young - prezydent firmy Hewlett-Packard:
System otwarty jest zbiorem różnorodnych komputerów współpracujących ze sobą za pomocą sieci
Favid Tory - prezydent stowarzyszenia Open Software Foundation:
System otwarty jest konstrukcją współpracującą z innym, różnym od siebie systemem
Jeszcze inną propozycje określenia pojęcia `system otwarty'podali Alan Simon i Tom Wheeler*
Systemy otwarte są implementacjami sprzętu i oprogramowania zgodnych ze standardami; implementacjami, które umożliwiają wolny i łatwy dostęp do rozwiązań oferowanych przez różnych sprzedawców. Zestaw standardów może być formalnie zdefiniowany lub też może być utworzony w wyniku zaakceptowania rozwiązań przez wielu sprzedawców i kupujących. System otwarty jest przeciwieństwem systemu uzależnionego od konkretnego sprzedawcy (systemu zamkniętego).
Wg definicji podanej w Encyklopedii Sieci Komputerowych pod red Toma Sheldona:
Systemy otwarte są, w szerokim znaczeniu, architekturami komputerów, systemami i programami komputerowymi oraz systemami komunikacyjnymi, których specyfikacje są opublikowane i dostępne dla każdego.
Jako w miarę pełną definicję można przyjąć tę, która wprowadza określenie systemu otwartych możliwości do scharakteryzowania systemu otwartego. Otóż można przyjąć, że
system otwartych możliwości wykorzystuje niezależne od dostawcy środowisko aplikacji ze standardowymi interfejsami jej obsługi i dostarcza formatów umożliwiających przenoszenie aplikacji na różne systemy oraz pozwala na współdziałanie z innymi aplikacjami działającymi w lokalnym lub innym systemie, a także umożliwia użytkownikowi wykorzystanie aplikacji według jednolitych znanych mu zasad.
Jednakże wydaje się, że najpełniej system otwarty został zdefiniowany przez grupę X/OPEN, według której
systemy otwarte są środowiskiem narzędzi informatyki zrealizowanymi w oparciu o formalne i nieformalne standardy. Rozwiązania standardowe nie mogą być wyłączną własnością jednego dostawcy i muszą być ogólnie dostępne. Systemy otwarte gwarantują możliwość przenoszenia oprogramowania między systemami komputerowymi i tym samym pozwalają w pełni wykorzystać zasoby informacyjne oraz umożliwiają swobodny wybór dostawców sprzętu i oprogramowania.
System otwarty zachęca do tworzenia produktów z nim kompatybilnych. Korzyści odnoszą i klienci i sprzedawcy. Dla klientów korzyści sprowadzają się do tego, że mogą dokonać wyboru z szerokiej gamy produktów pracujących w systemie oraz mogących współpracować z produktami innych firm.
Środowisko otwarte zapewnia standardowe protokóły oraz rozwiązania komunikacyjne lub pozwala na wykorzystywanie wielu różnych protokółów. Środowisko komputerowe wywiera coraz większy nacisk na firmy, ukierunkowując je w stronę systemów otwartych, ponieważ istnieje coraz większy popyt na produkty, które dają gwarancję pracy w istniejących systemach otwartych.
Systemy otwarte definiowane są przez:
- producentów sprzętu i oprogramowania (zgodność ze standardami),
- instytucje rządowe,
-międzynarodowe organizacje standaryzacyjne.
Najbardziej znane organizacje pracujące na rzecz systemów otwartych:
model OSI (Open System Interconnection) opracowany przez ISO (International Organization for Standarization) na początku lat 80-tych. Definiuje on protokoły i standardy połączeń między komputerami i siecią,
Open Software Foundation (OSF) - jest organizacją dostosowującą technologie innych producentów, aby stworzyć środowiska przetwarzania rozproszonego. Środowiska te to m.in. DCE (Distributing Computing Environment), otwarta platforma, która upraszcza tworzenie produktów w środowiskach heterogenicznych. OSF jest tez zaangażowana w OSF/1, będące środowiskiem systemu Unix oraz OSF/Motif, czyli graficzny interfejs użytkownika,
Common Open Software Environment (COSE) - konsorcjum producentów, do którego należą m.in. IBM, Hewlett-Packard, SunSoft, Novell. Firmy te wspólnie pracują nad jednolitym środowiskiem pracy użytkownika CDE (Common Desktop Environment) przeznaczonym dla systemu Unix (i mogącym stanowić konkurencję dla środowiska Microsoft Windows)
Object Management Group (OMG) - rozwija zestaw obiektowych standardów, języków, interfejsów i protokółów, które mogą być wykorzystywane przez producentów do tworzenia aplikacji pracujących w wielu różnorodnych środowiskach. OMG certyfikuje zgodność projektowanych produktów ze standardem
SQL Access Group (SAG) - grupa firm zajmujących się dostawą systemów baz danych. Celem organizacji jest wspieranie i rozwój możliwości współdziałania ze sobą różnych standardów SQL (Structure Query Language); aby to osiągnąć SAG konsultuje swoje dzialania z ISO oraz ANSI (American National Standards Institute),
X/Open Ltd. - grupa firm promujących otwarte środowiska wspomagające tworzenie współdziałających ze sobą aplikacji. Publikuje ona informacje i zapewnia usługi certyfikacji.
W oparciu o definicje systemów otwartych można określić ich podstawowe cechy. System otwarty można zatem widzieć w różnych perspektywach:
System otwarty
przenośność współoperatywność integracja
Perspektywy widzenia systemu otwartego
Przenośność oprogramowania jest tym aspektem systemu, który umożliwia zastosowanie systemu w różnych środowiskach sprzętowych. Jest zagadnieniem kluczowym dla systemów otwartych. Oprogramowanie może być przenoszone z jednego systemu na inny, niekoniecznie z nim zgodny. Przenośność oprogramowania odnosi się do oprogramowania użytkowego, narzędziowego i systemowego. W ramach systemów operacyjnych przyjmuje się, że system Unix posiada cechę przenośności. Oznacza to, iż zarówno możliwość przenoszenia oprogramowania z komputera na komputer pracujący pod Unix'em, jak też możliwość przenoszenia samego systemu Unix. Przykładem innego systemu operacyjnego posiadającego tę cechę jest system Open VMS będący wersją systemu VMS. Jest on głównie przeznaczony do zarządzania komputerami wyposażonymi w procesor Alpha. Jednakże można spotkać się z poglądem, że nie należy jakiemuś systemowi operacyjnemu, w tym też systemowi Unix, przypisywać etykietki systemu otwartego, z czym można się zgodzić, albowiem przenośność oprogramowania jest jedną z kilku cech charakterystycznych systemu otwartego.
Współoperatywność odnosi się do zdolności indywidualnych komponentów w ramach systemu otwartego do wymiany informacji na odpowiednich poziomach zgodnie z modelem warstwowym sieci zaproponowanym przez ISO. (Należy tu zaznaczyć, że oprócz modelu warstwowego sieci zaproponowanego przez ISO znane są też inne modele sieciowe takie, jak na przykład model SNA (System Network Architecture) firmy IBM czy model DNA.) Jak wiadomo wyróżnia się w ramach modelu ISO siedem warstw. Są nimi poczynając od najniższej: warstwa transmisji (physical layer), komunikacji (data link), dystrybucji (network), transportowa (transport), sesji (session), prezentacji (presentation) oraz warstwa zastosowań (application). Współoperatywność elementów odnosi się do wymiany informacji w ramach każdej z warstw. Z punktu widzenia użytkownika systemu otwartego najistotniejsze są warstwy najwyższe tego modelu, a więc warstwa prezentacji a zwłaszcza zastosowań umożliwiające wymianę informacji na poziomie aplikacji użytkownika, jak też zasobów informacyjnych np. typu bazy danych czy bazy wiedzy.
Aspekt integracyjny w systemach otwartych odnosi się do zwartości różnych złączy człowiek - maszyna pomiędzy użytkownikiem a całością hardware'u i software'u w systemie. Głównym celem jest widzenie przez użytkownika zasobów systemu otwartego jako systemu zintegrowanego. Wymogi odnośnie integracji sprowadzają się do zapewnienia:
- dostępu do różnorodnych danych niezależnie od typu (relacyjne czy nierelacyjne) oraz sposobu składowania (platforma sprzętowa, system operacyjny),
- przeźroczystości lokalizacji zasobów, co oznacza, że użytkownik „widzi” pojedynczy, spójny logicznie zasób danych o jednolitym interfejsie,
- mechanizmów transformacji to jest metod rozwiązujących problemy niezgodności semantycznej integrowanych danych takich, jak nazewnictwo pól, typy danych, itp.,
- wysokiej efektywności oznaczającej ograniczenie do niezbędnego minimum liczby komunikatów przesyłanych w sieci przy jednoczesnej maksymalizacji ilości danych przetwarzanych w jednostce czasu,
- bezpieczeństwa czyli sposobu udostępniania danych, który nie może kolidować z wewnętrznymi mechanizmami ochrony zasobów źródłowych,
- otwartości, a więc zgodności ze standardami na poziomie interfejsu API (Application Program Interface) (np. SQL czy ODBC) i protokołami komunikacyjnymi (np. TCP/IP, DECnet, SNA, i in.),
łatwości tworzenia, rekonfigurowania, utrzymywania i użytkowania systemu jako całości.
Powyższe spojrzenie na system otwarty ujmuje aczkolwiek nie uwypukla takich cech, jak skalowalność systemu czy też dyspozycyjność informacji, a które wydają się być istotne.
Skalowalność systemu odnosi się do skalowalności oprogramowania oraz sprzętu. Oznacza w odniesieniu do systemu operacyjnego i oprogramowania możliwość zainstalowania systemu i aplikacji na dowolnym komputerze poczynając od mikrokomputera poprzez minikomputery, systemy typu mainframe a kończąc na superkomputerach. Na razie odnosi się to w zasadzie wyłącznie do systemu Unix i systemów unix'owych oraz aplikacji wykonanych w środowisku tego systememu operacyjnego. W odniesieniu do sprzętu skalowalność systemu oznacza możliwość zmniejszenia lub zwiększenia fizycznych wymiarów. Jest to istotne przy doborze technologii, w której mają być wykonane układy (technologia mniej precyzyjna, to układy tańsze ale wolniejsze i odwrotnie). Skalowaniu mogą podlegać całe komputery, stacje robocze lub serwery. W praktyce idea skalowalności komputerów znajduje zastosowanie u producentów sprzętu komputerowego, na przykład firma DEC stosuje tę zasadę w odniesieniu do swoich komputerów bazujących na architekturze VAX i MIPS.
Dyspozycyjność informacji z kolei oznacza, że każdy kto pragnie zajmować się na przykład oprogramowaniem, powinien mieć dostęp do materiałów źródłowych, a jeśli jest to sprzęt, to każdy potencjalny producent powinien posiadać możliwość uzyskania pełnych danych umożliwiających mu podjęcie jego produkcji lub podzespołów z nim współpracujących. Jako przykłady realizacji tej idei można podać system Unix, gdy idzie o oprogramowanie czy też firmy IBM czy Sun w zakresie dyspozycyjności informacji odnośnie produkcji.
Integracja zasobów informacyjnych odnosi się do zapewnienia możliwości współużytkowania zbiorów danych, które zostały utworzone i są eksploatowane przez systemy informatyczne na różnych komputerach, pracujących w środowisku różnych systemów operacyjnych.
System otwarty można przedstawiać schematycznie na różne sposoby np. w postaci modelu krzyża szwajcarskiego (a), czy też w postaci modelu heksagonalnego (b):
WSPÓŁDZIAŁANIE
API
PRZE- INTERFEJS OPROGRAMOWANIA PRZE-
NOŚNOŚĆ APLIKACJI NOŚNOŚĆ
API
PRZYŁĄCZALNOŚĆ
System otwarty - model krzyża szwajcarskiego
(wymyślony przez pracownika DEC w Szwajcarii i zaadaptowany przez grupę X/Open w 1990r.)
SIECI
Interfejs Dane
użytkownika
APLIKACJA
Języki Dokumenty
Systemy
(b) System otwarty -schemat środowiska aplikacji
model heksagonalny
Rzeczywistym środowiskiem każdej aplikacji jest środowisko powiązane z interfejsami:
użytkownika - określającego zarówno sposób współpracy programu z zewnętrznymi urządzeniami wejścia/wyjścia, jak i też „widziany” przez użytkownika dostępu do użytkowanej przez niego aplikacji, wykorzystując np. standard OSF/Motif oraz X Windows,
komunikacji - określający sposób komunikowania się programu z innymi systemami poprzez sieci, łącznie z zasadami przekazywania wiadomości, wykorzystującymi standard modelu OSI, pokrywającymi serwisy sieciowe Ethernet, FDDI (Fiber Distributed Data Interface) oraz X.25, protokoły TCP/IP (Transmission Control Protocol/Internet Protocol) oraz serwisy poczty elektronicznej X.400 transferu plików FTAM (File Transfer Access and Management),
dostępu do danych - określający sposób dostępu i wyszukiwania danych, wykorzystujących np. standard języka SQL dostępu do baz danych oraz standardu bezpośredniej wymiany danych EDI (Electronic Data Interface).
dokumentów - określający formaty i formy wymiany informacji, według standardów ODA/ODIF (Open Document Architecture/Open Document Interface Format),
systemowy - określający zarówno formaty zleceń do systemu operacyjnego jak i też sposób bezpośredniego do niego dostępu przez użytkownika (formaty poleceń, komend), określane wg standardu POSIX,
języka programowania aplikacji - który jest zewnętrznym elementem środowiska, określającym sposób jej zapisu w kodzie źródłowym, umożliwiającym (lub nie) łatwe jej przenoszenie na inne platformy, przy założeniu wykorzystania standardów języka ANSI-C, PASCAL, FORTRAN, Ada, BASIC, itp.
W przedsiębiorstwach występują różne systemy komputerowe, często połączone sieciami komputerowymi. Działania integracyjne mają na celu umożliwienie wspólnego korzystania z zasobów danych utworzonych i eksploatowanych na tak niejednorodnym sprzęcie. Konieczne staje się zatem zapewnienie „widzenia się” przez systemy oraz zapewnienia przenośności elementów oprogramowania pomiędzy systemami. Element systemu jest uważany za przenośny, jeśli może pracować w więcej niż jednym środowisku programowym. Do określenia takiego środowiska można posłużyć się modelem warstwowym architektury systemu komputerowego. Oprogramowanie należące do danej warstwy określa się ogólnym pojęciem abstrakcyjnej maszyny warstwowej.
Zakłada się, że element systemu realizowany w ramach warstwy i-tej hierarchii abstrakcyjnej maszyny warstwowej jest przenośny, jeśli jest on zgodny z założeniami warstwy niższej hierarchii to jest warstwy i-1, więc może się realizować w dowolnej implementacji warstwy niższej. Założeniem podstawowym jest podział oprogramowania systemu pionowy bądź poziomy.
Podział pionowy wydziela części architektury w oparciu o funkcje tak, jak są one postrzegane przez użytkownika systemu oraz jak te części są wdrażane.
Podział poziomy zaś dzieli architekturę na interfejsy ignorując implementacje.
Podział pionowy i poziomy systemu informatycznego:
a) Podział pionowy b) podział poziomy
W toku dalszych rozważań interesujący będzie jedynie podział poziomy. Każda warstwa tego podziału tworzy pewną maszynę abstrakcyjną.
Hierarchia warstw maszyn abstrakcyjnych:
Architektura warstwowa oprogramowania może być traktowana jako rodzina składająca się z n+1 maszyn abstrakcyjnych {Ai} 0 ≤ i ≤ n, gdzie Ai jest budowane w oparciu o interfejs z maszyną Ai-1 . Każda Ai jest opisem zachowania się mechanizmu stosowanego przy wdrożeniu maszyny wyższej t.j. Ai+1.
Użytkownik maszyny Ai nie musi znać szczegółów wdrożenia Ai, a jedynie jej interfejs. Użytkownik końcowy systemu „znajduje się” w warstwie szczytowej w hierarchii maszyn abstrakcyjnych. Należy podkreślić, że An może być środowiskiem zewnętrznym komputera, jeśli komputer jest wbudowany w inny system. Interfejs An-1=Au jest interfejsem użytkownika definiującym wszystkie aspekty interakcji człowieka z maszyną. Na drugim końcu spektrum jest umiejscowiony sprzęt zorganizowany w podhierarchie. Poziom Ah definiuje złącze ze sprzętem w kategoriach instrukcji maszynowych, rejestrów, szyn, sterowników, przerwań oraz pamięci. Pomiędzy interfejsami An-1 i Ah mogą wystąpić różne maszyny abstrakcyjne. W skrajnym przypadku hierarchia pomiędzy An-1 i Ah sprowadza się do jednej abstrakcyjnej maszyny i wówczas nie ma rozróżnienia między systemem operacyjnym a programem aplikacyjnym. Zazwyczaj występują conajmniej dwie abstrakcyjne maszyny software'owe; oprogramowanie systemowe i oprogramowanie aplikacyjne.
Mając na uwadze podział poziomy systemu można powiedzieć, że maszyna abstrakcyjna jest niezależna od implementacji, co oznacza, iż jest możliwe dobudowywanie nowych funkcji „na górze” danej implementacji w ramach określonej platformy, a następnie kopiowanie aplikacji do innej implementacji na tej platformie bez dodatkowych czynności w ramach aplikacji. Oznacza to wówczas przenośność aplikacji między implementacjami na danej platformie. Poniżej została przedstawiona koncepcja architektury platform systemu komputerowego.
Architektura platform:
Platforma składników sprzętowych definiuje podzespoły, które mogą być zastosowane przy konfigurowaniu sprzętu.
Platforma systemu operacyjnego jest maszyną abstrakcyjną, która realizuje zarządzanie zasobami oraz zapewnia prosty system zbiorów.
Platforma narzędzi jest rozszerzeniem platformy systemu operacyjnego poprzez zwiększenie funkcjonalności głównie narzędzi zarządzania danymi np. systemy baz danych, oprogramowanie sieciowe, architektura klient-serwer.
Platforma wspomagania aplikacyjnego z kolei rozszerza platformę narzędziową za pomocą pakietów software'owych ułatwiających wykorzystywanie narzędzi programowych.
Przenośność oprogramowania koncentruje się na aspektach technicznych wdrożenia software'u, co oznacza, że oprogramowanie może być wykorzytywane na różnych systemach komputerowych (hardware).
Internacjonalizacja odnosi się do innego aspektu przenośności odnoszącego się do konstruowania software'u tak, że oprogramowanie może być użytkowane przez użytkowników w ich językach narodowych.
Przykład: oprogramowanie bankowe, przeniesione do innego kraju, zgłaszane się systemu w innym języku niż narodowy, co może nasuwać podejrzenia o braku przenośności tegoż oprogramowania.
Otwarte Systemy Operacyjne
System UNIX powstał w drugiej połowie lat 60-tych w laboratoriach Bella AT&T na komputerze PDP-7. Od tego czasu system ten był wielokrotnie modyfikowany, głównie dzięki bezpłatnej dystrybucji na uczelniach, które w zamian opracowywały dla niego własne usprawnienia. Wersje tworzone w języku C powstawały na początku lat 70-tych na maszynach PDP 11-45 i PDP 11-70. Za niewielką opłatą UNIX był udostępniony firmom komputerowym do dystrybucji komercyjnej. W latach 80-tych UNIX uchodził za najlepszą platformę dla stacji roboczych. W latach 90-tych uważany jest za w pełni dojrzały system komercyjny na rynku serwerów.
Obecne wersje UNIX'a znacznie różnią się w stosunku do swego protoplasty, jak też i między sobą. W czystej postaci UNIX'a nie można kupić. Dostępne są jedynie jego wersje z różnych firm, np.
UNIX System V z firmy AT&T,
Xenix z firmy Microsoft,
SCO-UNIX z Santa Cruz Operation,
Solaris z firmy Sun,
Ultrix oraz Digital UNIX z firmy Digital,
HP-UX z firmy HP,
Sinix z Siemens-Nixdorf'a,
AIX z IBM'a,
itd...
Kariera UNIX'a wynika z dwóch faktów. (1) System ten rozpowszechniony na uczelniach stał się podstawowym narzędziem dydaktycznym, stwarzając wśród absolwentów przekonanie, że jest jedynym właściwym nowoczesnym rozwiązaniem. Nowi, młodzi pracownicy firm zaczęli wywierać presję na zakup systemów UNIX'owych, jako najlepiej im znanych. (2) Z czasem administracja rządowa USA, zmuszona do standaryzacji wykorzystywanych systemów informatycznych zwróciła się w kierunku UNIX'a, jako jedynego uniwersalnego produktu, niezależnego od konkretnego dostawcy. Podobny proces rozpoczął się w Europie, szczególnie w obliczu konieczności integracji systemów komputerowych w ramach EWG. Do tego dorobiono pod nazwą Open Systems filozofię standaryzacji otwartego środowiska systemu otwartego.
Z reguły wszystkie systemy UNIX'owe spełniają wymagania zdefiniowane pod hasłem `System Otwarty'. Nie oznacza to jednak, że każdy system UNIX'owy jest wystarczająco dobry dla każdego użyzkownika. Niektórzy użytkownicy chcą mieć system niezależny od platformy sprzętowej, inni chcą systemów ze sobą współpracujących, a pozostali żądają niskich kosztów w stosunku do wydajności. Stąd też posługiwanie się wymaganiem określanym przez nazwę, bez wskazania standardów, jakie ma spełniać system jest mało precyzyjne i często mylące. Z tych to powodów powstało określenie systemu otwartego oraz niezależnych komitetów (UNIX International, Open Systems Foundation, X/Open) weryfikujących zgodność oferowanego systemu z określonymi standardami opracowanymi przez narodowe i międzynarodowe organizacje standaryzacyjne (np. IEEE (Institute of Electrical and Electronic Engineers), ISO).
Obecnie, poza systemami typu UNIX, również inne systemy są dopasowywane do standardów systemu otwartego, określanych jako standardy POSIX i XPG3/4.
Na przykład system VMS instalowany na komputerach VAX został tak zmodyfikiwany, że pod nową nazwą Open VMS otrzymał certyfikat organizacji X/Open. System ten w żadnym przypadku nie jest systemem typu UNIX.
Również od nowa zaprojektowany system OSF/1 będzie spełniał standardy systemu otwartego i zgodności ze środowiskiem UNIX'a, pomimo, że nie powstał on na bazie oryginalnych źródeł UNIX'a.
Systemy te, w stosunku do wiekowego już UNIX'a mają wiele zalet. Przede wszystkim są one sprawniejsze w działaniu, podczas, gdy systemy UNIX'owe znane są z `miłości własnej', polegającej na intensywnym wykorzystywaniu czasu procesora na własne potrzeby. Również w projekcie pierwszych UNIX'ów nie było możliwe włączenie obsługi wielu nieznanych wówczas urządzeń. Późniejsze dorabianie ich obsługi z pewnością nie polepszało efektywności działania. Inplementacja nowego systemu OSF/1 pozwala na skonstruowanie nowoczesnego systemu z wykorzystaniem wieloletnich doświadczeń z eksploatacji systemów UNIX'owych.
POSIX (Portable Operating System Interface for UNIX)
POSIX jest zbiorem standardów opracowanych przez IEEE oraz ANSI (American National Standards Institute) po to, aby promować powszechne standardy interfejsu w środowisku systemu UNIX. Praca została rozpoczęta w roku 1984, wraz ze stworzeniem grupy Posix.1 Working Group wewnątrz komitetu IEEE Technical Committee on Operating Systems. ISO (International Organization for Standatization) przyjęła standard Posix.1 w roku 1988.
Standard Posix.2 powstał w formie szkicowej w roku 1992.
Standard Posix.3 definiuje procedury testujące, które mogą slużyć certyfikacji zgodności ze standardami Posix.
Celem Posix było stworzenie standardu środowiska systemu opercyjnego dla systemów operacyjnych i aplikacji, które mogą być przenoszone z jednej platformy do drugiej. Innym założeniem było stworzenie uniwersalnej struktury, w ramach której, kompatybilne z Posix aplikacje mogłyby wymieniać informacje, nawet wówczas, gdy pracują one na różnych platformach. Posix definiuje wspólny interfejs, ale jego implementację na konkretnej platformie pozostawia producentom. Dysponując Posix'em mogą oni tworzyć aplikacje, które łatwo można przenieść na inne platformy, pracujące z różnymi strukturami plików.
Inne znaczące standardy Posix to:
- Posix.4 Zwiększenie możliwości programowania aplikacji czasu rzeczywistego, poprzez procedury zamykania procesów i synchronizacji zdarzeń.
- Posix.6 Rozwinięcie możliwości ochrony.
- Posix.7 Interfejs zarządzania i administracji systemem.
- Posix.8 Dostęp do plików w zasobach sieci.
- Posix.11 Przetwarzanie transakcji.
- Posix.12 Niezależny od protokółu sieciowy interfejs API.
- Posix.13 Srodowisko aplikacji pracujących w czasie rzeczywistym.
- Posix.17 Przestrzeń nazewnicza rozproszonych systemów katalogowych.
Standardy Posix są powszechnie akceptowane. Przyjęła je większość producentów systemów operacyjnych. W szczególności standard Posix.7 zapewnia bardzo potrzebny kierunek w sferze zarządzania systemami - poprzez definiowanie zarządzania konfiguracjami, wydajnością, awariami, kontami i bezpieczeństwem.
IBM obsługuje standardy Posix w swojej platformie OpenEditon MVS (OpenEdition Multiple Virtual Storage).
Oprócz standardu Posix są też inne. Rozwój standardów technologii UNIX wytycza organizacja X/Open powstała w 1984 r jako przeciwwaga dla dominacji firmy IBM na rynku europejskim (założona przez Bull, ICL, Siemens, Olivetti, Nixdorf do których pózniej dołączały też firmy spoza Europy np. Digital). Początkowo organizacja zajmowala się jedynie określaniem standardów zapewniających przenośność aplikacji między różnymi wersjami systemu UNIX. Obecnie cele, które stawia sobie X/Open są znacznie szersze i dotyczą szeroko pojętej definicji systemu otwartego. W ramach X/Open działa kilka komitetów skupiających nie tylko producentów, ale też klientów na rynku oprogramowania. Obecnie w gestii X/Open znajduje się kilka kluczowych standardów:
- Znak UNIX. X/Open przejęła od firmy Novell prawa do znaku UNIX. Obecnie każda firma może uzyskać prawo do nazywania swego systemu mianem UNIX o ile spełnia wymagania specyfikacji określanej jako Single UNIX Specification (zwanej także Spec 1170),
- CAE (Common Application Environment) określa ramy i wizje niezbędnych interfejsów programistycznych systemu otwartego. W ramach CAE specyfikacja XPG (X/Open Portability Guide) określa standardy interfejsów i protokółów wraz z zestawem testów,
- Technologia standardów organizacji OSF, to jest Motif, CDE, DCE staje się częścią specyfikacji CAE.
Single UNIX Specification znana również jako Spec 1170, zawiera w sobie kompletną specyfikację1170 interfejsów (w tym 926 programowych API, 70 plków nagłówkowych i 174 poleceń). Spec 1170 wywodzi się z kilku wcześniejszych zbiorów technologii, takich jak:
X/Open Common Applications Environment, Issue 4 (XPG4),
UNIX System V Interface Definition, Edition 3 (SVID3),
OSF Application Environment Specification (AES),
Use-base czyli BSD Signals, BSD memory,itp.
Przykłady otwartych systemów operacyjnych scharakteryzowanych poniżej:
- Digital UNIX
- OpenVMS
Digital UNIX
W świetle tego, co zostało wcześniej powiedziane, naturalne jest skojarzenie
UNIX=system otwarty=standard.
Jeśli system ma być otwarty, to znaczy, że ma być oparty na pewnych powszechnie znanych standardach (standardach de facto i de jure). Standaryzacja systemu UNIX rozumiana jest jako zgodność interfejsu użytkowego, API programistycznego, poleceń systemu i większości podstawowych narzędzi z pewnymi określonymi normami defniowanymi przez organizacje takie, jak OSF czy X/Open. Jeśli przyjąć takie zalożenie, to jaka jest różnica pomiędzy jednym a drugim UNIX'em? Dlaczego użytkownik ma wybierać pomiędzy jednym a drugim UNIX'em, jeśli oba są na równi standardowe, a więc w zasadzie chyba identyczne? Diabeł tkwi w szczegółach. Jeśli klient ma wybrać ten a nie inny system, to zrobi to dlatego, iż ten jeden ma coś, czego ten drugi nie posiada. To „coś” to jest wartość (funkcjonalność, cecha), którą każda firma stara się dodać, aby odróżnić swoją ofertę od oferty konkurencji. Z tego można wysnuć wniosek, że rozwojem systemu UNIX (tak, jak rozwojem każdego innego produktu sprzedawanego na rynku) powodują dwa przeciwbieżne wektory. Jeden to wektor standaryzacji i unifikacji, a drugi to wektor odróżniania i wzbogacania o nowe cechy.
Digital UNIX jest systemem:
1. zunifikowanym i implementuje największą liczbę możliwych standardów,
2. kompletnym i posiada cechy, które sprawiają, iż równie dobrze sprawdza się w zastosowaniach typu stacje robocze jak i serwery bazodanowe
3. nowoczesnym, wykorzystującym możliwości, jakie daje zastosowanie najnowszych technologii (jak mikroprocesory 64 bitowe czy jądro oparte na technologii Macha z Carnegie-Mellon University).
Digital UNIX wywodzi się bezpośrednio z wersji OSF/1, którego rozwój oparto na elementach różnych implementacji UNIX'a. OSF/1 posiadał wybrane cechy takich technologii, jak AIX, 4.3 BSD (Berkeley Software Distribution), System V, Mach.
Digital UNIX 4.0 jest pierwszym systemem, który uzyskał prawo do znaku UNIX 95 i CDE (Common Desktop Environment). Jest w pełni kompatybilny ze specyfikacją Single UNIX Specification, nad którą czuwa organizacja X/Open Company i która określa definicje systemu operacyjnego UNIX.
Spośród wielu standardów implementowanych przez Digital UNIX 4.0 na wyróżnienie zasługują:
- Implementacja CDE systemu Digital UNIX jest zgodna ze specyfikacją X/Open,
- Rozszerzenia dla aplikacji czasu rzeczywistego są zgodne ze standardem Posix,
- Srodowisko interfejsu graficznego X Windows jest zgodne z ostatnią wersją standardu X11 czyli z X11R6, zapewniając jednocześnie pełną kompatybilność dla aplikacji zgodnych z poprzednim standardem X11R5,
- System posiada rozszerzenia dające zgodność ze standardem UNICODE (ISO 10646).
Ułatwienia w zarządzaniu systemem otrzymano za pomocą przyjaznych narzędzi pracujących w trybie graficznym.
Mechanizmy zapewniania bezpieczeństwa:
Digital UNIX 4.0 odpowiada normom bezpieczeństwa C2 określonym przez NCSC (National Computer Security Center). Z dodatkowych elementów związanych z zapewnieniem bezpieczeństwa w systemie operacyjnym na uwagę zasługuje mechanizm ACL (Access Control List) pozwalający na dokładne kontrolowanie dostępu do zasobów systemu operacyjnego oraz możliwość definiowania kwot na zasoby, jakie mogą być wykorzystywane przez użytkownika. Kwoty dotyczą takich zasobów, jak czas CPU, zajętość pamięci operacyjnej, maksymalna liczba otwartych plików.
Technologia i skalowalność
O szybkości i wydajności każdego systemu operacyjnego decyduje w dużym stopniu jego wewnętrzna architektura. W szczególności architektura jądra odpowiada za skalowalność systemu i jego efektywność w środowisku wieloprocesorowym.
Dwie cechy decydują o tym, że Digital UNIX jest bardzo wydajny przy dużym obciążeniu (typowym dla współczesnych serwerów):
1. Jest w pełni 64 bitowym systemem operacyjnym.
Ta cecha pozwala na wykorzystania maszyn AlphaServer z systemem Digital UNIX do zastosowań typu hurtownie danych, gdzie wykorzystywane są bazy danych, jak Oracle, Informix czy Sybase, a co za tym idzie możliwość przechowywania w pamięci operacyjnej baz rzędu 10 GB.
Przykładem możliwości, jakie daje duża pamięć operacyjna jest Internetowy serwer AltaVista, który obsługuje dziennie kilka milionów zapytań do indeksu zbudowanego z 33 milionów stron www. Indeks zajmuje 33 GB, z czego 6 GB jest buforowane w pamięci.
Modularna budowa jądra systemu powoduje, że minimalna wymagana pamięć operacyjna dla Digital UNIX to 32 MB, natomiast maksymalnie może to być 14 GB (dotyczy modelu AlphaServer 8400). Na wiosnę 1997r można spodziewać się konfiguracji z podwojoną pamięcią operacyjną.
2. Skalowalność dla maszyn wieloprocesorowych.
Celem jest tu osiągnięcie sytuacji, w której dokładanie kolejnych procesorów do maszyny powoduje liniowy wzrost mocy obliczeniowej. Jądro systemu Digital UNIX jest oparte o technologię Mach z optymalizacją szeregowania wątków, co w rezultacie daje dużą skalowalność.
Obsługa pamięci masowych
Gromadzenie dużych ilości informacji w trwały sposób jest jednym z podstawowych powodów istnienia systemów komputerowych. Z punktu widzenia użytkownia ważne jest, aby podsystem zarządzania pamięciami masowymi spełniał potrzeby użytkowników i administratorów w zakresie pojemności, integralności danych, szybkości działania i zgodności ze standardami. Dla spełnienia tych potrzeb niezbędne jest rozważne stosowanie różnych dostępnych technologii, począwszy od dysków półprzewodnikowych (szybkie i drogie), poprzez dyski magnetyczne i optyczne, aż do urządzeń taśmowych (wolne i tanie). Rozwiązania zawarte w systemie Digital UNIX pozwalają na zaspokojenie potrzeb różnych klas użytkowników, począwszy od użytkownika pracującego na niezależnej stacji roboczej z kilkoma dyskami, aż po serwery sieciowe z dziesiątkami dysków, szafami płyt optycznych i pamięci taśmowych.
Open VMS (Open Virtual Memory System)
VMS to nazwa firmowgo systemu operacyjnego opracowanego przez firmę Digital i przeznaczonego dla komputerów serii VAX. Po raz pierwszy VMS wprowadzono w roku 1977, razem z komputerem VAX 11/780. VMS to w pełni wielozadaniowy i wielodostępny system operacyjny, wykorzystujący 32-bitową architekturę komputerów należących do rodziny VAX.
Jedną z podstawowych koncepcji zaimplementowanych w systemie VMS była idea pamięci wirtualnej, wówczas jeszcze świeża i dopiero znajdująca praktyczne potwierdzenie swej użyteczności. Jako że wiele działań systemu wiąże się z zarządzaniem pamięcią, a większość pozostalych jest zdeterminowana przyjętym sposobem zarządzania, całemu systemowi postanowiono nadać nazwę związaną z przyjętym mechanizmem pamięci wirtualnej: VMS-Virtual Memory System.
Przez kolejne lata VMS zmienił swoją postać, przechodząc kolejne etapy ewolucyjnego rozwoju. Trzeba podkreślić, że pomiędzy kolejnymi wersjami zachowana była tzw. kompatybilność wstecz, tj. każda następna wesja systemu rozszerzała poprzednią o pewne właściwości i cechy funkcjonalne lub też wprowadzała ulepszenia już istniejących rozwiązań. Program napisany kilkanaście lat temu na system VAX 11/780 będzie bez żadnych zmian funkcjonował na najnowszych maszynach typu VAX (zmieni się tylko szybkość pracy).
Podobnie zestaw poleceń dostępnych użytkownikowi stawał się w kolejnych wersjach nadzbiorem wersji poprzednich.
Jednym z zasadniczych kierunków rozwoju systemu było dopasowywanie go do pojawiających się różnych standardów. Było to zgodne z koncepcją otwartości systemów i oczekiwaniami użytkowników. W związku z mnogością standardów, z którymi zaczął być zgodny system VMS, od wersji 5.5 postanowiono opatrzyć go przedrostkiem Open.
Przez długi czas system Open VMS funkcjonował jedynie na platformie sprzętowej, jaką były maszyny VAX. Sytuacja zmieniła się wraz z pojawieniem się nowej rodziny systemów komputerowych, wykorzystującej nowy procesor: Alpha AXP (rok 1992). W ten sposób dojrzały i szeroko uznawany system operacyjny uzyskał dodatkową wartość poprzez możliwość funkcjonowania na najnowszej platformie sprzętowej. Powstawały kolejne wersje systemu. Ostatnia (rok 1996) to wersja 7.0.
System Open VMS zapewnia przenośność i współdziałanie aplikacji oraz standardowość ich obsługi użytkowej. Są one osiągane poprzez zgodność systemu z odpowiednimi standardami. Podstawowymi (ale nie jedynymi) ze standardów zapewnionych w systemie Open VMS są:
1. W dziedzinie przenośności aplikacji
POSIX 1003.1 - usługi systemowe
POSIX 1003.2 - interpretacja poleceń systemowych
XPG/3 - środowisko programistyczne aplikacji
POSIX 1003.4 - środowisko działania aplikacji w czasie rzeczywistym
2. W dziedzinie środowisk pracy użytkownika
X-11 Window System - środowisko pracy okienkowe
Motif - interfejs użytkownika
3. W dziedzinie środowisk graficznych
GKS (Graphical Kernel System) i Extended GKS - biblioteka funkcji graficznych
PHIGS (Programmers Hierarchical Interactive Graphics System) - system trójwymiarowej grafiki uniezależnionej od sprzętu.
Open VMS jest systemem wielozadaniowym i wieloużytkownikowym. System ma wbudowane możliwości działania w sieci i działania rozproszonego, a także wieloprocesorowego i okienkowego. Jedną z jego cech charakterystycznych są duże możliwości konfiguracji i samokonfiguracji. W systemie określonych jest kilkadziesiąt parametrów, których wartości decydują o pewnych elementach działania systemu. Dzięki temu funkcjonowanie Open VMS'a może być dostosowane przez użytkownika do jego potrzeb przetwarzania - uzależnionego od procesora, od operacji wejścia/wyjścia czy też od działania w czasie rzeczywistym.
Samokonfiguracja polega z kolei na tym, że w czasie startowania system wykrywa zainstalowane urządzenia zewnętrzne i dostępną pamięć operacyjną, po czym umieszcza w pamięci fragmenty kodu niezbędne do współpracy z danymi urządzeniami i modyfikuje niezbędne parametry swego działania. Niepotrzebny jest wymagany w wielu innych systemach proces „generacji systemu” po zmianach i rozszerzeniach konfiguracji sprzętowej.
Jedną z najistotniejszych koncepcji ideowych w systemie Open VMS jest koncepcja procesu. Proces jest rozumiany jako program oraz systemowe środowisko umożliwiające jego funkcjonowanie. Tak więc, aby mógł być wykonany jakikolwiek program, musi być powołany do życia pewien proces.
Większość działań, jakie zachodzą w systemie jest realizowana przez pewne procesy. Np. jeżeli użytkownik prowadzi interakcyjną konwersację z systemem wydającmu polecenia, oznacza to, że działa pewien proces zawierający program interpretujący polecenia. Jeżeli teraz użytkownik wyda polecenie powodujące uruchamianie jakiegoś programu,wówczas program ten zastępuje interpretator poleceń i wykonuje się w ramach tego samego procesu. Użytkownik może jednak również wymusić powstanie nowego procesu dla realizacji pewnego zadania. Proces interakcyjnej współpracy z użytkownikiem jest tworzony automatycznie przez system po prawidłowym dołączeniu się użytkownika do niego.
Składnikami każdego procesu są:
1. tzw. kontekst sprzętowy opisujący stan procesora w trakcie realizacji programu,
2. kontekst programowy opisujący cechy programu, np. jego przywileje w stosunku do systemu, czy też priorytet, który może się zmieniać, aby dać szansę wykonywania się procesom o niższym priorytecie startowym. Procesom dlugo czekającym na przydział czasu procesora zostaje podwyższony priorytet (unikanie „głodzenia” procesów), a po wykorzystaniu przydielonego kwantu czasu priorytet jest zmniejszany,
3. przestrzeń pamięci jaką program ma do dyspozycji
W systemie Open VMS zaimplementowano koncepcję pamięci wirtualnej. Dzięki niej procesy mogą „widzieć” przestrzeń adresową większą niż fizycznie zainstalowana w systemie pamięć. Przestrzeń „widziana” przez proces jest to przestrzeń pamięci wirtualnej. Każdy proces ma do dyspozycji w systemie 2 GB pamięci wirtualnej.
W danej chwili w pamięci fizycznej znajduje się tylko część przestrzeni wirtualnej procesu. W przypadku odwołania do komórki pamięci wirtualnej nie istniejącej aktualnie w pamięci fizycznej, pewien fragment pamięci wirtualnej musi być sprowadzony z dysku. Fragment ten jest nazywany stroną pamięci wirtualnej. W innych sytuacjach strony muszą być odsyłane na dysk. Mechanizm sprowadzania z dysku i odsyłania na dysk stron pamięci wirtualnej (tzw. pager) jest jednym z najważniejszych mechanizmów systemu. Innym bardzo istotnym elementem systemu związanym z obsługą pamięci wirtualnej jest proces o nazwie swapper. Jest on odpowiedzialny za przeniesienie na dysk lub odtworzenie z dysku całego procesu.
W systemie dostępnych jest szereg mechanizmów komunikacji międzyprocesowej, jak skrzynki pocztowe (mailbox), dzielone fragmenty pamięci, sygnalizatory zdarzeń.
Od wersji 6.0 w górę nie ma ograniczeń co do łącznej liczby obsługiwanych procesów.
Środowisko użytkownika
Podstawowym sposobem współpracy z systemem jest używanie poleceń w języku DCL (Digital Command Language). Oprócz środowiska tekstowego wprowadzania poleceń z terminala alfanumerycznego, system Open VMS jest też wyposażony standardowo w środowisko graficznej współpracy z użytkownikiem (GUI - Graphic User Interface). Jest to środowisko DECwindows zgodne z technologią X Windows i standardem OSF/Motif.
Oprócz wielu typowych zalet, środowisko DECwindows zapewnia możliwość przetwarzania typu klient-serwer. Protokółem transportu sieciowego może być w tym przypadku np. protokół DECnet czy TCP/IP (Transmission Control Protocol / Internet Protocol).
Bezpieczeństwo
System Open VMS jest uważany za jeden z bezpieczniejszych. Potwierdza to posiadany certyfikat bezpieczeństwa tzw. klasy C2 (nadany przez instytucję NCSC - National Computer Security Center). Powszechnie stosowane są hasła i przywileje użytkowników jako elementy zabezpieczeń.
Jeśli do systemu dołączone jest oprogramowanie o nazwie Security Enhancement Services, to Open VMS bywa nazywany SEVMS. Oprogramowanie to zapewnia wyższą klasę bezpieczeństwa tzw. B1.
Ciekawą i rzadko spotykaną cechą związaną z bezpieczeństwem jest możliwość kontroli tożsamości użytkownika za pomocą charakterystyk biometrycznych, np. odciski palców lub też za pomocą specjalnych jednorazowych kart dostępu (podobnch do kart kredytowych)
System Open VMS charakteryzuje się dużą niezawodnością. Przystosowany jest do pracy w sieci tak lokalnej jak i rozległej. Standardowo może obsługiwać wiele różnorakich urządzeń służących fizycznej komunikacji sieciowej. Oprócz tego w systemie zawarte są warstwy programowe gwarantujące nawiązywanie połączeń logicznych pomiędzy maszynami połączonymi w sieć, co umożliwia dostęp do zasobów innych maszyn. Standardowo dostępna jest też poczta elektroniczna umożliwiająca przesyłanie wiadomości między użytkownikami sieci.
System Open VMS może obsługiwać też inne konfiguracje łączące ze sobą systemy komputerowe. Chodzi tu o tzw. klastry.(Konfiguracja klastrowa to specyficzne połączenie kilku komputerów z procesorami typu VAX lub Alpha AXP. W konfiguracji tej komputery „widzą się” wzajemnie i współpracują ze sobą, tworząc efektywne środowisko wieloprocesorowe o tzw. luznym powiązaniu. Określenie to oznacza, że - w odróżnieniu od typowej maszyny wieloprocesorowej, o ścisłym powiązaniu - komputery mogą pracować razem lub osobno, a ciągłość pracy całego systemu nie jest zakłócana dołączeniem do konfiguracji lub wyjściem z niej pojedynczego komputera.) Może też efektywnie pracować w środowisku wieloprocesorowym.
Podsumowując rozważania na temat otwartych systemów operacyjnych warto pamiętać, że:
- podstawą uniwersalności oprogramowania jest koncepcja systemu otwartego,
- system otwarty jako produkt nie istnieje,
- prawie każdy system z rodziny UNIX spełnia wymagania systemu otwartego,
- systemy z rodziny UNIX'a mają strukturę zaprojektowaną ponad 20 lat temu, dla znanych wówczas platform sprzętowych,
- istnieją systemy spoza rodziny UNIX'a, które również spełniają wymagania systemu otwartego,
- nowe systemy operacyjne są i będą implementowane w oparciu o koncepcję systemu otwartego.
KLIENT
POTRZEBY
APLIKACJE
SYSTEMY ZARZĄDZANIA BAZAMI DANYCH
OPROGRAMOWANIE SYSTEMOWE
SPRZĘT
DOSTAWCA
FINANSE
REORGANIZACJA GOSPODARKI
NOWE POTRZEBY
RECESJA
TECHNOLOGIA
OBAWY SPOŁECZNE
WIEDZA
UMIEJĘTNOŚCI
LUDZIE
interfejs użytkownika
kalen-darz
bilanse
aplikacja
system zbiorów
system operacyjny
system operacyjny
An : Użytkownik
An-1=Au : Interfejs użytkownika
.... różne warstwy oprogramowania aplikacyjnego
As : Interfejs systemu operacyjnego
... różne warstwy systemu operacyjnego
Ah+1 : Jądro systemu operacyjnego
Ah : Interfejs software/hardware
... różne warstwy komponentów sprzętowych
Ao
Aplikacja
Wspomaganie aplikacji
Narzędzia
System operacyjny
Sprzęt
APLIKACJA
APLIKACJA
SYSTEM S
OPERACYJNY I
E
SPRZĘT Ć
S SYSTEM
I OPERACYJNY
E
Ć SPRZĘT