Ελεύθερο Λογισμικό Λογισμικό Ανοιχτού Κώδικα (ΕΛΛΑΚ) και Ανοιχτό Hardware Δρ. Δημήτρης Καβρουδάκης www.dimitrisk.gr dimtirisk@geo.aegean.gr
Περιεχόμενα Ελεύθερο Λογισμικό Λογισμικό Ανοικτού Κώδικα Linux Ανοικτά Δεδομένα και Πρότυπα Ανοιχτό Hardware Συζήτηση 2
ΕΛΛΑΚ Εναλλακτικό μοντέλο ανάπτυξης και χρήσης λογισμικού Ελεύθερο λογισμικό: Είναι διαθέσιμος ο πηγαίος κώδικας Ο διαθέσιμος πηγαίος κώδικας μπορεί να Χρησιμοποιηθεί Αντιγραφεί Να διανεμηθεί ελεύθερα (με ή χωρίς αλλαγές) χωρίς χρέωση 3
Διείσδυση ΕΛΛΑΚ ~70% των web-server είναι βασισμένοι στο ΕΛΛΑΚ Πηγή: NetCraft 4
Πλεονεκτήματα/Αδυναμίες ΕΛΛΑΚ Πλεονεκτήματα Ανεξαρτησία Ασφάλεια Αξιοπιστία Διαφάνεια Δια λειτουργικότητα Επεκτασιμότητα Ποιοτικές υπηρεσίες Εξοικονόμηση πόρων Αδυναμίες Έλλειψη εξασφάλισης ανάπτυξης Πιθανότητα forking έργων Πιθανά προβλήματα πνευματικής ιδιοκτησίας Απευθύνετε προς πιο εξειδικευμένους χρήστες Forking: όταν προγραμματιστές παίρνουν το project και ξεκινάν ένα αυτόνομο παρακλάδι του Αρχικού project, το οποίο τραβάει τον δρόμο του και αναπτύσσετε ξεχωριστά. 5
Μοντέλο Ανάπτυξης Ανοικτό μοντέλο ανάπτυξης κατά το πρότυπο ανάπτυξης των επιστημονικών εργασιών στην ακαδημαϊκή κοινότητα Διαφάνεια Αναπαραγωγή Ανοικτό δίκτυο εθελοντών προγραμματιστών, οι οποίοι αναπτύσσουν και διορθώνουν τον κώδικα παράλληλα κοινότητα Χρήση διαδικτύου Ο κώδικας διορθώνεται και εμπλουτίζεται μέσω της διαδικασίας peer review : νέες εκδόσεις ελεύθερου λογισμικού κυκλοφορούν ταχύτατα και σε μεγάλη συχνότητα. 6
Η οικονομία του ΕΛΛΑΚ Η ανάπτυξη του Ελεύθερου Λογισμικού στο πλαίσιο της πληροφορικής, αποτελεί μοναδικό φαινόμενο καθώς σε κανένα άλλο τομέα μέχρι σήμερα δεν έχει παρατηρηθεί η ταυτόχρονη συνύπαρξη τριών παραγόντων: Καινοτομία υπό την πίεση των χρηστών Κουλτούρα ανοικτής επιστήμης Συνεργασία μεταξύ εμπορικών εταίρων που συνδυάζουν εγχειρήματα κερδοσκοπικού/μη-κερδοσκοπικού χαρακτήρα Δημόσιο αγαθό με χαμηλά εμπόδια εισόδου Δυνατότητα ανταγωνιστικού πλεονεκτήματος σε εταιρίες ή χώρες Πολλαπλασιαστικές επιδράσεις σε: Εξοικονόμηση πόρων Χρήση νέων τεχνολογιών 7
Ιστορία Ανάπτυξης ΕΛΛΑΚ Δεκαετίες 50, 60 και 70 Λογισμικό (μαζί με πηγαίο κώδικα) διανέμεται ελεύθερα σε διάφορα forums και σε ακαδημαϊκού κύκλους 1983 O Richard Stallman γράφει το GNU Manifesto 1984 Αρχίζει το GNU Project για τη δημιουργία ενός πλήρως ελεύθερου λειτουργικού συστήματος 1985 Ιδρύεται το Free Software Foundation 1991 Ελεύθερο BSD Unix σε PC (με i386) O Linus Torvalds αναγγέλλει και διαθέτει ελεύθερα τον πυρήνα Linux 8
Ιστορία Ανάπτυξης ΕΛΛΑΚ 1991 σήμερα Συνεχείς ανακοινώσεις βελτιώσεων αλλά και νέων ελεύθερων προγραμμάτων 1997 Δημοσίευση The Cathedral and the Bazaar του Eric S. Raymond (γιατί η κατανεμημένη ανάπτυξη λογισμικού λειτουργεί καλά) 1998 Χρήση του όρου open source και κατοχύρωσή του ως σήμα κατατεθέν για προϊόντα ελεύθερου λογισμικού Ορισμός του open source (Open Source Definition) προερχόμενος από τις οδηγίες DFSG - Debian Free Software Guidelines Ίδρυση του Open Source Initiative (OSI) 1998 σήμερα Το ΕΛ/ΛΑΚ κερδίζει όλο και μεγαλύτερη αναγνώριση 9
Ελεύθερο Λογισμικό (ΕΛ) Το Ελεύθερο Λογισμικό (Free Software) είναι θέμα ελευθερίας και όχι κόστους/τιμής Σύγχυση με τον αγγλικό όρο free στο free software free as in free speech, not as in free beer. Φιλοσοφία του ΕΛ Το θέμα είναι η ελευθερία είναι όλο το θέμα και το μόνο θέμα. Το Ελεύθερο Λογισμικό (Free Software) σχετίζεται με την ελευθερία του χρήστη να χρησιμοποιήσει/εκτελέσει, να αντιγράψει, να διανείμει, να μελετήσει, να αλλάξει και να βελτιώσει το λογισμικό. 10
Ορισμός Ελεύθερου λογισμικού Είναι Ελεύθερο Λογισμικό αν ο χρήστης έχει: την ελευθερία να χρησιμοποιήσει/εκτελέσει το λογισμικό (πρόγραμμα) για κάθε σκοπό (ελευθερία 0) την ελευθερία να μελετήσει πως λειτουργεί το πρόγραμμα και να το προσαρμόσει στις ανάγκες του (ελευθερία 1) προαπαιτεί πρόσβαση στον πηγαίο κώδικα την ελευθερία να (ανα)διανείμει αντίγραφα για να βοηθήσει τους άλλους (ελευθερία 2) την ελευθερία να βελτιώσει το πρόγραμμα και να διαθέσει τις βελτιώσεις στο ευρύ κοινό, ώστε όλοι να επωφεληθούν (ελευθερία 3) - προαπαιτεί πρόσβαση στον πηγαίο κώδικα 11
Λογισμικό Ανοικτού Κώδικα (ΛΑΚ) Ανακοίνωση της Netscape οτι θα διαθέσει τον πηγαίο κώδικα του φυλλομετρητή της (browser) Ευκαιρία να πεισθεί ο επιχειρηματικός κόσμος για την ανοικτή διαδικασία ανάπτυξης λογισμικού Ανάγκη να εκλείψει η νοοτροπία αντιπαράθεσης που είχε συνδεθεί με το ελεύθερο λογισμικό και να προωθηθεί η ιδέα σε ρεαλιστική επιχειρηματική βάση Δημιουργία του όρου open source Έμφαση στη διαμοίραση του πηγαίου κώδικα και στη διαδικασία ανάπτυξης 12
Ορισμός Λογισμικού Ανοικτού Κώδικα (ΛΑΚ) Ανοικτός Κώδικας δεν σημαίνει μόνο πρόσβαση στον πηγαίο κώδικα. Η διανομή πρέπει να συμμορφώνεται με τα κριτήρια 1. Ελεύθερη αναδιανομή 2. Διανομή και του πηγαίου κώδικα 3. Διανομή με τους ίδιους όρους αλλαγών και λογισμικού που βασίζεται στο αρχικό. 4. Άδεια αλλαγής του πηγαίου κώδικα (η μέθοδος εφαρμογής αρχείων αλλαγών patches) 5. Καμία διάκριση απέναντι σε άτομα ή ομάδες 6. Καμία διάκριση απέναντι σε πεδία εφαρμογής 7. Ελεύθερη διανομή της άδειας χρήσης 8. Άδεια χρήσης που δεν εξαρτάται από συγκεκριμένη διανομή 9. Άδεια χρήσης που δεν περιορίζει άλλο λογισμικό 10. Άδεια χρήσης που είναι τεχνολογικά ουδέτερη 13
Άδειες χρήσης ΕΛ/ΛΑΚ Πάνω από 50 άδειες χρήσης ΕΛ/ΛΑΚ συμβατές με τη GPL (και το GNU project, και μη συμβατές με τη GPL με αδυναμία επιβολής επιπλέον περιορισμών (Copyleft) και με δυνατότητα επιβολής επιπλέον περιορισμών (Non-copyleft) Πολλές άδειες χρήσης που δεν ήταν ελεύθερες τροποποιούνται ώστε να γίνουν ελεύθερες Ενδεικτικά: GNU GPL και GNU LGPL X11 License Expat License (MIT license) BSD license, original/modified OpenSSL licence Apache license (ver. 1.0, 1.1) Public Domain. νομική κατάσταση, όχι άδεια ισοδύναμο με άδεια που επιτρέπει τα πάντα. και πολλές άλλες 14
GNU project Το GNU project ξεκίνησε το 1984 με σκοπό να υλοποιήσει ένα πλήρες λειτουργικό σύστημα (παρόμοιο με το Unix), το GNU system, που θα είναι ελεύθερο λογισμικό GNU: αρχικά του GNU s Not Unix! Για την υποστήριξη και χρηματοδότησή του δημιουργήθηκε το Free Software Foundation FSF Υπάρχει διαθέσιμη η παραλλαγή του GNU system βασισμένη στον πυρήνα Linux (GNU/Linux) 15
GNU Operating System: Linux Συνήθως γνωστό σήμερα απλά ως Linux (αν και Linux είναι μόνο ένας πυρήνας για το σύστημα GNU) Έχει ευρεία χρήση σε συστήματα εξυπηρετητών Με τα γραφικά περιβάλλοντα γνωρίζει επιτυχία και στους προσωπικούς σταθμούς εργασίας Κυκλοφορεί σε διάφορες διανομές (εμπορικές και μη) Debian, Slackware, RedHat, SuSe, Mandrake, Knoppix, Gentoo, Περιλαμβάνουν και πλήθος ελεύθερων εφαρμογών Δεν είναι όμως το μόνο ελεύθερο λειτουργικό σύστημα FreeBSD, NetBSD, OpenBSD, Darwin, FreeDOS 16
Ελεύθερες εφαρμογές KDE, Gnome, XFCE (desktop environments) Mozilla Firefox, Konqueror, Epiphany, Galeon (browsers) Ximian Evolution,, Mozilla Thunderbird (e-mail) OpenOffice.org, Koffice, Gnome Office GIMP, Sodipodi (graphics) Kollab, Kroupware (groupware) MySQL, PostgreSQL, FirebirdSQL, SAP DB (databases) Postnuke, Envolution, Scoop (content management) Whiteboard, ILAIS, Moodle (learning support) GAP, MAXIMA, NTL, R (maths, statistics) Apache, Jakarta tomcat, Zope (web servers) 17
Ευρωπαική Ενωση και ΕΛ/ΛΑΚ Εκδήλωση ενδιαφέροντος για το θέμα και παρακολούθησή του. Free and Open Source Software site http://europa.eu.int/information_society/activities/opensource/ IDA Open Source Observatory 18
Χρήση ΕΛ/ΛΑΚ στον δημόσιο τομέα Αρκετές χώρες (ευρωπαϊκές και μη) έχουν οδηγίες ή/και πολιτικές σχετικά με τη χρήση ΕΛ/ΛΑΚ Πολλές πόλεις, περιφέρειες, χώρες στρέφονται στη χρήση ΕΛ/ΛΑΚ από τις υπηρεσίες τους π.χ. Extremadura, Spain, Δήμος Μονάχου Η Κίνα χρηματοδότησε την ανάπτυξη ΕΛ/ΛΑΚ λειτουργικού συστήματος & γραφικού περιβάλλοντος (στην κινεζική) 19
Γιατί ΕΛΛΑΚ στον Δημόσιο Τομέα? Η χρήση ΕΛ/ΛΑΚ αν και ήταν ακριβότερο ως συνολική λύση για να μην υπάρξει δέσμευση με συγκεκριμένη εταιρεία και πολιτική αναβάθμισης Το δημόσιο μπορεί να χρηματοδοτήσει το ΕΛ/ΛΑΚ π.χ. για περιπτώσεις που δεν υπάρχει ΕΛ/ΛΑΚ που να καλύπτει κάποιες ανάγκες του δημοσίου, να χρηματοδοτηθεί ανάπτυξη σχετικού λογισμικού ως ΕΛ/ΛΑΚ π.χ. για παροχή στις επιχειρήσεις (ελεύθερων) λύσεων που θα τονώσουν την ανάπτυξη π.χ. για παροχή στους πολίτες (ελεύθερων) λύσεων που θα εξυπηρετούν βασικές τους ανάγκες 20
Πλεονεκτήματα χρήσης ΕΛ/ΛΑΚ Μικρό κόστος απόκτησης λογισμικού Δυνατότητα εγκατάστασης και χρήσης σε απεριόριστο αριθμό σταθμών εργασίας Ελευθερία στην πολιτική αναβάθμισης Δυνατότητα προσαρμογής Έλλειψη δέσμευσης με συγκεκριμένη εταιρεία ή/και προμηθευτή Αρκετά προγράμματα ΕΛ/ΛΑΚ είναι πια τουλάχιστον τόσο ώριμα και εύχρηστα όσο και τα εμπορικά ισοδύναμα τους 21
Πλεονεκτήματα ΕΛΛΑΚ Γιατί Ώριμες Πλήρεις εφαρμογές Μικρό κόστος Επαναχρησιμοποίηση Ασφάλεια Πλήρης υποστήριξη ανοικτών προτύπων Πώς Εγκατάσταση Εκπαίδευση προσωπικού Παραμετροποιηση Συντήρηση 22
Πλεονεκτήματα ΕΛΛΑΚ στην εκπαίδευση Οικονομικό όφελος Υψηλή απόδοση, σταθερότητα και ασφάλεια που οφείλεται στη συνεργατική και κατανεμημένη ανάπτυξη του λογισμικού Δυνατότητα προσαρμογής των εκπαιδευτικών χαρακτηριστικών του λογισμικού στις ιδιαίτερες ανάγκες ενός εθνικού εκπαιδευτικού συστήματος 23
ΕΛΛΑΚ στην έρευνα Οικονομικό όφελος - φιλική αδειοδότηση Κουλτούρα ανοικτής επιστημονικής διαδικασίας Ανταλλαγή δεδομένων και μεθόδων Δωρεάν διάθεση προς φοιτητές 24
Ελληνικά παραδείγματα χρήσης ΕΛΛΑΚ Υποδομή Internet & Πανελλήνιο Σχολικό Δίκτυο ΠΣΔ: 6.500 από σύνολο 10.000 σχολειών ήδη συνδεδεμένα Προγράμματα ΕΛ που χρησιμοποιούνται: qmail, squid, squidguard, Apache, HordeIMP, MySQL, FreeRadius, MRTG, phpbb, OpenLDAP Πανεπιστήμια ΤΕΙ Χρήση Linux σε εργαστήρια υπολογιστών 25
Ανοικτά Δεδομένα Τα δεδομένα ενός Δήμου είναι δεδομένα: Όλων των πολιτών Όλων των Δήμων Όλης της δημόσιας διοίκησης Τα δεδομένα της Δημόσιας Διοίκησης είναι δεδομένα: Όλων των πολιτών Όλων των Δήμων Παραδείγματα ανοικτών δεδομένων: Θέσεις νοσοκομειων, εφοριών, δημαρχείων, ποταμιών Πληθυσμοί δήμων, νομών, περιφερειών,... Αριθμητικά δεδομένα διοικητικών υπηρεσιών: Πόσους εξυπηρέτησε πέρυσι κάθε υπηρεσία? Πόσα 3οροφα κτίσματα υπάρχουν στην Μυτιλήνη? 26
Ανοικτά Δεδομένα Γιατί Επαναχρησιμοποίηση Μικρότερο κόστος κτήσης και επικαιροποίησης Ποιότητα και πληρότητα Καλύτερη λειτουργία Νέες υπηρεσίες Πώς Πλήρη μεταδεδομένα Υποδομές αναζήτησης Άδεια χρήσης Ανοιχτά πρότυπα αρχείων 27
Ανοικτά Πρότυπα Χρήση ελεύθερων προτύπων σε διαδικασίες και αρχεια Διαδικασίες Δεν εγκλωβίζουμε τον χρήστη στο να χρησιμοποιεί ένα μόνο λογισμικό ή είδος αρχείου, το οποίο στο μέλλον μπορεί να ξεπεραστεί Χρησιμοποιούμε άδειες ελεύθερου λογισμικού οι οποίες δεν δεσμεύουν τον χρήστη/προγραμματιστή έτσι ώστε να μπορούμε να στηρίξουμε οποιαδήποτε μελλοντική χρήση/υπηρεσία πάνω στο υλικό μας. Δια-λειτουργικότητα Να μπορούμε να συνδέσουμε το λογισμικό μας με τις υπηρεσίες κάποιου φορέα Θα πρέπει να είναι γνωστές οι λεπτομέρειες των δεδομένων του φορέα ώστε να μπορούμε να ξέρουμε πώς θα συνδεθούμε 28
Ανοικτά Πρότυπα Γιατί Ανεξαρτησία από κατασκευαστή Δια-λειτουργικότητα Μικρότερο κόστος Επαναχρησιμοποίηση υποδομών Πώς Δημοσιοποίηση τεχνικών προδιαγραφών 29
Debate - κατά του ΕΛΛΑΚ Κόστος Μπορεί να είναι ελεύθερο αλλά υπάρχει κόστος εγκατάστασης, υποστήριξης και εκμάθησης. Ποιότητα/αξιοπιστία Δεν αναπτύσσετε μέσα από αυστηρά ελεγχόμενες διαδικασίες εξασφάλισης ποιότητας. Ασφάλεια Κακόβουλοι μπορούν να μελετήσουν τον κώδικα και να βρουν κενά ασφαλείας. Επενδύσεις Μπορεί να δημιουργήσει προβλήματα σε εταιρίες ανάπτυξης λογισμικού μιας και είναι ανταγωνιστικό προϊόν 30
Debate - υπέρ του ΕΛΛΑΚ Κόστος Και το εμπορικό λογισμικό εκτός από το κόστος αγοράς (αναβάθμισης), περιέχει κόστος διαχείρισης, υποστήριξης και εκμάθησης. Ποιότητα/αξιοπιστία Χρησιμοποιούνται διαδικασίες ελέγχου ποιότητας Η συμμετοχική διαδικασία ανάπτυξης, οδηγεί σε εκπληκτικά αποτελέσματα ως προς την ποιότητα Ασφάλεια Κακόβουλοι μπορούν να μελετήσουν τον κώδικα και να βρουν κενά ασφαλείας. Επενδύσεις Υπάρχει χώρος εμπορικής εκμετάλλευσης στο ΕΛΛΑΚ Εκπαίδευση, υποστήριξη, βελτιώσεις, πρόσθετα, forking, 31
Σύνοψη Το ΕΛΛΑΚ είναι καταλύτης και όχι μαγικό ραβδί λύσης προβλημάτων Η συμμετοχική ανάπτυξη του, είναι και το πλεονέκτημα του. Μπορεί να μειώσει τα λειτουργικά έξοδα: επιχειρήσεων, πανεπιστημίων, φοιτητών. 32
Ανοιχτό Hardware Hardware με δημοσιευμένες προδιαγραφές και αρχιτεκτονική Arduino Raspberry Pi Δομικά υλικά τα οποία μπορούν να συνθέσουν αρκετά πολύπλοκα υπολογιστικά συστήματα Οι χρήστες δημοσιεύουν τα έργα (project) τους υλικά: usb parts, boards, cables, sensonrs, microelectronics Μεθόδους: dockings, packaging, daemon services, data analysis Εφαρμογές/Χρήσεις Υπολογιστική επεξεργασία Διαδικτυακές εφαρμογές Οικιακοί Αυτοματισμοί Εφαρμογές πληροφόρησης κοινού 33
Raspberry Pi www.raspberrypi.org 34
Arduino www.arduino.cc 35
Εφαρμογές Rasbery Pi Web Server Home Automation Web-Cam server Weather Station Quad Copter Media Server GPS tracker with 3G Supper Computer Network status Solar Data Logger Weather ballon Museum Kiosk Trafic Monitoring Mail Server 36
Σύνδεσμοι Δικτυακή Πύλη για το Ελεύθερο Λογισμικό και το Λογισμικό Ανοικτού Κώδικα στην Εκπαίδευση http://opensoft.sch.gr Open Source Education Foundation www.osef.org ΕΛΛΑΚ Πανεπιστήμιο Μακεδονίας http://opensource.uom.gr Δικτυακός τόπος ενημέρωσης τγια τα πλεονεκτήματα του ΕΛΛΑΚ καθώς και τις δραστηριότητες της εταιρίας www.open-source.gr Ελληνική κοινότητα συνεργασίας σχετικά με το ΕΛ/ΛΑΚ www.ellak.gr και www.open-source.gr Portal χρηστών Linux www.linux.gr 37
Ερωτήσεις dimitrisk@geo.aegean.gr www.dimitrisk.gr Εργαστήριο Χωρικής Ανάλυσης, ΓΣΠ και Τηλεπισκόπησης Κτήριο Τμήματος Γεωγραφίας: Α.21 38