Καλησπέρα,
Συνήθως όταν έχεις άλλη αρχιτεκτονική Επεξεργαστή πρέπει να κάνεις μεταγλώττιση τον πυρήνα του GNU/Linux ή του οποιοδήποτε πυρήνα λειτουργικού συστήματος για την εν λόγο αρχιτεκτονική, πχ. άλλη έκδοση του Kernel για Arm και άλλη για Intel.
Όμως αυτό γιατί δεν συμβαίνει μεταξύ επεξεργαστών Intel και AMD;
Για την ακρίβεια έχουν το ίδιο Instruction set architecture (ISA). Η αρχιτεκτονική που το υλοποιεί μπορεί να είναι, και είναι διαφορετική.
Το επίπεδο ISA είναι το χαμηλότερο επίπεδο που μπορεί να δει το λειτουργικό (κάτω απο αυτό υπάρχει μικρο κώδικάς και μια κρυμμένη αρχιτεκτονική RISC) που δεν μπορεί να δει το λειτουργικό.
Το δεύτερο που σε ενδιαφέρει σαν προγραμματιστή είναι το application binary interface (ABI) ένα σύνολο από συμβάσεις για το πως χρησιμοποιείς το ISA του επεξεργαστή. Για Intel/amd έχουμε ένα ντε φάκτο στάνταρ που ακολουθείς. Στον κόσμο του UNIX έχουμε το Intel Binary Compatibility Standard iBCS καθώς και τις κοινές συμβάσεις που χρησιμοποιούν οι μεταγλωττιστές.
Στον κόσμο του arm τα πράγματα είναι ποιο πολύπλοκα καθώς υπάρχουν τουλάχιστον 2 abi.
Τα OPcodes είναι βασικό κομμάτι του τι είναι μια ISA αρχιτεκτονική, άρα ναι, ή assembly είναι ίδια, τουλάχιστον όσο χρησιμοποιείς τις ίδιες επεκτάσεις .
Η συζήτηση μεταξύ RISC/CISC επεξεργαστών ήταν μια ακαδημαϊκή συζήτηση της δεκαετίας του 1990. Δεν έχει μια άμεση μεταφορά στις μέρες μας. Το εκτεταμένο caching κατ’ αρχάς έχει αλλάξει εντελώς το πλαίσιο της συζήτησης.
Τι είναι ένας μοντέρνος επεξεργαστής Pentium λοιπόν; Έχει μια καθαρά RISC αρχιτεκτονική επεξεργαστή. Επίσης έχει ενα καθαρά CISC ISA. Τι είναι λοιπόν; Δεν βρίσκω πολύ νόημα στην ερώτηση σήμερα.
Διάβασε αυτό για την P6 αρχιτεκτονική που τα εξηγεί λίγο καλύτερα.
Για τις εκδόσεις βασισμένες στο arch υπάρχει το linux-ck που προπαρασκευάζει το τελευταίο stable linux kernel για διάφορες ομάδες CPU (AMD k10, intel-duo, ivybridge, κλπ.). Διαφορετικά μαθαίνεις πως να παίρνεις τον κώδικα και να φτιάχνεις δικό σου στα μέτρα σου.