Systemy sieciowe wielodostępne
Unix, Linux

Cele: Poznanie systemów operacyjnych, sieci komputerowych i nowych technologii.
Uczeń wymienia sy
stemy wielodostępne i zna ich podstawowe zasady

UNIX

      UNIXsieciowy system operacyjny
z podziałem czasu, wielodostępny, wielozadaniowy

      Dostępny na różne komputery (inne systemy są związane z maszyną)

      Komputer główny (host) i terminale
oraz urządzenia peryferyjne

      Nie ma bagażu związanego z grafiką - działanie tekstowe szybsze.

      Oprogramowanie napisane prawie całkowicie w Unix

UNIX – ogólna charakterystyka

UNIX – podstawowe cechy systemu

Różnice w porównaniu z innymi systemami

      Rozróżnia duże i małe litery

      Nazwy do 32 znaków, bez spacji, _ zamiast spacji

      Kropka może być jak inny znak

      Nazwy od kropki na początku – pliki ukryte

      Nie wybacza błędów, o nic się nie pyta
 – można skasować pliki

 

Wersje UNIX – niektóre, bardziej znane

       BSD (Berkeley Software Distribution)

       AIX (Advanced Interactive eXecutive) firmy IBM. Platformą systemu AIX jest rodzina RS/6000  procesor IBM POWER.

       HP-UX (Hewlett Packard UniX) firmy Hewlett-Packard

       System Vrozwinięcie UNIX System IV, opublikowane przez AT&T w 1983, najbardziej znaczącą była wersja SVR4;
obecnie Novell lub SCO Group (V)

       SCO OpenServer – stworzony przez Santa Cruz Operation (SCO),  rozwijany przez SCO Group (V, B, S)

       Solaris – system operacyjny firmy Sun Microsystems

       UNICOS – rodzina systemów tworzonych dla superkomputerów Cray

       GNU/LinuxLinux ma niezależnie napisane przez Linusa Torvaldsa

       Xenixpierwszy UNIX dla 16-bitowej platformy x86, opracowany dla Microsoftu przez SCO (V)

Katalogi w Unix

     etc – konfiguracja systemu

     tmp, binpliki systemu operacyjnego

     usr – oprogramowanie użytkowe

     dev – urządzenia zewnętrzne

     users – użytkownicy

 

Jądro UNIX, Shell

      Jądro UNIX – najbliżej sprzętu. Pozostałe programy komunikują się ze sprzętem za pomocą jądra.

      Shell – umożliwia automatyzację wykonywania zadań, tworzenie prototypów aplikacji. Jest jednym z języków programowania  generacji (4GL) – interpreter, nie wymaga kompilacji.

  Odmiany Shella: Bourne’a, Korna, C, Bash

  Zmiana shella: sh, sch, tcsh, bash

 

 

Praca w UNIX

      telnet – dołączenie do UNIX

      Rozpoczęcie sesji:

      Po uruchomieniu wyświetla się zachęta - monit (prompt, zgłoszenie) login
Wpisuje się nazwę użytkownika i naciska Return.

      login – nazwa, password (min. 6 znaków)

      man – pomoc, np. man man

  man –a polecenie – pełny opis polecenia
np. man –a ls

 

Systemowe wspomaganie użytkownika:
pomoc -  man

Sterowanie wyświetlanym tekstem pomocy w man

q – przerywa wyświetlanie,

H - help

spacja – następna strona,

Enter – kolejny wiersz

$- ostatnia strona

s plik - skopiowanie opisu do pliku

+1 - następna strona

-1 -poprzednia strona

1 -pierwsza strona

Alt H – opis pozostałych klawiszy

Scroll Lock  Page Up, Page Dn – poruszanie się po historii;  

Scroll lock – wyjście

Alt a – uruchomienie kolejnej sesji;

Alt n – przełączanie się miedzy sesjami, np. obsługa poczty, ftp – w różnych sesjach.

Każda sesja działa współbieżnie.

 

Znaki specjalne w Unix

      Pliki zwykłe, specjalne (dla urządzeń, skorowidze)

      Nazwy ścieżek – oddzielone znakiem /,
np. /bin – rozkazy

      * - pewna liczba znaków

      [ ] – każdy ze znaków w nawiasie

      ? – pojedynczy znak

Konta

       W celu zorganizowania i rejestrowania działalności użytkowników, administrator systemu przydziela każdemu użytkownikowi konto.

       2 główne typy kont: użytkownika (user) i uprzywilejowane (super user).
Konta użytkownika są najczęściej spotykane i są przydzielane każdemu, kto chce pracować pod systemem UNIX.

       Konto użytkownika zawiera następujące informacje:

    Nazwa - pod jaką użytkownik jest w systemie. (Nazwisko). Podaje się ją po login

    Hasło - podaje się po podaniu nazwy konta, przy wejściu do systemu

    Identyfikator grupy. Każdy użytkownik jest członkiem jakiejś grupy. Użytkownik jako członek grupy ma dostęp do plików i skorowidzów, do jakich nie ma dostępu sam jako indywidualna osoba.

    Skorowidz macierzysty (home directory) - miejsce w systemie katalogów, gdzie użytkownik może zakładać własne katalogi. Znajduje się tam po otwarciu sesji.

    Powłoka (shell) - program który czyta i wykonuje rozkazy Unixa, wprowadzane przez użytkownika. Powłoka "Bourne'a" używa znaku zachęty $, a powłoka C - znaku %.

       Konto uprzywilejowane (root account) umożliwia administratorowi wykonywanie zadań administracyjnych m.in. czytanie i aktualizowanie dowolnego pliku w systemie, wykonywanie dowolnego programu.

Pliki

      W Unix są 3 typy plików:

    Zwykłe (pliki)

    Specjalne dla urządzeń

    Skorowidze (katalogi)

      Pliki zwykłe (zbiory bajtów) są przeważnie dokumentami, programami źródłowymi lub danymi. Programy binarne są również traktowane jako zwykłe.

      Każdy plik zwykły ma atrybuty:

    Nazwa pliku (niekoniecznie jedna)

    Numer pliku (jedyny), zwany numerem węzła (i-node number)

    Długość w bajtach

    Data i czas ostatniej zmiany

    Lista zezwoleń dostępu

    Identyfikatory właściciela i grupy

 

Prawa dostępu do plików - zabezpieczenie plików

      Read - prawo czytania
Write
- prawo aktualizacji (pisania)
Execute - prawo uruchomienia pliku (programu)

      Mechanizm zabezpieczenia jest 3-poziomowy:

    oddzielne uprawnienia dla właściciela pliku,

    grupy do której należy właściciel

    dla pozostałych użytkowników.

      Uprawnienia dostępu są przyznane przez właściciela pliku.

      Specjalne pliki dla urządzeń:
Każde fizyczne urządzenie podłączone do systemu,
jak dysk, drukarka, terminal, pamięć jest przydzielone do
pliku specjalnego - pliku urządzenia.

Skorowidze

      Skorowidzemiejscami do przechowywania plików.

      Plik skorowidzowy zawiera nazwy i miejsca położenia plików w nim zawartych.

      Skorowidze mogą być chronione przez prawa dostępu: read, write, execute.

      Aby móc cokolwiek wykonać w skorowidzu, trzeba mieć prawa execute.

      Execute i write pozwala dodawać i usuwać pliki ze skorowidza,

      Execute i read pozwala wylistować zawartość.

Struktura skorowidzów

      Na górze jest korzeń drzewa / - root - skorowidz główny, oznaczony / (slash), gałęzie rosną w dół. Zwykle są skorowidze bin, usr, dev. Każdy użytkownik ma przydzielony skorowidz macierzysty (home), w którym może przechowywać lub zakładać pliki i katalogi. Skorowidze macierzyste są zwykle umieszczone w katalogu usr

Konwencja nazewnictwa

      Każdy plik, skorowidz, urządzenie mają w UNIX
nazwę i nazwę ścieżki dostępu

      Nazwy plików

   Nazwy plików do 32 znaków, dowolna liczba kropek, nie ma spacji w nazwie (podkreślenie)

   Ciąg znaków składający się z liter, cyfr, innych znaków specjalnych, jak _.

   Najlepiej ograniczać się do znaków alfanumerycznych, nie zaleca się stosować znaków kontrolnych.

   Gdy nazwa pliku rozpoczyna się od kropki to plik staje się ukryty, nie będzie wyświetlony rozkazem ls.
Rozkaz ls -a wyświetla je.

   Znaki specjalne jak: ?, *, [ ] nie powinny być używane w nazwie bo mają one specjalne znaczenie w UNIX.

Nazwy ścieżek

       Nazwy skorowidzów oddziela się slashem /.
Nazwa rozpoczynająca się od
/ oznacza pełną lub absolutną ścieżkę dostępu (full).
Nazwa ścieżki rozpoczynająca się od 
./  jest względną (relative),
bo określa ją w stosunku do skorowidza bieżącego.

Przykłady:
/bin skorowidz z często używanymi rozkazami UNIXa

    /usr skorowidz z katalogami użytkowników

    /dev skorowidz z plikami specjalnymi dla urządzeń

    /dev/ttyXX plik specjalny związany z portem; XX - identyfikator portu, np. a01 lub 09

    /lib katalog z plikami bibliotek

    /usr/lib zawiera biblioteki aplikacyjne UNIX

    /tm dla plików tymczasowych

    /usr/st01/run pełna nazwa ścieżki

    bin/text względna nazwa ścieżki

    plik nazwa pliku w katalogu bieżącym

Specjalna notacja dla katalogu bieżącego i nadrzędnego

.  (kropka) - nazwa skorowidza bieżącego
np.   ./plik1  -  plik w katalogu bieżącym

 

..  (2 kropki)
skorowidz nadrzędny nad bieżącym, np.
../..  - skorowidz o 2 poziomy wyżej nad bieżącym

 

Znaki specjalne - metaznaki

*  zastępuje pewną liczbę znaków (również zerową)

[]  zastępuje każdy ze znaków w nawiasach

?  zastępuje pojedynczy znak

 

Przykłady

    lp roz* -wydruk wszystkich plików o nazwie na roz, np. roz, roz1, rozalia

    cat *  wyświetlenie zawartości wszystkich plików w katalogu bieżącym

    ls roz[1368]*  - wykaz plików roz1*, roz3*, roz6*, roz8*

    lp roz[2-68]* -  wydruk plików roz2*, roz3*, roz4*, roz5*, roz6*, roz8*

    ls ?  - wyświetlenie plików o jednoznakowych nazwach

    ls roz?.1  - wykaz plików roz1.1, roz2.1 ...

Gdy trzeba skasować specjalne znaczenie metaznaku,

należy go ująć w cudzysłów (').

    Np. ls '?" - wyświetlenie jedynie pliku o nazwie ?

Rozkazy

      Rozkazy są programami wykonywalnymi.

      Gdy poda się nazwę rozkazu, system odszukuje plik o tej nazwie i wykonuje go. Np.

   ls          - listowanie plików,
lp          - wydruk plików,
cat       - wyświetlenie zawartości pliku

      Można podawać wiele rozkazów w jednym wierszu, rozdzielając je średnikiem (; )
- sekwencyjne wykonywanie komend. Np.

date; pwd   - data i bieżący skorowidz

      Wykonywanie komend współbieżne
Rozkazy mogą być przetwarzane w tle przez dodanie znaki & na końcu wiersza. Np.
p1&p2&p3

Składnia rozkazu

Rozkaz [opcje] [argumenty]

           Nazwy rozkazów z małych liter.
Opcje są poprzedzane myślnikiem (-)
i nie muszą występować. Np.
ls -l       - wyświetlanie w pełnej formie (long listing)

           Opcje można nieraz grupować w jeden argument, np.
ls -rl
(w odwrotnej kolejności i w pełnej formie).

           Nieraz opcje muszą być podane oddzielnie.

           Można podawać też inne argumenty,
np. poszukiwanie łańcucha znaków:

      Grep tekst plik

Wejście i wyjście

Domyślnie wejście z klawiatury, wyjście na ekran. Np.
cat
oczekuje wejścia z klawiatury, przyjmuje wiersze znaków aż do wciśnięcia CTL d.

Przeadresowanie

       Kierunki rozkazów we /wy mogą być przeadresowane, można też tworzyć potoki (pipes), aby wykorzystać wyjście z jednego rozkazu jako wejście drugiego.

    ls > lista_pl              -  Lista plików w pliku lista_pl.

    cat p1 p2 p3 > tekst              - kopie plików do pliku tekst

    cat p4 p5 >> tekst - dołączenie plików do istniejącego tekst, bez jego kasowania, jeśli go nie ma to zostanie utworzony

    mail pak pzg pzk st01 < list.txt          - przesłanie pliku list.txt do kilku osób przez pocztę (mail).

       Poza standardowymi: wejściem (STDIN), wyjściem (STDOUT), wykorzystuje się często standardowe wyjście dla błędów (STDERR).
Np. by uniknąć wysyłania w czasie pracy w tle ostrzeżeń na ekran przez zadanie program:

      Program 0 < dane >> wynik 2 > errors

       Jeśli plik program miałby wiersz rozkazu:
Cat; echo "Koniec programu o godz."; date
to do pliku wynik zostaną dopisane pliki o nazwach w pliku dane (jeśli są) oraz napis:
Koniec programu o godz.
Fri Aug 2 10:41:24 1991

Potoki

      Potok wykorzystuje wyjście jednego rozkazu jako wejście do drugiego - oba są wykonywane jako sekwencja rozkazów.

      Przykłady
1): odszukanie niepowtarzalnych wierszy w kilku plikach i wyświetlenie wyniku:
sort p1.txt p2.txt p3.txt | uniq | more
2) liczba użytkowników aktualnie pracujących
who | wc -l
wc -l - podaje liczbę linii, who - kto pracuje

Komendy podstawowe w UNIX w porównaniu z DOS lub Novell

Komendy Unixa:

Wybrane polecenia UNIX

       uname - nazwa systemu, wersja np. elf4% - zgłoszenie systemu
elf4%uname  
à  IRIX64 odpowiedź systemu
uname –v  
à 02121744 odpowiedź systemu
uname –a 
à IRIX64 elf 6.4 02121744 IP27 - odpowiedź systemu - pełna nazwa

       cd     - zmiana katalogu

       cd. ~ == cd. – przywraca jako bieżący katalog macierzysty (osobisty) użytkownika

       cd. ~użytkownik            - przejście do katalogu użytkownika

       cd. .                  - przejście do katalogu bieżącego - musi być odstęp

       cd. ..                                 - przejście do katalogu nadrzędnego

       cd ../../../..         - przejście kilka poziomów wyżej

       pushdir katalog - przejście do katalogu i pamiętanie na stosie gdzie jesteśmy

       ls –l lista plików i katalogów – pełny listing (właściciel, grupa, wielkość, czas modyf.)
Wynik np. à Total 1064
-rw-r—r—1 nowak user 440936 Nov 21 17:57

       more plik        - przeglądanie pliku, nie można cofnąć

       less plik          - pozwala cofnąć, dodatkowe znaki sterujące

> przejście na koniec pliku ; < przejście na początek pliku ;
strzałka w górę lub dół - PgDn, PgUp

/tekst - znajdź tekst ; / - znajdź ponownie

Przykłady poleceń UNIX c.d.

        more group – przegląd pliku z informacjami o grupach

        more passwd - przegląd pliku z użytkownikami (hasła zaszyfrowane

W pliku passwd są:

      Login name – nazwa w login

      Hasło zaszyfrowane

      Identyfikator użytkownika

      Identyfikator grupy użytkownika

      Pełna nazwa

      Kartoteka bazowa

      Używany shell  

        cat plik                wypisanie pliku na ekranie

        cat > plik            pisanie do pliku z klawiatury, CTL d – koniec pliku

        ls >!nazwa          wykonanie pliku

        mv      - przenoszenie pliku

        cp      - kopiowanie pliku

        pwd    - print working directory - katalog bieżący

        rmdir - usunięcie katalogu

        rm      usunięcie pliku

        rm –r –i              - podkatalog usunięcie katalogu z podkatalogami

        whoami lub who am i           - kto jestem

        users                  użytkownicy

        ps      - informacja o procesach użytkownika wykonywanych aktualnie pod UNIX

        ps -AF | grep użytkownik

        kill -nr_sygn pid                 - zabicie procesu

Przeglądanie zawartości skorowidza ls

ls [opcje] [nazwy]

       Jeśli nazwy nie zostaną podane to wypisanie wszystkich plików
z bieżącego katalogu.
Jeśli podano jedną lub więcej nazw to wypisanie plików w katalogu nazwa lub pliku o zadanej nazwie.
Nazwy mogą zawierać metaznaki.
Opcje najważniejsze to -F, -R, -l, -s.

       Opcje:

-a    - wszystkie pliki, nawet ukryte zaczynające się od .

-b                    - pokazanie nie drukowanych znaków ósemkowo

-c                    - wylistowanie plików posortowanych wg daty utworzenia

-C    - wylistowanie plików w kolumnach

-d                    - jedynie katalogi

-f     - tylko katalogi

-F    - dodanie / do katalogów, * do plików wykonywalnych, @ do dowiązań symbolicznych

-g                    - jak -l ale podanie tylko grupy bez właściciela

-l     - długi format: prawa dostępu, właściciel, rozmiar, czas modyfikacji

 

Opcje ls

Zmiana skorowidza roboczego
cd [katalog]

   cd         - bez parametrów - przejście do katalogu macierzystego
 cd katalog
- przejście do skorowidza katalog, np. cd. /usr/bin

   cd /       przejście do katalogu głównego
cd ..     
przejście do katalogu nadrzędnego
cd ../..   przejście 2 szczeble wyżej

Tworzenie katalogów
mkdir [opcje] katalogi

      Opcje:
-m prawa nadanie praw dostępu nowym katalogom
-p awaryjne stworzenie katalogów macierzystych, jeśli nie istnieją

      Przykłady:
mkdir robol - założenie katalogu robol w katalogu aktualnym
należy się upewnić przez polecenie ls -f
mkdir /etc/rob
mkdir -m. 444 osobisty
- stworzenie katalogu tylko do odczytu
mkdir -p. praca/smietnik/pytania
równoważne poleceniu:
mkdir praca; cd. praca; mkdir smietnik; cd. smietnik; mkdir pytania; cd. ../..

Usuwanie skorowidza
rmdir [opcje] katalogi

      Opcje:
-p
- usunięcie katalogów i wszystkich katalogów macierzystych jeśli są puste
-s  
- zablokowanie komunikatów o błędach w opcji -p.
Przykład
rmdir robol
Jeżeli katalog jest niepusty to polecenie nie zadziała, wypisze komunikat:
rmdir: robol not empty (robol nie jest pusty)

Zmiana nazwy skorowidza mv

   Zmiana nazwy skorowidza
mv
katal_zrodlowy  katal_docelowy

   Np.

   mv robol newdir

Praca z plikami

      Wyświetlanie zawartości plików: more, head, tail, cat

      more [opcje] [pliki]

Wyświetlanie zawartości pliku porcjami, mieszczącymi się na ekranie
Np. more /etc/termcap
Rozkaz more jest często używany w potokach,
np.          ls -l /bin | more
Rozkazy head i tail wyświetlają odpowiednio początek i koniec pliku, domyślnie 10 wierszy.
tail /etc/termcap                         ostatnie 10 wierszy pliku
head -20 /etc/termcap
pierwsze 20 wierszy pliku /etc/termcap
head -20 lista_telefonow
grep '(202)' lista_telefonoe | head
- wypisanie pierwszych 10 tel. o numerze kier. 202
cat - wyświetla zawartość pliku w sposób ciągły.
CTL s      - zatrzymuje,     CTL q   - uruchamia,
DEL        - przerywa   definitywanie
Przykład:  cat /etc/termcap

Usuwanie plików:  rm [opcje] pliki

Opcje:
-f    usuwanie plików zabezpieczonych przed     zapisem, bez pytania
-i    pytanie o potwierdzenie
-r   usuniecie całego katalogu z podkatalogami, jeśli to katalog - niebezpieczne!!!
Przykłady:
touch rob1 rob2 rob3 - założenie plików
rm rob3 usunięcie rob3
rm -i rob1 rob2 usunięcie z pytaniem czy usunąć
rm -i rob? -"-

Łączenie plików

      cat [opcje] pliki

 

      cat ch1         - wyświetlenie pliku

 

      cat ch1 ch2 ch3 > all
- połączenie plików

      cat ch4 >> all  -dołączenie pliku

Polecenie  mv

Zmiana nazwy pliku

mv [opcje] plik_zrodlowy  plik_docelowy

Np.

mv  nazwa1  nazwa2
-
zmiana pliku nazwa1 na nazwa2

Przemieszczanie plików

mv [opcje] pliki_zrodlowe katalog_docelowy

Np.

mv suma2  /tmp
- przeniesienie pliku suma2 do /tmp

mv /tmp/suma2  ./
przeniesienie z powrotem suma2 do katalogu bieżącego

Kopiowanie plików

cp [opcje] plik1 plik2  lub  cp [opcje] pliki katalog

cp [opcje] plik1 plik2 - kopiowanie pliku na inny

cp [opcje] pliki katalog
- kopiowanie plików do innego skorowidza

      Przykłady:
cp suma2 suma3 - kopiowanie suma2 na suma3
cp suma2 suma3 /tmp
- kopiowanie 2 plików do skorowidza /tmp
cp suma? /tmp          - j.w.
cp zawsze sprawdza czy ostatni argument jest nazwą skorowidza i jeśli tak to kopiuje pliki do niego.

Wyszukiwanie plików

find ścieżka [-name] nazwa_pliku [-print]

 Opcja -name oznacza, że poszukuje się plików, które mają określoną nazwę.

Opcja -print oznacza żądanie wydruku nazw ścieżek plików.

Przykłady:
find / -name suma2 -print
szukanie pliku suma2 we wszystkich katalogach
find $HOME -print wszystkie pliki i podkatalogi w macierzystym katalogu
find /praca -name rozdz1 -print
wszystkie pliki rozdz1 z katalogu /praca

Wydruk plików

lp [opcje] [pliki]

Przykłady:
lp wynik
- wydruk pliku wynik
lp wynik -n2 - 2 kopie wydruku
lp wynik -n2 -dlaser
- wydruk na drukarce laser
lp -n 5 raport - wydrukowanie 5 egz. pliku raport i wysłanie poczty elektronicznej
lp -n 2 –m  raport wydrukowanie 2 egz.

Edytory w UNIX

     vivisual editor (głównie dla programistów i administratorów)

     joe (popularny, prosty)

     pico

     emacs

 

Klawisze specjalne w UNIX

      ALT      help

      ALT A   dodaje sesję

      ALT N   nowa sesja

      ALT X   zamyka połączenie

      Scroll lock    cofanie się po ekranie,

      scroll lock – wyłącza

Porozumiewanie się – talk, irc


Poczta pod UNIX

Mail c.d.

Inne programy pocztowe: elm, pine

Protokół FTP

Najważniejsze komendy ftp

ftp – polecenia c.d.

Przykłady ftp:

Automatyczne kierowanie listów pod wskazany adres internetowy

      Jeżeli w swoim katalogu osobistym sporządzimy plik o nazwie .forward, a w pliku tym umieścimy adres(y), to korespondencja będzie tam kopiowana.

      joe .forward

      np. nazwisko1@elf.ii.uj.edu.pl., nazwisko2@zeus.polsl.gliwice.pl., mailto:nazwisko3@softlab.ii.uj.edu.pl

      Wpisujemy adresy pocztowe. Program przesyła automatycznie pod adres wpisany.
Może być kilka adresów oddzielonych przecinkami. Może być przesłanie do Novela.

Linux

Historia i cechy Linux

       Linux  – rodzina uniksopodobnych systemów operacyjnych opartych o jądro Linux.
Linux jest jednym z przykładów wolnego i otwartego oprogramowania jego kod źródłowy może być dowolnie wykorzystywany, modyfikowany i rozpowszechniany.

       Historia Linuksa rozpoczęła się w 1991 roku, kiedy to fiński programista, Linus Torvalds poinformował o hobbystycznym tworzeniu przez siebie niedużego, wolnego systemu operacyjnego, przeznaczonego dla procesorów z rodzin i386, oraz i486.

       Linus stworzył jednak tylko jądro, pełny system operacyjny potrzebował jeszcze powłoki systemowej, kompilatora, bibliotek, itp. W roli większości z tych narzędzi użyto oprogramowania GNU, co jednak w przypadku niektórych komponentów systemu wymagało poważnych zmian.

       Dużo pracy wymagało także zintegrowanie systemu do postaci dystrybucji, które umożliwiały zainstalowanie go w stosunkowo prosty sposób.
Jednymi z pierwszych były opublikowany 16.07.1993
Slackware Linux czy założony miesiąc później Debian, nazywający siebie GNU/Linux

Zastosowanie Linuxa

       Linux stosowany jest jako podstawowy system operacyjny serwerów (w tym WWW, FTP, pocztowych, baz danych), zapór sieciowych, routerów, a także w systemach osadzonych oraz w niektórych odtwarzaczach DVD i tunerach DVB.

       Ze względu na powstanie i rozwój dystrybucji o łatwej instalacji i dużych zasobach oprogramowania, Linux znajduje również zastosowanie na rynku komputerów biurowych i domowych. Rządy kilku państw europejskich prowadzą wdrożenia Linuksa na komputerach administracji państwowej. Ponadto, ze względu na bezpieczeństwo, stabilność, możliwość audytu i łatwość modyfikacji kodu źródłowego, z Linuksa korzystają agencje wywiadowcze, kontrwywiad i wojsko.

       Linux wykorzystywany jest przez niektóre banki i instytucje finansowe.
Przykładowo, system notowań
Wall Street oparty jest na tym systemie operacyjnym.

       Linux jest używany w większości superkomputerów z listy TOP500.
Znalazł również zastosowanie w przemyśle filmowym – zarówno na serwerach jak i stacjach roboczych.
Jest najpopularniejszym systemem na komputerach wykorzystywanym do tworzenia animacji i efektów specjalnych. Z jego możliwości korzystają między innymi studia
Dreamworks, Pixar czy Industrial Light & Magic.

       Również aparatura medyczna, np. tomografy komputerowe firmy GE, korzysta z systemu operacyjnego Linux. Popularne punkty dostępu sygnału Wi-Fi również opierają się na uproszczonym jądrze Linuksa i procesorach ARM, coraz częściej pojawiają się też telefony komórkowe z tym systemem.

Oprogramowanie Linux

      Komponenty typowego systemu rozprowadzane są zazwyczaj w formie

  gotowych pakietów binarnych dla danej dystrybucji (np. RPM, deb i tgz)

  lub jako pakiety źródłowe (zarchiwizowane i spakowane do formatów tar.bz2, tar.gz, SRPM), które należy przed użyciem skompilować.

      W niektórych dystrybucjach (np. Gentoo) proces kompilacji źródeł jest wysoce zautomatyzowany.

Interfejs wiersza poleceń

      Linux zawiera interfejs wiersza poleceń jako część funkcji przejętych z Uniksa.

      Dystrybucje wyspecjalizowane na serwery lub administrację mogą używać wiersza poleceń jako jedynego interfejsu.

      Nieobecność interfejsu graficznego (GUI) pozwala na zminimalizowanie wykorzystywanych zasobów systemowych

 

Interfejs graficzny

      Graficzny interfejs użytkownika GUI nie jest w Linuksie integralną częścią systemu operacyjnego, lecz dodatkowym zbiorem programów. W zależności od stopnia zaawansowania i integracji użytych rozwiązań, dostępne GUI możemy podzielić na małe menedżery okien, oraz duże środowiska graficzne.

      Jednym z pierwszych rozpowszechnionych środowisk graficznych było CDE, które nie stało się popularne na Linuksie ze względu na koszty i ograniczenia licencyjne. W 1996 powstało KDE, a po nim, w 1997 roku, GNOME.

       Obecnie rozwiązaniami dominującymi są GNOME i KDE, zazwyczaj instaluje się je standardowo na systemach linuksowych.

Środowiska graficzne GNOME i KDE

Każde z tych środowisk oferuje:

       dla programistów m.in. zestaw standardowych API oraz środowisko programistyczne.

       dostępność w wielu językach i wsparcie dla tłumaczy

       kompletne środowisko graficzne z zestawem potrzebnych aplikacji, takich jak menedżer plików, przeglądarka internetowa, odtwarzacz multimediów, klient poczty elektronicznej, książka adresowa, przeglądarka dokumentów PDF, menedżer fotografii

       możliwość dostosowania systemu do swoich potrzeb.

Mimo iż oba te środowiska graficzne mają podobne cele, radzą sobie z nimi całkiem inaczej.

    KDE stara się, aby aplikacje były jak najbardziej konfigurowalne, aby można było w nie ingerować i aby mogły ze sobą w łatwy sposób kooperować.

    GNOME z drugiej strony, dbając o najmniejszy szczegół, stara się, aby całość była jak najprostsza w obsłudze, szczególnie z punktu widzenia osób przyzwyczajonych do korzystania z produktów Microsoftu.

    Każde z tych środowisk przyciąga inny rodzaj użytkowników i tworzy inną społeczność deweloperów.

Popularne wersje Linux

      Redhat,

      Fedora,

      Debian,

      Knoppix

      Ubuntu

      Mandriva

      OpenSUSE, przedsięwzięcie sponsorowane przez Novella

      Linux Mint bazująca na systemie Debian