Με τον όρο λογισμικό υπολογιστών ή λογισμικό (αγγλ. software) ορίζεται η συλλογή από προγράμματα υπολογιστών, διαδικασίες και οδηγίες χρήσης που εκτελούν ορισμένες εργασίες σε ένα υπολογιστικό σύστημα.[1] Ο όρος περιλαμβάνει:
- το λογισμικό εφαρμογών, όπως οι επεξεργαστές κειμένου, που εκτελούν παραγωγικές εργασίες για τους χρήστες,
- το λογισμικό συστήματος, όπως τα λειτουργικά συστήματα, που παρέχει τις αναγκαίες υπηρεσίες του υλικού στο λογισμικό εφαρμογών,
- το ενδιάμεσο λογισμικό (αγγλ. middleware), που ελέγχει και συντονίζει τα κατανεμημένα συστήματα, και
- το υλικολογισμικό (αγγλ. firmware) που προγραμματίζει σε χαμηλό επίπεδο το υλικό ενός υπολογιστή ή τα περιφερειακά του.
Το λογισμικό περιλαμβάνει τα προγράμματα, τους ιστότοπους, τα βιντεοπαιχνίδια και άλλα προγράμματα που έχουν αναπτυχθεί σε μια γλώσσα προγραμματισμού όπως για παράδειγμα η C, η C++ ή η Java. Το λογισμικό είναι κωδικοποιημένο με συγκεκριμένο τρόπο, με τη βοήθεια ενός δυαδικού ψηφιακού συστήματος, ώστε να είναι «κατανοητό» από το υλικό.
Ο όρος «λογισμικό» χρησιμοποιείται μερικές φορές και σε ένα ευρύτερο πλαίσιο για να περιγράψει κάτι το οποίο δεν είναι υλικό, αλλά χρησιμοποιείται με το υλικό, όπως οι ταινίες, οι δίσκοι μουσικής και τα CD.[2]
Επισκόπηση[Επεξεργασία | επεξεργασία κώδικα]
Ως λογισμικό υπολογιστών θεωρείται ό,τι δεν ανήκει στο υλικό (hardware) του υπολογιστή. Στο υλικό περιλαμβάνονται τα αντικείμενα που έχουν υλική υπόσταση, ενώ στο λογισμικό περιλαμβάνονται τα άυλα προγράμματα και οι εφαρμογές που υπάρχουν στο εσωτερικό του υπολογιστή. Το λογισμικό καλύπτει ένα ευρύτατο φάσμα προϊόντων και τεχνολογιών που αναπτύσσονται με χρήση διαφορετικών τεχνικών όπως οι γλώσσες προγραμματισμού, οι γλώσσες μορφοποίησης κλπ. Οι διαφορετικοί τύποι λογισμικού περιλαμβάνουν ιστοσελίδες που αναπτύσσονται με τις τεχνολογίες HTML, PHP, Perl, JSP, ASP.NET, XML, και εφαρμογές που εμφανίζονται στην επιφάνεια εργασίας, όπως το Microsoft Word και το OpenOffice, που αναπτύσσονται στις γλώσσες C, C++, Java, C#, κλπ. Το λογισμικό εκτελείται συνήθως πάνω από ένα λειτουργικό σύστημα (που είναι επίσης λογισμικό), όπως τα Microsoft Windows, το Linux (με περιβάλλον GNOME ή KDE) ή το Solaris της Sun. Ως λογισμικό θεωρούνται και τα βιντεοπαιχνίδια όπως το Super Mario και το Grand Theft Auto για προσωπικούς υπολογιστές ή για κονσόλες βιντεοπαιχνιδιών. Αυτά τα παιχνίδια αναπτύσσονται από εφαρμογές CGI (computer generated imagery) αφού έχουν σχεδιαστεί πρώτα τα γραφικά τους από εφαρμογές όπως το Maya, το 3ds Max ή το Blender.
Επίσης, ένα λογισμικό συνήθως λειτουργεί πάνω σε μια πλατφόρμα λογισμικού που παρέχεται είτε από λειτουργικό σύστημα ή από ανεξάρτητες πλατφόρμες όπως η πλατφόρμα της Java και η πλατφόρμα .NET. Λογισμικό γραμμένο για μία αρχιτεκτονική λογισμικού ή μια πλατφόρμα συνήθως δεν μπορεί να λειτουργεί και σε άλλες πλατφόρμες, για παράδειγμα, οι εφαρμογές των Microsoft Windows δεν θα είναι σε θέση να λειτουργήσουν σε Mac OS, λόγω των διαφορών που σχετίζονται με τις πλατφόρμες και τα πρότυπά τους. Οι εφαρμογές αυτές μπορούν να λειτουργήσουν μόνο εάν μεταφερθούν, χρησιμοποιώντας ένα διερμηνέα ή με μεταφορά (port) του πηγαίου κώδικα στην εν λόγω πλατφόρμα.
Σχέση με το υλικό του υπολογιστή[Επεξεργασία | επεξεργασία κώδικα]
Το λογισμικό υπολογιστών καλείται έτσι ώστε να διακρίνεται από το υλικό του υπολογιστή, που εποπτεύει τις φυσικές διασυνδέσεις και διατάξεις που απαιτούνται για να αποθηκευτεί και να εκτελεστεί το λογισμικό. Σε χαμηλότερο επίπεδο, το λογισμικό αποκωδικοποιείται σε γλώσσα μηχανής ειδικά προσαρμοσμένη για έναν συγκεκριμένο τύπο επεξεργαστή. Μια γλώσσα μηχανής είναι στην ουσία δυαδική αναπαράσταση των οδηγιών που στέλνονται στον επεξεργαστή ώστε να αλλάξει την κατάσταση του υπολογιστή από την προηγούμενη κατάσταση. Λογισμικό είναι η διατεταγμένη ακολουθία οδηγιών για την αλλαγή της κατάστασης του υλικού του υπολογιστή σε μια συγκεκριμένη επιθυμητή κατάσταση. Είναι συνήθως γραμμένο σε υψηλού επιπέδου γλώσσες προγραμματισμού που είναι ευκολότερες στη χρήση για τους ανθρώπους (πιο κοντά στη φυσική γλώσσα) και πιο αποτελεσματικές από την γλώσσα μηχανής. Οι υψηλού επιπέδου γλώσσες μεταγλωττίζονται σε γλώσσα μηχανής. Το λογισμικό μπορεί επίσης να είναι γραμμένο σε συμβολική γλώσσα (assembly), μια μνημονική αναπαράσταση της γλώσσας μηχανής που χρησιμοποιεί αλφάβητο φυσικής γλώσσας. Η συμβολική γλώσσα μεταφράζεται σε γλώσσα μηχανής μέσω ενός συμβολομεταφραστή (assembler).
Ο όρος «λογισμικό» χρησιμοποιήθηκε για πρώτη φορά με αυτή την έννοια από τον John W. Tukey το 1958. Στην πληροφορική, λογισμικό υπολογιστών είναι όλα τα προγράμματα για ηλεκτρονικούς υπολογιστές. Αυτή η θεωρία είναι η βάση του σύγχρονου λογισμικού και προτάθηκε για πρώτη φορά από τον Άλαν Τούρινγκ το 1935 στο δοκίμιο του Υπολογίσιμοι αριθμοί με μια εφαρμογή στο Entscheidungsproblem.
ΠΗΓΗ:el.wikipedia.org