Big-Endian Testing with QEMU
Les termes big-endian et little-endian désignent l'ordre des octets en mémoire, soit du plus significatif au moins significatif, soit l'inverse. Par exemple, la valeur hexadécimale 0x12345678 contient quatre octets et l'endianité détermine si 0x12 ou 0x78 est stocké à l'adresse mem[0]. L'appellation provient de Gulliver's Travels et la plupart des ordinateurs personnels et smartphones modernes (Intel x86_64, ARM AArch64) sont little-endian. Pour garantir la portabilité, il faut écrire du code correct pour les deux ordres d'octets et QEMU permet de tester un binaire sur un système big-endian en mode utilisateur. Un petit programme C affichant les octets d'un uint32_t montre l'ordre little-endian sur la machine locale et l'ordre big-endian lorsqu'il est compilé et exécuté pour MIPS ou s390x via les toolchains et qemu correspondants.