Εκτελέσιμο αρχείο

Στην πληροφορική, ένα εκτελέσιμο αρχείο προκαλεί έναν υπολογιστή για την «εκτέλεση των καθηκόντων που αναφέρονται σύμφωνα με τις κωδικοποιημένες οδηγίες»,  σε αντιδιαστολή με ένα αρχείο δεδομένων που πρέπει να αναλυθεί από ένα πρόγραμμα ώστε να έχει νόημα. Αυτές οι οδηγίες είναι παραδοσιακά οδηγίες κώδικα μηχανής για μια Κεντρική Μονάδα Επεξεργασίας. Ωστόσο, σε μια γενικότερη έννοια, ένα αρχείο που περιέχει τις οδηγίες ή τον ενδιάμεσο κώδικα (όπως ο κώδικας byte ή bytecode) για ένα διερμηνέα μπορεί επίσης να θεωρηθεί εκτελέσιμο.

Αλληλεπίδραση με το λειτουργικό σύστημα
Κάποια λειτουργικά συστήματα ορίζουν ένα αρχείο σαν εκτελέσιμο με βάση την επέκταση του ονόματός του (π.χ. .exe) ή τα μεταδεδομένα του (metadata), όπως η χρήση μιας άδειας «εκτέλεσης» στα λειτουργικά συστήματα τύπου Unix. Τα περισσότερα λειτουργικά συστήματα ελέγχουν επίσης ότι το αρχείο είναι έγκυρο εκτελέσιμο, ώστε να μην είναι δυνατό να εκτελεστεί οποιαδήποτε τυχαία ακολουθία από bit. Τα σύγχρονα λειτουργικά συστήματα κρατούν τον έλεγχο στους πόρους του υπολογιστή, απαιτώντας κάθε πρόγραμμα να καλεί κλήσεις συστήματος για την πρόσβαση σε κάποιους πόρους. Επειδή κάθε οικογένεια λειτουργικών συστημάτων έχει τη δική της αρχιτεκτονική κλήσεων συστήματος, γενικά ένα εκτελέσιμο αρχείο λειτουργεί σε συγκεκριμένα λειτουργικά συστήματα.

Υπάρχουν πολλά εργαλεία που μπορούν να εκτελέσουν σε κάποιο λειτουργικό σύστημα αρχεία που προορίζονται για άλλο λειτουργικό σύστημα, υλοποιώντας μια παρόμοια ή συμβατή δυαδική διεπαφή εφαρμογών (application binary interface, ABI). Για παράδειγμα, το Wine, υλοποιεί μια βιβλιοθήκη συμβατή με τη διεπαφή Win32 για επεξεργαστές x86.

Όταν η δυαδική επαφή του υλικού για το οποίο μεταγλωττίστηκε διαφέρει από αυτήν στην οποία το εκτελέσιμο τρέχει, το πρόγραμμα που κάνει τη μετάφραση ονομάζεται εξομοιωτής (emulator). Διαφορετικά αρχεία που μπορούν να εκτελεστούν αλλά δεν συμφωνούν με κάποια συγκεκριμένη δυαδική διεπαφή υλικού, ή σύνολο εντολών (instruction set), μπορούν να αναπαρασταθούν σε bytecode, ή σαν πηγαίος κώδικας για χρήση από κάποια γλώσσα σεναρίων (scripting language). (βλ. Shebang (Unix))

Δείτε επίσης 
 Αντικειμενικό αρχείο

Παραπομπές

Συστήματα αρχείων