Wprowadzenie do systemu operacyjnego Linux uytkowanie cz. 1
plan struktura systemu Linux cechy systemu Linux system plików programy usługowe edytory powłoka 2
plan polecenia systemowe uwagi kocowe bibliografia 3
struktura systemu Linux struktura warstwowa: uytkownicy powłoka funkcje systemowe jdro sprzt 4
sprzt procesory pami dyski urzdzenia zewntrzne łcza transmisji 5
jdro jest to centralna cz systemu operacyjnego realizuje zarzdzanie: procesami, pamici operacyjn i plikami, oraz obsług operacji wejcia/wyjcia 6
jdro działania systemu operacyjnego w obrbie jdra dzielimy na: obsługa funkcji systemowych obsługa pułapek obsługa przerwa 7
jdro powstało 26 sierpnia 1991 roku autor: Linus Torvalds wikszo kodu w jzyku C licencja GNU General Public Licence obecnie wersja 3.0 (od 22.07.2011) obecnie ponad 10 mln wierszy kodu 8
funkcje systemowe wywołania funkcji systemowych pozwalaj na dostp do operacji, dla których nie istniej standardowe instrukcje w jzyku wysokiego poziomu mona je traktowa jak polecenia dla jdra, mona si do nich odwoływa z programów napisanych w jzyku C [KS1993] 9
funkcje systemowe s dwie kategorie funkcji systemowych: funkcje dotyczce procesu funkcje dotyczce systemu plików zanim omówimy funkcje systemowe dotyczce procesu, zdefiniujmy proces 10
proces mówic najprociej, proces jest wykonywanym programem mówic dokładniej, proces składa si z wykonywanego programu, danych, stosu, wskanika stosu, licznika rozkazu i rejestrów, czyli jest cile zwizany z konkretnym rodowiskiem, w którym jest wykonywany [KS1993] 11
proces proces moe si znale w okrelonych stanach: poredni podczas tworzenia procesu (IDLE) wykonywany (RUN) oczekujcy (na zdarzenie) (SLEEP) zawieszony (przez sygnał albo proces macierzysty) (STOP) poredni podczas usuwania procesu (ZOMBIE) 12
stany procesu IDLE przydziel zasoby RUN wyjd ZOMBIE upij zawie SLEEP obud odwie STOP 13
proces uytkownik moe tworzy procesy, sterowa ich wykonaniem i odbiera informacje o zmianie statusu ich wykonywania 14
identyfikator procesu kady proces ma przydzielon unikaln warto, zwan identyfikatorem procesu PID (process identifier), PID jest stosowany przez jdro do identyfikacji procesu oraz przez uytkownika do wywołania funkcji systemowej 15
tworzenie procesu jdro tworzy proces przez powielenie kontekstu innego procesu ten nowy proces jest zwany procesem potomnym procesu macierzystego kontekst powielony przy tworzeniu procesu zawiera zarówno stan wykonania procesu na poziomie uytkownika jak i jdra 16
kontekst procesu kontekst procesu, to zasoby wymagane przez proces w kadym trybie pracy wymagany jest dostp do rónych zasobów w trybie uytkownika zasoby te to: rejestry procesora, licznik rozkazów, wskanik stosu, tekst programu, dane i segment stosu 17
kontekst procesu w trybie jdra kontekst procesu tworz rejestry procesora, licznik rozkazów, wskanik stosu, oraz zasoby wymagane przez jdro, aby mogło ono wykona okrelone usługi dla procesu 18
tworzenie procesu proces moe utworzy nowy proces, który jest kopi oryginału za pomoc funkcji systemowej fork jej wykonanie polega na rozwidleniu procesu wydajcego to zlecenie na dwa procesy: macierzysty i potomny dla procesu potomnego jest inicjowany oddzielny obszar pamici operacyjnej 19
tworzenie procesu w jzyku C zlecenie tworzenia nowego procesu wyglda tak: pid = fork(); gdzie po zakoczeniu wykonywania zlecenia zmienna pid w procesie macierzystym przybiera warto bdc identyfikatorem procesu potomnego, a w procesie potomnym warto 0 20
zarzdzanie procesami cało działa dotyczcych procesów, realizowana przez jdro, nazywa si zarzdzaniem procesami zarzdzanie procesami bdzie przedmiotem oddzielnego wykładu 21
funkcje systemowe dot. pliku aby program mógł odczyta lub zapisa dane w pliku, to musi ten plik otworzy, a gdy go jeszcze nie ma, to powinien go utworzy przed zakoczeniem programu, naley zamkn utworzony przez niego plik plik mona równie usun 22
funkcje systemowe dot. pliku s to funkcje: creat utworzenie pliku open otwarcie pliku close zamknicie otwartego pliku read odczyt danych z pliku write zapis danych w pliku 23
utworzenie pliku nowy plik tworzymy funkcj systemow creat: fd = creat(name, pmode) gdzie name jest nazw pliku, a pmode okrela prawa dostpu do pliku za pomoc trzycyfrowej liczby ósemkowej po zakoczeniu wykonania funkcji zmienna fd zawiera deskryptor pliku 24
zarzdzanie plikami cało działa dotyczcych plików, realizowana przez jdro, nazywa si zarzdzaniem plikami zarzdzanie plikami bdzie przedmiotem oddzielnego wykładu 25
system plików system plików jest zorganizowany hierarchicznie, kady plik wyszego poziomu moe mie odsyłacze do plików niszego poziomu katalogiem nadrzdnym wobec wszystkich pozostałych jest katalog pierwotny (ang. root korze), zawierajcy katalogi podstawowych rodzajów 26
system plików wydajc polecenie ls / otrzymamy list tych katalogów podstawowych rodzajów, wywietlanych alfabetycznie kolumnami bin dev initrd.img media proc sbin sys var boot etc lib mnt root selinux tmp vmlinuz cdrom home lost+found opt run srv usr wydajc polecenie ls a / otrzymamy to samo plus dwa katalogi wicej, mianowicie. oraz.. (czyli pliki ukryte) 27
katalogi podstawowe katalogi te zawieraj [KS1993]: bin - programy usługowe w wersji gotowej do wykonania = polecenia, dev pliki specjalne odpowiadajce urzdzeniom zewntrznym, lib programy biblioteczne, home katalogi uytkowników 28
katalogi podstawowe tmp pliki tymczasowe, etc dane i programy podlegajce szczególnej ochronie, lost+found pliki utracone (straciły powizania z systemem plików) 29
polecenia dot. plików podamy teraz podstawowe polecenia dot. plików, w tym celu przejdziemy do swojego katalogu domowego, zastosujemy polecenie cd bez parametrów trafiamy do swojego katalogu, zaproszenie do pisania (zachta) wyglda np. tak: user@koziolek:~$ 30
nazwa komputera sprawdmy przy okazji nazw naszego komputera: user@koziolek:~$ hostname koziolek user@koziolek:~$ 31
nazwa uytkownika sprawd kim jeste i pod jak nazw si rejestrujesz w systemie: user@koziolek:~$ who am i user pts/0 2011-12-08 19:00(:0) user@koziolek:~$logname user user@koziolek:~$ 32
katalog domowy uytkownika oraz w którym jeste katalogu: user@koziolek:~$ pwd /home/user user@koziolek:~$ 33
inni uytkownicy systemu sprawdmy te kto jeszcze pracuje w systemie: who albo finger 34
utworzenie katalogu utwórzmy katalog michal poleceniem: mkdir michal przejdmy do tego katalogu: cd michal wywietlmy zawarto tego katalogu: ls -al 35
wywietlenie zawartoci katalogu otrzymujemy nastpujcy wynik: user@koziolek:~/michal$ ls al total 8 drwxrwxr-x 2 user user 4096 2011-12-08 22:01. drwxrwxr-x 22 user user 4096 2011-12-08 19:20.. 36
utworzenie pliku poniewa nie znamy jeszcze polece edytora, zastosujmy polecenie cat do napisania krótkiego pliku tekstowego cat > tekst1 Enter Saturday night Enter Ctrl-D 37
utworzenie pliku zróbmy to ponownie: cat > tekst2 Enter fever Enter Ctrl-D i połczmy pliki: cat tekst1 tekst2 > tekst3 38
utworzenie pliku wywietlmy zawarto pliku tekst3: user@koziolek:~/michal$ cat tekst3 Saturday night fever user@koziolek:~/michal$ 39
wywietlenie zawartoci katalogu user@koziolek:~/michal$ ls al total 20 drwxrwxr-x 2 user user 4096 2011-12-08 23:41. drwxrwxr-x 22 user user 4096 2011-12-08 19:20.. -rw-rw-r-- 1 user user 15 2011-12-08 23:41 tekst1 -rw-rw-r-- 1 user user 7 2011-12-08 23:41 tekst2 -rw-rw-r-- 1 user user 22 2011-12-08 23:41 tekst3 user@koziolek:~/michal$ 40
wywietlenie zawartoci katalogu utwórzmy jeszcze jeden katalog: user@koziolek:~/michal$ mkdir kuku user@koziolek:~/michal$ ls al total 24 drwxrwxr-x 3 user user 4096 2011-12-09 00:17. drwxrwxr-x 22 user user 4096 2011-12-08 19:20.. drwxrwxr-x 2 user user 4096 2011-12-09 00:17 kuku -rw-rw-r-- 1 user user 15 2011-12-08 23:41 tekst1 -rw-rw-r-- 1 user user 7 2011-12-08 23:41 tekst2 -rw-rw-r-- 1 user user 22 2011-12-08 23:41 tekst3 user@koziolek:~/michal$ 41
prawa dostpu przypatrzmy si pierwszej kolumnie wywietlonej zawartoci katalogu jeeli pierwszym znakiem jest litera d, to jest to katalog: drwxrwxr-x 2 user user 4096 2011-12-09 00:17 kuku jeeli (mylnik) to jest to plik: -rw-rw-r-- 1 user user 15 2011-12-08 23:41 tekst1 42
prawa dostpu pozostałe 9 znaków w kadym wierszu to prawa dostpu, znaki 2-4 to prawa właciciela pliku, znaki 5-7 to prawa grupy uytkowników, znaki 8-10 to prawa dla wszystkich pozostałych uytkowników pocztkowo kady plik ma ustawione nastpujce prawa: -rw-rw-r-- 1 user user 15 2011-12-08 23:41 tekst1 43
zmiana praw dostpu zmiemy prawa dostpu do pliku tekst1 za pomoc polecenia chmod: user@koziolek:~/michal$ chmod 740 tekst1 user@koziolek:~/michal$ ls al tekst1 -rwxr----- 1 user user 15 2011-12-08 23:41 tekst1 user@koziolek:~/michal$ czyli 4 oznacza prawo czytania (r), 2 prawo pisania (w) 1 prawo wykonywania (x) 44
zmiana praw dostpu aby powróci do poprzednich praw, naley wykona polecenie: user@koziolek:~/michal$ chmod 664 tekst1 user@koziolek:~/michal$ ls al tekst1 -rw-rw-r-- 1 user user 15 2011-12-08 23:41 tekst1 user@koziolek:~/michal$ 45
prawa dostpu nie zawsze mona wróci do poprzednich praw dostpu obowizuje pewne relacje pomidzy prawami dostpu do katalogu i prawami dostpu do pliku w tym katalogu 46
prawa dostpu listowanie plików w katalogu wymaga prawa czytania katalogu utworzenie nowego pliku w katalogu, zmiana nazwy pliku i usunicie pliku wymaga prawa pisania w katalogu czytanie pliku wymaga prawa czytania pliku i prawa wykonywania katalogu, w którym jest ten plik 47
prawa dostpu zapis do pliku wymaga prawa pisania do pliku oraz prawa wykonywania katalogu, w którym jest ten plik wykonywanie pliku wymaga prawa wykonywania pliku i prawa wykonywania katalogu, w którym jest plik 48
polecenia dotyczce katalogów jedno z polece ju znamy, jest to mkdir, słuy do utworzenia katalogu wymaga ono prawa do zapisu w katalogu nadrzdnym oczywiste jest, e musi te istnie polecenie do usuwania katalogu 49
usuwanie katalogu polecenie rmdir usuwa katalog jest to moliwe kiedy katalog jest pusty, a ponadto nie jest katalogiem biecym, z którego wydano polecenie np. usuwajc katalog kuku w katalogu michal, moemy to bez problemu wykona, gdy katalog kuku jest pusty user@koziolek:~/michal$ rmdir kuku 50
usuwanie katalogu w katalogu michal ponownie utwórz katalog kuku, w katalogu kuku utwórz katalog aha z poziomu katalogu michal spróbuj usun katalog kuku: user@koziolek:~/michal$ rmdir kuku rmdir: failed to remove kuku : Diretory not empty user@koziolek:~/michal$ rm r kuku user@koziolek:~/michal$ ls al kuku ls: cannot access kuku: No such file or directory 51
polecenia dotyczce katalogów pozostałe polecenia, takie jak cd i pwd ju s nam znane 52
polecenia dotyczce plików polecenie ls ju znam polecenie cp słuy do kopiowania plików skopiujmy plik tekst1 na plik tekst4 user@koziolek:~/michal$ cp tekst1 tekst4 user@koziolek:~/michal$ ls al tekst4 -rw-rw-r 1 user user 15 2011-12-09 03:01 tekst4 user@koziolek:~/michal$ cp i tekst1 tekst4 cp: overwrite tekst4? Y user@koziolek:~/michal$ 53
polecenia dotyczce plików polecenie przesunicia pliku mv: W katalogu michal przenie plik tekst4 na plik tekst5, plik tekst4 zostanie usunity, inaczej mówic zmieni si nazwa pliku tekst4 na tekst5: 54
przesunicie pliku user@koziolek:~/michal$ mv tekst4 tekst5 user@koziolek:~/michal$ ls al tekst4 tekst5 ls: cannot access tekst4: No such file or directory -rw-rw-r - 1 user user 15 2011-12-09 03:01 tekst5 user@koziolek:~/michal$ 55
usuwanie pliku pokaemy jak usun plik, z potwierdzeniem decyzji: user@koziolek:~/michal$ rm i tekst5 rm: remove regular file tekst5? Y user@koziolek:~/michal$ a nastpnie, jak usun plik bez czekania na potwierdzenie: user@koziolek:~/michal$ cp tekst1 tekst6 user@koziolek:~/michal$ rm f tekst6 user@koziolek:~/michal$ 56
dołczanie pliku aby unikn kopiowania pliku, mona dołczy plik z innego katalogu, n.p.: user@koziolek:~/michal$ ln tekst3 kuku/tekst9 user@koziolek:~/michal$ cd kuku user@koziolek:~/michal/kuku$ ls al tekst9 -rw-rw-r - 2 user user 22 2011-12-08 23:41 tekst9 dołczanie mikkie: opcja ln-s, wtedy user@koziolek:~/michal$ ln tekst1 kuku/tekst11 daje lrwxrwxrwx 1 user user 6 2011-12-09 04:35 tekst11 -> tekst1 57
powłoka inna nazwa powłoki (ang. shell) to prostu interpreter polece za pomoc interpretera polece uytkownik moe uruchamia własne programy aplikacyjne albo ogólnie dostpne programy systemowe 58
powłoka istniej róne wersje powłoki [Sobaniec2002], uruchamiane poleceniami: interpreter Bourne a sh interpreter C-shell csh interpreter Korna ksh interpreter tcsh tcsh kolejny interpreter Bourne a bash 59
cechy systemu Linux [Sobaniec2002] przenono (na inn platform sprztow) uniwersalno (system ogólnego przeznaczenia) otwarto (modularna budowa i dostpno kodów ródłowych systemu) 60
Bibliografia [Bis2011] M. Bis, Linux w systemach embedded, BTC, Warszawa 2011. [Bauer2005] M.D. Bauer, Linux. Serwery. Bezpieczestwo, Helion, Gliwice 2005. [Frisch1996] E. Frisch, Unix. Administracja systemu, Read Me, Warszawa 1996. [Garrels2005] M. Garrels, Bash Guide for Beginners, Fultus.com, 2005. [GA2007] G. Glass, K. Ables, Linux dla programistów i uytkowników, Helion, Gliwice 2007. 61
Bibliografia [HGS1999] K. Haviland, D. Gray, B. Salama, Unix. Programowanie systemowe, RM, Warszawa 1999. [KD2000] O. Kirch, T. Dawson, Linux podrcznik administratora sieci, RM, Warszawa 2000. [KS1993] Z. Królikowski, M. Sajkowski, System operacyjny UNIX dla pocztkujcych i zaawansowanych, Nakom, Pozna 1993. 62
Bibliografia [Matthew2002] N. Matthew, R. Stones, Zaawansowane programowanie w systemie Linux, Helion 2002. [McCarty2005] B. McCarty, Red Hat Enterprise Linux i Fedora Core 2. Wprowadzenie, Helion, Gliwice 2005. [Mitchell2002] M. Mitchell, J. Oldham, A. Samuel, Linux. Programowanie dla zaawansowanych, RM, Warszawa 2002. [Sobaniec2002] C. Sobaniec, System operacyjny Linux przewodnik uytkownika, Nakom, Pozna 2002. [Strobel1997] S. Strobel, T. Uhl, Linux, WNT, Warszawa 1997. 63