Drobne porady dla tych "najbardziej początkujących"...
Mamy już zainstalowany system, "okienka" takoż, potrafimy także to i
owo uruchomić - czas na przyswojenie najbardziej podstawowych informacji,
które będą nam potrzebne do kontroli pracy systemu, instalacji nowych pakietów
oprogramowania, oraz - ogólnie - "na codzień".
Przypomnijmy sobie jeszcze raz, że dokumentację większości
zainstalowanych pakietów oraz inne teksty pomocy technicznej znajdziemy
w podkatalogu /usr/doc. Pamiętajmy o wbudowanym w każdym Unixie systemie
pomocy man - zaklęcie man <polecenie> wyświetli nam tekst
objaśniający sposób posługiwania się danym poleceniem systemu, system pomocy
opuścimy naciskając klawisz Q ( "Quit").
Midnight Commander ("klon" znanego Norton Commandera), wywoływany
poleceniem mc, ułatwi nam poruszanie się w obszarze dysku i operacje
na plikach. Ma także, wzorem pierwowzoru, wbudowane asocjacje powodujące
określone reakcje na wybrane rozszerzenia nazw plików - np. przesunięcie
paska podświetlenia na plik z rozszerzeniem .rpm (a w takiej postaci
są obecnie najczęściej dostarczane linuksowe pakiety oprogramowania)
i naciśnięcie <ENTER> ukaże nam "wnętrze" pakietu, ułatwiając
przejrzenie jego zawartości (powinien tam być m.in. plik INFO, przeglądalny
poprzez <F3>), oraz instalację - należy tylko dać <ENTER> na
pliku INSTALL lub UPGRADE.
Do klawisza <F4> Commandera (edytor) jest "podczepiony"
tradycyjny w Unixie edytor vi. Może i należy ten edytorek do historii
i tradycji Unixa, jest jednak po prostu i zwyczajnie niewygodny, ze względu
na swą niecodzienną "klawiszologię" - zmienimy zatem domyślny edytor
odpowiednim wpisem w pliku .bashrc w naszym katalogu domowym, usuwając
komentarz sprzed linii 9, która powinna brzmieć:
export EDITOR=/usr/bin/pico
...i zmieniając słowo "pico" na "joe". Joe ma dość rozpowszechioną
"klawiszologię" pseudostandardu Wordstar, dzięki czemu jest łatwy w obsłudze.
Kilka drobiazgów, znakomicie ułatwiających życie:
- przy starcie systemu, system czeka podaną w konfiguracji systemu ilość
czasu (domyślnie jest to 10 sekund), na wpisanie przez nas rozkazu - np. gdy
mamy dwa lub więcej systemów operacyjnych na tej samej maszynie, i możemy
dokonać wyboru, który ma być ładowany. Po tym czasie uruchamia system,
wybrany przez nas jako domyślny. Jeśli chcemy uruchomić właśnie ten domyślny
system bez czekania, możemy to zrobić natychmiast, gdy widząc znak zachęty
LILO naciśniemy sekwencyjnie (nie jednocześnie!) najpiew <SHIFT> a
potem <ENTER>.
- aby odnaleźć na dysku jakikolwiek plik, wpisujemy: find / -iname
nazwa_pliku - podanie slasha powoduje przeszukiwanie całości dysku. Jeśli
chcemy ograniczyć przeszukiwanie do jakiegoś obszaru, podajemy ścieżkę do
odpowiedniego podkatalogu, np. find /home/piotr praca.txt powoduje
szukanie pliku praca.txt tylko w katalogu domowym (i jego podkatalogach)
użytkownika konta "piotr"
- ilość wolnego miejsca na dyskach najszybciej sprawdzimy poleceniem
df (disk free)
- pakiety oprogramowania zawierające kod źródłowy (co jest codziennością
w świecie Unixa) najczęściej dostarczane są w postaci archiwów
(skomprymowanych plików) .gz lub .tar.gz (inne rozszerzenie
- .tgz - to to samo co .tar.gz). Aby rozpakować plik z
rozszerzeniem .gz, wpisujemy w linii rozkazów po prostu
gunzip <bazwa_pliku>.gz. Archiwum .tgz (lub .tar.gz),
rozpakujemy poleceniem tar -zxvf <nazwa_pliku>.tgz .
Rozpakowanie pliku .zip, to - dość podobnie jak pod DOS-em
- unzip <nazwa_pliku>.zip
- tworzenie archiwum .tgz: tar -cvzf <nazwa_archiwum>.tgz <podkatalogi_i_pliki>
- tworzenie archiwum .zip: zip <nazwa_archiwum> <pliki> (i tu, i poprzednio można też użyć gwiazdki)
- instalacja binariów oprogramowania, otrzymanego w postaci pakietu
.rpm (można, jak wspomniano, Midnight Commanderem): rpm -i <nazwa_pakietu>.rpm
- instalacja pakietów oprogramowania, otrzymanych jako kod źródłowy:
po rozpakowania archiwum .tgz w jakimś podkatalogu (najlepiej - dla
porządku - w którymś z podkatalogów /usr/src ), najczęściej (uwaga:
nie zawsze!) wystarczy wpisać polecenie make (oczywiście, po przejściu
do podkatalogu, gdzie został rozpakowany pakiet), powodujące kompilację do
postaci binarnej, a następnie make install , które przeniesie
otrzymane binaria we właściwe miejsca. Należy jednak pamiętać, że nie zawsze
jest to takie proste - przed rozpoczęciem kompilacji należy uważnie przeczytać
wskazówki, zamieszczane w zwyczajowo obecnych w pakietach plikach README oraz
INSTALL.
Kompilacja jądra systemu (kernela).
Linux przeważnie dostarczany jest ze "zmodularyzowanym" jądrem, co
oznacza iż w trakcie uruchamiania systemu następuje wykrywanie zainstalowanych
w komputerze urządzeń, i doładowywanie odpowiednich sterowników (tzw. modułów).
Przyjdzie jednak kiedyś czas, kiedy będziemy chcieli (lub musieli) "skroić"
jądro systemu dokładnie dla naszych potrzeb, czy to z powodu instalacji
nietypowych urządzeń, czy to w celu zwiększenia prędkości pracy i
zmniejszenia ilości pamięci zajmowanej przez jądro, czy wreszcie choćby w
celu instalacji nowszej wersji jądra, wzbogaconej o nowe możliwości (co roku
powstają 2-3 nowe wersje jądra Linuxa). Aktualizacja systemu polega właśnie
głównie na ściągnięciu z Internetu (najlepiej z serwerów lustrzanych site'u
ftp.kernel.org) nowszej wersji jądra, oraz ew. co poniektórych pakietów,
"odświeżonych" przez tzw. "maintainer-ów" dystrybucji, której używamy.
Instalacja nowszej wersji całości systemu, tylko dlatego, że parę miesięcy
później wyszła wersja z numerkiem "o oczko" wyższym, w znakomitej większości
wypadków nie ma uzasadnienia.
Dokładne omówienie wszystkich zagadnień związanych z kompilacją jądra
(a w szczególności wszystkich możliwych do ustawienia opcji) znacznie
wykracza poza ramy niniejszego tekstu. Nie przerażajmy się jednak - wystarczy
pobieżna znajomość angielskiego i jak-taka znajomość własnego sprzętu.
Przebieg kompilacji w telegraficznym skrócie:
- logujemy się w systemie jako root
- cd /usr/src/linux
- teraz mamy 2 alternatywy: albo 1) Wpisanie make config
- będziemy poruszać się w czysto tekstowym systemie konfiguracji. Pamiętajmy,
że pomocy przy każdym pytaniu (no, prawie przy każdym...) możemy zasięgnąć
klawiszem <Esc>. Wyjście z ekranu pomocy klawiszem Q. albo też:
2) Wpisanie make menuconfig przeniesie nas do semigraficznego,
barwnego ekranu systemu konfiguracji. Pomoc osiągalna pod klawiszem H
- po przejściu "przesłuchania" wpisujemy: make dep clean zImage
- jeśli kompilacja przebiegła bez błędów (lub co najwyżej z "warningami"),
dokonujemy kompilacji i instalacji modułów zewnętrznych poleceniem:
make modules a potem make modules_install
- aktywujemy nowy kernel wpisaniem lilo i potem make zlilo
- możemy jeszcze "na wsiakij słuczaj" zrobić dyskietkę awaryjną
poleceniem make zdisk
Potem należy przeładować system - po restarcie zgłosi się nowe jądro.
Kontrola pracy systemu.
Brakuje nam wprawdzie znajomo brzmiącego "Panelu sterowania" z jego "systemem", ale to nie problem - mamy pod ręką wystarczającą ilość narzędzi - tylko brać!
W wierszu poleceń wpiszmy procinfo (bardziej szczegółowe informacje uzyskamy wpisując procinfo -a, po inne opcje zapraszam do man procinfo ;-). Skrótowy opis:
- pozycja bootup podaje czas ostatniego przeładowania systemu
- load average
pokazuje przeciętne obciążenie systemu
- IRQ
(przerwania) pokazuje częstotliwość dokonywania operacji We/Wy na określonym urządzeniu
- kernel command line
pokazuje parametr przekazany do LILO w trakcie uruchamiania systemu
- pozycje page in i page out oraz swap in i swap out
dają nam pogląd na stopień wykorzystania pamięci operacyjnej - jeśli zawierają
duże wartości lub szybko rosną, wskazuje to na intensywne korzystanie przez
system z pamięci wirtualnej, realizowanej przez partycję wymiany
("swap partition")
Co do samej partycji wymiany:
Jej wielkość możemy ustalać w trakcie instalacji, ale należy pamiętać,
że jakaś - choćby minimalna - powinna taka partycja być obecna. Oczywiście,
ten rodzaj pamięci jest znacznie wolniejszy niż RAM, ma jednak i swoje
zalety:
- dzięki niej uruchomimy większe objętościowo pakiety programy i będziemy w
stanie pracować z większymi ilościami danych
- ułatwimy sobie uruchamianie wielu programów naraz (sprawniejszy
multitasking)
- oraz - "last but not least" - taka pamięć, w przeliczeniu na megabajty za
złotówkę - jest po prostu znacznie tańsza
Linux może korzystać z partycjami wymiany o rozmiarze do 128 MB. Jeśli
potrzebujemy jeszcze więcej pamięci wirtualnej pamiętajmy, że możemy utworzyć
następne partycje wymiany na każdym kolejnym montowanym w systemie dysku
sztywnym. Linux może korzystać z max. 16-tu partycji wymiany.
Właśnie informacje o sposobie (i częstotliwości) wykorzystania
partycji wymiany dadzą nam obraz stopnia zapełnienia pamięci operacyjnej,
dzięki czemu dowiemy się m.in. czy konieczna jest jej rozbudowa bądź
utworzenie kolejnej partycji wymiany na instalowanym właśnie w systemie
dodatkowym dysku. Dokładniejszych niż procinfo wiadomości na ten temat
dostarczy nam vmstat:
Krótkie omówienie ekranu vmstat-a (dłuższe znajdziecie pod man vmstat):
- pozycja r ("run") wskazuje, ile w danej chwili "chodziłoby"
jeszcze więcej programów, gdyby procesor był w stanie w danej chwili je
obsłużyć. Im większa wartość r, tym system jest widocznie silniej
obciążony (programy czekają w kolejce na uruchomienie)
- b
wskazuje na ilość programów oczekujących zdarzeń systemowych
(np. dostępu do dysku). Jeśli ta wartość będzie b. duża, może to wskazywać na
problemy z obsługą procesów We/Wy
- w
informuje nas o licznie programów "odłożonych" na partycji
wymiany. Jego wysoka wartość może wskazywaćna zbyt małą ilość pamięci
operacyjnej
- swpd
podaje aktualną wielkość pamięci wirtualnej w KB
- free
oznacza niewykorzystaną w danej chwili wielkość pamięci RAM
- buff
podaje rozmiar RAM-u zajęty na bufory operacji We/Wy
- cache
wskazuje wielkość RAM-u zajętego pod pamięć podręczną dla dysku sztywnego
- si
, so (swap in i swap out) obrazują aktywność dysku
- in
(interrupts) wskazuje ilość przerwań wykonywanych w sekundzie
(wliczając w to przerwania zegara) - dla systemów "desktop" może to być
kilkaset, w przypadku serwerów nawet do kilku tysięcy. Zbyt wysoka wartość
może wskazywać na feler jakiegoś interfejsu (np. na uszkodzenie portu
seryjnego)
- cs
to liczba zadać (tasków) na sekundę - czyli szybkość, z jaką
procesor przełącza się między nimi
- us
- czas procesora zajęty przez programy, sy - przez system,
id - czas niewykorzystany.Uwaga: wysoka wartość wskaźnika id
może nie tylko oznaczać słabe obciążenie systemu, ale może równie dobrze
wskazywać na problemy ze zbyt małą ilością pamięci - być może system zamiast
pracować stale czeka dane z dysku! Należy wtedy zwrócić uwagę na dane dot.
pamięci wirtualnej.
Na koniec jeszcze krótko o 2 innych poleceniach:
Polecnie ps -aux poda nam pełną listę procesów "hulających" w danej
chwili po systemie, dając nam pogrupowane w kolumny informacje (podaję tylko
najważniejsze):
- USER - "właściciel" procesu (kto go uruchomił)
- PID - numer identyfikacyjny procesu
- %CPU, %MEM - procent wykorzystania zasobów systemu przez dany proces
- START - czas uruchomienia procesu
- COMMAND - "inwokacja" użyta do uruchomienia danego procesu
Dokładniejszy opis wraz z pełną listą opcji - jak się już pewnie domyślacie
- pod man ps.
W razie problemów z jakimś programem nie musimy dokonywać restartu
komputera; logujemy się po prostu na innej konsoli wirtualnej (klawisze od
<Alt>-F1 do <Alt>-F6) jako root, i "ubijamy" proces
rozkazem kill <PID_procesu> (np. kill 129).
Polecenie top ("display top CPU processes" - także i tu
zapraszam pod man top) pokaże nam podobny (znacznie uzupełniony) zestaw
informacji, odświeżany prawie na bieżąco - możemy wtedy na jednej konsoli
wirtualnej uruchomić jakiś program, a na innej prześledzić, jak zmienia się
obciążenie systemu i wykorzystanie jego zasobów. Wyjście z top-a
klawiszem Q.
Powrót