Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wielodostępność systemu Linux Wielodostępność wywodzi sie z czasów, kiedy jeden komputer centralny (mainframe) wykonywał jednocześnie wiele programów.

Podobne prezentacje


Prezentacja na temat: "Wielodostępność systemu Linux Wielodostępność wywodzi sie z czasów, kiedy jeden komputer centralny (mainframe) wykonywał jednocześnie wiele programów."— Zapis prezentacji:

1

2 Wielodostępność systemu Linux Wielodostępność wywodzi sie z czasów, kiedy jeden komputer centralny (mainframe) wykonywał jednocześnie wiele programów nadzorowanych przez wielu użytkowników. Problem dostępu do sprzętu rozwiązywano następująco: do komputera łączami szeregowymi podłączona była pewna liczba sprzętowych terminali, które pozwalały na wyświetlanie tekstu na monitorze i obsługę klawiatury. To wystarczało, gdy wszelkie przetwarzanie danych i tak było zadaniem komputera, zaś terminali podłączyć mona było i kilkadziesiąt. Potem komputery staniały i zaczęły masowo pojawiać sie na wielu biurkach. Jednakże wraz z upowszechnieniem sieci komputerowych stare idee odżyły. Okazało sie, że wciąż wygodnie jest wydzielić w sieci komputer, do którego wszyscy Będą mieli jednoczesny dostęp. Po cóż jednak stosować prymitywne terminale sprzętowe, skoro ich role pełnić może program uruchomiony na PC. Trochę Historii :

3 Dziś terminal rozumiany jest teraz prawie wyłącznie jako program, który pozwala na łączenie sie z innym komputerem poprzez siec i zdalna na tym komputerze prace. Dla odróżnienia konsola nazywa sie "sprzętowy terminal" nieodłącznie związany z konkretnym komputerem, czyli jego monitor i klawiaturę. Siedząc przy konsoli, ma sie dostęp do wielu tzw. wirtualnych terminali. Pozwala to na bezproblemowe wykorzystanie wielozadaniowości 4 i wielodostępu bez korzystania z dodatkowego sprzętu. Praca zdalna oznacza, że fizycznie znajdując sie przy jednym komputerze, uzyskuje sie prawo do uruchamiania programów na innym, zwanym serwerem.

4 W Praktyce… Komputer lokalny sprowadzony zostaje do roli prymitywnego terminala, który wyświetla uzyskane dane na ekranie, zaś odsyła do serwera informacje o naciśnietych przez użytkownika klawiszach. Praca wielodostępna ma sens tylko wtedy, gdy użytkownicy mogą uruchamiać i wykonywać swoje programy jednocześnie. Wymaga to odpowiedniej konstrukcji systemu operacyjnego i jest charakterystyczna cecha wszystkich Uniksów

5 Logicznym następstwem wielodostępności jest to, że tych samych programów używać może jednocześnie wiele osób. Oczywiście na dysku przechowywana jest tylko jedna kopia programu, dostępna dla wszystkich zainteresowanych. Dodatkowa oszczędność pamięci wprowadzają programy, które wykorzystują współdzielone biblioteki systemowe. Oznacza to na przykład, e dwa programy działające jednocześnie zajmują mniej pamięci, ni by to wynikało z zsumowania zajętości dla każdego programu z osobna. To właśnie wielodostępność wymusza taka a nie inna konstrukcje systemu operacyjnego. Pojedynczy użytkownik, jednoznacznie identyfikowany nazwa i hasłem, może wykorzystywać lub modyfikować jedynie ściśle określone zasoby. Zadaniem systemu operacyjnego jest zapewnienie sprawiedliwego lub określonego priorytetami podziału czasu procesora, miejsca na dysku, przepustowości sieci itp. Piecze nad całością sprawuje administrator, którego konto (o nazwie root) pozwala na swobodny dostęp do wszystkich plików, zasobów i mechanizmów systemowych. Następstwa wielodostępności

6 Wielozadaniowość systemu Linux Wielozadaniowość (inaczej wieloprocesowość) jest to cecha systemu operacyjnego (a dokładniej jadra, inaczej kernela) mówiąca czy może on wykonywać "jednocześnie" kilka procesów. Wielozadaniowość otrzymuje się poprzez tzw. scheduler, czyli algorytm kolejkujący i porządkujący procesy, które maja być wykonane. W rzeczywistości procesor nie jest w stanie wykonywać dwóch operacji naraz, ale dzieli czas swojej pracy na krótkie odcinki dla każdego procesu, tak, aby nie było to zauważalne dla użytkownika, po czym wykonuje zadane mu zadania (w chwili obecnej prawie każdy system obsługuje wielozadaniowość). Możliwość wielozadaniowości nie oznacza wcale, e na komputerze mona uruchomić nieskończona ilość procesów. Im więcej procesów jest uruchomionych, tym zadania wykonywane są wolniej, gdy wyczerpują one dostępne zasoby w postaci pamięci RAM, dysku twardego i procesora.

7 Systemami wielozadaniowymi są: - UNIX - 32-bitowe systemy z rodziny Microsoft Windows (np. Microsoft Windows 95) - Mac OS i jego następca Mac OS X - Linux Nie są : - DOS (może być więcej niż jeden proces, ale tylko jeden Będzie wykonywany)

8 Najważniejsze cechy systemu Linux jest systemem nowoczesnym, ponieważ wielu programistów wciąż pracuje nad rozwojem jądra systemu oraz bogatego zestawu programów usługowych. O jego nowoczesności decydują przede wszystkim cechy wymienione poniżej: wielodostęp, wielozadaniowość, czyli praca z podziałem czasu procesora pomiędzy wiele zadań, wieloprzetwarzanie, czyli praca wieloprocesorowa, możliwość uruchamiania zadań w łagodnym czasie rzeczywistym, obsługa różnych typów systemów plików, obsługa różnych protokołów sieciowych, obsługa różnych formatów plików wykonywalnych, wykorzystanie współdzielonych bibliotek.

9 efektywność i stabilność systemu, powszechna dostępność bez jakichkolwiek opłat licencyjnych, bogaty zestaw oprogramowania umożliwiający szeroki zakres zastosowań, możliwość pracy na wielu platformach sprzętowych przy stosunkowo niewielkich wymaganiach, możliwość łatwej współpracy z innymi popularnymi systemami operacyjnymi, bogata dokumentacja w wersji elektronicznej, dostępność kodu źródłowego.

10 System plików Sposób, w jaki komputer organizuje pliki i katalogi na nośniku danych o swobodnym dostępie (takim jest np. dysk twardy i dyskietka magnetyczna, ale już nie taśma magnetofonowa, w której dostęp do danych wymaga jej przewinięcia). System plików określa to, jak informacje są zapisywane i odczytywane; definiuje takie wielkość klastrów, możliwe do użycia atrybuty plików oraz schemat poprawnych nazw plików i katalogów - ich długość i dopuszczalne znaki w nazwach. System plików pozwala by współpracujący użytkownicy mogli korzystać z tych samych plików, ale te chronić pliki przed dostępem do nich nieuprawnionych użytkowników. Istnieje wiele odmian systemów plików, większość współczesnych ma strukturę hierarchiczna, złożona z katalogów i plików: Systemem plików zostaje utworzony podczas formatowania partycji, Dwa najczęściej spotykane systemy plików w Linuxie to ext2, oraz jego nowsza wersja ext3 (posiadającą transakcyjny zapis oparty na dzienniku).

11 System plików ext2 Drugi rozszerzony system plików dla systemu Linux. Ext2 zastąpił rozszerzony system plików ext. Rozpoznanie uszkodzenia systemu plików (np. po załamaniu się systemu) następuje przy starcie systemu, co pozwala na automatyczne naprawianie szkód za pomocą oddzielnego programu (e2fsck), uszkodzone pliki zapisywane są w katalogu lost+found. System plików ext2 zawiera mechanizm zapobiegający znacznej fragmentacji danych, co zdarzało się podczas używania poprzedniej jego wersji. Ext2 przy domyślnym rozmiarze bloku (4 KB) obsługuje partycje o wielkości do 16 TB i pojedyncze pliki o wielkości do 2 TB. Nazwy plików mogą mieć do 255 znaków długości. Ważnym elementem systemu ext2 są wolne pola w strukturach danych – to dzięki nim między innymi, możliwa jest konwersja w locie do systemu ext3 – wykorzystuje on po prostu część z nich do przechowywania swoich danych.

12 System plików ext3 System plików ext3 jest rozszerzeniem ext2 i różni się od niego dodanym mechanizmem księgowania – dokładnego zapisu zmian na dysku, który w razie awarii systemu umożliwia szybsze przywrócenie spójności systemu plików niż w przypadku ext2. Poza mechanizmem księgowania system plików ext3 różni się od ext2 brakiem możliwości odzyskania skasowanych plików. W odróżnieniu od większości innych systemów z księgowaniem system ext3 daje do wyboru trzy tryby księgowania: w trybie najbezpieczniejszym księgowane są zarówno metadane jak i zwykłe dane; w trybie domyślnym księgowane są tylko metadane; istnieje jeszcze jeden tryb, w którym również księgowane są tylko metadane, ale jest mniej bezpieczny, ponieważ pozwala na modyfikację danych objętych metadanymi nie zapisanymi jeszcze na dysk.

13 Zalety systemu plików ext3 Duża niezawodność Prosta implementacja Małe obciążenie procesora w porównaniu z ReiserFS i XFS Kompatybilność z ext2.

14 Wady systemu plików ext3 Ze względu na zerowanie wskaźników do węzłów usuniętych plików, w systemie ext3 jest bardzo utrudnione odzyskanie skasowanych plików (w przeciwieństwie do ext2). Zmiana wielkości partycji bez utraty danych możliwa jedynie po odmontowaniu i zamianie na ext2 – zmianę wielkości pracującej partycji umożliwia ReiserFS. Dla danych dostępna niepełna powierzchnia dysku. Ograniczona wielkość partycji do 32 TiB – pół miliona razy większą wielkość partycji (do 16 EiB) zapewnia XFS.

15 Drzewo katalogowe UNIX Katalogi systemu UNIX/Linux są zorganizowane hierarchicznie. System ten, w odróżnieniu od systemu MS-DOS, nie tworzy osobnej hierarchii dla każdej partycji, tworzy tylko jeden system plików dla wszystkich partycji. Katalogiem, który znajduje sie u samego szczytu tej struktury (tzw. drzewa katalogowego) jest katalog root (korzeń), oznaczony jako / (forward slash).

16 Przykładowe drzewo katalogowe systemu Linux

17 Drzewo katalogów / Zawartość głównego systemu plików jest niewielka, pozwala na bootowanie inaprawę systemu. bin/ Zawiera komendy użyteczne zarówno dla zwykłego użytkownika, jak i dla administratora. Jest tu wyłącznie ich niezbędny zestaw. boot/ Zawiera wszystko, co jest potrzebne programowi bootujacemu, za wyjątkiem konfiguracji i instalatora map. dev/ Ten katalog zawiera pliki urządzeń. etc/ Zawiera pliki konfiguracyjne specyficzne dla maszyny. -X11/ Konfiguracja systemu X Window. home/ Zawiera katalogi domowe użytkowników. Wewnętrzny układ dobiera administrator.

18 lib/ Zawiera te biblioteki współdzielone, które są niezbędne do zbootowania systemu oraz uruchamiania komend z głównego systemu plików, zawiera równie moduły jadra. - modules/ Dynamicznie ładowalne moduły jadra. mnt/ Służy do tymczasowego montowania systemów plików przez administratora. opt/ Zarezerwowane do instalacji dodatkowych aplikacji. Aplikacje powinny być instalowane w osobnych podkatalogach w /opt/. proc/ Informacje o pracy jadra. Zawartość tego katalogu nie znajduje sie na dysku, lecz jest generowana dynamicznie przez jadro. root/ Katalog domowy użytkownika root.

19 osbin/ Zawiera programy używane do administracji systemem i inne komendy użyteczne dla roota. Zawiera jedynie zestaw niezbędny do bootowania i naprawy systemu. tmp/ Katalog ten służy do zapisu plików tymczasowych. Zawartość tego katalogu może być kasowana przy restarcie systemu. Kady użytkownik ma prawo zapisu. usr/ Katalog ten jest druga główna sekcja systemu plików. Zawiera dane tylko do odczytu, które mogą być współdzielone miedzy maszynami. var/ Zawiera zmienne dane. Są to m.in. kolejki, logi, pliki danych oraz pliki tymczasowe.

20 Urządzenia Linux Linux otrzymuje dane z, wysyła je do oraz przechowuje je w urządzeniach (devices). Urządzenie zazwyczaj odpowiada jednostce sprzętowej, takiej jak na przykład klawiatura czy port szeregowy. Jednakże urządzenie nie zawsze posiada odpowiednik sprzętowy; jadro systemu (kernel) tworzy kilka pseudourządzeń, które nie istnieją fizycznie, ale za to mona uzyskać do ich dostęp jakby rzeczywiście istniały. Co więcej, jednostka sprzętowa może odpowiadać kilku urządzeniom, na przykład Linux definiuje każda partycje dysku twardego jako osobne urządzenie. Dyski i urządzenia wejścia//wyjścia odwzorowywane jako pliki w katalogu /dev.

21 Lista wybranych plików z katalogu /dev: /dev/console - konsola systemu /dev/mouse - mysz szeregowa /dev/hda -pierwszy dysk IDE /dev/hda1 -pierwsza partycja pierwszego dysku /dev/hda2 -druga partycja pierwszego dysku /dev/hdb - drugi dysk IDE /dev/hdb1 -pierwsza partycja drugiego dysku IDE /dev/fd0 -pierwsza dyskietka /dev/lp0 -pierwszy port drukarki /dev/null -urządzenie puste (do testów) /dev/ttyN -wirtualny terminal (lokalny) /dev/ptyN -pseudoterminal do logowania przez siec

22 Jądro Linux Jądro Linux (ang. Linux kernel) – najważniejsza, wolna część uniksopodobnego systemu operacyjnego GNU/Linux napisana przez Linusa Torvaldsa w 1991 roku, a obecnie rozwijana przez licznych programistów z całego świata. Początkowo działało na platformie Intel 80386, lecz później zostało przeniesione na wiele innych platform. Największa część kodu napisana jest w języku C, z pewnymi rozszerzeniami GCC a pozostała część to wstawki w asemblerze. Kod jądra Linuksa jest objęty licencją GNU General Public License, jest zatem oprogramowaniem FLOSS.

23 Architektura Jądra Jądro Linuksa jest w dużym stopniu zgodne ze standardami ANSI i POSIX, obsługuje wielozadaniowość, wielowątkowość, wielobieżność, pamięć wirtualną, biblioteki współdzielone, ładowanie na żądanie, współdzielony kod wykonywalny (ang. copy-on-write), dobre zarządzanie pamięcią i obsługę sieci TCP/IP. Jest ono jądrem monolitycznym z ładowalnymi modułami. Sterowniki urządzeń i rozszerzenia jądra zwykle pracują w trybie ring 0, z pełnym dostępem do sprzętu; nieliczne jednak działają w trybie użytkownika. W przeciwieństwie do typowych jąder monolitycznych, sterowniki urządzeń są zwykle kompilowane jako moduły, które można załadować i wyładować na działającym systemie. Podobnie, sterowniki mogą być wywłaszczone w określonych warunkach. Ta funkcja została dodana w celu poprawnej obsługi przerwań sprzętowych i systemów wieloprocesorowych. Fakt, że Linux jest zbudowany na zasadzie jądra monolitycznego, a nie mikrojądra był powodem słynnej dyskusji między Linusem Torvaldsem a Andrew S. Tanenbaumem (autorem Miniksa) na grupie comp.os.minix w 1992 roku. Cały kod źródłowy różnych wersji Linuksa można obejrzeć na stronie

24 Instalacja Jądra Linux Kod źródłowy jądra Linuksa można pobrać z kernel.org. Aby skompilować wersję 2.6.x należy wykonać następujące komendy w podanej kolejności:kernel.org Make oldconfig aby szybko przeanalizować plik konfiguracyjny.config z poprzedniej wersji jądra (pominąć ten krok, jeśli poprzednia konfiguracja jest niedostępna), Make config (lub bardziej przyjazne warianty: make menuconfig – dla trybu tekstowego, make xconfig – GUI-Qt lub też make gconfig – GUI-GTK+) aby wybrać funkcje wbudowane w jądro. Można np. zbudować jądro obsługujące bardzo szeroką lub bardzo wąską gamę sprzętu. Włączenie obsługi wszystkiego co możliwe zwiększa zajętość pamięci przez jądro i może nieco spowolnić działanie systemu. Jeśli jest ono przeznaczone do pracy na określonym komputerze, obsługę urządzeń, których ten komputer nie posiada można pominąć. Make kompiluje wszystkie komponenty jądra, Make modules_install kopiuje skompilowane moduły do odpowiedniej lokalizacji (zwykle w podkatalogu /lib/modules), Make install kopiuje obraz jądra (o nazwie vmlinux lub vmlinuz) do właściwego katalogu i aktualizuje program startowy (LILO lub GRUB) aby system mógł wystartować po restarcie z nowym jądrem.

25 Moduły Linux W jądrze Linuks sterowniki do urządzeń mogą zarówno być wbudowane w samo jądro (wkompilowane moduły), albo też w osobnym pliku, i wtedy są one ładowane do pamięci komputera i uruchamiane w razie potrzeby, lub przy starcie systemu.

26 Zalety modułowej budowy Kernel Linuks jest makrokernelem, tzn. zajmuje się nie tylko komunikacją pomiędzy poszczególnymi procesami, ale także zarządzaniem pamięcią, obsługą urządzeń czy obsługą systemów plików. Dla porównania, w architekturze mikrokernela, sam kernel zajmuje się tylko zapewnieniem komunikacji pomiędzy procesami, natomiast do obsługi poszczególnych urządzeń, czy systemów plików, zajmują się osobne wykonywalne programy. Jednak Linuks ma modułową budowę, co oznacza że części kodu odpowiadające za obsługę poszczególnych urządzeń, systemów plików czy protokołów, mogą zostać od niego oddzielone - i dzięki temu zyskuje największe zalety mikrokerneli, czyli: obsługę poszczególnych urządzeń czy protokołów można rozwijać niezależnie od samego kernela (nie wymaga to zmian w innych częściach kernela) podział prac nad jądrem na grupy zajmujące się poszczególnymi częściami znacznie ułatwia i przyspiesza rozwój możliwość zmniejszenia wielkości kernela, poprzez wykasowanie z pamięci operacyjnej nieużywanych modułów możliwość tworzenia zamkniętych, binarnych sterowników Przy tym budowa jako makrokernel, i możliwość wbudowania modułów w strukturę samego kernela, przyspiesza działanie, ponieważ nie ma konieczności wielokrotnego powtarzania przełączania procesów, przy komunikacji pomiędzy poszczególnymi modułami.

27 Do czego służą moduły Moduły, odpowiadają sterownikom w terminologii DOS/Windows. Mogą one obsługiwać nie tylko urządzenia - lista możliwych zadań modułów jest szersza: bezpośrednia komunikacja z urządzeniem (standardowe, systemowe polecenia tłumaczy na kod rozumiany przez konkretny model urządzenia) bezpośredni odczyt/zapis w systemie plików (dzięki temu system widzi pliki, katalogi i ich właściwości, natomiast sam moduł dba o przetłumaczenie tego na kombinację bajtów w określonych miejscach na dysku) obsługa protokołów (np. protokołów sieciowych). Najogólniej, moduły kernela służą do komunikacji niskopoziomowej - zajmują się tłumaczeniem standardowych poleceń na kod odpowiadający im w danym przypadku.

28 Ze względu na wieloużytkownikowość i wielodostęp, systemy UNIX posiadają bazę danych informacji o użytkownikach. W bazie tej zawarte są podstawowe dane o każdym z użytkowników, takie jak nazwa użytkownika, numer, grupa do której należy, krótki opis, katalog domowy oraz powłoka której używa. Baza użytkowników znajduje się w pliku /etc/passwd, natomiast hasła użytkowników i informacje uzupełniające w /etc/shadow. Aby łatwiej zarządzać prawami dostępu do zasobów, użytkownicy należą do jednej lub więcej grup. Dla przykładu - do grupy "studenci" należy każdy student będący użytkownikiem systemu Linux (czyli posiadający konto w tym systemie) i dzięki temu studenci otrzymują dostęp tylko dla odczytu do ogólnych informacji dotyczących danej uczelni. Studenci kierunku Informatyka należą dodatkowo do drugiej grupy, np. "informatycy", dzięki czemu otrzymują dostęp do treści zadań dla danego kierunku. Część z nich, należy do grupy laboratoryjnej, opracowującej program dla systemu Linux. Ci studenci należą dodatkowo do trzeciej grupy, np "linux-lab" - to daje im pełny dostęp do określonego katalogu w systemie, gdzie mogą wspólnie pisać, kompilować i testować program. Jednocześnie do tego programu nie ma dostępu żaden student spoza grupy "linux-lab". W systemach UNIX przyjęto, że każdy użytkownik ma swój numer (UID), który jest jego identyfikatorem. Prawa dostępu do zasobów określane są względem tego numeru, a nie nazwy użytkownika. Nazwa jest jakby "aliasem" do numeru - można ją w każdej chwili zmienić bez żadnych konsekwencji - wszystkie prawa dostępu zostają zachowane (bo przyznawane są według numerów, a nie nazw). Dzięki /etc/passwd możliwe jest "tłumaczenie" nazw na UIDy i odwrotnie. Możliwe też jest stworzenie dwóch lub więcej kont z tymi samymi numerami UID pod różnymi nazwami. Wówczas użytkownicy, korzystający z tego samego UIDu mają identyczne prawa i ograniczenia w systemie pomimo, że mogą posiadać różne hasła, katalogi domowe czy powłoki.

29 cd.. Grupy użytkowników funkcjonują na podobnych zasadach. Każda grupa posiada swój numer (GID) i to właśnie ten numer wykorzystywany jest przy określaniu praw dostępu. Każdy z użytkowników musi należeć przynajmniej do jednej grupy. Główna grupa do której należy użytkownik zapisana jest w /etc/passwd. Pozostałe - w /etc/group. Aby przekonać się, w jakich grupach znajduje się użytkownik i jaki jest jego UIDnależy wydać komendę: id [UŻYTKOWNIK] gdzie: UŻYTKOWNIK - specyfikacja sprawdzanego użytkownika. W przypadku nie podania nazwy użytkownika, "id" zwraca dane dotyczące użytkownika bieżącego. Przykład zastosowania: Z wyświetlonych informacji wynika, że użytkownik "student" ma nadany numer UID=501, jego główną grupą jest "users" (GID=100), a dodatkowo należy do grup "studenci" GID=501, "informatyka" GID=550 oraz linux-lab GID=934. Użytkownicy i grupy ułatwiają zarządzanie dostępem do zasobów. Dla przykładu:

30 Właścicielem pliku kopia jest użytkownik "student". Prawa dla tego pliku, określane są dla właściciela, grupy i wszystkich pozostałych użytkowników. Aby optymalnie zarządzać tymi prawami, właściciel pliku może zmienić grupę względem której określane są prawa. W tym przypadku wszyscy użytkownicy należący do grupy "users" mogą odczytywać zawartość pliku, ale nie mogą go modyfikować. Uzytkownik "student", zmieniając grupę np. na "linux- lab" spowoduje, że tylko użytkownicy tej grupy będą mogli przeglądać zawartość tego pliku. W tym celu posłużyć się należy poleceniem "chgrp" o następującej składni: chgrp GRUPA PLIK(I) gdzie: GRUPA - grupa, na którą należy zmienić, PLIK(I) - lista plików do zmiany. Grupę może zmienić tylko właściciel pliku i to tylko i wyłącznie na grupę w której należy. Ograniczenia te nie dotyczą oczywiście użytkownika root. Dodatkowo administrator może zmienić właściciela pliku poleceniem "chown" o następującej składni: chown [WLASCICIEL][.GRUPA] PLIK(I) gdzie: WLASCICIEL - nowy właściciel pliku, GRUPA - nowa grupa, PLIK(I) - lista plików poddawanych operacji zamiany.

31 Wirtualne konsole w Linuksie Możemy ich mieć wiele - najprawdopodobniej do 255. Konsole te oznaczane są symbolem ttyX, gdzie X jest identyfikatorem konsoli (terminala) - liczbą naturalną (np. tty1, tty2, tty3 itd.). Reprezentowane są przez urządzenia znakowe w katalogu /dev (np. /dev/tty1) o numerze MAJOR=4 i MINOR= Bezpośredni dostęp przez kombinację klawiszy ALT- możemy mieć do początkowych 24-ch terminali (tty1 - tty24). Terminale tty1-tty12 osiągamy poprzez wciśnięcie lewego klawisza ALT i klawisza funkcyjnego Fn, co powinno nas przełączyć na terminal ttyn (np. po naciśnięciu ALT-F6, przełączamy się na terminal tty6). Kolejnych 12 terminali jest osiągalnych przez prawy ALT-Fn, co przełącza nas na terminal tty{n+12} (np. prawy ALT-F2 przełącza nas na terminal tty14). Innym sposobem przełączania terminali jest użycie kombinacji ALT-. Po naciśnięciu prawej strzałki przełączamy się na kolejną konsolę, natomiast po naciśnięciu lewej przechodzimy na poprzedni terminal. Wszystkie te operacje są przeprowadzane modulo ilość terminali. Przykład: załóżmy, że pracujemy w standardowym 3-cim runlevelu bez iksów. Niech aktualnym terminalem będzie tty3. Wtedy pięciokrotne naciśnięcie ALT- przełączy nas kolejno na terminale tty4, tty5, tty6, tty1, tty2. Wówczas pięciokrotne naciśniecie lewej strzałki przeniesie nas kolejno na terminal tty1, tty6, tty5, tty4, tty3 (z powrotem do punktu wyjścia). Ten sam rezultat moglibyśmy osiągnąć naciskając jeszcze jeden raz ALT- Powyższe skróty (ALT- ALT- nie działają niestety pod iksami, w iksach mają one inne znaczenie. Do przełączenia konsoli, gdy aktywne są iksy, używamy kombinacji lewy ALT-CTRL- o działaniu odpowiadającym kombinacji lewy ALT- w konsolach tekstowych. Uwaga: kombinacja ALT-CTRL- nie może być używana w ten sposób. Dostęp do konsoli o dużych numerach (np. tty25, tty26) jest tylko przez ALT-. Problem z przełączaniem konsoli pojawia się, gdy mamy równocześnie wiele sesji iksów. Wprawdzie taka sytuacja nie zdarza się w praktyce nigdy (iksy + KDE to grubo ponad 20 MB ramu), ale niespójność systemu dostępu do odpowiednich terminali jest trochę irytująca.

32 Każdy terminal, zanim może być użyty, musi być otwarty. Służą to tego programy z rodziny getty. Sam getty (/sbin/getty) jest dosyć mocnym programem i może być używany do otwierana konsol wirtualnych jak i innych terminali (np. połączonych portem szeregowym). Dlatego używa się przeważnie jego uproszczonych, wyspecjalizowanych klonów: mingetty do otwierania konsol wirtualnych, mgetty do modemów i innych. mingetty jest uruchamiany przez inita. W standardowym RedHacie init uruchamia mingetty'a sześciokrotnie. Fragment pliku /etc/inittab: 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 Jeżeli mamy potrzebę użycia większej ilości terminali (konsol), to należy dopisać odpowiednie wywołania mingetty'a, np.: 11:2345:respawn:/sbin/mingetty tty11 12:2345:respawn:/sbin/mingetty tty12Uwaga! Niektóre dystrybucje nie mają urządzeń specjalnych w katalogu /dev/ reprezentujących wyższe numery terminali (tty13-tty24), nie mówiąc już o terminalach o jeszcze wyższych identyfikatorach. Tak jest w RedHacie. Należy wówczas (tylko gdy jest taka potrzeba, czyli nieczęsto) dodać te urządzenia ręcznie, np. komendą mknod: mknod /dev/tty12 c 4 12 mknod /dev/tty13 c 4 13 mknod /dev/tty14 c 4 14 Dopiero wtedy wrzucamy konfigurację do inittaba i możemy się cieszyć prawym ALT-Fn. Terminale otwierane są również przez iksy (X-serwer jest związany z jakimś określonym terminalem). Iksy wchodzą nam na pierwszy wolny terminal (z wyjątkiem "zarezerwowanego" tty1) : w przypadku standardowych dystrybucji 6-cio terminalowych jest to terminal siódmy (tty7). Tak jest w przypadku uruchamiania Linuksa w runlevelu 5-tym, jak i w przypadku ręcznego uruchamiania iksów komendą startkde, startx itp. Teoretycznie, gdyby żaden z terminali nie był inicjowany przez inita, iksy pakowałyby się na terminal drugi (tty2). W przypadku, gdy wszystkie dostępne terminale są już zajęte (otwarte przez konsolowego mingetty'a lub otwarte przez inne sesje iksów) X-server wyjdzie z błędem "Could not open /dev/ttyXX". Wtedy należy użyć komendy mknod do stworzenia urządzenia wirtualnego /dev/ttyXX. Iksy dobrze się czują również na wysokich numerach terminali (np. tty30), dostęp jednak do nich jest trochę utrudniony (wielokrotne ALT- ).

33 "Naprawianie" terminali wirtualnych Czasami terminal zostaje "zepsuty" (np. przez próbę wyświetlenia pliku binarnego za pomocą komendy cat). "Zepsucie" objawia się zwykle poprzez niezrozumiałe znaki na terminalu (lub brak wyświetlania czegokolwiek). Spowodowane jest zmianą pewnych parametrów terminala. Naprawienie polega na wpisaniu komendy: stty sane lub reset (działanie obu komend jest w tym przypadku identyczne). W trakcie wpisywania komendy nie należy zwracać uwagi na to, że znaki komendy nie są wyświetlane lub wyglądają niezrozumiale (i tak powinna przynieść skutek). Jeżeli jednak nie pomoże, może to oznaczać, że terminal został zablokowany. Zablokowanie to następuje zazwyczaj po naciśnięciu CTRL-S i łatwo je zrobić przypadkowo. Żeby odblokować terminal, należy zwykle nacisnąć CTRL-Q.

34 SSH SSH (ang. secure shell) to standard protokołów komunikacyjnych używanych w sieciach komputerowych TCP/IP, w architekturze klient-serwer. W ścisłym znaczeniu SSH to tylko następca protokołu Telnet, służącego do terminalowego łączenia się ze zdalnymi komputerami. SSH różni się od Telnetu tym, że transfer wszelkich danych jest zaszyfrowany oraz możliwe jest rozpoznawanie użytkownika na wiele różnych sposobów. W szerszym znaczeniu SSH to wspólna nazwa dla całej rodziny protokołów, nie tylko terminalowych, lecz także służących do przesyłania plików (SCP, SFTP), zdalnej kontroli zasobów, tunelowania i wielu innych zastosowań. Wspólną cechą wszystkich tych protokołów jest identyczna z SSH technika szyfrowania danych i rozpoznawania użytkownika. Obecnie protokoły z rodziny SSH praktycznie wyparły wszystkie inne "bezpieczne" protokoły, takie, jak np. rlogin czy RSH. Ogólne założenia protokołu SSH powstały w grupie roboczej IETF. W użyciu są obie jego wersje - 1 i 2. W wersji 2 możliwe jest użycie dowolnych sposobów szyfrowania danych i 4 różnych sposobów rozpoznawania użytkownika, podczas gdy SSH1 obsługiwało tylko stałą listę kilku sposobów szyfrowania i 2 sposoby rozpoznawania użytkownika (klucz RSA i zwykłe hasło). Stosowanie wersji 1 jest obecnie stanowczo odradzane ze względu na ujawnione podatności na ataki man-in-the-middle, czyniące korzyści ze stosowania protokołu znikomymi. Najczęściej stosowany sposób szyfrowania to AES, choć część serwerów nadal używa szyfrowania Blowfish i technik z rodziny DES. Rozpoznawanie użytkownika może się opierać na tradycyjnym pytaniu o hasło, klucz (RSA, DSA) lub z użyciem protokołu Kerberos. Trzy najbardziej znane implementacje SSH to zamknięte ssh.com, OpenSource'owe OpenSSH oraz wersja protokołu stosowana w programie PuTTY. Protokoły z rodziny SSH korzystają zwykle z portu 22 protokołu TCP, choć często stosuje się porty o innych numerach w celu zwiększenia bezpieczeństwa serwera. Sama rodzina SSH znajduje się w warstwie aplikacji modelu OSI, ale do połączenia korzysta z protokołu TCP.

35 Składnia Linux Składnia ssh (FC4): Składnia sshd (FC4): Przykładowe użycie Aby połączyć się ze zdalnym komputerem wystarczy wydać polecenie: ssh opcjonalnie można podać numer portu: ssh -p np: ssh -p 80 Aby włączyć tunelowanie należy użyć składni: ssh -L 8888:localhost:80 Aby przetunelować sesję protokołu X należy wykonać polecenie: ssh -X

36 TERMINAL Bardzo ważną cechą systemów uniksowych jest rozdzielenie systemu, czyli procesów wykonujących zadania, od interfejsu. Dotyczy to nie tylko interfejsu graficznego, ale także i tekstowego. Jądro Linuks ma zaimplementowaną emulację terminali. Historycznie terminale były to komputery o minimalnych możliwościach obliczeniowych i bez własnej pamięci masowej, ale z monitorem i klawiaturą. Za pomocą tych terminali można było sterować główną jednostką obliczeniową. Taki podział był spowodowany m.in. przez bardzo wysoką cenę komputerów w tamtym czasie, i umożliwiał pracę na wielu stanowiskach, z użyciem tylko jednego komputera. Obecnie wbudowana obsługa terminali w GNU/Linuksie umożliwia zarówno zdalną pracę (np. zdalną administrację serwerem), jak i wykorzystanie wielozadaniowości systemu także w środowisku tekstowym (uruchomienie wielu terminali odpowiada funkcjonalnie otwarciu wielu okien, gdzie w czasie gdy jeden program jest zajęty i nie odpowiada, możemy pracować w innym). Taka budowa ma również skutki dla twórców oprogramowania - umożliwia to napisanie aplikacji która nie ma praktycznie interfejsu, tylko komunikuje się z użytkownikiem za pomocą wypisywanych linijek tekstu, a użytkownik wpisuje polecenia. Kiedy chcemy mieć aplikację, która wykonuje dokładnie to samo zadanie, ale ma prostszy interfejs, np. wybór wykonywanej akcji z menu, można napisać po prostu nakładkę na nasz pierwotny program, i jego wyjście i wejście przekierować do tej nakładki, zamiast na ekran (czyli terminal).

37 Poruszanie się po terminalach W większości dystrybucji jest standardowo 6 terminali uruchamianych - od numeru 7 wzwyż znajdują się środowiska graficzne w kolejności uruchamiania. Terminale mają nazwy ttyliczba, np. tty1 - pierwszy wirtualny terminal. Do poruszania się pomiędzy terminalami dostępnych jest kilka skrótów klawiszowych: LewyAlt + StrzałkaWPrawo - przechodzimy do terminala o wyższym numerze (np. z 2. na 3.) LewyAlt + StrzałkaWLewo - przechodzimy to terminala o niższym numerze; jeżeli jesteśmy na 1. terminalu, to przejdzemy na ostatni (np. 7.), podobnie w pierwszym przypadku LewyAlt + Fn, gdzie n to numer terminala, na który chcemy przejść (np. LewyAlt+F1 przenosi nas na pierwszy terminal). Natomiast w środowisku graficznym te skróty nieznacznie się różnią: kombinacja LewyAlt + strzałka, nie działa Ctrl + LewyAlt + Fnumer_terminala - przechodzimy do terminala o podanym numerze. Wirtualne terminale inaczej określa się jako "wirtualne konsole".

38 Logowanie, aktywowanie interfejsu użytkownika i wylogowywanie Wprowadzenie Aby móc pracować w systemie Linuks musisz posiadać konto użytkownika oraz hasło do niego. Zawsze musisz się uwierzytelniać się w systemie. Większość systemów linuksowych na komputery klasy PC posiada dwa podstawowe tryby w których można je uruchamiać: szybki i skromny tryb tekstowy, który wygląda jak DOS z myszką, wielowątkowy oraz obsługujący wielu użytkowników, albo tryb graficzny, który wygląda lepiej, lecz pożera więcej zasobów systemowych.

39 Tryb graficzny W dzisiejszych czasach jest to domyślny tryb w komputerach domowych. Wiesz, że zostaniesz zalogowany do systemu pracującego w trybie graficznym, gdy pierwszy raz zostajesz poproszony o nazwę użytkownika, a następnie, w nowym oknie, o hasło. Aby się zalogować, upewnij się, że wskaźnik myszy znajduje się w okienku logowania, wpisz swoją nazwę użytkownika oraz hasło i kliknij OK lub naciśnij ENTER. Może minąć trochę czasu, zanim, po wpisaniu kombinacji nazwa użytkownika/hasło, uruchomi się graficzne środowisko; zależy to od tego jak szybki masz procesor, jakiego używasz oprogramowania oraz jakie masz ustawienia osobiste. Aby kontynuować będziesz musiał otworzyć okno terminala, w skrócie xterm (X poprzedza nazwę dla podkreślenia możliwości użycia tego oprogramowania w trybie graficznym). W zależności od tego, jakiego menedżera okien używasz, program ten może zostać znaleziony w menu Aplikacje -> Usługi, Narzędzia systemowe lub Internet. Może istnieć także ikona skrótu, użycie której spowoduje otwarcie terminala, a kliknięcie prawym przyciskiem myszki na pulpicie zazwyczaj wywoła menu kontekstowe, które na pewno posiada możliwość uruchomienia terminala graficznego.

40 Podczas przeglądania menu zauważysz, że wiele rzeczy można zrobić bez wpisywania poleceń z klawiatury. Dla większości użytkowników, dobra, stara metoda wskaż-i-kliknij całkowicie wystarczy do pracy z komputerem. Jednak ten poradnik przeznaczony jest dla przyszłych administratorów sieciowych oraz systemowych, którzy będą musieli grzebać w sercu systemu. Oni, aby sprostać wszystkim zadaniom jakie ich czekają, potrzebują silniejszego, niż myszka, narzędzia. Tym narzędziem jest powłoka, a, będąc w trybie graficznym, aktywujemy ją otwierając okno terminala. Okno terminala jest twoim panelem kontrolnym systemu. Prawie wszystko o czym mówimy jest wykonywane za pomocą tego prostego, tekstowego narzędzia. Gdy otworzysz okno terminala zawsze powinien znajdować się w nim znak zachęty. Nasz pokazuje standardowy znak zachęty, który składa się z nazwy użytkownika oraz aktualnego katalogu roboczego reprezentowanego przez tyldę (~):

41 Tryb tekstowy Gdy zobaczysz czarny ekran na którym widać (najczęściej) białe znaki, oznacza to, że jesteś w trybie tekstowym. Ekran logowania w tym trybie zazwyczaj pokazuje kilka informacji o komputerze na którym pracujesz, jego nazwę oraz znak zachęty oczekujący na twoje zalogowanie. Logowanie w tym trybie różni się od logowania w trybie graficznym tym, że tutaj musisz nacisnąć ENTER po podaniu nazwy użytkownika, ponieważ na ekranie nie ma przycisków, które mógłbyś kliknąć. Następnie powinieneś wpisać hasło i ponownie nacisnąć ENTER. Nie będziesz widział, co wprowadzasz, nie zobaczysz nawet gwiazdek czy poruszającego się kursora. Takie zachowanie jest normalne i jest stosowane ze względów bezpieczeństwa. Gdy zostaniesz zalogowany, na ekranie możesz zobaczyć więcej informacji, nazywanych Wiadomością Dnia, która może zawierać dowolne informacje. Dodatkowo, w systemie UNIX popularne jest wyświetlanie podpowiedzi, które zawierają pewne przydatne lub nieprzydatne (to zależy od ciebie) informacje. Następnie zostanie przydzielony ci shell, wskazywany przez taki sam znak zachęty jak w trybie graficznym.

42 System uwierzytelniania w systemie Linux Jednym z podstawowych elementów bezpieczeństwa systemu Linux jest identyfikacja użytkowników i weryfikacja ich tożsamości. Tradycyjne mechanizmy identyfikacji użytkowników wykazują pewne ograniczenia. W celu zwiększenia elastyczności oraz uniknięcia niespójności, w systemie Linux wprowadzono dość rewolucyjne rozwiązanie, którym jest system PAM, opracowany przez.firmę SunSoft.. Jest on w stanie zastąpić tradycyjne metody autentykacji użytkowników.

43 Linux-PAM (ang. Pluggable Authentication Modules for Linux) to zestaw bibliotek dzielonych, umożliwiających administratorowi lokalnego systemu wybranie dla każdej aplikacji sposobu autentykacji użytkownika. Innymi słowy, możliwe jest przełączanie pomiędzy różnymi mechanizmami uwierzytelniania bez konieczności ponownej kompilacji aplikacji, a tym bardziej bez ponownego jej programowania. Dodatkowo, możliwe jest wprowadzanie ulepszeń do mechanizmów autentykacji bez jakichkolwiek zmian w aplikacjach korzystających z tych mechanizmów. Elastyczność Linux-PAM polega na tym, że administrator ma wybór sposobu uwierzytelniania użytkowników dla danej aplikacji. Może ustawić dla każdej aplikacji korzystającej z Linux-PAM inny mechanizm autoryzacji, poczynając od trywialnej autoryzacji poprzez hasło, a kończąc na autoryzacji poprzez głos, linie papilarne, jednorazowe hasło lub cokolwiek innego, co zostanie wymyślone. Aby aplikacja mogła używać Linux-PAM, jego funkcje muszą być bezpośrednio zakodowane w programie. Aby zastosować uwierzytelnianie do systemu Linux za pomocą tokenów należy skorzystać z modułu PAM: Pam- PKCS#11. Pam-PKCS#11 jest modułem PAM umożliwiającym logowanie się do systemu Linux przy użyciu kart inteligentnych. Moduł ten korzysta z biblioteki obsługującej karty w standardzie PKCS#11 (np. OpenSC lub eToken PKI Client),co uniezależnia moduł od modelu karty. Moduł Pam-PKCS#11 uwierzytelnia użytkownika na podstawie certy.katu X.509. Podpisany przez urząd certyfikacji certyfikat wraz z odpowiadającym mu kluczem prywatnym znajdują się na karcie (tokenie). Dostęp do certyfikatu użytkownika znajdującego się na karcie umożliwia biblioteka PKCS#11. Uwierzytelnianie działa podobnie jak podpis elektroniczny. Za pomocą klucza prywatnego, który znajduje się na karcie i dostępny jest tylko właścicielowi karty, podpisywane są pewne dane losowe. Następnie przy użyciu certyfikatu klucza publicznego, który również znajduje się na karcie weryfikowany jest owy podpis. W celu weryfikacji wiarygodności certyfikatu klucza publicznego, wykorzystywany jest certyfikat urzędu certyfikacji CA, który znajduje się lokalnie w systemie lub jest zagwarantowany do niego dostęp online oraz lista CRL. Aby umożliwić zalogowanie się do systemu właściciela certy.katu jako konkretnego użytkownika, moduł Pam-PKCS#11 wykorzystuje porównywanie (tzw. mapowanie) niektórych pól z certy.katu do opisu konta użytkownika. Pola te są wybierane w zależności od konfiguracji.

44 Wykorzystanie cech powłoki (shella) bash podczas pracy Linux udostepnia wiele rodzajów interpretatorów polecen: shell Bournea (sh) shell C (csh) Bourne Again Shell (bash) shell (tcsh) który wyparl (csh) Przeglad cech powloki systemowej, interpretatora polecen

45 komunikat systemu oznacza, ze jestesmy zalogowani jako administrator na komputerze dom. Symbol # oznacza gotowosc do pracy i tu wpisujemy wszelkie polecenia polecenie: whoami oznacza zapytanie o nazwe uzytkownika pod jaka aktualnie pracuje i jest nim root polecenie: who efektem bedzie lista aktualnie zalogowanych uzytkowników na naszym komputerze polecenie: di i uderzenie klawisza tabulacji (tab) spowoduje wylistowanie wszystkich polecen do których mamy prawo i zaczynajacych sie na di. Jest to jedna z niezmiernie uzytecznych cech powloki systemowej przy pracy z poziomu konsoli tekstowej i jest to dopelniania komend. Dwukrotne uderzenie klawisza tabulacji (tab) spowodowalo pytanie: Display all 3102 possibilities? (y or n). Zapytanie czy wylistowac wszystkie 3102 polecenia, które mam prawo wykonac.

46 1. Polecenia maja opcje: długie –help pelna nazwa poprzedzona dwoma myslnikami np. ls --help krótkie -l jedna litera poprzedzona myslnikiem np. ls -l 2. Powloka zawiera podrecznik (manual) liczacy okolo 6 tys. wierszy, którym poslugujemy sie z pomoca polecenia: man [opcje] nazwa polecenia np. man man- w wyniku uzyskamy pomoc jak poslugiwac sie podrecznikiem man ls - uzyskamy pierwsza napotkana strone podrecznika odnoszaca sie do polecenia ls man -a ls- prezentuje kolejne strony podrecznika odnoszace sie do polecenia ls man -s 5 ls- prezentuje strone podrecznika z sekcji 5 odnoszace sie do polecenia ls man -k ls - prezentuje nazwe i krótki opis zagadnienia dotyczacy polecenia lsapropos ls- krótki opis zagadnienia ls 3. Wygodna w pracy z konsola jest funkcja dopelniania komend oznacza nacisniecie klawisza tabulacji lub oznacza nacisniecie klawisza y - (dwukrotne uderzenie ) spowoduje wyswietlenie pytania czy chcemy uzyskac wszystkie polecenia systemu do których mamy prawo. y/n np. cd /u np. cd (tab)(tab) drugi (tab) wyswietli wszystkie mozliwie polecenia do których mam prawo. Nie dopelnia jesli nie pozwalaja na to prawa np. tr(tab)(tab)

47 4. historia komend (kursory góra, dól) przechowywana w ukrytym pliku.bash_history katalogu domowym uzytkownika - mozna usunac, jesli okaze sie zbyt duzy. Polecenie clear czysci zawartosc konsoli przesuwajac jej zawartosc w góre 5. Mechanizm definiowania aliasów mozna definiowac polecenia alias nazwa=która komenda ma sie wykonywac i z jakimi parametrami np. alias dir='ls -l' teraz dir spowoduje przeglad katalogu alias cs='clear' cs oznacza czyszczenie ekranu i ich usuwania przez unalias cs wiele z aliasów definiowanych jest w pliku konfiguracyjnym /etc/profile

48 6. Zmienne srodowiskowe sa interpretowane po ustaleniu ich wartosci, pozwalaja na modyfikacje systemu w tzw. locie env - wydruk listy zmiennych srodowiskowych echo $PS1- wydruk wartosci zmiennej PS1 odpowiadajacej za forme zgloszeniaecho $PATH- wydruk wartosci zmiennej okreslajacej sciezki przeszukiwan w przypadku uruchamiania programuUstalanie wartosci zmiennych srodowiskowych np. > - zmiana wartosci odpowiedzialnej za forme zgloszenia Spis i znaczenie parametrów dla PS1 \u -nazwa uzytkownika \h- nazwa komputera \w -nazwa aktualnego katalogu ze sciezka dostepu \W- nazwa aktualnego katalogu \d - aktualna data \v-wersja powloki \$-znak uzytkownika (# dla administratora, $ dla zwyklego uzytkownika) \t -czas (24h) \T -czas (12h)

49 inne zmienne srodowiskowe to: HOME katalog domowy SHELL domyslny shell (powloka) System posiada mechanizm eksportu wartosci zmiennych srodowiskowych z lokalnych na globalne poprzez: export PAGER spowoduje, ze wartosc przyslania inne wartosci tej zmiennej dla innych uzytkowników, staje sie globalna Ustawienia wartosci zmiennych srodowiskowych dokonuje sie w pliku konfiguracyjny powloki /etc/profile - odczytywany na poczatku startu i czytanym nieco pózniej plikach ~/bash_profile, ~/.bash_login i ~/.profile umieszczonych w katalogu domowym uzytkownika, gdzie ~ (tylda) oznacza katalog domowy uzytkownika np. /home/yoga zmienna UMASK sluzy okresleniu domyslnych praw do wszystkich nowo tworzonych plików i katalogów jako róznicy 777 i umask umask sparwdzenie wartosci lub umask 022 wszystkie nowo tworzone pliki beda mialy prawo dostepu 755 mozna wyspecyfikowac inna wartosc istnieje odpowiedni wpis w pliku /etc/profile okreslajacy wartosc zmiennej

50 7. Przekierowanie strumieni >, >>, przeglad.txt domyslnie wynik polecenia ls czyli przeglad katalogu kierowany jest na ekran natomiast tu zostanie skierowany do pliku przeglad.txt cat oczekuje na tekst z klawiatury cat > lista.txtpobiera dane z klawiatury i do pliku cat < przeglad.txtpobiera dane z pliku i przesyla na ekran more lista.txt wydruk na ekran ls -l | cat wyjscie jest jednoczesnie wejsciem ls -l | less filtr, nastapi przekierowanie do programu i dopiero na ekran 8. Wyrazenia regularne dwa symbole globalne * i ?, gdzie * zastepuje dowolny ciag znaków ? zastepuje dokladnie jeden znak mozna tez okreslac zakres wartosci znaku [1-3] dopuszczalne wartosci znaku od 1 do 3 [a-k] dopuszczalne wartosci znaku od a do k maja zastosowanie np.: przy przegladanie katalogów, kopiowaniu, kasowaniu plików grupami np.: ls -l [a-e]* wylistuja sie nazwy gdzie pierwszym znakiem w nazwie sa litery od a do e, reszta dowolnals - l [a-g][1-4]* wylistuja sie nazwy gdzie pierwszym znakiem w nazwie sa litery od a do g, drugim znakiem cyfry od 1 do 4, reszta dowolna

51 Procesy w SO Linux Z systemami unixowymi związane jest pojęcie procesu. W takim ujęciu proces rozumiany jest jako wykonywany w systemie program. Każdy proces charakteryzuje się pewnymi atrybutami : *przestrzeń adresowa, *licznik programu, *licznik stanu, * licznik rejestru, * deskryptory pliku (unikalny identyfikator pliku wykorzystywany przez system operacyjny) * dane procesu * zależności rodzinne *liczniki statyczne Wynikiem obecności w systemie procesów jest to, że jądro systemu może nim sterować tak i może go ustawić w kilku stanach : *pracujący w trybie użytkownika (proces znajduje się na procesorze i wykonuje kod), * pracujący w trybie jądra (jądro wykonuje wywołanie systemowe, wykonane przez proces) * uśpiony (proces czeka na jakieś zdarzenie, np. na odczyt danych z dysku lub otrzymanie danych z sieci) * gotowy do wykonania (może być uruchomiony w każdej chwili, jednak nie ma jeszcze * przydzielonego procesora) *zombie (proces zakończył działanie i czeka na odebranie kodu powrotu przez proces macierzysty), Podstawowym poleceniem do zarządzania procesami przez użytkownika jest : psps ps [-] [lujsvmaxscewhrnu] [txx] [0 [+/-] k1 [[+/-] k2 …]] [pids] l - długi format u - format użytkownika podaje nazwę użytkownika czas start m - wyświetla informacje o pamięci f - format drzewiasty a - pokaż także procesy innych użytkowników r - tylko pracujące procesy

52 np. ps –ax – wyświetla wszystkie procesy pstree – wyświetla drzewo procesu w systemie Aby zobaczyć wszystkie procesy w systemie, używając standardowej składni: ps -e ps -ef ps -eF ps -ely Aby wypisać drzewo procesów: ps -ejH ps axjf Aby wyświetlić informację o wątkach: ps -eLf ps axms Aby wyświetlić informacje związane z bezpieczeństwem: ps -eo euser,ruser,suser,fuser,f,comm,label ps axZ ps –eM Aby zobaczyć wszystkie procesy poza tymi działającymi jako root(rzeczywiste i efektywne ID): ps -U root -u root -N Aby wyświetlić wszystkie procesy w formacie zdefiniowanym przez użytkownika: ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm ps -eopid,tt,user,fname,tmout,f,wchan W wielu przypadkach zachodzi potrzeba usunięcie przez użytkownika procesu z systemu UNIX. Użytkownik ma takie prawo w stosunku do swoich procesów natomiast użytkownik root do wszystkich.

53 Polecenia do tego służące mają następującą składnię : kill [-s sygnał /-p] [-a] pid … np. Pozwala ono wysyłać sygnały do procesów (można używać nazw sygnałów lub ich numerów): kill -l - wyświetla dopuszczalne nazwy sygnałów kill -kill wysłanie sygnału SIGKILL do procesu z pid=1234 kill to samo wyżej, bo SIGKILL ma nr 9 kill -int wysłanie sygnału SIGINT do procesu z pid=1234 kill to samo wyżej, bo SIGINT ma nr 2 Można wysyłać sygnał do większej liczby procesów np : kill -kill 0 - wysyła sygnał do wszystkich procesów w grupie procesów procesu wysyłającego kill -kill do dwóch procesów o podanych pid-ach Inne przykłady : kill kill killall –KILL tree - zakończenie procesu killall –HnP tree – restart procesu PID – identyfikator procesu TTY – terminal TIME – łączny czas procesora w formacie dd-hh:mm:ss CMD - polecenie (wraz z parametrami), które spowodowało uruchomienie procesu

54 USER – identyfikator użytkownika będącego właścicielem procesu % CPU – procentowe zużycie procesora przez proces % MEM – procent użycia pamięci operacyjnej przez czas VS2- rzeczywisty rozmiar procesu w kilobajtach RSS - ilość fizycznej pamięci używanej przez proces STAT – status procesu START - czas uruchomienia procesu kill - wysyłanie sygnału TERM do procesu o numerze identyfikacyjnym PID Kill - -wysyłanie wskazanego procesu sygnału o podanym numerze kill – l – zwraca nazwy i numer sygnałów kill – l - zwraca nazwę sygnału o podanym numerze kill Zabicie wszystkich procesów, które można zabić Proces o PID= -1 oznacza wszystkie procesy które wolno zabić poza procesem kill killall : -g- Zabija grupę procesów, do której należy podany proces –i- Pyta o zgodę przed zabiciem każdego procesu –v- Wypisuje komunikat o każdym udanym wysłaniu sygnału –w- Czeka aż zabite zostaną wszystkie wskazane procesy Może czekać bez końca jeśli proces zignorował sygnał lub przeszedł do stanu zombie np. killall –v mozilla

55 Zalety LINUXA Zalety Linuxa będą niemal identyczne jak systemu UNIX, gdyż jest on jego uboższym odpowiednikiem: 1. Tak jak i UNIX, Linux jest systemem wielozadaniowym jak i wileoużytkowym bitowość 3. pamięć wirtualna (może wykorzystywać całość pamięci RAM, nie ma ograniczenia do 640k) 4. całkowita kompatybilność z X Window (standardowy graficzny, unixowy interfejs użytkownika 5. obsługę oprogramowania GNU (rozprowadzany wraz z duża ilością darmowych programów unixowych z biblioteki Projektu GNU) Linux jest alternatywą w świecie komercyjnych systemów operacyjnych. Jest uderzającym ciosem w komercyjne cesarstwo. Linux doskonałym, a co najważniejsze darmowym systemem operacyjnym.

56 Zalety UNIXa. Najważniejszymi zaletami UNIX\'a jest wielozadaniowość i wieloużytkowość. Wielozadaniowość oznacza, że użytkownik może wykonywać wiele zadań równocześnie, a co za tym idzie pracować bardziej efektywnie. Druga cecha: wieloużytkowość daje możliwość korzystania z zasobów komputera więcej niż jednej osobie, co wspomaga pracę grupową bez ponoszenia dużych kosztów zakupu pojedynczych komputerów. UNIX jest takim ważnym systemem ponieważ można go uruchomić na prawie każdym komputerze (w przeciwieństwie do Windows NT). Istnieje wiele wersji systemu UNIX dla różnych typów komputera: począwszy od komputerów osobistych (IBM PC i Macintosh) poprzez komputery średniej wielkości (VAX firmy DEC) aż do superkomputerów firmy Cray. W praktyce są tylko dwa komputery, na których niemożliwe jest uruchomienie tego systemu: starsze modele PC (np. PC XT) i systemy komputerowe do zadań specjalnych (np. AS/400).

57 Chyba najważniejszą jego zaletą jest przede wszystkim darmowy dostęp do samego systemu operacyjnego jak i dużej liczby przeznaczonych dla niego aplikacji. Dostępność darmowego oprogramowania serwerów WWW, FTP i poczty elektronicznej sprawia że możliwe jest stworzenie serwera internetowego przy wydatkach jedynie na sprzęt oraz połączenie z Internetem. Przy tym możliwość o wiele elastyczniejszej konfiguracji niż w przypadku systemów np. firmy Microsoft sprawia że taki system ma o wiele mniejsze wymagania sprzętowe niż równoważna instalacja oparta np. na Windows NT. Kolejną zaletą takich rozwiązań jest ich duża stabilność: wiele instalacji wykorzystujących te systemy może działać w sposób nie wymagający interwencji użytkownika latami, a nawet dość poważne zmiany konfiguracji systemu nie wymagają jego restartowania - nie wprowadzając tym samym zakłóceń w codziennej pracy, podczas gdy niewiele systemów działających w oparciu o Windows NT może się poszczycić nieprzerwaną pracą dłuższą niż 1 rok a nawet najmniejsza zmiana w konfiguracji systemu wymaga jego restartu tym samym zaburzając pracę wszystkich użytkowników korzystających z sieci. Serwer sieci lokalnej Wcale nie trzeba mieć połączenia z siecią Internet żeby w pełni wykorzystać zalety z posiadania darmowego systemu operacyjnego. Zarówno Linux jak i FreeBSD posiadają pakiety umożliwiające emulację podstawowych funkcji zarówno Windows NT jak i Novell Netware (m. in. udostępnianie plików oraz drukarek), co daje nie tylko możliwość stworzenia darmowego wariantu komercyjnego serwera sieciowego ale również pozwala połączyć w jednym serwerze funkcje zarówno Windows NT jak i Novell Netware przez co stacje robocze bez względu na to z jakiego protokołu korzystają mogą mieć dostęp do tych samych zasobów.

58 Usługi uruchamiane ze startem systemu: Bezwzględnie - potrzebne do prawidłowego działania komputera i systemu: alsasound - Ładuje sterowniki ALSA i przechowuje/przywraca aktualne ustawienia miksera. Podsystem dźwięku, lepiej nie wyłączaj. dbus - DBus jest systemem do komunikacji między programami. Nie wyłączaj! haldaemon - Hal jest demonem przechowującym informacje o konfiguracji sprzętu. Nie wyłączać, jeżeli chcesz aby wszystko poprawnie działało. kbd - Ustawienia klawiatury Nie wyłączać. policykitd Struktura definiująca politykę dla komponentów systemu oraz dla części pulpitu. Jest to element używany przez HAL. resmgr Menadżer zarządzania urządzeniami np. terminal emulators, nagrywarki CD, skanery, midi playery. Domyślnie włączony. rpasswdd - Demon programu sprawdzającego poprawność pliku passwd. Nie wyłączać. syslog - Demon programu "wyrzucający" na konsole i do pliku informacje o pracy systemu. Nie wyłączać !! Podstawowe narzędzie do kontroli pracy systemu. xdm - Obsługa X-serwera Podczas uruchamiania podnosi się środowisko graficzne np. KDE, GNOME, Nie wyłączaj! xfs - Serwer czcionek systemu graficznego. Lepiej nie wyłączać, chyba, że domyślnie jest inaczej.

59 Zależne od sprzętu - jeśli masz laptopa, drukarkę, dżojstik usługi muszą być włączone: acpid - Demon ACPI - (ang. Advanced Configuration and Power Interface) - standard zarządzania energią opracowany przez firmy Intel, Micro$oft i Toshiba, który znacznie zwiększa możliwości oferowane przez APM. ACPI ustala jak BIOS, system operacyjny i urządzenia komunikują się nawzajem w sprawie poboru energii. Jeżeli nie używasz laptopa i procesorów z funkcją oszczędzania energii, możesz usługę wyłączyć. Jeśli masz laptopa musisz to koniecznie włączyć będzie dłużej pracował na bateriach. cups - Demon wydruku (tu komputer pełni role serwera plików i drukarek). Jeżeli nie masz drukarki, usługę możesz wyłączyć w innym wypadku włącz. evms - obsługa macierzy EVMS Domyślnie wyłączony. irq_balancer - Demon sterujący przerywaniami platformy wieloprocesorowej (dual core, quad core). Jeżeli nie masz procesorów wielordzeniowych - możesz wyłączyć w innym wypadku włącz. joystick - sterowniki dla dżojstika Jeżeli nie masz dżojstika, wyłącz w innym wypadku włącz. mdadmd - Demon monitorujący macierze raid1, raid5. Domyślnie wyłączony. microcode - Uaktualnia funkcje procesorów Intel'a Jeżeli używasz procesor inny niż firmy Intel - można wyłączyć ta usługę.

60 network - Obsługa sieci, konfiguracja interfejsów i routingu. Jeżeli nie masz dostępu do żadnej sieci - możesz wyłączyć. nfs - NFS to usługa pozwalająca udostępniać zasoby dyskowe komputerom w sieci. Serwer udostępnia katalogi klientom, którzy mogą je podmontować i działać jak na lokalnym systemie plików. Domyślnie włączone, ale jak nic nie chcesz udostępniać, możesz wyłączyć. nfsboot - usługa uruchamiana wraz z nfs. Jak wyłączysz nfs, automatycznie wyłącza się nfsboot. nfsserver Uruchomienie serwera NFS. Domyślnie wyłączona. nscd - Name service cache daemon. Jeśli nie używasz komputera w roli serwera, można wyłączyć. Domyślnie wyłączony. openct - Włączenie obsługi kart chipowych - smart card. Domyślnie wyłączony. pcscd - Demon przechowujący informacje o kartach chipowych. Domyślnie wyłączony. powerd - Włącza monitoring UPS. Jeżeli nie masz tego typu urządzeń,które magazynują prąd aby możliwe było dokończenie np. edycji dokumentów i bezpieczne wyłączenie systemu i komputera upewnij się, że usługa jest wyłączona. powersaved - Funkcja zarządzania energią. Jeżeli nie używasz laptopa i procesorów z funkcją oszczędzania energii, możesz wyłączyć w innym wypadku włącz. portmap - Portmap RPC jest serwerem, który zamienia numery programowe RPC na numery portów protokołu TCP/IP (albo UDP/IP). Potrzebne jeżeli chcesz skonfigurować NIS, jezeli nie, możesz wyłączyć. raw - Obsługa tzw. surowych partycji (RAW) saslauthd - Cyrus-SASL (Simple Authentication and Security Layer) - metoda uwierzytelniania użytkownika wykorzystywana w protokole SMTP. Celem stosowania SASL (SMTP AUTH) jest umożliwienie wysyłania poczty poprzez serwer pocztowy, wyłącznie uprawnionym użytkownikom. Uwierzytelnienie polega na tym, że podobnie jak w przypadku pobierania poczty z serwera (POP3), użytkownik autoryzuje się podając swój identyfikator i hasło. Jeżeli nie masz zainstalowanego Postfixa, nie włączaj. smartd - Włącza funkcje S.M.A.R.T. który bada stan dysku w czasie uruchomienia komputera. Może się przydać smppd - Włącza smppd dla połączeń dial-up Nie korzystasz modemu, wyłącz snmpd - Simple Network Management Protocol (SNMP) standard protokołu używanego do nadzoru i zarządzania różnymi elementami sieci komputerowych takimi jak routery, przełączniki, komputery.

61 Twój wybór - usługi opcjonalne: earlykdm - Szybki start menadżera X-ów earlysyslog - Szybszy start usługi logowania do systemu. fbset - Framebuffer - bufor ramki, pozwala zwiększyć rozdzielczość konsoli ze standardowej 640x480 na większą. Zaletą tego rozwiązania jest "zaoszczędzenie" miejsca na monitorze dzięki czemu widzimy znacznie więcej niż przy trybie 80 na 25 znaków. Nie wyłączaj jeżeli chcesz aby Twój terminal tekstowy ładniej wyglądał cron - Program sterującym zadaniami w czasie. Jeżeli komputer nie pełni roli serwera, na którym muszą być wykonywane co jakiś czas określone procesy/procedury oraz jeśli nie masz procesora z funkcją oszczędzania energii, można wyłączyć. idmapd Włączenie mapowania NFSv4. Domyślnie wyłączony. ksysguard - Ksysguard jest menedżerem procesów i monitorem wydajności systemu dla KDE. Potrafi monitorować zarówno lokalny jak i zdalne komputery. Ksysguard otrzymuje informacje z tak zwanych czujników. Domyślnie wyłączony. lm_sensors Wykorzystuje czujniki obecne na współczesnych płytach głównych aby wyświetlić informacje o temperaturze, napięciach jak i ilości obrotów wiatraczka. Konfiguracja znajduję się w /etc/sysconfig/lm_sensors. Domyślnie wyłączony. ntp - Network Time Protocol to protokół internetowy umożliwiający synchronizację czasu pomiędzy komputerami, w szczególności synchronizację z zegarami atomowymi. NTP używa portu 123, jest też wersja z SSL korzystająca z portu 563. Domyślnie wyłączony, ale jak chcesz mieć dokładny zegar na komputerze, możesz włączyć. postfix - Mail Transport Agent program przekazujący pocztę. Na konto root przychodzą dosyć ważne komunikaty systemowe. Można nie wyłączać. random - Lepsze generowanie liczb losowych. rsyncd - Remote synchronization (zdalna synchronizacja) - protokół synchronizacji plików. Przez sieć wysyłany jest spis plików z hash-ami bloków (zwykle ok. 1 kB), po czym na drugiej maszynie program sprawdza, które z fragmentów już posiada. spamd - Włączenie funkcji filtrowania spamu. splash - Kolorowe tło podczas uruchamiania systemu. splash_early - Przerywa animacje po uruchomieniu sieci. sshd - Demon OpenSSH SSH. SSH, następca protokołu telnet służącego do terminalowego łączenia się ze zdalnym komputerem. SSH różni się od telnetu tym, że transfer wszelkich danych jest zaszyfrowany, oraz możliwe jest rozpoznawanie użytkownika na wiele różnych sposobów. Jeżeli będziesz się zdalnie łączył z innym komputerem, zostaw włączone, jeżeli nie,wyłącz. Nie używaj telnetu !!! Łącz się tylko używając protokołu 2 ssh. Jeżeli chcesz się zalogować jako root, najpierw zaloguj się na konto zwykłego użytkownika, a dopiero potem przez polecenie su przejdź na konto root.

62 ypbind - Wyszukuje serwery z domen NIS i zachowuje informacje związane z tą usługą. Raczej zbędne choć w specyficznych warunkach mogą być przydatne atd - Demon uruchamiania kolejkowe zadania w celu późniejszego wykonania. Nie uruchamiaj, nie potrzebne autofs - Demon uruchamia automatyczne montowanie plików systemowych. Domyślnie wyłączony. esound - Start usługi uruchamia zdalnego dostępu do karty dźwiękowej. Przed włączeniem skonfiguruj ustawienia serwera dźwięku: Network/Sound/Esound Domyślnie wyłączony xinetd - Następca inetd. Jest to tak zwany super serwer sieciowy. Jego zadaniem jest nasłuchiwanie na wybranych portach i przekazywanie przychodzących połączeń wybranym programom.

63 KONIEC WYKONALI: Marcin Jędryszczak Przemysław Włodarczyk KLASA IV G


Pobierz ppt "Wielodostępność systemu Linux Wielodostępność wywodzi sie z czasów, kiedy jeden komputer centralny (mainframe) wykonywał jednocześnie wiele programów."

Podobne prezentacje


Reklamy Google