Gym
lesson

Linux distribucije

Cilj lekcije: Razumeti šta je Linux distribucija, zašto postoji toliko mnogo različitih, koje su glavne familije i kako odabrati pravu distribuciju za sebe.


Šta je distribucija?

Rekli smo da je Linux kernel. Ali sam kernel nije operativni sistem koji možeš svakodnevno koristiti — to je samo jezgro.

Da bi imao funkcionalan sistem, kernel mora biti upakovan zajedno sa:

  • Shell-om (npr. Bash) — ono kroz sta kucas komande; interfejs ka sistemu
  • Sistemskim alatima (ls, cp, grep, ps...) — komande za upravljanje sistemom
  • Package manager-om — instaler programa; sluzi za instalaciju i azuriranje softvera
  • Init sistemom (npr. systemd) — pokrece sistem pri startu i upravlja servisima
  • Desktop okruženjem (opciono) — grafički interfejs
  • Raznim aplikacijama — browser, editor, itd.

Ovakav kompletni paket koji sadrži Linux kernel i sve što je potrebno za rad naziva se distribucija ili skraćeno distro.

Različite organizacije i zajednice kreiraju distribucije sa različitim ciljevima — stabilnost za servere, lakoća za početnike, kontrola za napredne korisnike, ili specijalizovana namena poput cybersecurity-ja.


Zašto postoji toliko mnogo distribucija?

Kad prvi put čuješ da postoje stotine Linux distribucija, zvuči haotično. Zašto ne postoji samo jedna?

Odgovor leži u prirodi open source-a: svako ima slobodu da napravi sopstvenu verziju.

Razlozi za različite distribucije:

Različite namene:

  • Server distribucija treba stabilnost iznad svega
  • Desktop distribucija treba korisničku prijaznost
  • Penetration testing distribucija treba specifične sigurnosne alate

Različite filozofije:

  • Neke distribucije žele uvek najnoviji softver (rolling release — stalna nadogradnja: uvek najnovije verzije, ali manje stabilno)
  • Neke preferiraju testiran, stabilan softver
  • Neke su 100% slobodan softver, neke uključuju i proprietary drajvere

Različite publike:

  • Početnici trebaju jednostavnost
  • Napredni korisnici žele potpunu kontrolu
  • Firme trebaju dugotrajnu podršku i SLA (servisne ugovore)

Napomena: Ova raznolikost je snaga, ne slabost. Postoji distribucija za svaki slučaj upotrebe. Jednom kada naučiš osnove na jednoj distribuciji, prelazak na drugu je lak.


Familije distribucija

Umesto da učiš svaku distribuciju zasebno, korisno je razumeti familije — grupe distribucija koje dele zajednička tehničke temelje.

Debian familija

Debian je jedna od najstarijih i najuticajnijih distribucija, pokrenuta 1993. godine. Poznata je po stabilnosti i konzervativnom pristupu — softver koji uđe u Debian je temeljno testiran.

Package manager: apt (Advanced Package Tool) Format paketa: .deb

# Instalacija programa
sudo apt install nginx

# Uklanjanje programa
sudo apt remove nginx

Ubuntu je najpoznatija derivacija Debian-a. Cilj Ubuntu-a je bila lakoća korišćenja i dostupnost za sve. Danas je Ubuntu dominantan na cloud serverima i popularan za desktop.

Ubuntu varijante:

  • Ubuntu LTS (Long Term Support) — stabilna, podrška 5 godina, idealna za servere
  • Ubuntu Desktop — za svakodnevno korišćenje
  • Ubuntu Server — bez grafičkog interfejsa, optimizovan za servere

Iz Ubuntu-a izraslo je još distribucija: Linux Mint (popularan za početnike), Pop!_OS (za programere i gamere), Elementary OS (estetski dizajn).

Za ovaj kurs: Koristimo Debian-based okruženje. Sve komande i primeri koje vidite testirani su na Debian/Ubuntu sistemu.


Red Hat familija

Red Hat je kompanija koja je napravila Red Hat Enterprise Linux (RHEL) — distribuciju fokusiranu na poslovne korisnike, sa dugotrajnom podrškom i komercijalnom podrškom.

RHEL je popularan u velikim korporacijama, finansijskim institucijama i državnim agencijama.

Package manager: dnf Format paketa: .rpm

# Instalacija na RHEL/Fedora/CentOS
sudo dnf install nginx

# Pretraga paketa
dnf search python

Fedora je zajednicama vođena distribucija sponzorisana od Red Hat-a. Testira najnovije tehnologije koje eventualno uđu u RHEL. Dobra za programere koji žele novi softver.

CentOS je bio besplatna verzija RHEL-a za servere, ali je promijenio smer 2020. AlmaLinux i Rocky Linux nastali su kao zamene — potpuno kompatibilni sa RHEL-om, besplatni.


Arch familija

Arch Linux je distribucija po principu "uradi sam" — dolazi kao minimalni sistem i ti dodaješ sve što ti treba. Nema grafičkog instalera, nema predinstaliranih aplikacija. Samo ti i terminal.

Package manager: pacman Filozofija: KISS (Keep It Simple, Stupid) — jednostavnost arhitekture

# Instalacija na Arch Linux-u
sudo pacman -S nginx

# Ažuriranje sistema
sudo pacman -Syu

Arch nije za početnike, ali nagrađuje učenjem — instalacijom Arch Linux-a naučiš tačno kako Linux sistem funkcioniše iznutra.

Manjaro je Arch-bazirana distribucija koja dodaje grafički instalер i lakši onboarding, zadržavajući Arch prednosti.


Ostale značajne distribucije

openSUSE — odlični administratorski alati (YaST).

Gentoo — svaki program se kompajlira iz izvornog koda za tvoj hardver. Maksimalna optimizacija i kontrola, ali zahteva mnogo vremena i znanja.

Slackware — jedna od najstarijih distribucija, minimalna, Unix-like filozofija.

Kali Linux — specijalizovana za penetration testing i cybersecurity, dolazi sa stotinama sigurnosnih alata. Bazirana na Debian-u.

Alpine Linux — izuzetno mala distribucija (~5MB), popularna za Docker kontejnere.


Pregled: stablo distribucija

Linux Kernel
├── Debian
│   ├── Ubuntu
│   │   ├── Linux Mint
│   │   ├── Pop!_OS
│   │   └── Elementary OS
│   └── Kali Linux
├── Red Hat (RHEL)
│   ├── Fedora
│   ├── CentOS Stream
│   ├── AlmaLinux
│   └── Rocky Linux
├── Arch Linux
│   └── Manjaro
├── openSUSE
│   └── SUSE Linux Enterprise
└── Gentoo
    └── Chrome OS (Chromium OS)

Kako odabrati pravu distribuciju?

Odgovor zavisi od tvog cilja.

Za početnike — Desktop

Linux Mint ili Ubuntu su odlični početni izbori. Imaju grafički interfejs, aplikacije za svakodnevnu upotrebu, i veliku zajednicu za pomoć.

Za servere

Ubuntu LTS — najčešći izbor za cloud i web servere. Ogromna dokumentacija, podrška, i kompatibilnost.

Debian — kada ti treba ekstremna stabilnost. Sporije dobija ažuriranja, ali je stabilan.

AlmaLinux / Rocky Linux — kada firma zahteva RHEL kompatibilnost, ali bez troška licenci.

Za cybersecurity

Kali Linux — de facto standard za penetration testing. Dolazi sa Metasploit, Burp Suite, Nmap, Wireshark i stotinama drugih alata.

Upozorenje: Kali Linux nije distribucija za svakodnevno korišćenje. Namenjena je specifičnim zadacima. Pokretanje Kali-ja kao primarnog OS-a nije preporučeno.

Za učenje kako funkcioniše Linux

Arch Linux — instalacijom naučiš kako sve komponente funkcionišu.

Za developere

Fedora ili Ubuntu — oba imaju odlične razvojne alate i najnoviji softver.


Desktop okruženja

Još jedna dimenzija raznolikosti: desktop okruženja. Ista distribucija može imati više varijanti sa različitim grafičkim interfejsima.

Desktop okruženje Karakteristika Distribucije
GNOME Moderno, jednostavno Ubuntu, Fedora, Debian
KDE Plasma Bogat funkcijama, prilagodljiv Kubuntu, openSUSE, Manjaro
XFCE Lagan, brz Xubuntu, Linux Mint XFCE
MATE Klasičan, jednostavan Linux Mint MATE
Cinnamon Windows-like, lak za početnike Linux Mint

Na serveru, desktop okruženje se gotovo nikad ne instalira — samo terminal.


Za ovaj kurs: Debian-based okruženje

Kroz ovaj kurs, svi primeri i vežbe zasnovani su na Debian-based okruženju (kompatibilno sa Ubuntu-om).

Razlozi za ovaj izbor:

  • Debian/Ubuntu je najrasprostranjeniji na cloud serverima i u IT industriji
  • apt package manager je intuitivan i dobro dokumentovan
  • Ogromna zajednica i dokumentacija na srpskom i engleskom jeziku
  • Lab okruženje koje koristimo je Debian-based

Znanje koje stekneš direktno je prenosivo na:

  • Ubuntu (sve verzije)
  • Debian servere
  • AWS/Google Cloud/Azure instance (koje defaultno koriste Ubuntu ili Amazon Linux)
  • WSL (Windows Subsystem for Linux)

Rezime

  • Distribucija = Linux kernel + shell + alati + package manager + (opciono) desktop
  • Postoji mnogo distribucija jer je Linux open source — svako može napraviti svoju verziju
  • Glavne familije: Debian (apt, .deb), Red Hat (dnf, .rpm), Arch (pacman)
  • Izbor distribucije zavisi od namene: server, desktop, cybersecurity, učenje
  • Za ovaj kurs koristimo Debian-based okruženje

U sledećoj lekciji govorimo o konkretnim načinima na koje možeš pristupiti Linux-u — od instalacije do web terminala koji koristimo u kursu.