Zestaw H System Unix (2)


H. System UNIX

  1. System plików: Podobieństwa i różnice w budowie systemu plików systemów UNIX i MS DOS (oraz pochodnych). Warstwowa struktura systemu UNIX; rola jądra i powłoki.

  2. Powłoka: Filtry, potoki i trójniki. Ogólne cechy języka powłoki typu sh, struktury sterowania przebiegiem wykonywania poleceń. Skrypty powłoki, klasyfikacja zmiennych, reagowanie na błędy wykonania poleceń.

  3. Procesy: Rola i przykłady sygnałów w systemie UNIX. Wywoływanie sygnałów z poziomu powłoki. Zadania pierwszo- i drugoplanowe. Przegląd zarządzania procesami w systemach UNIX.

  4. Bezpieczeństwo systemu UNIX: Zagrożenia systemu, przedmiot i sposoby ochrony. Zasady postępowania w przypadku stwierdzenia włamania do systemu komputerowego. Ochrona kont użytkowników, danych i oprogramowania, ochrona systemu plików, łączy teleinformatycznych i usług sieciowych.

Cechy charakterystyczne sytemu UNIX:

Budowa systemu Unix

System Unix ma budowę warstwową. Centralnym elementem systemu jest sprzęt komputerowy (hardware). Bezpośrednio ze sprzętem komunikuje się jądro systemu (kernel), które pośredniczy pomiędzy urządzeniami komputerowymi a programami. Nad jądrem znajduje się powłoka (shell). Dopiero w shellu możemy uruchamiać programy i skrypty. System Unix umożliwia wykorzystywanie różnych shelli, które różnią się możliwościami, ilością komend, składnią. Najpopularniejsze to standardowy Bourne, rozszerzony Korn, C shell o składni języka C oraz rozpowszechniany z Linuxem shell Bash.

0x08 graphic
Hardware - sprzęt komputerowy

Kernel - jądro systemu obsługujące:
sprzęt komputerowy (procesor, pamięć, urządzenia zewnętrzne)
procesy wykonywane w systemie (deamons)
hierarchiczny system plików (file system)

Shell - powłoka systemu pośrednicząca pomiędzy użytkownikiem i jądrem, interpretująca polecenia użytkownika:
Bourne Shell
Korn Shell
C Shell
Bash Shell

W jądrze systemu implementuje się wszystkie funkcje, które muszą być traktowane w sposób uprzywilejowany. Jądro odpowiada m.in. za: obsługę przerwań, przydział procesora, operacje wej/wyj. Ponadto w jądrze systemu są implementowane mechanizmy, które tworzą wspomnianą już maszynę wirtualną.

Warstwa zewnętrzna obejmuje procesy użytkowników (można przyjąć, że są to po prostu programy) i moduły systemu operacyjnego nie należące do jądra systemu. Jednym z procesów warstwy zewnętrznej jest POWŁOKA (ang. shell). Powłoka jest jedyną widoczną częścią maszyny wirtualnej.

Funkcje systemowe (ang. system calls) stanowią maszynę wirtualną, ich wywołania są poleceniami dla jądra systemu, np. zainicjowanie nowego procesu, otwarcie pliku. Funkcje systemowe dzielą się na: funkcje systemowe dotyczące procesów i funkcje systemowe dotyczące sytemu plików. Zwykłe polecenia użytkowników są poleceniami dla programu powłoki.

System plików UNIX'a składa się z katalogów o strukturze drzewiastej montowanych na partycjach dyskowych. Do pracy systemu niezbędne są dwie partycje: główna / (korzeń struktury) i tzw. swap (pliki wymiany stanowiące pamięć wirtualną systemu). Standardowe katalogi to:

        /bin - narzędzia systemowe

        /boot - jądro, loader systemu, mapy pamięci

        /dev - pliki urządzeń (dysków, napędów)

        /home - katalogi użytkowników

        /mnt - tymczasowo montowane systemy plików takie jak /mnt/cdrom

        /opt - opcjonalnie zainstalowane oprogramowanie

        /root - kartoteka domowa użytkownika specjalnego root

        /sbin - standardowe pliki administracyjne systemu

        /usr - dodatkowe oprogramowane systemowe i narzędzia administracyjne

        /var - pliki dzienników i drukarek

        /etc - pliki administracyjne i konfiguracyjne

Model warstwowy systemu Unix

W modelu tym dzieli się system na 4 warstwy:

Jądro

Biblioteki

Powłoka

Programy

segmentation fault

  1. Procesy: Rola i przykłady sygnałów w systemie UNIX. Wywoływanie sygnałów z poziomu powłoki. Zadania pierwszo- i drugoplanowe. Przegląd zarządzania procesami w systemach UNIX.

Sygnały są formą komunikacji między procesami w systemie Unix, służącą do obsługi asynchronicznych zdarzeń (tzn. mogących wystąpić w dowolnym czasie działania procesu). Gdy proces otrzymuje sygnał zazwyczaj znaczy to, że nastąpiło zdarzenie, które wymaga od niego natychmiastowej reakcji. Może to być np. zakończenie pracy procesu potomnego lub naciśnięcie przez użytkownika klawisza przerwania.

Mówimy, że sygnał został wygenerowany wtedy, gdy nastąpiło zdarzenie, którego następstwem jest pojawienie się sygnału. Sygnał jest dostarczany do procesu wtedy, gdy proces podejmuje akcję obsługi sygnału. W czasie pomiędzy wygenerowaniem a dostarczeniem, sygnał oczekuje na dostarczenie.

Sygnał może być wygenerowany przez przerwanie z klawiatury, błąd w procesie (w rodzaju złego odniesienia do pamięci) lub za pomocą pewnej liczby zdarzeń asynchronicznych (np. sygnały od czasomierzy lub sygnały sterujące zadaniem pochodzące z po­włoki). Prawie każdy sygnał może być też wytworzony za pomocą funkcji systemowej kill.

Rodzaje sygnałów

SIGINT

Jest to sygnał przerwania (interrupt). Generowany jest zwykle, kiedy użytkownik naciśnie klawisz przerwania na terminalu.

SIGQUIT

Sygnał generowany zazwyczaj, kiedy użytkownik naciśnie na terminalu klawisz zakończenia pracy. Sygnał SIGQUIT jest podobny do sygnału SIGINT, ale dodatkowo generuje obraz pamięci.

SIGKILL

Wysłanie tego sygnału jest jedynym pewnym sposobem zakończenia procesu, ponieważ proces odbierający ten sygnał nie może go ani zignorować, ani przechwycić.

SIGTSTP

Charakterystyczny dla wersji UNIX-a systemu 4.3BSD. Sygnał wysyłany do procesu po naciśnieciu klawisza zawieszenia (na ogół CRTL+Z) lub klawisza zawieszenia z opóźnieniem (CTRL+Y). Proces zawieszony (zatrzymany), można wznowić sygnałem SIGCONT.

SIGILL

Sygnał ten jest generowany po wystąpieniu wykrywanej sprzętowo sytuacji wyjątkowej, spowodowanej przez niewłaściwą implementację systemu.

SIGSTOP

Charakterystyczny dla wersji UNIX-a systemu 4.3BSD. Sygnał ten zatrzymuje proces. Podobnie jak sygnał SIGKILL nie może zostać zignorowany lub przechwycony. Działanie zatrzymanego procesu można wznowić sygnałem SIGCONT.

SIGSEGV

Sygnał generowany po wystąpieniu błędu sprzętowego spowodowanego przez niewłaściwą implementację systemu. Sygnał naruszenia segmentacji pojawia się na ogół wtedy, kiedy proces odnosi się do takiego adresu w pamięci, do którego nie ma dostępu.

SIGHUP

Kiedy terminal jest zamykany, wtedy do wszystkich procesów, dla których jest on terminalem sterującym, jest wysyłany sygnał zawieszenia (hangup). Sygnał ten jest również wysyłany do wszystkich procesów w grupie procesów wtedy, kiedy zakończy się proces przywódcy grupy.

SIGALARM

Proces może nastawić budzik (alarm clock), wywołując funkcję systemową alarm:
unsigned int alarm(unsigned int sec);
Argument sec określa liczbę sekund, które muszą upłynąć, zanim jądro wyśle sygnał SIGALARM do procesu. Argument określa czas rzeczywisty, tzw. Wall time. Jeżeli argument jest zerem, to unieważniony zostaje poprzedni budzik nastawiony dla danego procesu. Funkcja ta służy do określania czasu oczekiwania w oprogramowaniu. Istnieje też funkcja sleep, używana w celu określenia długości pauzy:
unsigned int sleep(unsigned int sec);
Fukcja sleep zazwyczaj nastawia budzik i oczekuje na wygenerowanie sygnału SIGALARM, który następnie przechwytuje.

SIGCHLD

Sygnał wysyłany do procesu, kiedy jego potomny proces się skończył.

SIGUSR1 SIGUSR2

Sygnały SIGUSR1 i SIGUSR2 są dwoma sygnałami definiowanymi przez użytkownika, których można używać do komunikacji między procesami. Jeżeli sygnał służy do komunikacji między procesami, to jedyną informacją dostarczaną procesowi odbierającemu jest rodzaj tego sygnału - proces odbierający nie może otrzymać identyfikatora procesu wysyłającego sygnał. Sygnał nie przenosi żadnej informacji oprócz tej, że się pojawił. Z tego powodu niezbyt często używa się sygnałów do komunikacji między procesami.

SIGTERM

Domyślny sygnał wysyłany przez komendę kill. Wymusza zawieszenie procesu.



Wyszukiwarka

Podobne podstrony:
Powstanie systemu Unix
Egzamin, H. System Unix, H
Lab 01 Wprowadzenie do systemu UNIX
Cechy systemu Unix Linux
Kompaktowe zestawienie systemów
Systemy(Unix) wyklad
Lab 01 Wprowadzenie do systemu UNIX
Systemy(Unix) wykład
Systemy(Unix) wykład
Lab 01 Wprowadzenie do systemu UNIX
Zestaw G system MS Windows (2)
Powłoka systemu UNIX
Zestawienie systemów edukacji w Unii Europejskiej i krajach EOG
Powstanie systemu Unix

więcej podobnych podstron