sop 2009 lab01


Uniwersytet w Białymstoku
Wydział Matematyki i Informatyki
Instytut Informatyki
Materiały bazowe do zajęć z przedmiotu:
Systemy operacyjne
Laboratorium nr 01
Temat:
Systemy Operacyjne,
System unix/linux - wiadomości wstępne
mgr Adam Bonda
Białystok 2008
Cel laboratorium: Zapoznanie się z podstawowymi definicjami, przyswojenie ogólnej
wiedzy na temat rozwoju systemów operacyjnych, wstępne zapoznanie się z
strukturą systemu i podstawowe komendy Linux'a.
(1) Wiadomości ogólne:
System komputerowy  zestaw sprzętu (hardware) i  o\ywiającego go oprogramowania
(software). Oba te elementy tworzą zasoby systemu.
Zasoby systemu komputerowego to:
' procesor (ang. CPU  Central Processing Unit)  element wykonujący program
' pamięć operacyjna  umieszczane są w niej wykonywane programy
' program
' dane
' urządzenia zewnętrzne: drukarki, terminale, pamięci dyskowe, taśmowe itp.
Program  zbiór instrukcji zrozumiałych dla komputera przechowywanych na
odpowiednim nośniku danych i przenoszonych do pamięci operacyjnej na czas
wykonywania programu.
Wykonywanie programu polega na postępowaniu zgodnie z zapisaną instrukcją
(algorytmem).
Elementem umo\liwiającym pracę całego systemu komputerowego jest pewien minimalny
zestaw oprogramowania określany powszechnie mianem systemu operacyjnego (ang.
operating system  OS).
Do najbardziej znanych rodzin i typów systemów operacyjnych nale\ą:
' Amiga: AmigaOS, AROS Research Operating System (AROS), MorphOS
' Apple: Apple DOS, ProDOS, GS/OS, Mac OS, Mac OS X, Mac OS X Server, A/UX,
Lisa OS
' Atari: Atari TOS, MultiTOS, FreeMiNT
' Be: BeOS, BeIA, NewOS/Haiku, yellowTAB Zeta
' DEC/Compaq: AIS, OS-8, RSTS/E, RSX, RT-11, TOPS: TOPS-10, TOPS-20, VMS
(pózniej przemianowany na OpenVMS)
' IBM: OS/2, AIX, OS/400, OS/390, VM/CMS, DOS/VSE, DOS/360, OS/360, MFT,
MVT, PC-DOS, SVS, MVS, TPF, ALCS, z/OS
' ICL: EXEC, JEAN, MINIMOP, GEORGE
' Microsoft: MS-DOS (PC-DOS, DR-DOS, FreeDOS, DOS, QDOS), Microsoft
Windows: 1.0, 2.0, 3.x, 95/98/98 SE/Me, CE, NT/2000/XP/2003/2008/FLP/Vista
' Novell: NetWare, Novell DOS
' NeXT: NeXTStep
' Unisys: MCP(Master Control Program), OS 2200.
' UNIX i jego pochodne: AIX, BSD, FreeBSD, NetBSD, OpenBSD, DragonFly BSD,
DesktopBSD, PC-BSD, Digital UNIX, HP-UX, IRIX, Mac OS X, Minix, OSF/1, SCO
UNIX, Sun Solaris (dawniej SunOS), System V, QNX, Ultrix, Venix, Xenix,
GNU/Linux (system GNU z jądrem Linux), GNU/Hurd (system GNU z jądrem
Hurd),, Linux
' systemy czasu rzeczywistego (ang. realtime systems): LynxOS, OS9, Phoenix-
RTOS, QNX, Nut/OS, RT-Linux, SenseOS, VxWorks, Suse Linux Enterprise Real
Time, MicroC/OS-II
Zadaniem ka\dego systemu operacyjnego jest:
' efektywne wykorzystywanie sprzętu (procesora, pamięci itp.)
' koordynowanie pracy sprzętu, programów i u\ytkowników
' ułatwienie u\ytkownikom korzystania z komputera
Poprzez realizację tych zadań OS kontroluje niemal wszystkie czynności komputera i
urządzeń doń podłączonych. Decyduje w jaki sposób są wykorzystywane zasoby
komputerowe, a więc i co wyświetlane jest na ekranie monitora.
Ze względu na wysoki stopień komplikacji budowy sprzętu komputerowego, zazwyczaj nie
zezwala się programom na bezpośredni dostęp do zasobów sprzętowych, a jedynie
poprzez OS. Rozwiązuje to wiele problemów np. umo\liwia OS zachowanie kontroli nad
pracą komputera, zwalnia z gruntownej znajomości zasad pracy komputera i urządzeń
peryferyjnych programistów i u\ytkowników.
Budowa OS determinowana jest ich typem i przeznaczeniem. System operacyjny mo\e
stanowić jeden program, lub kilka, czy kilkanaście, z których pewien wyró\niony, bądz ich
grupa nosi nazwę jądra systemu (ang. kernel). Kernel uruchamiany jest jako proces
pierwotny i sprawując kontrolę nad całym systemem komputerowym. OS dostarczane są z
pewnym zestawem programów usługowych, które wspomagają działanie jądra. Składają
się na nie zarówno proste, odpowiedzialne za wykonywanie pojedynczych poleceń
u\ytkownika, jak i bardziej rozbudowane programy o szerszym zastosowaniu (określane
są one terminem aplikacji u\ytkowych lub oprogramowania aplikacyjnego)
Do końca lat 60-ych większość z powstałych przed Unix'em systemów operacyjnym
dedykowana była określonemu typowi komputerów  wiązało się to z wysokimi nakładami
kosztów i szybkim starzeniem się OS, wraz z unowocześnianiem konstrukcji sprzętowych.
Doprowadziło to do unifikacji (zmniejszenia ró\norodności) konstrukcji sprzętu
komputerowego i przystosowania systemów operacyjnych do pracy na całej rodzinie, a nie
(jak do tej pory) na jednym typie komputerów.
Wprowadzono więc ujednolicenie koncepcyjne w zakresie danej rodziny komputerów, na
których mo\na było uruchamiać OS jak i aplikacje u\ytkowe. Dana rodzina komputerów
charakteryzuje się podobną architekturą (konstrukcją) oraz tym samym lub zbli\onym
typem zastosowanego procesora. Mówimy więc o platformie komputerów osobistych klasy
PC, które bazują na procesorach typu x86 firmy Intel, zapoczątkowanych przez 16-bitowy
procesor 8086, które z kolei wywodził się z 8-bitowego układu 8085. Nazwa architektury
wywodzi się od nazw pierwszych modeli z tej rodziny, których numery kończyły się liczbą
86.
W zakresie unifikacji konstrukcji sprzętu najbardziej znaczącą rolę odegrały firmy DEC i
IBM, natomiast w zakresie OS Laboratoria Bella w których opracowana system Unix i
udostępniono go nieodpłatnie amerykańskim uniwersytetom. Zapoczątkowało to szybki
rozwój Unixa i przystosowanie go do pracy z ró\nymi komputerami. Dalsze modyfikacje i
migracja systemu mo\liwa była dzięki zastosowaniu języka C w znacznej części kodu
(fragmenty assemblera  wewnętrzny język komputera  realizowały tylko te, najbardziej
zale\ne od sprzętu części kodu).
(2) Struktura systemu plików, powłoka systemowa i podstawowe
komendy
Po zalogowaniu się do systemu, automatycznie uruchamiana jest powłoka systemu (ang.
shell). Najpopularniejszą obecnie stosowaną powłoką jest bash (Bourne-Again Shell) jej
starczym odpowiednikiem jest sh (Bourne Shell).
To, jaka powłoka jest automatycznie uruchamiana podczas logowania określone jest w
następującej lokalizacji:
/etc/passwd
Aby, móc jednak wyświetlić zawartości plików potrzebna jest znajomość:
' zestawu komend umo\liwiających sprawne poruszanie się po systemie plików,
' narzędzi do podglądu,
' wiedzy o strukturze drzewa katalogów systemów Unix'owych, w tym Linux'a
(aktualnie u\ywanej dystrybucji).
Pomoc systemowa
Systemy Unix oferują pomoc systemową (man, apropos, whatis) w postaci tekstowych
dokumentów opisujących działanie, składnię wywołania programów i narzędzi
zainstalowanych w systemie. Dokumentacja dostępna jest po wpisaniu polecenia man
(ang. manual) i podaniu jako pierwszego argumentu nazwy programu, usługi, lub pliku
(systemowego), dla którego pomoc chcemy uzyskać, np.:
man passwd
Dokumentacja podzielona jest na sekcje, których ilość zale\y upodobań twórcy.
Główne części opisu to:
NAME: zawiera zwięzły opis działania polecenia
SYNOPIS: składnia poleceniach
AVAILABILITY: platforma sprzętowa, na której dostępne jest polecenie
DESCRIPTION: pełny opis wywoływanego polecenia
EXAMPLES: przykłady u\ycia polecenia
FILES: pliki np.: konfiguracyjne
SEE ALSO: powiązania, polecenia pokrewne
więcej na temat samej pomocy mo\na dowiedzieć się wpisując:
man man
Nawigacja stron pomocy kontrolowana jest poleceniem more przy pomocy następujących
skrótów: spacja (kolejna strona), Ctrl+B (poprzednia strona), q  zamknięcie i opuszczenie
przeglądarki, / - wyszukiwanie tekstu w przód lub ? w tył, n,N  przejście do następnego
(n) lub poprzedniego (N) wystąpienia poszukiwanego wyra\enia
Zadanie 1:
Zapoznaj się z zawartymi powy\ej poleceniami. Sprawdz jak nazywa się przedostatnia
sekcja dokumentacji man, podaj nazwę pierwszego powiązania występującego w tej
sekcji. Jaka komenda wyświetla ostatni rozdział tego powiązania?
Struktura drzewa katalogów
Rodzinę systemów Unix'owych cechuje hierarchiczna (drzewiasta) struktura plików i
katalogów przypominająca odwrócone drzewo. Skoro występuje tu jakieś  drzewo to musi
być i korzeń (ang. root). W rzeczy samej Unix'y posiadają korzeń, jest nim katalog główny
(ang. Root directory) oznaczany symbolem  / (ang. slash). U\yte sformułowania
 hierarchiczna nie jest do końca ścisłe, poniewa\ występować mogą tutaj dowiązania
danego pliku do ró\nych katalogów, jak i plików do plików.
Na ogół system plików (ang. file system  fs) głównego katalogu większości dystrybucji
Linux'owych posiada następującą strukturę:
/  katalog główny (root dir)
| /bin  katalog bazowego zestawu poleceń
| /boot
 katalog plików rozruchu systemu
| /dev
 katalog plików specjalnych, reprezentujących urządzenia
| /etc
 katalog plików konfiguracyjnych systemu
| /home
 katalog kont u\ytkowników (poza root'em)
| /lib
 katalog bibliotek systemowych i plików nagłówkowych
| /mnt
 punkt mount'owania systemu plików i urządzeń
| /opt
 katalog instalacji oprogramowania zewnętrznego
| /proc
 katalog specjalny, informacje systemowe (wirtualny fs)
| /lost+found
 pliki odzyskane podczas sprawdzania spójności fs
| /root
 katalog domowy administratora
| /sbin
 katalog programów systemowych
| /tmp
 katalog plików tymczasowych
| /usr
 katalog podkatalogów systemowych
| /bin
 podkatalog uzupełniającego zestawu poleceń
| /lib
 podkatalog bibliotek narzędziowych
| /sbin
 podkatalog uzupełniających programów systemowych
| /tmp
 podkatalog plików tymczasowych
/var
 katalog zmieniających się plików systemowych (logi, kolejki)
Unix posiada 3 rodzaje plików:
(a) zwykłe pliki dyskowe (ang. files) są to pliki binarnej lub tekstowej.
(b) katalogi (ang. directory) zawierają (lub nie) pliki dowolnego z wymienionych typów.
(c) pliki specjalne (ang. special files)  mogą dotyczyć:
urządzeń zewnętrznych zainstalowanych w komputerze (dyski,
karty muzyczne itp.)
łączy nazwanych (pliki FIFO) słu\ących do porozumiewania się procesów
niespokrewnionych. Aącze musi zostać jawnie utworzone, jako plik specjalny
poprzez funkcję mknod(). Dalsze mechanizmy porozumiewania się są
analogiczne jak w przypadku plików. Usunięcie łącza następuje poprzez funkcję
unlink()
Nazwy rozpoczynające się ukośnikiem  / określają pełną ście\kę (ang. absolute
pathname) do pliku:
/etc/passwd
określa, \e plik passwd znajduje się w katalog etc, do którego dostęp jest bezpośrednio z
głównego katalogu. Jeśli w linii nie było by pierwszego ukośnika:
etc/passwd
to o pliku passwd wiedzielibyśmy tylko tyle, \e znajduje się w katalogu (ang. relative
pathname) etc. Gdyby był to jakiś mniej charakterystyczny katalog i plik to jedyną nadzieją
na znalezienie znajdującego się nim pliku byłoby skorzystanie z programu
umo\liwiającego wyszukiwanie.
Prócz charakterystycznego symbolu / oznaczającego katalog główny, u\ywa się tak\e
innych symboli dla określenia wybranych katalogów:
. - oznacza katalog bie\ący,
.. - oznacz katalog bezpośrednio nadrzędny;
~ - oznacz katalog domowy u\ytkownika.
Nazwa pliku zwykłego i katalogu mo\e składać się z dowolnego ciągu znaków ASCII.
Wielkie i małe litery są rozró\nialne. Ze względu na specjalne znaczenie niektórych
znaków dla shella, zaleca się u\ywanie w nazwach tylko znaków przenaszalnych: liter,
cyfr, podkreślenia i kropki. Znaki o specjalnym znaczeniu dla powłoki (zwane
metaznakami) to:
* ? ; | & \ < > [ ] ` ' 
u\ycie ich w nazwach plików wią\e się z tym, \e w poleceniach odwołujących się do takich
nazwa muszą być  cytowane z u\yciem:
znaku backslash \, apostrofów ' lub cudzysłowów  .
Jeśli nazwa pliku zaczyna się od znaku kropki, to dla pewnej grupy poleceń plik jest
traktowany jako ukryty.
Poruszanie się po systemie plików
pwd (ang. print working directory)  wyświetla nazwę aktualnego katalogu roboczego
cd arg (ang. change directory)  zmienia katalog na podany w argumencie (o ile
istnieje)
mkdir arg (ang. make directory)  tworzy katalog podany w argumencie (o ile nie
istnieje)
 usuwa katalog podany w argumencie (o ile istnieje)
rmdir arg (ang. remove directory)
 przenosi, bądz zmienia nazwę, jako pierwszy
mv arg1 arg2 (ang. move)
argument podaje się przenoszony pliku/katalog, jako
drugi miejsce lub docelową nazwę
 listuje standardową zawartość bie\ącego katalogu
ls (ang. list)
Przykłady:
login@nazwa:~$ pwd wyświetla aktualny kat. roboczy
/home/login wychodzi do katalogu
login@nazwa:~$ cd .. nadrzędnego
login@nazwa:/home$ pwd
/home
tworzy katalog test01 w kat.
login@nazwa:/home$ mkdir ./login/test01
domowym przy u\yciu ście\ki
login@nazwa:/home$ cd ~/test01
bezwzględnej
login@nazwa:~/test01$ pwd
/home/login/test01
wychodzi o głównego kat.
login@nazwa:~/test01$ cd /
login@nazwa:/$ pwd
zmienia nazwę kat. test01
/
znajdującego się w kat.
login@nazwa:/$ mv ~/test01 ~/test02
domowym na test02
tworzy podkatalog x1, a
login@nazwa:/$ mkdir ~/test02/x1
następnie przenosi go katalogu
login@nazwa:/$ mv ~/test02/x1 ~/x1
domowego
login@nazwa:/$ cd /home/login/test02
login@nazwa:~test02$ pwd
/home/login/test02
usuwa zarówno katalog test02,
login@nazwa:~test02$ rmdir ../test02 ~/x1
jak i x1
login@nazwa:~$ cd ..
login@nazwa:~$ cd test02
-bash: cd: test02: No such file or directory
Zadanie 2:
Przy u\yciu pojedynczej komendy wyjdz do głównego katalogu. Wejdz do katalogu
domowego u\ywając ście\ki bezwzględnej. Stwórz katalog o nazwie wg wzoru
dzien'miesiąc`pierwszaliteranazwiska|pierwszeliteraimienia
np.: 1'10`B|A
wejdz do stworzonego tego katalogu i wyświetl nazwę aktualnego katalogu roboczego, a
następnie wyjdz do katalogu nadrzędnego i wyświetl listę wszystkich! plików i katalogów.
U\ywając ście\ki bezwzględnej, jednym poleceniem stwórz w wewnątrz ostatnio
powstałego katalogu podkatalog o nazwie test, a następnie usuń go w ten sam sposób.
Działania na plikach (katalogach)
* zastępuje ciąg dowolnych znaków
? zastępuje dokładnie jeden znak
[lista]  zastępuje dokładnie jeden znak z podanej listy znaków w nawiasie kwadratowym
[abc]  na określonej pozycji nazwy pliku mo\e wystąpić tylko jedna z liter a, b lub c
[a-z]  na określonej pozycji nazwy pliku mogą wystąpić liter od a do z
[19]  na określonej pozycji nazwy pliku mo\e wystąpić tylko cyfra 1 lub 9
touch arg1 tworzy plik o podanej nazwie, lub zmienia datę stworzenia pliku
login@nazwa:~$ touch plik1
login@nazwa:~$ ls
plik1
head arg1 wyświetla 10 pierwszych linii pliku podanego jako argument
-c, --bytes=[-]ILE wypisanie pierwszych ILE bajtów z ka\dego pliku
-n, --lines=[-]ILE wypisanie pierwszych ILE linii zamiast 10
z `-' - wypisanie wszystkich oprócz ostatnich ILE bajtów/linii ka\dego pliku
tail arg1 wyświetla 10 ostatnich linii pliku podanego jako argument
-c, --bytes=N wypisanie ostatnich N bajtów
-f, --follow[={name|descriptor}]wypisywanie nowych danych kiedy plik rośnie;
-f, --follow i --follow=descriptor są równowa\ne
-n, --lines=N wypisanie ostatnich N linii zamiast ostatnich 10
cat arg1 arg2 ... wyświetla zawartość pliku(ów) podanego(ych) jako argument(y)
-b, numeracja niepustych linii
more arg1 arg2... wyświetla zawartość pliku(ów) podanego(ych) jako argument(y)
stronami
Po wyświetleniu ekranu z zawartością pliku, program oczekuje instrukcji od u\ytkownika:
h wyświetla help
to samo co f przewija ekran do dołu
przewija linię w dół
3b przewija 3 ekrany do tyłu
q kończy pracę przeglądarki more
less arg1 arg2... podobny do more, pozwalającym na poruszanie się w tył w pliku
tak samo jak w przód
Zmiana standardowych wyjść i wejść (przekierowania)
W czasie wykonywania danego polecenia strumienie danych wyjściowych, wejściowych i
diagnostycznych mogą zostać skojarzone z innymi wejściami, wyjściami ni\ domyślne, dla
określonego polecenia.
Strumień danych wyjściowych przekierowany jest do argumentu (mo\e to być plik lub
urządzenie), natomiast potencjalne błędy (strumień diagnostyczny) w dalszym ciągu
kierowane będą na ekran.
login@nazwa:~$ cat plik1 > plik2
Zawartość pliku plik1 przekierowana została to stworzonego automatycznie pliku plik2
Je\eli plik2 ju\ istniał i posiadał jakieś informacje to zostały one nadpisane!
login@nazwa:~$ cat plik1 plik2 plik3 > plik4
Strumień danych wyjściowych przekierowany jest do argumentu i dopisywany jest na jego
końcu (w przypadku pliku). Strumień diagnostyczny wędruje na ekran terminala.
login@nazwa:~$ cat plik1 >> plik2
Strumień danych wejściowy przekierowany jest z argumentu (pliku) do polecenia, a błędy
kierowane są na ekran.
login@nazwa:~$ mail -s  temat do_kogo@com.pl < zawartosc
Na określony adres pocztowy z podanym tematem, zostanie wysłana wiadomość
znajdująca się pliku zawartosc.
Strumień zarówno danych wyjściowych i diagnostyczny przekierowane są do argumentu
login@nazwa:~$ cat plik1 >& plik2
Symbol potoku  | stosuje się do przetwarzania strumieni danych. Mo\liwe jest tworzenie
łańcuchów poleceń, które wzajemnie przerabiają dane.
login@nazwa:~$ ls -l /etc/* | more
Bez u\ycia przekierowania wyników komendy ls do more, mo\na by było zobaczyć tylko
ostatni ekran wyniku listowania zawartości katalogu /etc/. Jeszcze lepszym
rozwiązaniem jest zastąpienie komendy more przez less, dlaczego?
Zadanie 3: W stworzonym poprzednio katalogu utworzyć plik o nazwie test03. Umieścić w
tym pliku listę wszystkich plików kończących się na litery  g i  h z katalogu /etc, a
następnie dopisać do tego pliku listę wszystkich urządzeń z katalogu /dev w nazwach
których dwie pierwsze litery to  hd .
Usunąć wszystkie pliki i katalogi tworzone podczas tego laboratorium.
Wreszcie mo\na się przekonać jakiej domyślnej powłoki u\ywamy:
login@nazwa:~$ cat /etc/passwd | less
...
jas:x:1000:1000:jas,,,:/root:/bin/bash
...
Plik ten ma następującą konstrukcję:
login_name:hasło:uid:gid:imie_nazwisko:katalog_domowy:powłoka
login_name nazwa u\ytkownika w systemie
hasło zakodowane hasło przypisane do login_name, jeśli w tym miejscu stoi
 x oznacza to, \e hasło znajduje się w zaszyfrowanej postaci w pliku
/etc/shadow, do którego dostęp mają tylko administratorzy.
uid liczbowy identyfikator u\ytkownika
gid identyfikator grupy do której u\ytkownik nale\y
imię_nazwisko dane teleadresowe, u\ywane głównie przez programy pocztowe
katalog_domowy macierzysty katalog u\ytkownika, tworzony podczas zakładania konta
powłoka domyślnie uruchamiana powłoka podczas logowania do systemu (nie
ka\dy u\ytkownik musi mieć shellowy dostęp do systemu, czasem jest
to tylko poczta, lub ftp i w tym miejscu jest to określone)


Wyszukiwarka

Podobne podstrony:
sop 2009 lab04
sop 2009 lab05
sop 2009 lab12
sop 2009 lab10
sop 2009 lab03
sop 2009 lab08
sop 2009 lab11
sop 2009 lab02
sop 2009 lab06
sop 2009 lab07
sop 2009 lab09
2009 2010 rejon
2009 pytania testowe
[W] Badania Operacyjne Zagadnienia transportowe (2009 04 19)
Twilight Saga New Moon 2009 CAM XviD POISON

więcej podobnych podstron