Τι Είναι Πραγματικά το Linux
Το Linux δεν είναι απλώς ένα λειτουργικό σύστημα — είναι ο πυρήνας (kernel) πάνω στον οποίο χτίζονται εκατοντάδες λειτουργικά συστήματα. Αυτό που κοινώς αποκαλούμε "Linux" είναι στην πραγματικότητα μια διανομή (distribution ή distro): ο Linux kernel σε συνδυασμό με εργαλεία GNU, package managers, graphical environments και εκατοντάδες άλλες εφαρμογές.
Ο ίδιος ο Linus Torvalds, δημιουργός του Linux, ξεκίνησε το 1991 με έναν kernel που δεν είχε σκοπό να γίνει το backbone του σύγχρονου internet. Σήμερα, το Linux τρέχει στο 96.4% των top 500 supercomputers του κόσμου, σε κάθε Android smartphone, στα servers της Google, Amazon και Facebook, και στον πυρήνα του macOS (XNU, που μοιράζεται UNIX κληρονομιά).
Linux vs GNU/Linux
Υπάρχει μια ιστορική διαμάχη: ο Richard Stallman επιμένει στον όρο GNU/Linux, επειδή τα εργαλεία GNU (gcc, bash, coreutils) είναι εξίσου κρίσιμα με τον kernel. Ο Torvalds χρησιμοποιεί απλώς "Linux". Στην πράξη, όταν λέμε "Linux", εννοούμε το ολοκληρωμένο σύστημα.
- Ελεύθερο και ανοιχτού κώδικα
- Εξαιρετική ασφάλεια και σταθερότητα
- Πλήρης έλεγχος του συστήματος
- Τρέχει σε σχεδόν κάθε υλικό
- Μηδενικό κόστος αδειοδότησης
- Τεράστια κοινότητα και documentation
- Ιδανικό για servers και dev environments
- Καμπύλη εκμάθησης για αρχάριους
- Περιορισμένη υποστήριξη gaming (βελτιώνεται)
- Ορισμένα professional apps δεν υπάρχουν
- Driver issues σε νέο hardware
- Κατακερματισμός distros μπερδεύει
- Λιγότερη εμπορική υποστήριξη
Χρονολόγιο: Από το 1991 ως Σήμερα
Η ιστορία του Linux είναι μια από τις πιο απίθανες επιτυχίες στην ιστορία της τεχνολογίας. Ένας Φιλανδός φοιτητής 21 ετών έγραψε ένα μήνυμα σε mailing list που άλλαξε τον κόσμο.
I'm doing a (free) operating system (just a hobby, won't be big and professional
like gnu) for 386(486) AT clones."
— Το αρχικό post που ξεκίνησε τα πάντα
Ο Πυρήνας: Πώς Λειτουργεί
Ο Linux kernel είναι monolithic — ένα ενιαίο εκτελέσιμο που τρέχει στον kernel space. Σε αντίθεση με τα microkernel αρχιτεκτονικά (π.χ. GNU Hurd), όλες οι υπηρεσίες (drivers, filesystem, networking) τρέχουν στον ίδιο address space, κάτι που δίνει απόδοση αλλά απαιτεί προσοχή στην ασφάλεια.
Βασικά Υποσυστήματα
Process Scheduler
Ο Linux χρησιμοποιεί τον CFS (Completely Fair Scheduler) από την έκδοση 2.6.23. Κάθε process παίρνει «δίκαιο» χρόνο CPU ανάλογα με το priority του (nice value: -20 έως +19). Από το Linux 6.6, το νέο EEVDF scheduler αντικαθιστά σταδιακά το CFS για καλύτερη latency.
Virtual File System (VFS)
Το VFS είναι μια abstraction layer που επιτρέπει στον kernel να μιλά με οποιοδήποτε filesystem (ext4, btrfs, xfs, ntfs, fat32) με ενιαίο API. Στο Linux, τα πάντα είναι αρχείο — ακόμα και devices (/dev/sda), processes (/proc/1234) και sockets.
Memory Management
Ο Linux χρησιμοποιεί virtual memory με paging (4KB pages by default, 2MB/1GB huge pages για performance). Το OOM Killer (Out of Memory) σκοτώνει processes όταν εξαντληθεί η μνήμη — επιλέγει αυτό με τη χαμηλότερη "oom_score".
Το Linux Filesystem Hierarchy
Σε αντίθεση με τα Windows που χρησιμοποιούν γράμματα (C:\, D:\), το Linux έχει ένα ενιαίο δέντρο αρχείων που ξεκινά από / (root). Κάθε directory έχει συγκεκριμένο σκοπό:
/
├── bin/ # Essential binaries (ls, cp, mv, bash)
├── boot/ # Kernel images, bootloader (GRUB)
├── dev/ # Device files (/dev/sda, /dev/null)
├── etc/ # System configuration files
├── home/ # User home directories (/home/user)
├── lib/ # Shared libraries (.so files)
├── media/ # Removable media mount points
├── mnt/ # Temporary mount points
├── opt/ # Optional/third-party software
├── proc/ # Virtual FS: process & kernel info
├── root/ # Home directory of root user
├── run/ # Runtime data (PIDs, sockets)
├── sbin/ # System binaries (for root: fdisk, iptables)
├── srv/ # Data for services (web, ftp)
├── sys/ # Virtual FS: hardware/driver info
├── tmp/ # Temporary files (cleared on reboot)
├── usr/ # User programs, libraries, docs
└── var/ # Variable data: logs, databases, mail
rm -rf / ή rm -rf /* — διαγράφει τα πάντα στο σύστημα. Το σύγχρονο Linux έχει προστασία, αλλά με --no-preserve-root μπορεί να εκτελεστεί. Πάντα να επαληθεύεις πριν από επικίνδυνες εντολές.
Οι Κορυφαίες Linux Distros
Υπάρχουν πάνω από 600 ενεργές Linux διανομές. Ο λόγος; Ο καθένας μπορεί να φτιάξει τη δική του. Στην πράξη, όμως, σχεδόν όλες προέρχονται από τρεις «οικογένειες»: Debian, Red Hat και Arch.
Σύγκριση Διανομών — Side by Side
| Distro | Package Manager | Release Model | Default DE | Ideal For |
|---|---|---|---|---|
| Ubuntu 24.04 | apt |
LTS (2 χρόνια) | GNOME 46 | Αρχάριοι, Servers, Dev |
| Debian 12 | apt |
Stable (3-4 χρόνια) | GNOME / KDE | Servers, Production |
| Fedora 40 | dnf |
Semi-rolling (6μηνο) | GNOME 46 | Developers, Desktop |
| Arch Linux | pacman + yay |
Rolling Release | Καμία (DIY) | Experts, Control freaks |
| Linux Mint 21 | apt |
LTS | Cinnamon | Windows Migrants |
| Kali Linux | apt |
Rolling | XFCE | Pentesters, Security |
| RHEL / Rocky | dnf |
Stable (10 χρόνια) | GNOME | Enterprise Servers |
| Alpine Linux | apk |
Stable | Καμία | Docker, Embedded |
Δείκτες Απόδοσης
Εκδόσεις Linux Kernel: Τι Άλλαξε
Ο Linux kernel κυκλοφορεί νέα έκδοση κάθε 8–10 εβδομάδες. Υπάρχουν δύο κύριες κατηγορίες: Mainline (τελευταία) και LTS (Long Term Support, συντηρείται 2–6 χρόνια).
uname -r στο terminal. Το αποτέλεσμα π.χ. 6.5.0-45-generic σημαίνει: kernel 6.5, sub-version 0, ABI 45, generic build (για desktop).
Οδηγός Εγκατάστασης Ubuntu 24.04
Θα εγκαταστήσουμε το Ubuntu 24.04 LTS (Noble Numbat) — η πιο αξιόπιστη επιλογή για αρχάριους, με υποστήριξη έως Απρίλιο 2029.
$ sha256sum ubuntu-24.04-desktop-amd64.iso
81fae9cc21e2b1e3a9a4526c7dad3131b668e346...
dd από terminal. Το Etcher είναι απλούστερο.$ sudo dd bs=4M if=ubuntu-24.04.iso of=/dev/sdX status=progress oflag=sync
| Επιλογή | Χρήση | Κίνδυνος |
|---|---|---|
| Erase disk & install | Μόνο Linux, νέο PC | Χαμηλός |
| Install alongside Windows | Dual boot | Μέτριος |
| Manual partitioning | Πλήρης έλεγχος | Υψηλός |
$ sudo apt update && sudo apt upgrade -y
# Εγκατέστησε βασικά εργαλεία
$ sudo apt install -y curl wget git vim htop neofetch build-essential
# Δες πληροφορίες συστήματος
$ neofetch
.:-=+*#%%@@%%#*+=-. user@ubuntu
.:+#@@@@@@@@@@@@@@@@#*=. -----------
.:+%@@@@@@@@@@@@@@@@@@@@@@%+. OS: Ubuntu 24.04 LTS
:+%@@@@@@@@@@@@@@@@@@@@@@@@@@%+: Kernel: 6.8.0-35-generic
Βασικές Terminal Εντολές
Το terminal είναι η καρδιά του Linux. Μάθε αυτές τις εντολές και θα μπορείς να χειριστείς οποιοδήποτε Linux σύστημα.
Navigation & Files
/home/user
$ ls -la # List all files with details
drwxr-xr-x 2 user user 4096 Jun 16 12:00 Documents
$ cd ~/Documents # Change directory
$ mkdir -p projects/linux # Create nested directories
$ cp -r source/ dest/ # Copy recursively
$ mv old.txt new.txt # Move / rename
$ find / -name "*.conf" # Find files by name
Process Management
$ top # Real-time process monitor
$ htop # Better top (install first)
$ kill -9 1234 # Force kill process by PID
$ killall firefox # Kill by process name
$ systemctl status nginx # Service status
$ systemctl restart nginx # Restart service
Network
$ ping -c 4 google.com # Test connectivity
$ ss -tlnp # Open ports (replaces netstat)
$ curl -I https://google.com # HTTP headers
$ nmap -sV 192.168.1.1 # Port scan (install nmap)
$ wget -O file.zip URL # Download file
Permissions & Users
$ chown user:group file # Change owner
$ sudo -i # Switch to root shell
$ useradd -m newuser # Create user with home dir
$ passwd newuser # Set password
$ usermod -aG sudo user # Add to sudo group
Package Managers: apt vs dnf vs pacman vs snap vs flatpak
Ο package manager είναι το «app store» του Linux — κατεβάζει, εγκαθιστά, ενημερώνει και αφαιρεί λογισμικό. Η επιλογή distro καθορίζει ποιον χρησιμοποιείς, αλλά υπάρχουν και cross-distro λύσεις.
$ sudo apt update
# Εγκατάσταση
$ sudo apt install vim git curl
# Αφαίρεση (+ config files)
$ sudo apt purge firefox
# Αναζήτηση
$ apt search nodejs
# Αναβάθμιση όλων
$ sudo apt upgrade -y
# Καθαρισμός χώρου
$ sudo apt autoremove && sudo apt autoclean
$ sudo dnf install vim git curl
# Αφαίρεση
$ sudo dnf remove firefox
# Αναζήτηση
$ dnf search nodejs
# Αναβάθμιση
$ sudo dnf upgrade --refresh
# Ιστορικό transactions
$ dnf history
# Undo τελευταίου transaction
$ sudo dnf history undo last
$ sudo pacman -S vim git curl
# Αφαίρεση + dependencies
$ sudo pacman -Rns firefox
# Αναζήτηση
$ pacman -Ss nodejs
# Αναβάθμιση συστήματος
$ sudo pacman -Syu
# AUR (Arch User Repository) με yay
$ yay -S google-chrome # Packages που δεν υπάρχουν αλλού
# Εύρεση ορφανών packages
$ sudo pacman -Rns $(pacman -Qtdq)
$ sudo snap install code --classic # VS Code
$ snap list # Installed snaps
$ sudo snap refresh # Update all
# FLATPAK — universal Linux packages
$ flatpak install flathub org.gimp.GIMP
$ flatpak update
$ flatpak list
# Προσθήκη Flathub repository
$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Desktop Environments: GNOME vs KDE vs XFCE vs i3
Το Desktop Environment (DE) είναι το γραφικό περιβάλλον — αυτό που βλέπεις. Στο Linux, το DE είναι αποσυνδεδεμένο από το λειτουργικό σύστημα: μπορείς να εγκαταστήσεις οποιοδήποτε DE σε οποιαδήποτε distro.
sudo apt install kde-plasma-desktop ή sudo apt install xfce4 — και μετά επίλεξε από το gear icon στο login.
Bash Scripting: Αυτοματοποίησε τα Πάντα
Το bash scripting είναι η ικανότητα να γράφεις scripts που εκτελούν εντολές αυτόματα. Από backup αρχείων έως deployment servers — αν το κάνεις παραπάνω από μία φορά, γράψε το ως script.
Πρώτο Script
# Το shebang λέει στο σύστημα ποιος interpreter να χρησιμοποιήσει
# Variables
NAME="Secret Room"
DATE=$(date +%Y-%m-%d)
echo "Καλωσήρθες στο $NAME"
echo "Σήμερα: $DATE"
# Εκτέλεση: chmod +x hello.sh && ./hello.sh
Conditionals & Loops
# IF / ELSE
DISK_USAGE=$(df / | awk 'NR==2 {print $5}' | tr -d '%')
if [ $DISK_USAGE -gt 80 ]; then
echo "⚠ Δίσκος πάνω από 80%: ${DISK_USAGE}%"
else
echo "✓ Δίσκος OK: ${DISK_USAGE}%"
fi
# FOR LOOP
for FILE in *.log; do
echo "Επεξεργασία: $FILE"
gzip "$FILE"
done
# WHILE LOOP — countdown
COUNT=5
while [ $COUNT -gt 0 ]; do
echo "$COUNT..."
((COUNT--))
sleep 1
done
echo "🚀 Εκτόξευση!"
Πρακτικό Script: Αυτόματο Backup
# Αυτόματο backup με timestamp
SOURCE="/home/user/Documents"
DEST="/backup"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_NAME="backup_${TIMESTAMP}.tar.gz"
# Δημιουργία backup directory αν δεν υπάρχει
mkdir -p "$DEST"
# Δημιουργία compressed backup
tar -czf "${DEST}/${BACKUP_NAME}" "$SOURCE"
# Διαγραφή backups παλαιότερων από 7 μέρες
find "$DEST" -name "backup_*.tar.gz" -mtime +7 -delete
echo "✓ Backup: $BACKUP_NAME"
# Αυτόματη εκτέλεση κάθε μέρα στις 2:00 π.μ. (crontab)
# 0 2 * * * /home/user/backup.sh >> /var/log/backup.log 2>&1
Functions
# Ορισμός function
check_service() {
if systemctl is-active --quiet "$1"; then
echo "✓ $1 τρέχει"
else
echo "✗ $1 είναι σταματημένο"
sudo systemctl start "$1"
fi
}
# Κλήση function
check_service nginx
check_service ssh
Cron Jobs — Χρονοπρογραμματισμός
$ crontab -e
# FORMAT: minute hour day month weekday command
# ┌─ minute (0-59)
# │ ┌─ hour (0-23)
# │ │ ┌─ day of month (1-31)
# │ │ │ ┌─ month (1-12)
# │ │ │ │ ┌─ day of week (0=Sun)
# * * * * * command
0 2 * * * /home/user/backup.sh # Κάθε μέρα 2:00 π.μ.
*/5 * * * * /usr/bin/check.sh # Κάθε 5 λεπτά
0 9 * * 1 /scripts/weekly.sh # Κάθε Δευτέρα 9:00 π.μ.
@reboot /home/user/startup.sh # Μετά από κάθε reboot
Linux για Gaming: 2026 Edition
Το Linux gaming έχει αλλάξει δραματικά. Το 2016 ήταν σχεδόν αδύνατο. Το 2026, χάρη στο Proton της Valve, παίζουν πάνω από 18.000 Windows games σε Linux — πολλά με καλύτερο performance από τα Windows. Το Steam Deck είναι η απόδειξη.
Setup Gaming στο Ubuntu
$ sudo apt install steam
# 2. Εγκατάσταση Vulkan για AMD
$ sudo apt install mesa-vulkan-drivers vulkan-tools
# 3. Εγκατάσταση Vulkan για NVIDIA
$ sudo apt install nvidia-driver-545 vulkan-tools
# 4. Lutris για non-Steam games
$ sudo apt install lutris wine winetricks
# 5. GameMode — βελτιστοποίηση CPU για gaming
$ sudo apt install gamemode
$ gamemoderun ./game.exe # Εκτέλεση με GameMode
# 6. MangoHud — FPS overlay
$ sudo apt install mangohud
# Στο Steam: MANGOHUD=1 %command%
Τα 10 Πιο Κοινά Προβλήματα & Λύσεις
Το Linux δεν είναι άψογο — αλλά τα περισσότερα προβλήματα έχουν γνωστή λύση. Εδώ είναι τα 10 που συναντούν σχεδόν όλοι.
Συχνότατο πρόβλημα με Broadcom και Realtek chipsets. Λύση:
$ lspci | grep -i network
# Για Broadcom (Ubuntu)
$ sudo apt install bcmwl-kernel-source
# Ενεργοποίηση additional drivers
$ sudo ubuntu-drivers autoinstall
Κλασικό NVIDIA πρόβλημα. Το nouveau (open-source driver) συχνά δεν δουλεύει καλά.
# Μετά την εκκίνηση, εγκατέστησε proprietary driver:
$ sudo ubuntu-drivers install nvidia
$ sudo reboot
$ sudo apt install -f
$ sudo apt clean && sudo apt update
sudo apt --fix-broken install.
$ alsamixer # Πάτα M για unmute
# Επανεκκίνηση PulseAudio
$ pulseaudio -k && pulseaudio --start
# Αν χρησιμοποιείς PipeWire (νεότερο)
$ systemctl --user restart pipewire pipewire-pulse
$ df -h # Δίσκοι
$ du -sh /* 2>/dev/null | sort -rh | head -20
# Καθαρισμός
$ sudo apt autoremove --purge
$ sudo journalctl --vacuum-size=100M # Logs
$ sudo apt clean
Το Magic SysRq είναι το Linux's emergency brake — δουλεύει ακόμα και όταν το GUI έχει κολλήσει:
R → Επαναφορά keyboard
E → Τερματισμός όλων των processes (SIGTERM)
I → Kill όλων (SIGKILL)
S → Sync δίσκων
U → Remount read-only
B → Reboot
# Mnemonic: "Reboot Even If System Utterly Broken"
Τα Windows αποθηκεύουν ώρα ως local time, το Linux ως UTC. Λύση:
$ sudo timedatectl set-local-rtc 1 --adjust-system-clock
# Ή ρύθμισε timezone
$ sudo timedatectl set-timezone Europe/Athens
$ timedatectl status
$ ls -la myfile.sh
-rw-r--r-- 1 root root 1234 Jun 16 myfile.sh
# Αλλαγή ιδιοκτήτη
$ sudo chown $USER:$USER myfile.sh
# Ή αλλαγή permissions
$ chmod 644 myfile.sh # rw-r--r--
$ chmod 755 myfile.sh # rwxr-xr-x (executable)
Συχνό μετά από Windows update. Το Windows αντικαθιστά τον bootloader.
$ sudo mount /dev/sda2 /mnt # Linux partition
$ sudo grub-install --boot-directory=/mnt/boot /dev/sda
$ sudo update-grub
Δεν χάνεται τίποτα — το Linux επιτρέπει reset από recovery mode:
# 2. Επίλεξε "Recovery mode"
# 3. Επίλεξε "root — Drop to root shell"
# 4. Remount ως read-write
# mount -o remount,rw /
# 5. Αλλαγή password
# passwd myusername
# 6. Reboot
# reboot
Linux & Ασφάλεια
Το Linux θεωρείται εγγενώς ασφαλέστερο από Windows για λόγους αρχιτεκτονικής: privilege separation (οι χρήστες δεν τρέχουν ως root), ανοιχτός κώδικας (οποιοσδήποτε μπορεί να βρει και να διορθώσει bugs), και SELinux/AppArmor για Mandatory Access Control.
Βασικές Πρακτικές Ασφαλείας
$ sudo apt update && sudo apt upgrade -y
# 2. Firewall με ufw
$ sudo ufw enable
$ sudo ufw allow ssh
$ sudo ufw status verbose
# 3. SSH Hardening — Απενεργοποίησε root login
$ sudo vim /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
# 4. Έλεγχος για rootkits
$ sudo apt install rkhunter chkrootkit
$ sudo rkhunter --check
curl https://example.com/install.sh | sudo bash είναι μια από τις πιο επικίνδυνες πρακτικές — ακόμα και σε γνωστά projects.
Linux στο Cybersecurity
Το Linux είναι η de facto πλατφόρμα για security professionals. Εργαλεία όπως Wireshark, Metasploit, Burp Suite, nmap, john (John the Ripper) και hashcat τρέχουν native σε Linux. Το Kali Linux συγκεντρώνει 600+ από αυτά σε μία distro, ενώ το Parrot OS είναι μια ελαφρύτερη εναλλακτική.