ΚΕΦΑΛΑΙΟ 2
Λογισμικό (Software)
Διδακτικές Ενότητες
- Λογισμικό Συστήματος και Λογισμικό Εφαρμογών
- Ταξινόμηση Λογισμικού Εφαρμογών
- Ελεύθερο Λογισμικό - Λογισμικό Ανοιχτού Κώδικα (ΕΛ/ΛΑΚ)
Διδακτικοί στόχοι
Σκοπός του κεφαλαίου είναι οι μαθητές να γνωρίσουν το λογισμικό, το άυλο μέρος ενός υπολογιστικού συστήματος.
Οι μαθητές πρέπει να είναι σε θέση:
- να κατανοήσουν την έννοια του Λογισμικού και τη σχέση του με το Υλικό (hardware).
- να γνωρίσουν τον ρόλο του Λογισμικού Συστήματος καθώς και διάφορες κατηγορίες Λογισμικού Εφαρμογών.
- να μπορούν να επιλέξουν την κατάλληλη εφαρμογή για την εργασία τους.
- να γνωρίσουν τη φιλοσοφία του Ελεύθερου Λογισμικού / Λογισμικού Ανοιχτού Κώδικα.
Ερωτήματα
- Τι ονομάζουμε Λογισμικό;
- Σε ποιες κατηγορίες χωρίζεται το Λογισμικό;
- Ποιος ο ρόλος του Λειτουργικού Συστήματος;
- Πόσο εξαρτάται το Λογισμικό από το Υλικό (hardware);
- Τι είδους εφαρμογές χρειάζεται ένας χρήστης;
Βασική ορολογία
Λογισμικό, Λογισμικό Συστήματος, Λειτουργικό Σύστημα, Πυρήνας, Φλοιός, Περιβάλλον Εντολών Γραμμής, Γραφικό Περιβάλλον Επικοινωνίας, Λογισμικό Εφαρμογών, Ελεύθερο Λογισμικό - Λογισμικό Ανοιχτού Κώδικα
Εισαγωγή
Για τη λειτουργία ενός υπολογιστικού συστήματος χρειάζεται εκτός από το υλικό (hardware) και το λογισμικό (software). Σε αυτό περιλαμβάνονται όλα τα προγράμματα του υπολογιστή. Οι εντολές που περιέχουν τα προγράμματα καθοδηγούν το υλικό του υπολογιστή να εκτελέσει τις εργασίες για τις οποίες σχεδιάστηκε. Το λογισμικό αναπτύσσεται χρησιμοποιώντας εντολές σε γλώσσες προγραμματισμού υψηλού επιπέδου, που είναι πιο κοντά στη φυσική γλώσσα του ανθρώπου. Η μορφή αυτή των προγραμμάτων ονομάζεται πηγαίος κώδικας. Τα προγράμματα αυτά στη συνέχεια μεταγλωττίζονται σε γλώσσα μηχανής, δηλαδή σε εντολές γραμμένες σε μορφή ακολουθιών bit που είναι άμεσα εκτελέσιμες από την KME.
2.1 Λογισμικό Συστήματος και Λογισμικό Εφαρμογών
Μπορούμε να χωρίσουμε το Λογισμικό στις παρακάτω μεγάλες κατηγορίες:
- το Λογισμικό Συστήματος (System Software),
- το Λογισμικό Εφαρμογών (Application Software
Λογισμικό Συστήματος (System Software)
Τo Λογισμικό Συστήματος διαχειρίζεται το υλικό του υπολογιστή, παρέχει στοιχειώδη λειτουργικότητα προς τον χρήστη και αποτελεί τη βάση πάνω στην οποία αναπτύσσεται και εκτελείται το Λογισμικό Εφαρμογών. Περιλαμβάνει:
- το Λειτουργικό Σύστημα (Operating System - OS),
- οδηγούς συσκευών (drivers),
- διαγνωστικά εργαλεία,
- το παραθυρικό σύστημα,
- βοηθητικά προγράμματα, και άλλα.
Λειτουργικό Σύστημα (Operating System)
Το Λειτουργικό Σύστημα ή ΛΣ (Operating System ή OS) αποτελεί το λογισμικό του υπολογιστή που είναι υπεύθυνο για τη διαχείριση και τον συντονισμό των εργασιών, καθώς και την κατανομή των διαθέσιμων πόρων, όπως είναι π.χ. η μνήμη και ο χρόνος εκτέλεσης στην ΚΜΕ. Παράλληλα, λειτουργεί ως ένα ενδιάμεσο επίπεδο λογικής διασύνδεσης μεταξύ λογισμικού και υλικού του υπολογιστή. Με αυτόν τον τρόπο προφυλάσσει τον προγραμματιστή από τον άμεσο και επίπονο χειρισμό των πόρων του υπολογιστή, καθιστώντας έτσι ευκολότερη την ανάπτυξη Λογισμικού Εφαρμογών. Το πιο σημαντικό μέρος του ΛΣ, που εκτελεί όλες τις παραπάνω λειτουργίες, ονομάζεται πυρήνας (kernel).
Ο φλοιός (shell) είναι μια εξειδικευμένη εφαρμογή που επιτρέπει την πρόσβαση του χρήστη στις υπηρεσίες του ΛΣ. Αποτελεί δηλαδή τη διεπαφή μεταξύ χρήστη και ΛΣ. Ο φλοιός μπορεί να είναι ένα Περιβάλλον Εντολών Γραμμής (Command Line Interface) ή ένα Γραφικό Περιβάλλον Επικοινωνίας (Graphical User Interface - GUI), όπως ο «παραθυρικός» φλοιός των Microsoft Windows.
Όλα τα υπολογιστικά συστήματα (υπερυπολογιστές, προσωπικοί υπολογιστές, έξυπνα κινητά, ακόμη και παιχνιδομηχανές) χρειάζονται για τη λειτουργία τους κάποιο τύπο λειτουργικού συστήματος. Μπορούμε να κατηγοριοποιήσουμε τα ΛΣ σε:
-
Πραγματικού-χρόνου (Real-time), που παρέχουν γρήγορη και προβλέψιμη απόκριση σε συγκεκριμένα γεγονότα.
-
Πολλών-χρηστών (Multi-user), τα οποία εξασφαλίζουν ταυτόχρονη πρόσβαση σε πολλούς χρήστες στον ίδιο υπολογιστή.
- Πολύ-διεργασιακά (Multi-tasking), όπου ο χρήστης μπορεί να εκτελεί ταυτόχρονα πολλά προγράμματα σε αντίθεση με τα Μονο-διεργασιακά (Single-tasking).
-
Κατανεμημένα (Distributed). Ένα κατανεμημένο ΛΣ διαχειρίζεται μια ομάδα ανεξάρτητων, δικτυωμένων υπολογιστών, δημιουργώντας την αίσθηση στον χρήση ότι πρόκειται για έναν και μόνο υπολογιστή.
-
Ενσωματωμένα (Embedded), τα οποία σχεδιάστηκαν για να λειτουργούν σε ενσωματωμένα υπολογιστικά συστήματα με περιορισμένους πόρους.
Λογισμικό Εφαρμογών (Application Software)
Η εγκατάσταση ενός λειτουργικού συστήματος συνοδεύεται συνήθως από ένα μικρό σύνολο εφαρμογών, όπως π.χ. το «Σημειωματάριο» και η «Αριθμομηχανή», που μας επιτρέπουν κάποια στοιχειώδη χρήση του υπολογιστή μας. Κάθε χρήστης όμως έχει διαφορετικές ανάγκες και χρειάζεται τον δικό του συνδυασμό προγραμμάτων, ώστε να μεταμορφώσει τον υπολογιστή του σε ένα εξειδικευμένο παραγωγικό εργαλείο. Όλα αυτά τα προγράμματα ανήκουν στην κατηγορία Λογισμικό Εφαρμογών.
Οι ανάγκες των χρηστών οδήγησαν τους προγραμματιστές να δημιουργήσουν πλήθος προγραμμάτων που ανήκουν σε διάφορες κατηγορίες. Έτσι, κάθε κατηγορία διαθέτει αρκετές εφαρμογές με παρόμοια χαρακτηριστικά. Για την επιλογή ενός προγράμματος, χρειάζεται σύγκριση των χαρακτηριστικών του, συμπεριλαμβανομένου και του κόστους της άδειας χρήσης, με τα χαρακτηριστικά των άλλων διαθέσιμων προγραμμάτων της ίδιας κατηγορίας. Επικουρικά, μπορούμε να συμβουλευτούμε κάποια κριτική που θα βρούμε στον ειδικό τύπο (ηλεκτρονικό ή παραδοσιακό). Όμως, μπορούμε να αποκτήσουμε και προσωπική άποψη, δοκιμάζοντας το πρόγραμμα, εφόσον μας προσφέρεται τέτοια επιλογή από τον δημιουργό του (έκδοση trial).
Ο Δείκτης Εμπειρίας των Windows μετρά τις δυνατότητες του υλικού και του λογισμικού του υπολογιστή σας, και εκφράζει τη μέτρηση αυτή με τη μορφή ενός αριθμού, που ονομάζεται βασική βαθμολογία.
Εάν το ΛΣ σας το υποστηρίζει, βρείτε τον Δείκτη Εμπειρίας του υπολογιστή σας. Τι χρειάζεται να αναβαθμίσετε, για να δουλεύει καλύτερα;
Το λογισμικό εξαρτάται πάντα από τις δυνατότητες του υλικού του υπολογιστή που διαθέτουμε. Για τον λόγο αυτό, κάθε πρόγραμμα συνοδεύεται από τις ελάχιστες και τις προτεινόμενες απαιτήσεις του όσον αφορά στο υλικό (hardware), που πρέπει να λαμβάνονται υπόψη. Σημαντικό είναι, επίσης, οι εφαρμογές που προμηθευόμαστε να είναι συμβατές με τη συγκεκριμένη έκδοση ΛΣ που χρησιμοποιούμε.
Ερωτήσεις - Δραστηριότητες
- Καταγράψτε τα λειτουργικά συστήματα που έχετε χρησιμοποιήσει. Στη συνέχεια, επιχειρηματολογήστε για τα πλεονεκτήματα και τα μειονεκτήματα που παρουσιάζει καθένα από αυτά
- Θέλετε να εγκαταστήσετε την τελευταία έκδοση της εφαρμογής Autocad (http://www. autodesk.com/) σε έναν υπολογιστή του εργαστηρίου σας. Το υλικό του υπολογιστή σας το επιτρέπει; Τεκμηριώστε την απάντησή σας.
2.2 Ταξινόμηση Λογισμικού Εφαρμογών
Το πλήθος των εφαρμογών που έχουν αναπτυχθεί ως σήμερα έχει δημιουργήσει ένα αντίστοιχο πλήθος κατηγοριών. Κάποιες από τις κατηγορίες αυτές έχουν ευρεία χρήση, εμφανίζονται σχεδόν σε κάθε προσωπικό υπολογιστή, όπως είναι οι φυλλομετρητές ή προγράμματα πλοήγησης στον Παγκόσμιο Ιστό (web browsers), τα προγράμματα αναπαραγωγής πολυμέσων (media players), οι εφαρμογές γραφείου (office suites) και τα προγράμματα αντιμετώπισης κακόβουλου λογισμικού (antivirus).
Εφαρμογές Γραφείου (Office Suites)
Στις εφαρμογές γραφείου περιλαμβάνονται εφαρμογές όπως:
- ο επεξεργαστής κειμένου (word processor), που χρησιμοποιείται για τη σύνθεση, διόρθωση, μορφοποίηση και εκτύπωση εγγράφων.
- το υπολογιστικό φύλλο (spreadsheet), που διευκολύνει την οργάνωση αριθμητικών δεδομένων μέσω πινάκων, την αυτοματοποίηση πολύπλοκων υπολογισμών και τη δημιουργία γραφημάτων.
- το πρόγραμμα παρουσιάσεων, για την εύκολη δημιουργία εντυπωσιακών διαφανειών μιας παρουσίασης.
- το πρόγραμμα διαχείρισης βάσεων δεδομένων, που επιτρέπει την αποτελεσματική οργάνωση και διαχείριση της πληροφορίας.
- το πρόγραμμα ηλεκτρονικού ταχυδρομείου και οργάνωσης υποχρεώσεων.
Η χρήση των παραπάνω προγραμμάτων είναι τόσο διαδεδομένη, ώστε συνήθως τα προγράμματα αυτά δεν εμφανίζονται μεμονωμένα αλλά ως «πακέτο» (σουίτα). Οι πιο δημοφιλείς σουίτες είναι το Microsoft Office και το LibreOffice.
Επεξεργασία εικόνας, σχεδίου και βίντεο
Η συγκεκριμένη κατηγορία απευθύνεται συνήθως σε επαγγελματίες, όπως είναι οι φωτογράφοι, οι γραφίστες, άτομα που εργάζονται στον χώρο της τηλεόρασης και του κινηματογράφου.
Τα προγράμματα επεξεργασίας εικόνας μπορούν να τροποποιήσουν μια εικόνα σε επίπεδο εικονοστοιχείου (pixel). Μπορούν να διορθώσουν χρώματα και αντιθέσεις σε μια φωτογραφία, να αφαιρέσουν ανεπιθύμητα στοιχεία, ή να συνθέσουν μια νέα από επιμέρους εικόνες. Συνήθως συνοδεύονται από πλήθος φίλτρων, ο συνδυασμός των οποίων δημιουργεί εντυπωσιακά αποτελέσματα. Εφαρμογές αυτής της κατηγορίας είναι το Adobe Photoshop και το Gimp.
Οι γραφίστες χρειάζεται να αλλάζουν συνεχώς μεγέθη στα αντικείμενα που χρησιμοποιούν σε μια σύνθεση, χωρίς να
Οι εφαρμογές συνεχώς εξελίσσονται. Σε κάθε νέα έκδοση ενός προγράμματος προστίθενται νέα χαρακτηριστικά, ενώ συνήθως ανανεώνεται και η διεπαφή χρήστη.
Η σύγχρονη τάση θέλει τις παραδοσιακές εφαρμογές να εξελίσσονται σε εφαρμογές νέφους (cloud applications), όπως θα δούμε στο Κεφάλαιο 13 του βιβλίου μας.
Από την προσωπική σας εμπειρία μπορείτε να αναφέρετε άλλες κατηγορίες λογισμικού μαζί με αντιπροσωπευτικές εφαρμογές τους;
αλλοιώνεται η ποιότητα των γραφικών. Αυτό είναι εφικτό με προγράμματα σχεδίασης που χρησιμοποιούν διανυσματικά γραφικά (vector graphics). Ενδεικτικά, αναφέρουμε το CorelDraw και το InkScape.
Στο μοντάζ ενός βίντεο επιλέγονται μικρότερα τμήματα από ένα ή περισσότερα βίντεο για την παραγωγή ενός νέου ενιαίου έργου. Μια εφαρμογή επεξεργασίας βίντεο επιτρέπει στον χρήστη να εκτελέσει αυτή την εργασία αλλά και να κάνει τις απαραίτητες διορθώσεις, να εφαρμόσει φίλτρα και τρόπους μετάβασης μεταξύ των τμημάτων του έργου. Σε αυτή την κατηγορία ανήκουν το Adobe Premiere Pro και Kdenlive
Δημιουργία πολυμεσικών εφαρμογών
Τα πολυμέσα αποτελούν τον συνδυασμό δύο τουλάχιστον μέσων όπως: κείμενο, ήχος, εικόνα, κινούμενη εικόνα (animation) και βίντεο. Χρησιμοποιούνται με πολλούς και διαφορετικούς τρόπους, λόγου χάρη για την πλοήγηση και το περιεχόμενο ενός ιστότοπου (website), για τη δημιουργία ενός απλού παιχνιδιού ή μιας εκπαιδευτικής εφαρμογής. Εφαρμογές όπως το Adobe Flash και το Synfig Studio μάς βοηθούν στη δημιουργία πολυμεσικού υλικού.
Επιτραπέζια τυπογραφία (Desktop Publishing – DTP)
Μια εφαρμογή επιτραπέζιας τυπογραφίας επιτρέπει σε συντάκτες και σχεδιαστές να δημιουργήσουν βιβλία, εφημερίδες και περιοδικά στην οθόνη ενός προσωπικού υπολογιστή. Παρέχει περισσότερο έλεγχο πάνω στον σχεδιασμό, τη διάταξη και την τυπογραφία από ό,τι ένας επεξεργαστής κειμένου. Στην κατηγορία αυτή ανήκουν τα QuarkXPress και Scribus.
Τεχνολογίες Υποβοηθούμενες από Υπολογιστή
Η Σχεδίαση με Υποβοήθηση Υπολογιστή (CAD) χρησιμοποιεί λογισμικό για τη δημιουργία, τροποποίηση, ανάλυση ή βελτιστοποίηση ενός σχεδιασμού. Αντίστοιχα, στην Παραγωγή με Υποβοήθηση Υπολογιστή (CAM), το λογισμικό χρησιμοποιείται για τον έλεγχο εργαλειομηχανών και συναφών μηχανημάτων στην παραγωγή αντικειμένων. Το AutoCAD και το Archimedes αποτελούν ενδεικτικές εφαρμογές CAD.
Ερωτήσεις - Δραστηριότητες
- Σε ομάδες ή με καταιγισμό ιδεών, καταγράψτε ποιες εφαρμογές έχετε χρησιμοποιήσει και την κατηγορία στην οποία ανήκουν. Στη συνέχεια, συζητήστε και αναφέρετε πως θα μπορούσατε να χρησιμοποιήσετε κάθε μια από αυτές στο πλαίσιο ενός μαθήματος ή μιας σχολικής δραστηριότητας.
- Χρησιμοποιήστε το πρόγραμμα επεξεργασίας εικόνας Gimp (http://www.gimp.org/) μαζί με εικόνες της επιλογής σας, για να συνθέσετε μια νέα δική σας εικόνα.
2.3 Ελεύθερο Λογισμικό - Λογισμικό Ανοιχτού Κώδικα (ΕΛ/ΛΑΚ)
Το ελεύθερο λογισμικό, όπως ορίζεται από το Ίδρυμα Ελευθέρου Λογισμικού (Free Software Foundation), είναι λογισμικό που μπορεί να χρησιμοποιηθεί, αντιγραφεί, μελετηθεί, τροποποιηθεί και αναδιανεμηθεί χωρίς περιορισμό. Συγκεκριμένα, περιλαμβάνει τις εξής ελευθερίες:
-
Ελευθερία 0: για χρήση του προγράμματος για οποιονδήποτε σκοπό.
- Ελευθερία 1: για μελέτη και τροποποίηση του προγράμματος.
-
Ελευθερία 2: για αναδιανομή αντιγράφων του προγράμματος.
- Ελευθερία 3: για βελτίωση και επανέκδοση του προγράμματος, προς το συμφέρον της κοινότητας των χρηστών.
Οι ελευθερίες 1 και 3 προϋποθέτουν την πρόσβαση των χρηστών στον πηγαίο κώδικα του λογισμικού. Ένα πρόγραμμα θεωρείται ελεύθερο λογισμικό, όταν οι χρήστες του έχουν όλες τις παραπάνω ελευθερίες.
Το ελεύθερο λογισμικό αναφέρεται ορισμένες φορές και ως λογισμικό ανοιχτού κώδικα, αλλά οι δύο έννοιες δεν είναι ταυτόσημες. Το λογισμικό ανοικτού κώδικα δεν σημαίνει απαραιτήτως ελεύθερο λογισμικό, αλλά αναφέρεται μόνο στο γεγονός πως επιτρέπεται σε κάθε χρήστη να εξετάσει και να χρησιμοποιήσει τη γνώση και τις δυνατότητες που προσφέρει ο παρεχόμενος πηγαίος κώδικας.
Το ελεύθερο λογισμικό είναι επίσης διαφορετικό από το δωρεάν λογισμικό (freeware), το οποίο δεν απαιτεί πληρωμή για τη χρήση, όμως ο δημιουργός του διατηρεί όλα τα δικαιώματά του. Έτσι, το ελεύθερο λογισμικό είναι πρωτίστως ζήτημα ελευθερίας, όχι κόστους. Οι χρήστες είναι ελεύθεροι να κάνουν ό,τι θέλουν με το συγκεκριμένο λογισμικό: να το αναδιανείμουν χωρίς χρέωση ή ακόμα και να το πουλήσουν (το ίδιο ή υπηρεσίες που σχετίζονται με αυτό, όπως η υποστήριξη ή η εγγύηση) σε σημαντικά υψηλές τιμές (π.χ. o μεταγλωττιστής GNU Ada).
Το λειτουργικό σύστημα Linux είναι το πιο σημαντικό δείγμα ΕΛ/ΛΑΚ. Είναι τόσο αξιόπιστο που αποτελεί σήμερα το ΛΣ στους 480 από τους 500 ταχύτερους υπερυπολογιστές στον κόσμο. Αντίστοιχα, το LibreOffice είναι η ελεύθερη ανοικτού κώδικα σουΐτα εφαρμογών γραφείου, που μπορεί να αντικαταστήσει ισάξια το Microsoft Office.
Σύμφωνα με την ισχύουσα νομοθεσία περί πνευματικής ιδιοκτησίας, η ελεύθερη αντιγραφή, διανομή και τροποποίηση του λογισμικού δεν επιτρέπεται. Για τον λόγο αυτό, οι εκδόσεις ελεύθερου λογισμικού κάνουν χρήση ειδικής άδειας (free software licence).
Ερωτήσεις - Δραστηριότητες
- Επισκεφτείτε τον σύνδεσμο http://www.ellak.gr/ και εντοπίστε τον «Πίνακα ισοδύναμων λογισμικών ανοιχτού κώδικα…». Μπορείτε να δημιουργήσετε έναν δικό σας πίνακα που να περιέχει το ιδιόκτητο λογισμικό που χρησιμοποιείτε καθώς και το αντίστοιχο ελεύθερο λογισμικό.
- Χωριστείτε σε ομάδες. Κάθε ομάδα να εγκαταστήσει ένα πρόγραμμα ελεύθερου λογισμικού και να συγκρίνει τη χρήση του με το αντίστοιχο ιδιόκτητο λογισμικό. Θα μπορούσατε να χρησιμοποιείτε από εδώ και πέρα μόνο ΕΛ/ΛΑΚ;