Τι σημαίνει να τρέχει το λογισμικό εγγενώς;
Όταν οι άνθρωποι αναφέρονται στη λειτουργία του εγγενούς λογισμικού, της εξομοίωσης και της συμβατότητας του λογισμικού, ποια ακριβώς αναφέρονται; Διαβάστε παρακάτω καθώς μπαίνουμε στην έννοια του εγγενου λογισμικού.
Η σημερινή συνάντηση ερωτήσεων και απαντήσεων έρχεται σε επαφή με εμάς του SuperUser - μια υποδιαίρεση του Stack Exchange, μια κοινότητα-καθοδηγούμενη ομαδοποίηση ιστοσελίδων Q & A.
Το ερώτημα
Ο αναγνώστης SuperUser Throsby είναι περίεργος για το τι σημαίνει να τρέχει το λογισμικό εγγενώς. Αυτός γράφει:
Αναρωτιόμουν τι σημαίνει για το λογισμικό να τρέχει natively. Τι ακριβώς είναι αυτό το λογισμικό και πώς είναι διαφορετικό από το λογισμικό που δεν τρέχει εγγενώς; Πώς μπορώ να πω εάν ένα συγκεκριμένο λογισμικό θα λειτουργήσει εγγενώς στον υπολογιστή μου; Είναι πιθανό να υπάρχει ήδη λογισμικό στον υπολογιστή μου που τρέχει natively?
Διαβάστε για μια εξαιρετική αναλογία που εξηγεί ακριβώς τι σημαίνει να είναι εγγενής σε ένα δεδομένο σύστημα.
Η απάντηση
Ο συνεργάτης SuperUser Deltik προσφέρει μια φανταστική αναλογία που υπογραμμίζει τι σημαίνει για το λογισμικό να είναι εγγενές και τι είδους άλλο λογισμικό μπορεί να βρει σε ένα δεδομένο σύστημα:
Ένα λογισμικό είναι εγγενές σε μια πλατφόρμα αν είχε σχεδιαστεί για να λειτουργεί σε αυτήν την πλατφόρμα.
Μια πλατφόρμα συνήθως αναφέρεται σε ένα λειτουργικό σύστημα, αλλά μπορεί επίσης να εφαρμοστεί σε συσκευές όπως το Nintendo Game Boy.
Χρησιμοποιώντας το Game Boy σαν παράδειγμα, παίρνει το λογισμικό του από φυσίγγια. Αυτές οι κασέτες περιέχουν κώδικα που τρέχει ναι στο παιχνίδι αγόρι.
Εξομοιωτές είναι ένα στρώμα που επιτρέπει το λογισμικό που έχει σχεδιαστεί για μια πλατφόρμα να τρέχει σε μια άλλη. Για παράδειγμα, υπάρχουν emulators που μπορούν να εκτελέσουν εικόνες των κασετών Game Boy και σας επιτρέπουν να παίζετε παιχνίδια Game Boy στον υπολογιστή σας ή ακόμα και το κινητό σας τηλέφωνο.
ΕΝΑ στρώμα συμβατότητας είναι κάτι σαν εξομοιωτής. Όταν οι υπολογιστές και τα λειτουργικά συστήματα 64-bit έγιναν mainstream, έπρεπε να είναι συμβατά με τις υπάρχουσες τεχνολογίες 32 bit. Δεδομένου ότι οι αρχιτεκτονικές 64-bit και 32-bit είναι πολύ διαφορετικές, απαιτείται συχνά ένα στρώμα συμβατότητας για την εκτέλεση λογισμικού 32 bit σε μηχανές 64 bit. Για εκδόσεις 64 bit των Microsoft Windows, η Microsoft χρειάστηκε να γράψει ένα επίπεδο συμβατότητας έτσι ώστε τα προγράμματα 32 bit να εξακολουθούν να λειτουργούν στο νέο σύστημα 64 bit. Αυτός είναι ο λόγος για τον οποίο ορισμένα προγράμματα εγκαθίστανται συχνά σε ένα φάκελο που ονομάζεται
Αρχεία προγράμματος (x86)
, όπουx86
σημαίνει "32-bit".Τα επίπεδα συμβατότητας τείνουν να είναι πιο στενά με το εγγενές σύστημα από ό, τι οι εξομοιωτές. VirtualBoxμιμείται υλικό για λειτουργικά συστήματα * και τα συστήματα που μιμείται δεν έχουν πολύ άμεση αλληλεπίδραση με το σύστημα κεντρικού υπολογιστή. Το WoW64 είναι α στρώμα συμβατότητας επειδή επιτρέπει στα προγράμματα 32-bit να τρέχουν σε Windows 64-bit με πιο ολοκληρωμένο τρόπο. Το WoW64 βοηθάει στην παραγωγή προγραμμάτων σύμφωνος προκειμένουεξομοίωση σε απομονωμένο περιβάλλον.
ΕΝΑ βιβλιοθήκη μετάφρασης είναι ένα στοιχείο των στρώσεων συμβατότητας. Κάθε φορά που ο δυαδικός κώδικας εκτελείται μη-φυσικά, μια βιβλιοθήκη μεταφράσεων βοηθάει στην ανακατεύθυνση ξένων, μη-φυσικών κλήσεων σε εγγενείς κλήσεις τις οποίες μπορεί να καταλάβει το σύστημα. Τα προγράμματα συναρμολόγησης που γράφονται για το πρωτότυπο TI-83 ενδέχεται να μην είναι συμβατά με τους νεότερους αριθμομηχανές TI-83/84 Plus, επειδή ορισμένες κλήσεις που έχουν νόημα στην αρχιτεκτονική του TI-83 δεν ισχύουν πλέον στο TI-83/84 +. Μια βιβλιοθήκη μετάφρασης (πιθανότατα περιλαμβάνεται σε κελύφη όπως το MirageOS) διασφαλίζει ότι οι κλήσεις για το TI-83 πηγαίνουν στα νέα, ενημερωμένα σημεία των υπολογιστών TI-83/84 +.
Κωδικός ανεξάρτητος από την πλατφόρμα είναι γραμμένο σε μια γλώσσα που είναι ερμηνεύονται από κάτι που συνήθως τρέχει εγγενώς. Για παράδειγμα, η PHP είναι μια γλώσσα προγραμματισμού που ερμηνεύεται και εκτελείται από το εγκατεστημένο δυαδικό αρχείο PHP, το οποίο έχει ήδη καταρτιστεί ναι για λειτουργικά συστήματα που βασίζονται σε Windows, Mac και Unix. Ο κώδικας PHP που γράφουν οι web scripters είναι ανεξάρτητοι από την πλατφόρμα, επιτρέποντας στον κώδικα να λειτουργεί σε πολλαπλά λειτουργικά συστήματα, αρκεί η PHP να είναι εγκατεστημένη για αυτά τα λειτουργικά συστήματα.
Έχετε κάτι να προσθέσετε στην εξήγηση; Απενεργοποιήστε τα σχόλια. Θέλετε να διαβάσετε περισσότερες απαντήσεις από άλλους τεχνολογικούς χρήστες Stack Exchange; Δείτε το πλήρες νήμα συζήτησης εδώ.