Παρασκευή 4 Φεβρουαρίου 2011

Πόροι για θέματα ασφάλειας

Οδηγοί

Ενημερώσεις ασφάλειας




ogiginal post : http://forum.hellug.gr

Linux Network Network debugging HOWTO

Είναι αρκετά συνηθισμένο χρήστες να μπαίνουν σε Linux και να διαμαρτύρονται πως δεν έχουν Internet επειδή δεν ανοίγουν οι σελίδες στο browser τους. Ο παρακάτω οδηγός θα τους βοηθήσει να εντοπίσουν σε ποιο σημείο ακριβώς υπάρχει το πρόβλημα.

Αν σε ένα σημείο αντιμετωπίσετε πρόβλημα δεν υπάρχει λόγος να πάτε παρακάτω. Διορθώστε πρώτα το πρόβλημα εκείνου του βήματος και ύστερα συνεχίστε.

Όλα τα παρακάτω γίνονται μέσω ενός τερματικού (terminal) ως χρήστης root (εναλλακτικά βάλτε το sudo ως πρόθεμα σε κάθε εντολή).

α) Ελέγχουμε αν η κάρτα δικτύου μας έχει πάρει IP.
Παράθεση
# ifconfig -a
eth0      Link encap:Ethernet  HWaddr AA:BB:CC:DD:EE:FF 
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1490  Metric:1
          RX packets:1574378 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1118056 errors:0 dropped:0 overruns:15 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1403173974 (1338.1 Mb)  TX bytes:301645527 (287.6 Mb)
          Interrupt:16 Base address:0x2000
ath0    Link encap:Ethernet  HWaddr 00:11:22:33:44:55 
          inet addr:192.168.2.10  Bcast:192.168.2.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5203 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4342 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:4362211 (4.3 MB)  TX bytes:517861 (517.8 KB)

Το παραπάνω σημαίνει πως έχουμε πάρει IP από το router είτε την έχουμε βάλει με το χέρι.

Προσοχή: αν βλέπουμε IP της μορφής 169.254.Χ.Υ αυτό σημαίνει πως ΔΕΝ έχουμε πάρει σωστά IP!!!! Το range 169.254.Χ.Υ χρησιμοποιείται από τους dhcp clients ως fallback. Αν έχετε πάρει IP αυτής της μορφής δεν λειτουργεί ο DHCP server του router σας ή κάποιο καλώδιο δεν είναι σωστά τοποθετημένο. Κάντε έλεγχο πρώτα στα καλώδια και έπειρα στο router. Έχουν χαθεί άπειρες ώρες άδικα επειδή ένα καλώδιο είχε μετακινηθεί κατά ελάχιστα....

Αν ΔΕΝ έχει καθόλου IP και θέλουμε να προσθέσουμε χειροκίνητα:
Ι)
Κώδικας:
# ifconfig eth0 192.168.1.10 netmask 255.255.255.0
Και για να προσθέσουμε και ένα default route, υποθέτωντας ότι το router μας έχει IP 192.168.1.254:
II)
Κώδικας:
# route add default gw 192.168.1.254


Αν ΔΕΝ βλέπουμε καμία κάρτα εκτός του lo:
Ι)
Παράθεση
# ifconfig eth0 up
Kάνουμε UP το eth0 interface, εφόσον το έχει δει ο κατάλληλος driver, "active"

ΙΙ) Αν δεν την δει και πάλι:
Παράθεση
# dmesg |grep -i eth0

Κοιτάμε για αναφορές σχετικά με "eth0" στο kernel log

ΙΙΙ)Αν τίποτα,
Παράθεση
# lspci|grep -i ethernet
Kοιτάμε για το chip της κάρτας δικτύου μας

Μετά ψάχνουμε στο web (ή στο documentation των kernel sources) για το όνομα του driver που υποστηρίζει το chip μας και το φορτώνουμε με modprobe.

ΙV)Αν δεν έχουμε το αντίστοιχο module, ψάχνουμε στο web για όνομα_διανομής+το_chip_μας

V) Αν δεν έχει precompiled support ο generic kernel της διανομής μας έστω και σε χωριστό πακέτο (απίθανο),
Configure και compile τον kernel (π.χ. search στο web για όνομα_διανομής+kernel+compile+howto, αν δεν βρούμε, γενικές οδηγίες εδώ, εδώ και σε πολλά άλλα παρόμοια guides). Αναφορές για τα διάφορα chipsets καρτών Ethernet βρίσκουμε στην κατηγορία Device Drivers -> Network Device support -> Ethernet (10 or 100Mbit)/(1000Mbit). Αν χρησιμοποιούμε το menuconfig (ncurses) interfaces, δίνοντας "?" (shift+/) έχοντας επιλέξει κάθε driver της κατηγορίας βλέπουμε αναλυτικές πληροφορίες, chipsets που υποστηρίζει και module name.

β) Κάνουμε έλεγχο για να βρούμε ποιο είναι το default gateway μας. Ποιός είναι δηλαδή ο "router" μας.
Παράθεση
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.2.0      0.0.0.0         255.255.255.0   U     0      0        0 ath0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
Το παραπάνω σημαίνει ότι το default gateway μας είναι το 192.168.1.1 δηλαδή ο router μας από το ethernet (eth0) interface. Αν δεν υπάρχει default gateway ΔΕΝ μπορούμε να βγούμε προς το internet. Προσοχή χρειάζεται όταν έχουμε πολλαπλά interfaces (ethernet, wireless) ώστε το iface του default route να είναι αυτό που χρειάζεται, eth0, eth1, ath0, κτλ. και όχι κάποιο από τα δευτερεύοντα.

Εναλλακτικά ο παραπάνω έλεγχος μπορεί να γίνει με τις εντολές: netstat -nr και ip route.
Παράθεση
# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0   0.0.0.0         255.255.255.0 U         0 0          0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 lo
0.0.0.0         192.168.1.1 0.0.0.0         UG        0 0          0 eth1
Παράθεση
# ip route
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.10
127.0.0.0/8 dev lo  scope link
default via 192.168.1.1 dev eth1

Σε bsd συστήματα το output ίσως είναι λίγο διαφορετικό:

Παράθεση
#netstat -nr
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            192.168.1.254      UGSc       52     1511    en0
192.168.1          link#4             UCS         5        0    en0
192.168.1.10       127.0.0.1          UHS         0        1    lo0
192.168.1.255      link#4             UHLWb       3      152    en0

γ) Αν όλα τα παραπάνω είναι εντάξει συνεχίζουμε κάνοντας ping τον gateway μας.
Με την επιλογή -c (count) 5 στέλνουμε μόνο 5 πακέτα και περιμένουμε τις απαντήσεις. Σε αντίθετη περίπτωση που δεν χρησιμοποιούσαμε το -c θα έπρεπε να πατήσουμε ctrl+c για να σταματήσουμε το ping.
Κώδικας:
# ping -c 5 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.545 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.497 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.496 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.498 ms
64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=0.501 ms

--- 192.168.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3998ms
rtt min/avg/max/mdev = 0.496/0.507/0.545/0.027 ms

Τα παραπάνω σημαίνουν ότι ο router μας απαντάει.

δ) Κάνουμε ping μια ένα server στο internet που γνωρίζουμε την IP του.
Μια εύκολη IP να θυμόμαστε πάντα είναι ο nameserver της OTENET, 195.170.0.1 (dns1.otenet.gr). Επίσης σχετικά εύκολο: 194.177.210.210 (nic.grnet.gr), ο nameserver του ΕΔΕΤ (grnet.gr)
Κώδικας:
# ping -c 5 195.170.0.1
PING 195.170.0.1 (195.170.0.1) 56(84) bytes of data.
64 bytes from 195.170.0.1: icmp_seq=1 ttl=122 time=98.5 ms
64 bytes from 195.170.0.1: icmp_seq=2 ttl=122 time=82.3 ms
64 bytes from 195.170.0.1: icmp_seq=3 ttl=122 time=37.7 ms
64 bytes from 195.170.0.1: icmp_seq=4 ttl=122 time=26.8 ms
64 bytes from 195.170.0.1: icmp_seq=5 ttl=122 time=68.4 ms

--- 195.170.0.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4003ms
rtt min/avg/max/mdev = 26.830/62.802/98.597/26.894 ms

# ping -c 5 194.177.210.210
PING 194.177.210.210 (194.177.210.210) 56(84) bytes of data.
64 bytes from 194.177.210.210: icmp_seq=1 ttl=250 time=69.2 ms
64 bytes from 194.177.210.210: icmp_seq=2 ttl=250 time=24.0 ms
64 bytes from 194.177.210.210: icmp_seq=3 ttl=250 time=33.3 ms
64 bytes from 194.177.210.210: icmp_seq=4 ttl=250 time=55.1 ms
64 bytes from 194.177.210.210: icmp_seq=5 ttl=250 time=34.1 ms

--- 194.177.210.210 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4002ms
rtt min/avg/max/mdev = 24.099/43.189/69.265/16.524 ms

Αν δεν απαντάει κανένα από τα 2 σε ping έχουμε πρόβλημα από το router μας και μετά! Ξανακοιτάμε τις ρυθμίσεις της συνδεσής μας (username/password/κτλ)


ε) Κοιτάμε τι υπάρχει μέσα στο /etc/resolv.conf
Κώδικας:
# cat /etc/resolv.conf 
nameserver 194.177.210.210

Πρέπει οπωςδήποτε να υπάρχει μια εγγραφή της μορφής: namerserver A.B.C.D
το A.B.C.D μπορεί να είναι και η IP του router σας.

στ) Κάνουμε ping με το dns όνομα τους nameservers που κάναμε πριν ping με την IP τους:
Κώδικας:
# ping -c 5 dns1.otenet.gr
PING dns1.otenet.gr (195.170.0.1) 56(84) bytes of data.
64 bytes from dns1.otenet.gr (195.170.0.1): icmp_seq=1 ttl=122 time=49.5 ms
64 bytes from dns1.otenet.gr (195.170.0.1): icmp_seq=2 ttl=122 time=46.9 ms
64 bytes from dns1.otenet.gr (195.170.0.1): icmp_seq=3 ttl=122 time=26.1 ms
64 bytes from dns1.otenet.gr (195.170.0.1): icmp_seq=4 ttl=122 time=41.2 ms
64 bytes from dns1.otenet.gr (195.170.0.1): icmp_seq=5 ttl=122 time=30.8 ms

--- dns1.otenet.gr ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4002ms
rtt min/avg/max/mdev = 26.199/38.956/49.538/9.039 ms

# ping -c 5 nic.grnet.gr
PING nic.grnet.gr (194.177.210.210) 56(84) bytes of data.
64 bytes from nic.grnet.gr (194.177.210.210): icmp_seq=1 ttl=250 time=34.6 ms
64 bytes from nic.grnet.gr (194.177.210.210): icmp_seq=2 ttl=250 time=34.9 ms
64 bytes from nic.grnet.gr (194.177.210.210): icmp_seq=3 ttl=250 time=34.5 ms
64 bytes from nic.grnet.gr (194.177.210.210): icmp_seq=4 ttl=250 time=23.9 ms
64 bytes from nic.grnet.gr (194.177.210.210): icmp_seq=5 ttl=250 time=28.7 ms

--- nic.grnet.gr ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3999ms
rtt min/avg/max/mdev = 23.968/31.389/34.960/4.378 ms

Αν δεν παίρνουμε απαντήσεις σημαίνει πως υπάρχει πρόβλημα με το DNS resolution. Μπορεί το router μας ή οι DNS servers του ISP μας να έχουν πρόβλημα. Μπορούμε να τους αλλάξουμε χρησιμοποιώντας τους servers που κάναμε ping παραπάνω και μας απαντησαν. Ο πιο απλός τρόπος να χρησιμοποιήσουμε άλλους DNS servers είναι ο παρακάτω:
Κώδικας:
# echo "nameserver 194.177.210.210" > /etc/resolv.conf
# echo "nameserver 195.170.0.1" >> /etc/resolv.conf

Δοκιμάζουμε και πάλι να κάνουμε ping στο nic.grnet.gr και στο dns1.otenet.gr. Τώρα πρέπει να μας απαντάνε.

ζ) Ανοίγουμε τον browser μας και δοκιμάζουμε να δούμε σελίδες.
Αν δεν βλέπουμε πάλι ελέγχουμε τα proxy settings του browser και τα απενεργοποιούμε.


original pos : http://forum.hellug.gr

Κυριακή 16 Ιανουαρίου 2011

Ελεύθερα βιβλία-οδηγοί για Linux

Λίστα Ελεύθερων βιβλίων για το Linux


1. Advanced Linux Programming  Publication date : Jun 2001
Download
Eάν σας ενδιαφέρει ο προγραμματισμός στο Linux είναι ένα καλό ελεύθερο βιβλίο για να ξεκινήσει κάποιος.

2. Agustin Linux Manual  Publication Date : 2003
Το βιβλίο αυτό έχει γραφτεί για να βοηθήσει νέους χρήστες στο Linux να κάνουν διάφορες λειτουργίες απο την εγκατάσταση μέχρι και την διαχείριση του συστήματος. Γράφτηκε και είναι βασισμένο στην διανομή Mandrake χωρίς αυτό να σημαίνει ότι δεν βοηθά και γενικότερα στις άλλες διανομές.

3. Linux from Scratch Publication date : 2002
    Beyond Linux from Scratch
Τα βιβλία αυτά περιέχουν οδηγίες βήμα βήμα απο το ενδιαφέρον Project Linux from Scratch για το στήσιμο ένος υπολογιστή για δίκτυο , X , ήχο , εκτυπωτές , scanners e.t.c είναι πολύ αναλυτικά και αξίζουν το διάβασμα.

4. Debian GNU/Linux Desktop Survival Guide  Printed October 29, 2007
Αρκετά ενδιαφέρον βιβλίο καλύπτει κυριώς την διανομή Debian και το στήσιμο Desktop μηχανήματος

5. Debian GNU/Linux: Guide to Installation and Usage Publication date : 1999
Κυρίως απευθύνεται σε νέους χρήστες του Debian που θέλουν να κατανοήσουν πως λειτουργεί και τις βασικές γνώσεις αυτού.

6. Gawk: Effective AWK Programming  Publication date : May 2001
Τα πάντα για την χρήσιμη awk utility.

7. Fedora Linux Essentials  Publication Date : 2007
Το βιβλίο αυτό είναι σε μορφή wiki και είναι για την διανομή Fedora Linux καλύπτει τα πάντα απο administrating μέχρι και ερωτηματικά νέου χρήστη. Επίσης είναι και updated (2007). Το προτείνω για χρήστες του Fedora.

8. Ubuntu Linux Essentials Publication Date : 2007
Απο τον δημιουργό του Fedora Linux Essentials αυτή τη φορά για την διανομή Ubuntu καλύπτει αρκετά topics της διανομής αξίζει την προσοχή μας.

9. GNU Bash Reference Manual Publication Date September 2006
Τα πάντα για το Bash Shell must read... κατα την προσωπική μου γνώμη. :-)  Διαβάστε και ένα review

10. Iptables Tutorial 1.2.0 - Linux Firewall Configuration
Αρκετά καλό για να κατανοήσουμε πως λειτουργούν τα iptables για πιο έμπειρους χρήστες αλλά και αυτούς που θέλουν να μάθουν :-)

11. Introduction to Linux - A Hands on Guide
όπως χαρακτηριστικά λέει "Everybody who wants to get a "CLUE", a Command Line User Experience, with Linux (and UNIX in general) will find this book useful." :-)

12. Knowing Knoppix  Publication Date : 2004
Το βιβλίο αυτό αναφέρεται στην διανομή LiveCD Knoppix αρκετά ενδιαφέρον για κάποιον που την χρησιμοποιεί

13. Learning Debian GNU/Linux Publication date : Sep 1999
Επικεντρώνεται περισσότερο στις ανάγκες το νέου χρήστη και στις Desktop εφαμογές. Αρκετά απο αυτά που αναφέρει αφορούν γενικότερα το Linux και όχι μόνο το Debian.

14. Linux Client Migration Cookbook, Version 2 Publication Date : 13 October 2006
Must read :-) για όλους μας :-)

15. Linux Device Drivers, 2nd Edition Publication date : Jun 2001
      Linux Device Drivers, 3rd Edition Publication date : February 2005
      Εξιδικευμένο βιβλίο που αφορά τους Drivers του Linux για όσους ενδιαφέρονται.

16. Linux in the Workplace - How to Use Linux in Your Office Publication Date : 2002
      Ο τίτλος τα λέει όλα.

17. Linux Kernel in a Nutshell Publication Date : December 2006
Για όποιον θέλει να dig :-) τον kernel και να μάθει αρκετά για αυτόν αξίζει το διάβασμα.

18. Linux Network Administrator's Guide, 2nd Edition Publication date : Jul 2000
Για έμπειρους και μή

19. Linux Newbie Administrator Guide  Publication date : 2004
Ότι χρειάζομαστε για να μας βοηθήσει να ξεκινήσουμε το Administrating ενός συστήματος Linux.

20. Linux Security for Beginners Publication Date : 2005
Ασφάλεια στο Linux για νέους χρήστες. Αρκετά καλό

21. Linux: Rute User's Tutorial and Exposition Publication date : Oct 2001
Καλύπτει τα πάντα για το administrating ενος συστήματος Linux αρκετά καλό.

22. Secure Programming for Linux and Unix Publication Date : July 2002
Για τον secure προγραμματισμό στο Linux-Unix

23. Slackware Handbook
Η βίβλος του Slackware όποιος πρόκειται να ασχοληθεί με τη συγκεκριμένη διανομή είναι must read.

24. Slackware Linux Basics - For Slackware Linux 10.2
Τα βασικά για τους χρήστες της διανομής Slackware 10.2 must read

25. Slackware Linux Essentials, Second Edition
Άλλο ένα βιβλίο για το Slackware περισσότερο για τον νέο χρήστη.

26. The Linux Cookbook - Tips and Techniques for Everyday Use Publication date : Aug 2001
Tips για την καθημερινή χρήση.

27. The Linux Kernel: Blueprints for World Domination  Publication date : 2005
Όπως χαρακτηριστικά λέει "What is this? Another book on the Linux Kernel? Yes, I'm afraid so but we hope this will not be just another book"

28. The Official Ubuntu Book Publication Date : August 11, 2006
Για την διανομή Ubuntu είναι όμως λίγο outdated αναφέρεται στην 6.06

29. Debian Reference
Ο επίσημος Debian Reference για την συγκεκριμένη διανομή δεν υπάρχει κάτι καλύτερο να διαβάσει κάποιος που ενδιαφέρεται για αυτή τη διανομή.

30. The Daemon, the GNU & the Penguin ~ by Dr. Peter Salus
Must Read :-) "When you want to know more but don't know where to look"

31.  Free for All
How Linux and the free software movement undercut the High-Tech Titans

32. GNU Autoconf Automake and Libtool
Βιβλίο της Redhat

33.  Oreilly Openbook Section
Αρκετές φορές υπάρχουν πολλά καλά βιβλία σε αυτό το section.

34. Και φυσικά το Wikibooks.org Category:Linux όπου έχει πολλά χρήσιμα για διάβασμα.


Χρήσιμα Βιβλία στην Ελληνική γλώσσα

1. Οδηγός χρήσης του Debian GNU/Linux

2. Ο Οδηγός Εγκατάστασης Debian GNU/Linux για AMD64  Intel x86 αλλά και άλλες αρχιτεκτονικές.

3. Ανεπίσημος Οδηγός Χρήσης του Mandriva Linux 2007
O οδηγός αυτός είναι για την διανομή Mandriva και έχει μεταφραστεί και δοκιμαστεί απο την ομάδα του TechTeam.

4. Το Ελληνικό SlackBook γραμμένο απο εθελοντές και φιλοξενείτε στην ιστοσελίδα της ilug

5. http://wiki.hellug.gr/index.php/Linux_Basics

Windows Games στο Linux (μέσω Wine)

1. Εγκατάσταση του Wine.

Το wine είναι ενας προσομοιωτής των windows. Με αυτό θα τρέξουμε τα αγαπημένα μας windows games. Η εγκατάσταση είναι εντελώς απλή σε Debian/Ubuntu απλά γράψτε: sudo apt-get install wine

Αλλιώς πάτε στην official σελίδα του wine(http://www.winehq.org/) και κατεβάστε τo binary πακέτο για την διανομή σας ή τα source πακέτα για να το κάνετε build μόνοι σας. Σε περίπτωση που αποφασίσετε να το χτύσετε μόνοι σας δεν είναι τίποτα, 4 εντολές στο terminal:

tar jxf wine-0.9.XX.tar.bz2
cd wine-0.9.XX
./configure
make; make install



2. Απαραίτητες βιβλιοθήκες


Για τα games συνήθως χρειάζονται 1-2 βιβλιοθήκες που δεν εγκαταστούνται μαζί με το wine και πρέπει να της βάλουμε μόνοι μας. Αυτές είναι οι:

libwine-gl για OpenGL για τα γραφικά
libwine-alsa για τον ήχο


Η εγκατάσταση τους όπως πριν... apt σε Debian και κατεβάζοντας τα source tarballs για άλλες διανομές.


3. Εγκατάσταση.

Τώρα η εγκατάσταση είναι τελείως όπως τα windοws. Ανοίγουμε το cdrom:

mount /dev/cdrom /media/cdrom
cd /media/cdrom


Και τρεχουμε το autorun.exe με το wine

wine autorun.exe

Όταν τελειώσει η εγκατάσταση το wine έχει δημιουργήσει στο Desktop link κατευθίαν για το παιχνίδι αλλά συνήθως σε εμένα κατι δεν πάει καλά με αυτές τις έτοιμες συντομέυσεις οπότε καλύτερα είναι να τις κάνουμε μόνοι μας. Οπότε πηγαίνουμε στο φάκελο που εγκαταστάθηκε το παιχνίδι και δοκιμάζουμε πως τρέχει καλύτερα(θα εξηγήσω τι εννοώ).

cd ./home/user/.wine/drive_c/Program\ files/GAME1

(για υποτηθεμενο GAME1)
wine game.exe


Αν τρέξει και είναι μια χαρά τοτε οκ. Τέλος καλο ολα καλά. Αν όμως οχι πρέπει να βρουμε ενα argument που να τρεχει το παιχνιδι σε OpenGL mode γιατί με το DirectX δεν τα πάει και πολύ καλά το wine. Αυτο το argument(αν υπάρχει) δεν θα ειναι κατι δυσκολο. Μπορει να ειναι για παράδειγμα:

wine game.exe -opengl (αυτό το -opengl κάνει την δουλεία)

Αφού καταφέρουμε να τρέξουμε το game χειροκινήτα σχεδόν τελειώσαμε.

Πάμε στο Desktop και κάνουμε ένα Create Launcher για Gnome ή Create Link to application στο KDE. Στο λινκ δινουμε την εντολή με την οποία είχαμε καταφέρει να το τρέξουμε αλλά με ολόκληρη την διαδρομή π.χ.:

wine /home/user/.wine/drive_c/Program\ Files/GAME1/game.exe -opengl

αυτό ήταν όλο. Τέλος. Το game είναι 2-click μακριά σας, σαν τα windοws.

Λίγα λόγια για τα Linux

Linux

Το Linux (Λίνουξ) είναι ένας πυρήνας λειτουργικού συστήματος που μοιάζει με τον πυρήνα του AT&T UNIX. Είναι μία πρωτότυπη υλοποίηση πυρήνα λειτουργικού συστήματος και δεν χρησιμοποιεί κώδικα του UNIX. Μπορεί να θεωρηθεί κλώνος του UNIX, αφού διαθέτει τις περισσότερες εντολές του, ενώ η φιλοσοφία της σχεδίασής του πλησιάζει περισσότερο το UNIX από οποιοδήποτε άλλο λειτουργικό σύστημα. Το Linux αναπτύσσεται με βάση το POSIX πρότυπο, το οποίο είναι μία προσπάθεια τυποποίησης όλων των κλώνων του UNIX.

Παρ' όλο που το Linux είναι ο πυρήνας του λειτουργικού συστήματος, πολλές φορές αναφερόμαστε σε αυτό εννοώντας όλο το λειτουργικό σύστημα, που περιλαμβάνει και το περιβάλλον εργασίας, και το συνοδευτικό λογισμικό (κάτι το οποίο συνήθως οδηγεί σε παρανοήσεις).

Ανάπτυξη

Η ανάπτυξη του πυρήνα Linux ξεκίνησε περίπου το 1991 από τον Φινλανδό Linus Torvalds (τότε φοιτητή ακόμη), ο οποίος με βοήθεια πολλών εθελοντών προγραμματιστών (από χόμπι ή επαγγελματίες) μέσω του Internet, κατάφερε να δημιουργήσει έναν πυρήνα που ανταγωνίζεται πυρήνες λογισμικού μεγάλων εταιριών. Αρχικά είχε σαν πρότυπο το Minix, ένα άλλο λειτουργικό τύπου Unix, το οποίο είχε αναπτύξει ο Άντριου Τάνενμπαουμ για εκπαιδευτικούς σκοπούς. Ο τελευταίος δεν επέτρεψε την τροποποίηση και επέκταση του Minix και για το λόγο αυτό, ο Τόρβαλντς δημιούργησε εξαρχής έναν πυρήνα για το αντικαταστήσει. Αρχικά ο πυρήνας αυτός ονομάστηκε FreaX (από τους όρους free και freak, με την κατάληξη X να υποδηλώνει ένα σύστημα τύπου Unix) αλλά αργότερα έλαβε την ονομασία Linux, ένα όρο που επινόησε ο Άρι Λέμκε (Ari Lemmke).

Σήμερα το Linux παρέχει όλα όσα θεωρούνται αναγκαία για ένα σύγχρονο πυρήνα λειτουργικού, όπως:

* υποστήριξη πολυεπεξεργαστικών συστημάτων (SMP)
* πραγματική πολυδιεργασία
* εικονική μνήμη
* διαμοιραζόμενες βιβλιοθήκες
* σωστή διαχείριση μνήμης
* δικτύωση μέσω TCP/IP κ.α.
* Ο πυρήνας Linux αρχικά σχεδιάστηκε για επεξεργαστές της οικογένειας x86 (386/486/Pentium), αλλά σήμερα τρέχει σε πολύ μεγάλη ποικιλία επεξεργαστών, όπως οι Alpha (64 bit), οι Motorola 68000 (Amiga), PowerPC, MIPS κ.α.

Αν και η προσπάθεια δημιουργίας του Linux πυρήνα άρχισε το 1990, η δημιουργία ενός ελεύθερου λειτουργικού συστήματος χωρίς περιορισμούς στον τελικό χρήστη, είχε ξεκινήσει παλαιότερα από τον Ρίτσαρντ Στώλλμαν, ιδρυτή του Free Software Foundation και του GNU project. Έτσι, το Linux είχε στο ξεκίνημά του ένα ολόκληρο σύστημα να βασιστεί. Το GNU σχέδιο είχε ήδη δημιουργήσει ένα C μεταγλωττιστή (τον gcc) και μια πλειάδα υψηλής ποιότητας προγραμματιστικών εργαλείων, ενώ είχε έτοιμα προγράμματα που αντικαθιστούσαν όλα τα βασικά προγράμματα σε ένα *NIX σύστημα. Το μόνο που έλειπε ήταν ένας σταθερός πυρήνας. Έτσι το GNU βρήκε έναν πυρήνα για να λειτουργήσει, και το Linux βρήκε έτοιμη μια μεγάλη ποικιλία προγραμμάτων. (Το GNU σχέδιο συνεχίζει σήμερα και με το υπό κατασκευή λειτουργικό σύστημα, Hurd, το οποίο βασίζεται στον μικροπυρήνα Mach)

Διανομές

Το Linux είναι το πιο επιτυχημένο από τα ελεύθερα λειτουργικά συστήματα με βάση τη δημοτικότητα και τον αριθμό των εφαρμογών που αναπτύσσονται για αυτό. Στην καθιέρωσή του βοήθησε το γεγονός ότι ο πυρήνας του λειτουργικού συστήματος συνοδεύτηκε από τα GNU tools, μια συλλογή ελεύθερων εργαλείων αναπτυγμένων από το πρόγραμμα GNU για το λειτουργικό GNU Hurd που δεν ολοκληρώθηκε, προσφέροντας έτσι ένα σχετικά ολοκληρωμένο περιβάλλον εφαρμογών.

Έκτοτε, διάφορες εταιρείες και εθελοντές κατασκεύασαν και οργάνωσαν διανομές, δηλαδή συλλογές προγραμμάτων που συνοδεύουν έναν πυρήνα Linux. Μια διανομή αποτελείται συνήθως:

* από έναν πυρήνα Linux, το τμήμα του λειτουργικού δηλαδή που αναλαμβάνει το καθαρά "υπολογιστικό" μέρος της λειτουργίας και την επικοινωνία hardware-software
* ένα γραφικό περιβάλλον, συνήθως το X Window System, για την "παραθυροποίηση" της λειτουργίας του υπολογιστή
* ένα περιβάλλον εργασίας χρήστη όπως Gnome, KDE, Xfce κλπ που οργανώνει την αλληλεπίδραση χρήστη-υπολογιστή
* μια συλλογή εφαρμογών και προγραμμάτων

Σήμερα υπάρχουν πολλές διαφορετικές διανομές που καλύπτουν διαφορετικές ανάγκες. Ορισμένες υποστηρίζονται στην ανάπτυξη και την τεχνική υποστήριξη από εταιρίες, (όπως π.χ. το Suse από τη Novell, το Ubuntu από την Canonical) ενώ άλλες μπορεί να βασίζονται στη δουλειά ακόμα και ενός ατόμου (όπως π.χ. το Sabayon Linux). Σχεδόν όλες οι διανομές όμως, ανεξάρτητα από τον κύριο υποστηρικτή, διαθέτουν κοινότητες εθελοντών χρηστών που ασχολούνται με την ανάπτυξη και την βελτιστοποίηση της κάθε διανομής.

Μερικές χαρακτηριστικές διανομές είναι:


Ubuntu

To Ubuntu αναπτύσσεται από την κοινότητά του και αυτή τη στιγμή είναι η πιο δημοφιλής διανομή, κυρίως επειδή απευθύνεται σε απλούς και αρχάριους χρήστες, προσφέρει περιβάλλον εύκολης εγκατάστασης και προορίζεται για μηχανήματα desktop και φορητούς υπολογιστές. Βασίζεται στο Debian GNU/Linux και είναι διαθέσιμο για κατέβασμα δωρεάν μέσω του ιστοτόπου του. Η λέξη Ubuntu είναι Αφρικάνικη και σημαίνει "Ανθρωπιά στους άλλους" ή "Είμαι αυτό που είμαι λόγω αυτού που όλοι είμαστε".

Fedora

Το Fedora, παλαιότερα γνωστό και ως Fedora Core, σπονσοράρεται από την εταιρεία Red Hat και στην ανάπτυξή του συμβάλλει σημαντικά και η κοινότητά του. Η διανομή βασίζεται στο παλιό καλό Red Hat Linux και αποτελείται εξ' ολοκλήρου από ελεύθερο και ανοικτού κώδικα λογισμικό. Αν και πλέον το Ubuntu έχει κερδίσει τους πρωτάρηδες χρήστες, η πρόταση της Red Hat πάντα αποτελούσε (τουλάχιστον για μερικούς) τη διανομή με την οποία θα ξεκινήσουν την εμπειρία τους με το Linux.

SUSE

To SUSE Linux είναι μια οικογένεια διανομών που αναπτύσσονται από τη Novell. Η οικογένεια αυτή περιλαμβάνει την εμπορική διανομή SUSE Linux Enterprise Desktop, διάφορες εμπορικές διανομές για εξυπηρετητές και προϊόντα που απευθύνονται σε επιχειρήσεις, καθώς και το δωρεάν openSUSE, το οποίο αναπτύσσεται από την κοινότητα του SUSE σε αντίθεση με τις εμπορικές διανομές που κατευθύνονται από τη Novell. To SUSE αποτελούσε πάντα την εναλλακτική έναντι στο Red Hat. Είναι αρκετά εμπλουτισμένο με γραφικά εργαλεία ρυθμίσεων, ιδανικά για τους αρχάριους χρήστες, καθώς και αισθητικά βελτιωμένα γραφικά περιβάλλοντα.

Mandriva

Το Mandriva Linux είναι μία διανομή προσανατολισμένη για καταναλωτές, προσφέρεται είτε δωρεάν για κατέβασμα από τον ιστότοπό του, είτε ως ολοκληρωμένο προϊόν (retail boxed). Στην παρούσα μορφή του, το Mandriva είναι ο συνδυασμός των πάλε ποτέ ξεχωριστών διανομών Mandrake, Conectiva και Lycoris. Το Mandrake ήταν βασισμένο στο Red Hat Linux, με έμφαση σε γραφικά βοηθητικά εργαλεία για τους αρχάριους χρήστες και αισθητικά βελτιωμένο γραφικό περιβάλλον.

Debian GNU/Linux

Το Debian GNU/Linux είναι ο ορισμός της διανομής που αναπτύσσεται από την κοινότητά του, το Debian Project. Το Debian ήταν η πρώτη διανομή ανοιχτή "στη συνεισφορά κάθε χρήστη και προγραμματιστή". Η βασική αρχή του είναι η κοινωνική του σύμβαση, η οποία απαιτεί πως όλα τα Debian λειτουργικά συστήματα που θα παραχθούν θα είναι πάντοτε 100% ελεύθερα. Το Debian είναι η πιο δημοφιλής και προτιμόμενη διανομή των προχωρημένων χρηστών του Linux και ειδικά όσων υπολογίζουν και το ιδεολογικό υπόβαθρο πίσω από το όλο κίνημα των κοινοτήτων του ανοικτού και ελεύθερου λογισμικού. Το Debian καλύπτει σαφώς όλες τις ανάγκες χρήσης, τόσο αυτές ενός μηχανήματος για χρήση desktop, όσο και αυτές ενός εξυπηρετητή.

Knoppix

Το Knoppix είναι η πιο δημοφιλής διανομή για εκτέλεση κατευθείαν από το CD, χωρίς να απαιτεί εγκατάσταση (live CD). Είναι γνωστή για την πολύ ευρεία υποστήριξή της σε hardware, καθιστώντας την έτσι τη νούμερο ένα επιλογή για αρχάριους χρήστες που θέλουν να δοκιμάσουν το Linux πριν αποφασίσουν να το εγκαταστήσουν καθώς και χρήστες που θέλουν γρήγορα και εύκολα να δοκιμάζουν το κατά πόσο το hardware που έχουν (ή θέλουν να αγοράσουν) υποστηρίζεται στο Linux. Επιπρόσθετα, το Knoppix προσφέρει και επιλογή εγκατάστασης μετά την οποία οι χρήστες θα καταλήξουν κατα βάση με μια διανομή Debian, καθότι το Knoppix βασίζεται σε αυτό.

Slackware

Το Slackware θεωρείται από πολλούς ως η διανομή των ... hackers! Είναι η παλαιότερη διανομή που έχει καταφέρει να επιζήσει μέχρι και σήμερα (όχι, δεν είναι η πρώτη διανομή Linux όπως πολλοί πιστεύουν), καθώς είναι το ίδιο σταθερή και δυνατή από το 1993 μέχρι και σήμερα! To Slackware απευθύνεται κυρίως σε εξωφρενικά προχωρημένους χρήστες, σε ανθρώπους που ξέρουν τί θέλουν, πώς το θέλουν και απλά παίρνουν ένα εργαλείο για να το κάνουν. Φυσικά, απευθύνεται επίσης και σε αρχάριους χρήστες που όμως θέλουν κυρίως να μάθουν πάρα πολλά καινούρια πράγματα, έχουν απεριόριστη υπομονή και ο βασικός σκοπός τους είναι πρώτα να γνωρίσουν εις βάθος τους υπολογιστές, το λογισμικό και τη διανομή και μετά (από αρκετό καιρό) να το χρησιμοποιήσουν ως το εργαλείο της δουλειάς τους. Είναι η διανομή των ρομαντικών Linuxάδων των παλιών καλών καιρών και όσων πιστεύουν πως αν την εγκαταστήσουν και την χρησιμοποιήσουν θα γίνουν αυτομάτως hackers. Με λίγα λόγια, η πιο cult διανομή! :)

Gentoo

Το Gentoo είναι ίσως η πιο προσανατολισμένη διανομή στον πηγαίο κώδικά της. Αυτό σημαίνει πως για την εγκατάστασή της είναι προτεινόμενο το να μεταγλωτίσετε (compile) ολόκληρο το λειτουργικό σύστημα και τις εφαρμογές και προγράμματα αντί απλά να εγκαταστήσετε binary πακέτα. Αυτό βέβαια την καθιστά ως την πιο βελτιστοποιημένη διανομή εξ ολοκλήρου ειδικά για το μηχάνημα στο οποίο θα την εγκαταστήσετε και ταυτόχρονα την πιο ... εξωφρενικά "τρελή" διανομή που υπάρχει! Αυστηρώς κατάλληλη μόνο για γνώστες του συγκεκριμένου σπορ.

Red Hat Enterprise

Το Red Hat Enterprise είναι η πιο πετυχημένη εμπορική διανομή. Το εργαλείο του πραγματικού επαγγελματία, η λύση για εξυπηρετητές και σταθμούς εργασίας.

CentOS

Το CentOS είναι η απάντηση της κοινότητας για μια διανομή με Enterprise χαρακτήρα. Το CentOS βασίζεται στον πηγαίο κώδικα του Red Hat Enterprise και προσπαθεί να είναι 100% συμβατό με αυτο (στο επίπεδο των εκτελέσιμων). Η διανομή αυτή απευθύνεται σε όσους ενδιαφέρονται να τρέχουν μια διανομή συμβατή με το RedHat Enterprise, αλλά δεν επιθυμούν ή δε χρειάζονται την υποστήριξη που προσφέρει η Red Hat.

 
Ελληνικές διανομές

Zeus

Το ΖΕΥΣ είναι η πρώτη ελληνική διανομή Linux. Αποτελεί κλώνο του Slackware, αλλά με πολλές βελτιώσεις για την υποστήριξη των ελλήνων χρηστών, όπως την αναδημιουργία των init scripts, καθώς και νέους precompiled πυρήνες για workstation μηχανήματα. Επίσης, περιλαμβάνει πολλά εργαλεία για power users, όπως το Zebra για advanced routing, FreeSwan ipsec tunnels, το Open-nms για παρακολούθηση της δικτυακής κίνησης, το Ntop, το Mailscanner σε συνδυασμό με Sendmail, Sophos AV, Mrtg, Rdtool για γραφήματα, Sawmill log analyzers και πολλά άλλα ενδιαφέροντα εργαλεία. Το ΖΕΥΣ Linux περιλαμβάνει τα τελευταία χαρακτηριστικά της τεχνολογίας του Linux, μαζί με εύκολη διεπαφή για εγκατάσταση (Slackware με τη χρήση του BSD dialog).

Knoppel

Το Knoppel είναι μια "ζωντανή" ελληνική έκδοση Linux, βασίζεται στη διανομή Knoppix και δεν χρειάζεται να κάνετε τίποτε περισσότερο από το να εκκινήσετε τον υπολογιστή σας από το CD-ROM για να έχετε ένα πλήρες λειτουργικό. Το Knoppel θα ανιχνεύσει αυτόματα το υλικό του υπολογιστή και θα εκτελεστεί εξ ολοκλήρου από τη μνήμη RAM αφήνοντας το υλικό του υπολογιστή σας ανέπαφο. Στον υπολογιστή δεν εγκαθίσταται τίποτε και ο σκληρός δίσκος θα χρησιμοποιηθεί μόνο αν και όταν θελήσετε να αποθηκεύσετε δεδομένα σε αυτόν.

Slackel

Η ελληνική διανομή Slackel είναι μια συλλογή λογισμικού GNU/Linux που εκτελείται πλήρως από CD και είναι βασισμένη στο Slackware Linux. Αναγνωρίζει αυτόματα και υποστηρίζει πολλές κάρτες γραφικών και ήχου, συσκευές SCSI, USB, καθώς και άλλες περιφερειακές συσκευές. Mπορεί να προσαρμοστεί και να χρησιμοποιηθεί ως CD επίδειξης GNU/Linux, CD μαθημάτων κατάρτισης, ως σύστημα ανάκτησης ή ως πλατφόρμα για εμπορικές επιδείξεις προϊόντων λογισμικού. Δεν είναι απαραίτητο να εγκατασταθεί τίποτα στον τοπικό δίσκο.


Γραφικό περιβάλλον στο Linux

Το Linux είναι ο πυρήνας, και πάνω σε αυτόν μπορεί να εκτελεστεί οποιοδήποτε περιβάλλον εργασίας. Το πιο διαδεδομένο παραθυρικό σύστημα όμως είναι το X Window System και πιο συγκεκριμένα η υλοποίηση από την Xfree86 ομάδα. Το X Window System (ή πιο απλά τα Χ), είναι ένα γραφικό σύστημα που συντηρείται και αναπτύσσεται σήμερα από το OpenGroup και πέρα από της συνήθεις λειτουργίες ενός παραθυρικού συστήματος, είναι κατασκευασμένο για δικτυακή λειτουργία. Δηλαδή μπορεί πολύ απλά μια παραθυρική εφαρμογή να εκτελείται στον Α υπολογιστή, και η έξοδος (τα παράθυρα) να εμφανίζονται στον δικό μας υπολογιστή.

Πέρα όμως από αυτές τις χαμηλού επιπέδου λειτουργίες του διακομιστή Χ, δεν διαθέτει τίποτα παραπάνω. Αυτό το κενό καλύπτουν τα λεγόμενα περιβάλλοντα εργασίας (Desktop Environments), τα οποία μπορεί να περιέχουν γραμμές εργασιών (Taskbars), εικονίδια στην επιφάνεια εργασίας, εικόνες φόντου (backgrounds), προφύλαξη οθόνης (screensaver), Panels, καθώς και ένα αριθμό προγραμμάτων που διευκολύνουν την διαχείριση της επιφάνειας εργασίας ή και του συστήματος. Τα πιο υψηλού επιπέδου περιβάλλοντα εργασίας για Linux είναι τα KDE και GNOME, τα οποία έχουν ήδη φτάσει (αν όχι ξεπεράσει) τα αντίστοιχα περιβάλλοντα εργασίας σε άλλα *NIX workstations.

Χρήστες στους οποίους απευθύνεται το Linux

Είναι διαδεδομένη η άποψη ότι δεν ενδείκνυται η χρήση του από νέους χρήστες των υπολογιστών, ή από χρήστες χωρίς ιδιαίτερες γνώσεις στους υπολογιστές. Ωστόσο, σήμερα, υπάρχει μια εξαιρετικά μεγάλη βάση υψηλού επιπέδου προγραμμάτων, που επιτρέπουν την διαχείριση του συστήματος χωρίς την γνώση των βασικών εντολών του UNIX.

Το Linux εξαπλώθηκε χωρίς επαγγελματική διαφήμιση, εμπορικά τεχνάσματα και μονοπώλια (μολονότι το διαδίκτυο όπου αναπτύχθηκε μπορεί να ιδωθεί ως χώρος διάδοσης και διαφήμισης νέων ιδεών). Αυτό που το κάνει να διαφέρει από τα υπόλοιπα λειτουργικά συστήματα, είναι ο τρόπος με τον οποίο αναπτύσσεται. Ακόμα και αν δεν έχει κάποιος γνώσεις προγραμματισμού, μπορεί να προτείνει βελτιώσεις στους αρχικούς προγραμματιστές ή ακόμα να χρηματοδοτήσει κάποιον για να υλοποιήσει αυτές τις βελτιώσεις (πολλά ελεύθερα προγράμματα χρηματοδοτούνται και αναπτύσσονται με αυτόν τον τρόπο). Το λειτουργικό αυτό, παρέχει αυτή την δυνατότητα και είναι επομένως στο χέρι των ίδιων των χρηστών να την εκμεταλλευτούν.

Η άδεια χρήσης του Linux

Συχνά, στην αγγλική γλώσσα, συγχέεται η έννοια του ελεύθερου με εκείνη του δωρεάν (free). Το γεγονός ότι μια διανομή μπορεί να διατίθεται δωρεάν, είναι μόνο ένα από τα πλεονεκτήματα του Linux, αφού επίσης δωρεάν μπορεί να διανέμει μια εταιρία το λειτουργικό της για να αυξήσει τη βάση των χρηστών της, ώστε να τους αξιοποιήσει αργότερα ως πελάτες. Το Linux διανέμεται επίσης ελεύθερα, με τον πηγαίο κώδικά του διαθέσιμο στον καθένα, και αυτό δίνει την δυνατότητα όχι μόνο της χρησιμοποίησης του λειτουργικού, αλλά και της αναδιανομής του, της πώλησης του, τροποποίησής του, της επέκτασής του, πρόσβασης στον πηγαίο κώδικα και συνήθως εκτενούς τεκμηρίωσης. Παρέχει συνεπώς πλήρη πρόσβαση στη γνώση που εσωκλείει.

Το Linux, καθώς και τα περισσότερα συνοδευτικά προγράμματα, διανέμεται υπό τους όρους του GNU General Public License. Η άδεια αυτή δημιουργήθηκε για να παράγει προγράμματα που θα διανεμηθούν ελεύθερα, αλλά και για να διατηρήσει αυτή την ελευθερία των προγραμμάτων. Έτσι κάποιο πρόγραμμα κάτω από την GNU GPL πρέπει υποχρεωτικά να συνοδεύεται από τον πηγαίο κώδικα του, ενώ στην περίπτωση που κάποιος τροποποιήσει ένα τέτοιο πρόγραμμα και θέλει να το διανέμει είναι υποχρεωμένος να διανέμει τον αρχικό κώδικα καθώς και τις δικές του τις αλλαγές στον κώδικα.

Δεν είναι όλα τα προγράμματα κάτω από την GNU GPL, υπάρχουν πολλά κάτω από μία άδεια παρόμοια με την άδεια του BSD λειτουργικού συστήματος (μία άδεια πιο χαλαρή από την GNU GPL), ενώ μερικές διανομές έχουν συμπεριλάβει και προγράμματα κάτω από διάφορες δικές τους άδειες που καμία σχέση δεν έχουν με τις παραπάνω.

Το καθεστώς ελεύθερης διανομής του Linux

Το λογισμικό του Linux που υπόκειται στην άδεια GNU GPL μπορεί να αντιγραφεί, να παραχωρηθεί ή ακόμη και να πωληθεί ελεύθερα. Το αν αυτό ισχύει για ολόκληρες διανομές του Linux, εξαρτάται πρωτίστως από την συγκεκριμένη διανομή. Αν η διανομή αυτή είναι η Debian GNU/Linux ή το Slackware, τότε όλα τα παραπάνω επιτρέπονται (μιας και δεν συμπεριλαμβάνει, στη βασική διανομή, μη ελεύθερα προγράμματα). Οι υπόλοιπες διανομές μπορεί να περιέχουν και μη ελεύθερο λογισμικό. Σε αυτές τις διανομές επιτρέπονται τα παραπάνω μόνο στα ελεύθερα προγράμματα τα οποία πρέπει να ξεχωρίσει ο ενδιαφερόμενος (συνήθως η κάθε διανομή δίνει μια ελεύθερη έκδοσή της, ή έχει σε ξεχωριστά CD's τα μη ελεύθερα προγράμματα).

Διαθέσιμες εφαρμογές του Linux

Οι διανομές συνήθως διαθέτουν πολύ μεγάλη ποικιλία προγραμμάτων. Υπάρχουν τα ελεύθερα προγράμματα τα οποία έρχονται με άδεια παρόμοια με του Linux (ή χαλαρότερη), τα οποία δεν υστερούν (κάποιες φορές εκτιμάται ότι ξεπερνούν) σε ποιότητα τα αντίστοιχα ιδιόκτητα. Ίσως παλαιότερα να ήταν εύκολο να αριθμήσει κάποιος τις κατηγορίες προγραμμάτων για τις οποίες υπάρχει ελεύθερο λογισμικό. Σήμερα συντηρούνται μεγάλες βάσεις δεδομένων ώστε να ταξινομηθούν αυτά τα προγράμματα.

Ιδιόκτητα (proprietary) προγράμματα υπάρχουν και στο Linux και καλύπτουν αρκετούς τομείς εξειδικευμένου λογισμικού (παιχνίδια, βάσεις δεδομένων, εφαρμογές γραφείου, οδηγοί συσκευών κ.α.).

Πέρα από την μεγάλη ποικιλία εφαρμογών που έχουν δημιουργηθεί για το Linux, υπάρχει επίσης η δυνατότητα (όχι πάντα) να χρησιμοποιηθούν σε περιβάλλον Linux και προγράμματα που έχουν κατασκευαστεί για MS Windows. Αυτό γίνεται χρησιμοποιώντας κάποια "ενδιάμεση" εφαρμογή όπως είναι π.χ. το Wine, το οποίο είναι μία ελεύθερη υλοποίηση του API των Windows, και η οποία αναλαμβάνει να γεφυρώσει το χάσμα.

Οδηγοί συσκευών και ζητήματα συμβατότητας υλικού

Σε ιδιαίτερη κατηγορία ανήκουν οι οδηγοί συσκευών (drivers). Λόγω της ιδιαίτερης φύσης τους, μπορεί να απαιτούνται για τη συγγραφή τους συγκεκριμένες πληροφορίες για τις προδιαγραφές και το σχεδιασμό της ελεγχόμενης συσκευής. Οι πληροφορίες αυτές δεν είναι πάντοτε διαθέσιμες, καθώς οι κατασκευαστές πολλές φορές διστάζουν να τις κοινοποιήσουν, επικαλούμενοι τα ιδιοκτησιακά τους δικαιώματα. Μερικές φορές είναι δυνατόν να δημιουργηθεί ένας "ελεύθερος" οδηγός με τη χρήση reverse engineering, και πράγματι για πολλά περιφερειακά υπάρχουν σήμερα τέτοιοι οδηγοί που λειτουργούν ικανοποιητικά. Σε άλλες περιπτώσεις, οι κατασκευαστές παρέχουν τις απαραίτητες πληροφορίες, αποβλέποντας στη διάδοση του προϊόντος τους στην επεκτεινόμενη κοινότητα των χρηστών του Linux. Δυστυχώς, με μερικές συσκευές οι χρήστες του Linux είναι υποχρεωμένοι να χρησιμοποιήσουν ιδιόκτητους οδηγούς. Αυτό δημιουργεί μεγάλα προβλήματα στη διάδοση του ελεύθερου λογισμικού, καθώς οι οδηγοί αυτοί δεν μπορούν να διανεμηθούν ελεύθερα, ούτε και να τροποποιηθούν κατάλληλα, ακολουθώντας την εξέλιξη του Linux, και οι χρήστες τους εξαρτώνται ουσιαστικά από την καλή θέληση των κατασκευαστών. Το πρόβλημα αυτό είναι ιδιαίτερα έντονο σε σχέση με τα μόντεμ, διότι πολλά μόντεμ (software modems) είναι σχεδιασμένα να λειτουργούν με οδηγούς που είναι διαθέσιμοι μόνο για MS Windows. Τα μόντεμ αυτά καλούνται συνήθως "winmodems", ενώ για όσα από αυτά καθίσταται δυνατό να λειτουργήσουν με ελεύθερους οδηγούς έχει επικρατήσει ο όρος "linmodems". Επίσης αντίστοιχο πρόβλημα υπάρχει και με τις σύγχρονες κάρτες γραφικών, όπου ο χρήστης για να μπορέσει να εκμεταλλευτεί πλήρως τις 3D ικανότητες της κάρτας του, είναι αναγκασμένος να κατεβάσει τον κατάλληλο οδηγό του κατασκευαστή. Οι ανάλογοι οδηγοί ελεύθερου λογισμικού περιορίζονται μόνο στην υποστήριξη των 2D ικανοτήτων της κάρτας ή υποστηρίζουν ένα μικρό σύνολο των 3D δυνατοτήτων τους.

Οι περισσότεροι διανομείς του Linux καταρτίζουν σε τακτά διαστήματα έναν κατάλογο συσκευών που είναι "συμβατές" με τη διανομή τους του Linux. Αυτές οι λίστες ονομάζονται "λίστες συμβατότητας υλικού" (Hardware Compatibility Lists) ή HCL για συντομία.

Γλωσσάρι

* Πυρήνας: είναι το κομμάτι του λειτουργικού συστήματος που επικοινωνεί με τις συσκευές, τον επεξεργαστή, παρέχει το σύστημα αρχείων, τη δικτύωση και γενικά είναι υπεύθυνος για όλες τις χαμηλού επιπέδου λειτουργίες.
* Ιδιόκτητα: o όρος ιδιόκτητο λογισμικό χρησιμοποιείται αντί του εμπορικού λογισμικού (ή προγράμματος), μιας και το ελεύθερο λογισμικό δεν αποκλείει κάποιο πρόγραμμα να είναι εμπορικό. Υπάρχουν παραδείγματα πολλών εταιριών που αναπτύσσουν και πωλούν ελεύθερο λογισμικό.