Zgryźliwość kojarzy mi się z radością, która źle skończyła.

 

Temat 12 – Sieciowe Systemy Operacyjne

Mateusz Furmańczyk

System operacyjny to środowisko umożliwiające użytkownikowi korzystanie z funkcjonalności warstwy sprzętowej. Sieciowy system operacyjny (network operationg system) udostępnia środowisko, w którym użytkownicy świadomi liczby maszyn mają dostęp do ich zasobów.

Sieciowy system operacyjny zazwyczaj jest implementowany jako szczególna wersja systemu operacyjnego, który będzie wyposażony w narzędzia do realizacji różnych zadań poprzez internet, ze szczególnym naciskiem na pełnienie funkcji serwera. Poprzez te narzędzia decyduje o charakterze sieci i zakresie pełnionych usług. Zarządza urządzeniami, usługami i danymi, koordynuje prace sieci i efektywnie gospodaruje zasobami. Przykładowe systemy operacyjne to MS Windows NT / 2000, Linux, Unix, Mac OS, Novell Network. Mogą to być zwykłe SO rozbudowane o dodatkowe funkcjonalności(Linux), bądź też systemy projektowane z myślą o zastosowaniach sieciowych i pod nie optymalizowane(Novell). Komputery zorganizowane w sieci porozumiewają się najczęściej przy pomocy protokołów TCP/IP(internet), IPX/SPX(Novell) lub NetBEUI(Win).

Ze względu na specyfikę SSO muszą być wielodostępowe i wielozadaniowe, a co się z tym wiąże muszą zapewniać obsługę wielu procesorów, a także często klastrów. Głównym trendem w rozwoju SSO są sieci ekstranetowe(kilka sieci intranetowych połączonych przez internet, z wykluczeniem dostępu z zewnątrz daje ekstranet). Połączenia są realizowane w oparciu o schemat klient - serwer. SSO muszą także zapewniać takie usługi oraz funkcjonalności jak:

·         Serwer plików / katalogowanie – Użytkownicy pracujący w różnych miejscach, na różnych platformach sprzętowych potrzebują jednolitej platformy dostępu do wspólnych plików. Wsparcie przesyłania danych realizują sieciowe systemy plików, np: NFS (network file system) – UNIX, SMB (samba) – Windows, NCP – Novell. Obowiązujące standardy zgodne z ISO to X.500 i LDAP(Lightweight Directory Acces Protocol).

·         Serwer aplikacji – Obsługuje aplikacje napisane w C, C++, Javie, obsługuje wydajnie BD, oferuje dużą skalowalność(klastry), umożliwia zintegrowane zarzadzanie, zawiera środowiska developerskie

·         Zapewnienie bezpieczeństwa – SSO przede wszystkim umożliwiają ochronę poprzez uwierzytelnianie(hasło dostępu) oraz autoryzację(kontrola dostępu do zasobów). Dodatkowo połączenia najistotniejsze(np. finansowe) mogą być szyfrowane(ze szczególnym uwzględnieniem SSH jako szyfrującej warstwy sieciowej)

·         Obsługa Baz Danych – Jako, że firmowe bazy danych muszą spełniać wiele wymogów(obciążalność, niezawodność, wielodostępowość, bezpieczeństwo, pojemność), wiele systemów kładzie specjalny nacisk na wsparcie dla obsługi baz danych

·         Drukowanie – udostępnianie usług drukowania na wielu urządzeniach fizycznych

 

Kursy powiązane w toku studiów: TI, SCR-SK, SCR-SO, SSO, E-media, BD

W ramach kursu z SSO, Sieciowy System Operacyjny omówiono na przykładzie systemu Unix, z położeniem szczególnego nacisku na współbieżność.

Współbieżność w wykonywaniu można zaimplementować na poziomie procesu przy użyciu funkcji fork() lub też na poziomie wątku z wykorzystaniem biblioteki pthread standardu Posix. Współbieżność realizowana jest poprzez podzielenie pomiędzy procesy/wątki czasu pracy procesora. Procesy/wątki mogą komunikować się poprzez sygnały, strumienie pipe i FIFO, kolejki komunikatów i pamięć współdzieloną. Ich synchronizacja oraz sterowanie dostępem do danych może przebiegać z wykorzystaniem semaforów bądź muteksów wraz ze zmiennymi warunkowymi.

Komunikacja sieciowa w systemie UNIX odbywa się za pomocą gniazd sieciowych. Gniazda są traktowane przez system jak deskryptor otwartego pliku. Można z niego czytać funkcją read(), można do niego pisać poprzez write(), zamknąć je za pomocą close(), a także wykonać operacje możliwe tylko na deskryptorach będących gniazdkami. Gniazdko istnieje w określonej domenie adresowej:

·         AF_UNIX – gzniazdka systemu Unix, związane z systemem plików

·         AF_INET – gniazdka sieciowe, IPv4

·         AF_INET6 – nowe gniazdka sieciowe, IPv6

·         Inne

Gniazdka dzieli się także ze względu na typ gniazdka:

·         SOCK_STREAM – gniazdka strumieniowe TCP

·         SOCK_DGRAM – gniazdka datagramowe UDP

·         Inne

Gniazdka sieciowe tworzy się z wykorzystaniem funkcji socket(). Tak utworzonym gniazdkom nadaje się nazwę poprzez użycie funkcji bind(). Nadanie nazwy jest konieczne w przypadku serwerów połączeniowych i bezpołączeniowych oraz w przypadku transmisji bezpołączeniowej zarówno po stronie serwera jak i klienta.

Porty poniżej 1024 są portami zarezerwowanymi i taki numer może przypisać gniazdku funkcja bind() wywołana wyłacznie przez użytkownika z euid==0(root)[EffectiveUserID]. Porty powyżej 5000 są zarezerwowane na usługi serwerów uruchamianych przez użytkowników, bez nadanych praw root.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • hannaeva.xlx.pl