Τετάρτη, Νοεμβρίου 10, 2004

Μια σύντομη περιγραφή του open source

Ετοίμασα ένα μικρό άρθρο σε στυλ ερωτήσεων-απαντήσεων και προσπαθώ να περιγράψω με απλό τρόπο τί είναι το open source ή ΕΛ/ΛΑΚ και το παραθέτω. Όποια σχόλια-παρατηρήσεις δεκτά.


- Open τί;

Open source, δηλαδή ανοικτός πηγαίος κώδικας.


- Κώδικας σαν και αυτόν που θέλουμε για την κάρτα ανάληψης ή το password;

Όχι, αυτό που λέτε είναι ο κωδικός ασφαλείας. Κώδικας είναι το πρόγραμμα που έφτιαξε ο προγραμματιστής σε μια γλώσσα προγραμματισμού.


- Και τι είναι το ανοικτός πηγαίος κώδικας; Υπάρχει και κλειστός; 

Ναι, υπάρχει και κλειστός πηγαίος κώδικας. Κλειστός σημαίνει ότι ο προγραμματιστής κρατάει τα πάντα για τον εαυτό του και δεν το δείχνει σε άλλους. Ανοικτός πηγαίος κώδικας σημαίνει ότι ο προγραμματιστής τον δείχνει σε όλους.


-Τον δείχνει σε όλους; Χα, το κορόιδο.

Μηδένα προ του τέλους μακάριζε...


-Τί θες να πεις; Όταν έχεις τον πηγαίο κώδικα ανοικτό τι κερδίζεις;

Κερδίζεις πάρα πολλά. Πρώτον, όσοι τον βλέπουν μπορούν να σε βοηθήσουν ώστε να κλείσεις διάφορα κενά ασφαλείας που έχεις. Θα σε βοηθήσουν γράφοντας αυτοί κώδικα και στέλνοντας τον σε εσένα. Έτσι μπορείς να βελτιώσεις πιο γρήγορα το πρόγραμμα σου χωρίς να κάνεις τίποτα. Επίσης μπορούν να γράψουν κώδικα για κάποιες επιπρόσθετες λειτουργίες που τους ενδιαφέρουν και θέλουν να υπάρχουν στο πρόγραμμα σου.


-Ε, αυτό γίνεται και αν το δώσεις σε έναν φίλο σου. Ποια η διαφορά;

Η διαφορά είναι ότι όταν εκθέτεις τον κώδικα στο Διαδίκτυο τότε τον βλέπουν εκατοντάδες χιλιάδες άτομα. Άλλοι είναι φοιτητές και ψάχνουν να βρουν τρόπο για να ξοδέψουν τα αποθέματα ενέργειας που έχουν, άλλοι είναι άτομα που δεν έχουν τίποτα άλλο να κάνουν και ψάχνουν να βρουν τρόπο να βοηθήσουν με τις γνώσεις που έχουν και άλλοι είναι άτομα που χρειάζονται ένα πρόγραμμα σαν το δικό σου και αξίζει να σε βοηθήσουν για να προχωρήσεις αυτό που μόλις έφτιαξες.

Εξάλλου, ο φίλος σου δεν έχει ελεύθερο χρόνο παραπάνω από εσένα.



-Ναι αλλά αν το έχεις εκτεθειμένο στο Διαδίκτυο τότε μπορεί να στο αντιγράψει κάποιος και να το πουλήσει για δικό του.

Η αλήθεια είναι ότι έχει δικαίωμα να το κάνει αυτό αφήνοντας όμως το όνομα σου επάνω. Σκέψου όμως ότι και εσύ κάνεις το ίδιο. Όσοι ξέρουν από ανοικτό λογισμικό όταν θέλουν να φτιάξουν μια εφαρμογή πρώτα ψάχνουν αν υπάρχει (πάντα υπάρχει) κάτι παρόμοιο στο διαδίκτυο και αυτό που υπάρχει το παίρνουν και το προσαρμόζουν (customize) στις ανάγκες τους. Αφού σε βοηθάνε γιατί να μην βοηθήσεις;


-Ναι αλλά αν ο κώδικας είναι κλειστός τότε είσαι πιο ασφαλής.

Λάθος, γιατί γίνεσαι στόχος. Όταν έχεις φτιάξει εφαρμογή με κλειστό κώδικα τότε οι διάφοροι hackers αισθάνονται ότι τους πουλάς μαγκιά και ροκανίζουν την εφαρμογή σου για να ανακαλύψουν κενά ασφαλείας. Αν όμως έχεις τον κώδικα ανοικτό τότε είναι ντροπή να ψάξουν για κενά ασφαλείας αφού "ουδέν κρυπτόν υπό τον ήλιον". Έτσι κοιτάνε να σε βοηθήσουνε αφού "φαίνεσαι καλός άνθρωπος".



-Ναι αλλά αν έχεις τον κώδικα ανοικτό τότε δεν θα μπορείς να πουλήσεις την εφαρμογή. Θα τον πάρει η εταιρεία που θα ήταν υποψήφιος αγοραστής και θα τον χρησιμοποιήσει χωρίς να σε χρειαστεί.


Αν η εταιρεία είναι εταιρεία λογισμικού τότε γίνεται αυτό. Αλλά κανένας δεν πουλάει λογισμικό σε εταιρεία λογισμικού. Είναι λίγο δύσκολο για μια εμπορική εταιρεία να έχει υπαλλήλους προγραμματιστές και να σε παρακάμψουν. Εκτός αυτού, η εφαρμογή σου μπορεί να χρειάζεται και κάποιες ρυθμίσεις που δεν ξέρουν να τις κάνουν οπότε θα πάρεις χρήματα για παροχή υπηρεσιών. Ή αυτό που θα τους πουλήσεις μπορεί να είναι μια επέκταση από εφαρμογή που εσύ βρήκες στο διαδίκτυο.


- Θες να πεις ότι όλες οι εφαρμογές ανοικτού κώδικα είναι πιο ασφαλείς από τις εφαρμογές κλειστού κώδικα;

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



-Καλά όλα αυτά που λες. Το ανοικτό λογισμικό έχει κάποια φιλοσοφία. Μπορείς να μου πεις περισσότερα;

Ναι, αλλά σε άλλο άρθρο :) .

1 σχόλιο:

Ανώνυμος είπε...

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

Κατ' αρχήν, κανένα πρόγραμμα δεν είναι 100% σωστό. Όποιος το ισχυριστεί αυτό ή λέει ψέματα ή απλά δεν έχει ανακαλύψει ακόμα όλα τα προβλήματα που έχει το πρόγραμμά του.

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

Είναι επιτακτική η ανάγκη για ασφαλές λογισμικό, λοιπόν.

-- Γ. Κεραμίδας