Μηχανική Λογισμικού ΙΙ Ελεύθερο Λογισμικό / Λογισμικό Ανοικτού Κώδικα (ΕΛΛΑΚ) Παναγιώτης Σφέτσος, PhD
Ορισμός 2Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Ελεύθερο Λογισμικό / Λογισμικό Ανοικτού Κώδικα (ΕΛΛΑΚ) Ελεύθερο λογισμικό είναι το λογισμικό που δίνει σε όλους: την ελευθερία να το χρησιμοποιήσουν και να έχουν πρόσβαση στον πηγαίο κώδικα, την ελευθερία να το διανείμουν, την ελευθερία να το μελετήσουν, να το βελτιώσουν και να το αναδιανείμουν την ελευθερία να βεβαιώσουν ότι οι αλλαγές θα κοινοποιηθούν σε όλους Οι ανωτέρω ελευθερίες παρέχονται με την άδεια της: GNU General Public License (GPL). GNU General Public License (GPL).
Τι είναι το ΕΛΛΑΚ 3Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Η ελεύθερη αναδιανομή του λογισμικού - οποιοσδήποτε μπορεί να διαθέσει ή και να πουλήσει το ΕΛΛΑΚ Η διάθεση του πηγαίου κώδικα - μαζί με το εκτελέσιμο πρόγραμμα παρέχεται και ο πηγαίος κώδικας Η δυνατότητα για τροποποίηση του αρχικού προγράμματος - το πρόγραμμα που θα προκύψει από τις αλλαγές μπορεί να διατίθεται με την ίδια άδεια χρήσης όπως το αρχικό πρόγραμμα (Ελεύθερες βελτιωμένες εκδόσεις). Όχι διακρίσεις σχετικά με το ποιος μπορεί να χρησιμοποιήσει ένα πρόγραμμα ΕΛΛΑΚ - χρήση από όλους και για οποιονδήποτε σκοπό
4Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Το 1983, ο Richard Stallman ξεκινά να γράψει ένα ελεύθερο λειτουργικό σύστημα, το ονομαζόμενο έργο GNU (GNU is Not Unix). Στα τέλη του 1985, ο Stallman ίδρυσε το γνωστό ίδρυμα FSF (Free Software Foundation). Το 1989, μερικοί κατασκευαστές -GNU δημιούργησαν την εταιρεία Cygnus Solutions διαθέτοντας προϊόντα Ελεύθερου Λογισμικού. Ο πυρήνας GNU, που αργότερα ονομάστηκε "GNU Hurd", ολοκληρώθηκε το Ο μεταγλωττιστής GNU Compiler Collection, αλλά και ο GNU Debugger, σημείωσαν μεγάλη επιτυχία στην παγκόσμια αγορά λογισμικού. Το 1991, ο Linus Torvalds, έκδοσε την πρώτη έκδοση του πυρήνα Linux, με ανοικτό και τροποποιήσιμο κώδικα. Το 1992, με την έκδοση 0.12 του πυρήνα, ακολούθησε την άδεια GNU (General Public License). Η ιστορία του ΕΛΛΑΚ
5Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Η ιστορία του ΕΛΛΑΚ
6Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Το λογισμικό θεωρείται ως γνώση, που εμπεριέχει ιδέες, και όχι προϊόν, και για τον λόγο αυτό θα πρέπει να διακινείται ελεύθερα και να θεωρείται κοινό ψηφιακό αγαθό. Στηρίζεται στην ελεύθερα προσβάσιμη γνώση και τη συμμετοχική διαδικασία τόσο στο σχεδιασμό όσο και στην ανάπτυξη του λογισμικού. Έτσι χρησιμοποιεί: - τις ανοικτές αρχιτεκτονικές στο σχεδιασμό - τα ανοικτά πρότυπα, που επιτρέπουν τη διαλειτουργικότητα με άλλα συστήματα που επίσης χρησιμοποιούν τα ίδια ανοικτά πρότυπα. Η φιλοσοφία του ΕΛΛΑΚ
7Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ δημόσιο τομέα παροχή υπηρεσιών Εναλλακτική λύση για χρήση από το δημόσιο τομέα για την παροχή υπηρεσιών προς τους πολίτες. Υιοθέτηση ανοικτών προτύπων, οδηγούν σε μείωση του κόστους και σε ανεξαρτησία από μονοπωλιακά κλειστά προϊόντα λογισμικού (συγκεκριμένες τεχνικές λύσεις). εκπαίδευση Το ΕΛΛΑΚ μπορεί να χρησιμοποιηθεί στην εκπαίδευση. Πλεονεκτήματα: το μειωμένο κόστος, η δυνατότητα βελτίωσης του εκπαιδευτικού λογισμικού και η επαναχρησιμοποίηση του από όλους τους εκπαιδευτικούς και εκπαιδευόμενους. έρευνα Το ΕΛΛΑΚ μπορεί να χρησιμοποιηθεί και στην έρευνα. Στους ερευνητές είναι ήδη γνωστά τα πλεονεκτήματα και οι δυνατότητες του ΕΛΛΑΚ. Χρήση για την παραγωγή καινοτομίας. Εφαρμογή – Πλεονεκτήματα (1/4)
8Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Το ΕΛΛΑΚ μπορεί να αξιοποιηθεί και από τις επιχειρήσεις, κυρίως τις μικρο-μεσαίες επιχειρήσεις. μικρο-μεσαίες επιχειρήσεις. Έλλειψη ενημέρωσης για το ΕΛΛΑΚ. Σήμερα, το ΕΛΛΑΚ διαθέτει μια πληθώρα ώριμων εφαρμογών που μπορούν να καλύψουν όλες τις ανάγκες των επιχειρήσεων. Πλεονεκτήματα με μια ματιά: Μείωση κόστους για την προμήθεια και χρήση λογισμικού, Αυξημένη ασφάλεια λογισμικού και προϊόντων, Αυξημένη διαλειτουργικότητα και καλύτερες υπηρεσίες, Μείωση εξαρτήσεων και τόνωση του υγιούς ανταγωνισμού, Αυξημένη κοινωνική συνεισφορά στην ανάπτυξη ΕΛΛΑΚ με πολλαπλασιαστικά αποτελέσματα, Ανάπτυξη επιχειρηματικότητας γύρω από το ΕΛΛΑΚ Εφαρμογή – Πλεονεκτήματα (2/4)
9Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Στηρίζεται στην ελεύθερα προσβάσιμη γνώση και τη συμμετοχική διαδικασία στο σχεδιασμό και στην ανάπτυξη του λογισμικού. Υιοθετεί τις ανοικτές αρχιτεκτονικές στο σχεδιασμό του και υποστηρίζει ανοικτά πρότυπα, που επιτρέπουν τη διαλειτουργικότητα με άλλα συστήματα (που επίσης χρησιμοποιούν τα ίδια ανοικτά πρότυπα). Έτσι η έννοια του ΕΛΛΑΚ είναι συνυφασμένη με τις έννοιες των ανοικτών αρχιτεκτονικών και προτύπων και της διαλειτουργικότητας. Έτσι επιτυγχάνεται η ευκολία συντήρησης και επέκτασης των συστημάτων, αλλά και η δυνατότητα συνδυασμού (και ανα-συνδυασμού) μικρότερων συστημάτων για τη σύνθεση μεγαλύτερων. Σταδιακή και κατάλληλο σχεδιασμό η μετάβαση στο ΕΛΛΑΚ. Εφαρμογή – Πλεονεκτήματα (3/4)
10Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Σταδιακή μετάβαση εξυπηρετητών σε ελεύθερα λειτουργικά συστήματα και υπηρεσίες βασισμένες σε ανοιχτό λογισμικό. Δοκιμασμένες λύσεις ΕΛΛΑΚ που είναι καλύτερες αυτών του εμπορικού λογισμικού και κατέχουν πάνω από το 70% της αντίστοιχης αγοράς. Παράλληλα, προτείνεται η σταδιακή μετάβαση των χρηστών σε εφαρμογές γραφείου ή άλλες ειδικότερες ΕΛΛΑΚ εφαρμογές. Αποφυγή μονοπωλιακών και ολιγοπωλιακών καταστάσεων. Εφαρμογή – Πλεονεκτήματα (4/4)
11Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Κίνημα για την προστασία και ενίσχυση των δημόσιων αγαθών (commons), που θα αποκαλούμε στη συνέχεια κοινά αγαθά. Είναι ο τομέας που συμπληρώνει αλλά και εξισορροπεί τον τομέα των ιδιωτικών οικονομικών δραστηριοτήτων (μετριάζει τις αρνητικές του επιπτώσεις, όπως ολιγοπώλιο, μονοπώλιο, κλπ.). Kοινά αγαθά θεωρούνται : τα ευρυζωνικά δίκτυα (ανοικτά ασύρματα δίκτυα σε πόλεις, δήμους, κλπ.) το λογισμικό (διάφορα προϊόντα), το περιεχόμενο και οι ραδιοσυχνότητες Πρέπει να υπάρχει μέριμνα για την ορθή διαχείριση και ανάπτυξή τους. Απαιτούνται: Δημιουργοί, Συντηρητές, Χορηγοί και Υπερασπιστές. Κοινά Ψηφιακά Αγαθά
12Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Η ελεύθερη διακίνηση ιδεών έχει αποδειχθεί ως απόλυτα αναγκαία για τη δημιουργικότητα και την παραγωγή καινοτομίας. Πολύπλοκα πακέτα λογισμικού στηρίζονται σε λύσεις που αναπτύχθηκαν παλαιότερα και διδάσκονται σε πανεπιστήμια και σχολές (συσσωρευτική γνώση). Άρα το λογισμικό και οι ιδέες που εμπεριέχει θα πρέπει να είναι ελεύθερα διακινήσιμο και εκμεταλλεύσιμο από όλους (κοινό ψηφιακό αγαθό). Πρωτοπόρος ο Ακαδημαϊκός χώρος. Η ελεύθερη διακίνηση ιδεών συνέβαλε στην ενίσχυση της ερευνητικής δραστηριότητας αλλά και του εμπορικού λογισμικού. Άδειες χρήσης, δίνουν πλήρη ελευθερία και προωθούν την ανταποδο- τικότητα (κάποια βελτίωση ή προσθήκη σε υπάρχον λογισμικό το αποτέλεσμα να είναι και πάλι κοινό ψηφιακό αγαθό). Το λογισμικό ως κοινό ψηφιακό αγαθό
13Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Συνήθως οι χρήστες αγοράζουν είναι η άδεια χρήσης κάποιου προγράμματος, που αποτελεί το συμβόλαιο μεταξύ της εταιρίας και του χρήστη. Στο εμπορικό / κλειστό λογισμικό συνήθως απαγορεύεται: η αντιγραφή του. η ταυτόχρονη χρησιμοποίηση του σε παραπάνω από έναν υπολογιστή. η μεταπώληση του. η τροποποίηση του. η απαίτηση οποιασδήποτε αποζημίωσης από τον χρήστη σε περίπτωση που το λογισμικό προκαλέσει οποιοδήποτε πρόβλημα στο χρήστη του. Για το Λογισμικό Ανοιχτού Κώδικα υπάρχουν πολλές διαφορετικές άδειες χρήσης (πάνω από 50), που όλες διαθέτουν κάποια βασικά κοινά χαρακτηριστικά: την ελεύθερη αναδιανομή του λογισμικού, την διάθεση του πηγαίου κώδικα, την δυνατότητα για τροποποίηση του αρχικού προγράμματος, την δυνατότητα χρήσης του για οποιονδήποτε σκοπό. Άδειες χρήσης λογισμικού
14Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Το εμπορικό/κλειστό λογισμικό: Έρευνα αγοράς, αναλυτικός σχεδιασμός, λεπτομερής οργάνωση του έργου κλπ. Ανάθεση του έργου σε ομάδες ανάπτυξης (υπό την επίβλεψη κάποιου διευθυντή). Επηρεασμός από τα τμήματα πωλήσεων και marketing. Όταν το προϊόν είναι έτοιμο το διαθέτει στην αγορά και δεσμεύεται για τον χρόνο που θα το υποστηρίζει. Το ΕΛΛΑΚ: Σχεδιάζεται, αναπτύσσεται και διατίθεται με ένα ανοιχτό συνεργατικό μοντέλο. Όταν προκύπτει η δημιουργία /αλλαγή κάποιου προγράμματος, διαθέτουν τον κώδικα μέσω του διαδικτύου. Μια μικρή ομάδα συντονιστών αναλαμβάνει να θέσει τις προτεραιότητες και τις κατευθύνσεις για την περαιτέρω εξέλιξη του. Διαφορετικά Μοντέλα ανάπτυξης λογισμικού
15Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Ο κάθε προγραμματιστής, έχει την ελευθερία να προσθέσει τις δικές του λειτουργίες στην αρχική εφαρμογή. Αν οι προσθήκες/αλλαγές αποδειχθούν ουσιαστικές, συμπεριλαμβάνονται στο βασικό κομμάτι της εφαρμογής. Ο ποιοτικός έλεγχος μιας εφαρμογής πραγματοποιείται από εθελοντές χρήστες που ελέγχουν (χρησιμοποιούν) την εφαρμογή και καταγράφουν τα όποια προβλήματα που στην συνέχεια τα διορθώνουν. Έτσι στο ΕΛΛΑΚ υπάρχουν αρκετά συχνά νέες εκδόσεις των προγραμμάτων και των εφαρμογών. Διαφορετικά Μοντέλα ανάπτυξης λογισμικού (1/2)
16Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Ασφάλεια Το ΕΛΛΑΚ θεωρείται εξίσου ασφαλές αν όχι πιο ασφαλές από το εμπορικό λογισμικό (τον κώδικα σαρώνουν εκατοντάδες προγραμματιστές) Στον ανοικτό κώδικα φαίνονται πιθανόν “κερκόπορτες” (backdoors) που δεν είναι ορατές στα εκτελέσιμα αρχεία του εμπορικού λογισμικού. Κόστος Το συνολικό κόστος ενός προγράμματος ή μιας εφαρμογής (το κόστος απόκτησης αδειών χρήσης + κόστος της συντήρησης/υποστήριξης) είναι μικρότερο στο ΕΛΛΑΚ. Η συντήρηση /υποστήριξη στο ΕΛΛΑΚ γίνεται με δύο τρόπους: - πληρωμή εταιρείας - βοήθεια από την κοινότητα των χρηστών του ΕΛΛΑΚ (δεσμοί ισχυροί) Πλεονεκτήματα και μειονεκτήματα του ΕΛΛΑΚ
17Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Απρόβλεπτα έξοδα και εφόδια (προσθήκη υλικού ή λογισμικού) Έλλειψη συντονισμού (μέχρι και χάος στην ανάπτυξη) Ανεπαρκής Τεχνική Υποστήριξη Κίνδυνος διακοπής - συνέχειας Μειονεκτήματα του ΕΛΛΑΚ
18Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Σχετική ομάδα εργασίας από το 1998 με χρηματοδότηση αρκετών διεθνών ερευνητικών έργων για την περαιτέρω ανάπτυξη και διάδοση του ΕΛΛΑΚ. Βέλτιστη πρακτική η χρήση του ΕΛΛΑΚ: στον δημόσιο τομέα και στην ηλεκτρονική διακυβέρνηση. Χώρες όπως η Γερμανία και η Γαλλία ενθαρρύνουν την υιοθέτηση του ΕΛΛΑΚ στον δημόσιο τομέα. Σε υψηλό βαθμό χρήσης στις χώρες Ισπανία, Βέλγιο και Σκανδιναβικές χώρες. Στην Ελλάδα: Αρκετά περιορισμένη. Μεγάλη χρήση και απήχηση στα ΑΕΙ. Κίνηση και για την Δευτεροβάθμια εκπαίδευση (για εκμάθηση GNU/Linux). Ομάδα Ι3 για την εφαρμογή των αδειών Creative Commons και GPL & LGPL σε χώρες της Ευρωπαϊκής Ένωσης και στην Ελλάδα. Το ΕΛΛΑΚ στην Ευρώπη και στην Ελλάδα (1/2)
19Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Η Ένωση Ελλήνων Χρηστών και Φίλων Λίνουξ ( και ο δικτυακός τόπος του ΕΛΛΑΚ ( Μικρομεσαίες Επιχειρήσεις – ΜΜΕ πειρατικό λογισμικό κόστος λογισμικού που δεν υπολογίζεται έλλειψη ενημέρωσης για τις εφαρμογές του ΕΛΛΑΚ αναβαθμίσεις και συντήρηση λογισμικού Το ΕΛΛΑΚ στην Ευρώπη και στην Ελλάδα (2/2)
20Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Φυλλομετρητής Δικτύου (Web Browser): Ο κώδικας του Netscape Communicator στην κοινότητα του ΕΛΛΑΚ, συνέβαλε στη δημιουργία του Mozilla Firefox και SeaMonkey (ασφαλέστεροι και δημοφιλέστεροι). Προγράμματα Ηλεκτρονικού Ταχυδρομείου ( Clients): Επιτυχημένα προγράμματα, ασφαλέστερα στις επιθέσεις των ιών όπως: το Evolution, το Kmail, το Mozilla Messenger και το Mozilla Thunderbird. Εφαρμογές Γραφείου: Η ολοκληρωμένη σουίτα εφαρμογών γραφείου το Open Office. Πλεονέκτημα η δυνατότητα να αναγνωρίζει τα κλειστά πρότυπα εγγράφων του κλειστού / εμπορικού λογισμικού, άλλα και η παρεχόμενη υποστήριξη στα ανοιχτά πρότυπα. Λειτουργικά Συστήματα: GNU/Linux, FreeBSD ΟpenSolaris Λειτουργικά συστήματα ΕΛΛΑΚ: GNU/Linux, FreeBSD και ΟpenSolaris. Εφαρμογές Υποστήριξης: Εξυπηρετήτης ιστοσελίδων Apache, Εξυπηρετήτης ιστοσελίδων Apache, πρόγραμμα δρομολόγησης ηλεκτρονικού sendmail, κλπ. ταχυδρομείου sendmail, κλπ. Υπάρχουσες Εφαρμογές
21Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Ξεκίνημα του υπολογιστή από CD-ROM χωρίς την ανάγκη σκληρού δίσκου. Κανένας κίνδυνος για απώλειες σε δεδομένα. Επικοινωνία και με άλλο λειτουργικό σύστημα. Μεγάλη ποικιλία υποστηριζόμενων προγραμμάτων. Περισσότερα προγράμματα και πληροφορίες : Live Linux
22Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ Ξεκίνημα του υπολογιστή από CD-ROM χωρίς την ανάγκη σκληρού δίσκου (Mandrake Linux). Κανένας κίνδυνος για απώλειες σε δεδομένα. Αποθήκευση USB. OpenOffice.org 1.1 – Δουλεύει παντού! Μεγάλη ποικιλία υποστηριζόμενων προγραμμάτων. Plugins – Flash, Acrobat Reader, RealPlayer, GAIM, Java, DivX, κλπ. Περισσότερα : MandrakeMove
23Παναγιώτης Σφέτσος, Μηχανική Λογισμικού ΙΙ MandrakeMove