System operacyjny jest jak restauracja, przygotowuje potrzebny do wykonania swoich zadania sprzęt i czeka na kelnera. Klient czyli użytkownik przychodzi i woła kelnera (powłokę - Shell). Kelner odbiera zamówienie od klienta i dostarcza go do realizacji dodając do dania. Powłoka odbiera polecenie od użytkownika, przekazuje go do odpowiedniego programu, który to polecenie zrealizuje, a następnie poda odpowiedź użytkownikowi.
Programy wchodzące w skład syst. oper. zajmują się: obsługą procesora, pamięciami, urządzeniami I/O oraz interakcją z użytkownikiem.
System operacyjny to zorganizowany zespół programów, które pośredniczą między sprzętem, a użytkownikiem, dostarczają środków do uruchamiania programów oraz w tym samym czasie sterują podziałem zasobów komputera.
Funkcje:
- obsługa sprzętu wchodzącego w skład jednostki centralnej
- obsługa urządzeń peryferyjnych
- przyjmowanie i wykonywanie poleceń użytkownika
- zapis i odczyt danych z dysków i pamięci oper.
- uruchamianie i obsługa programów
Warstwy systemu: najniższą stanowi sprzęt, w którego skład wchodzi zestaw komputerowy. Kolejną warstwę stanowią programy do obsługi sprzętu. Jądro systemu to zbiór programów służących do zarządzanie plikami gromadzonymi na dyskach, pamięcią oper, procesami uruchamianymi w systemie, pamięcią oper, dyskami twardymi i innymi nośnikami z trwałym zapisem. Zadania Jądra:
- ochrona dostępu do systemu i danych
- obsługa urządzeń peryferyjnych
- instalowanie i usuwanie programów użytkowych
- komunikacja między programami
- wielozadaniowość
- współdzielenie zasobów przez wielu użytkowników
Najwyższą warstwę stanowi interfejs użytkownika; wydawanie poleceń do systemu polega na uruchomieniu programów użytkowych; każde uruchomienie i zamknięcie wymaga interwencji systemu oper, gdyż to on zajmuje się odnalezieniem programu jego uruchomieniem i przydzieleniem odpowiednich zasobów (procesor, pamięć). Można także wydawać polecenia do zarządzania procesami i plikami umieszczonymi w systemie.
Interfejs użytkownika może być tekstowy lub graficzny.
W trybie tekstowym polecenia są wpisywane z klawiatury w wierszu poleceń, jest niezawodny, ale wymaga znajomości poleceń. W trybie graficznym większość poleceń do systemu wydawana jest przez kliknięcie myszka na odpowiednią ikonę.
Poziomy szczegółowości:
I poziom - przeciętny użytkownik, korzystający tylko z trybu graficznego.
II poziom - przychodzi z czasem, gry użytkownik zauważy potrzebę korzystania z wiersza poleceń. W linuxie jest ponad 2000 różnych poleceń. Polecenia te dotyczą zarządzania danymi, które są gromadzone, tworzone i wykorzystywane przez użytkownika.
III poziom - profesjonalny przeznaczony dla administratorów systemów. Instalują i utrzymują system (bezpieczeństwo), w którym mogą pracować równocześnie wiele użytkowników.
IV poziom - twórcy systemu operacyjnego; interesuje ich wnętrze systemu zw. jądrem. Implementują skomplikowane mechanizmy szeregowania zadań.
Powłoka Borna (1975) podstawowy interpretator systemów Linux'owych i Unix'owych. Nie oferuje zbyt wiele udogodnień, które są niezbędne. Dzięki temu, że jest mniejszy od reszty, większość operacji wykonuje szybciej. Istnieje ograniczona wersja rsh, wykorzystywana do tworzenia środowisk użytkowych o ograniczonych możliwościach i prawach dostępu do zasobu komputera. Nie dopuszcza do przekierowania wyjścia, ustalenia zmiennych oraz używania znaku / do określania nazw i ścieżek.
Powłoka C używana przez programistów przypomina język C i zawiera wszystkie operatory warunkowe. Udostępnia historię wydawanych poleceń oraz pozwala bezpośrednio obliczyć i wykonywać warunki oraz polecenia wbudowane. Implementuje mechanizm aliasu, które umożliwia tworzenie alternatywnych nazw poleceń i daje większą kontrolę nad programami wykonywanymi w tle.
Powłoka Korna (1983) funkcjonalność Borna, udogodnienia powłoki C. Zaimplementowany został udoskonalony mechanizm edycji wiersza poleceń (polecenia te można modyfikować za pomocą popularnych edytorów tekstu). Pozwala sterować zadaniami oraz bezpośrednio obliczać wyrażenia warunkowe (rksh).
Powłoka Bash domyślna dla Linuxa. Implementuje własne rozszerzenia np. udoskonaloną edycję wiersza poleceń, oferującą automatyczne uzupełniania nazw plików.
Polecenie (komenda w systemach) działa na plikach, katalogach i urządzeniach. Powłoka lokalizuje plik z polecenia korzystając z procedury poszukiwania (określa, które katalogi, pliki w jakiej kolejności mają być poszukiwane w celu znalezienia wydawanych poleceń).
Opcja modyfikuje funkcjonowanie polecenia, powoduje że wykonuje się to polecenie w specjalny sposób.
Argument - obiekty (pliki, urządzenia), n których wykonywane są polecenia.
Metaznaki - służą do tworzenia wzorców, które są rozpoznawane i wykonywane przez powłokę.
? - 0 lub 1 wystąpienie wzorca z listy
* - 0 lub więcej wystąpień wzorca
+ - 1 lub więcej wystąpień wzorca
@ - dokładnie jedno wystąpienie wzorca
! - dowolny ciąg znaków niezawierający wzorca
Znak kropki - znak specjalny oznaczający dowolny, pojedynczy znak ASCII.
Znak $ - umieszczony po wyrażeniu regularny, używany jest do dopasowania wzorca do końca wiersza.
Znak ^ - umieszczony na początku wyrażenia regularnego, używany do dopasowania wyrażenia do początku wiersza.
Znak * - używany do dopasowania 0 lub większej liczby wystąpień poprzedzającego znaku.
Symbol [] - znak, który znajduje się pomiędzy prawym a lewym nawiasem zaliczany jest do tego zbioru.