Vés al contingut

Ordre dels bytes

De la Viquipèdia, l'enciclopèdia lliure
(S'ha redirigit des de: Endianness)

El terme ordre dels bytes[1] (en anglès endianness) designa el format en què s'emmagatzemen les dades de més d'un byte en un ordinador. El problema és similar als idiomes en què s'escriuen de dreta a esquerra, com l'idioma àrab, o l'idioma hebreu, davant dels que s'escriuen d'esquerra a dreta, però traslladat de l'escriptura a l'emmagatzematge en memòria dels bytes. Algunes arquitectures de microprocessador poden treballar amb dos formats (ARM, PowerPC, DEC Alpha, PA-RISC, Arquitectura MIPS), i de vegades són referides com sistemes middle-endian. La nomenclatura dels criteris little endian i big endian es pot entendre com "de petit a final" i "de més gran a final", encara que és propens a confondre's amb "acaba en petit" i "acaba bé" respectivament. La seva etimologia prové d'un joc de paraules en anglès amb els termes compostos little-endian i big-endian.[2][3]

Etimologia

[modifica]

La nomenclatura dels criteris little-endian i big-endian prové de la novel·la Els viatges de Gulliver de Jonathan Swift, fa referència a una societat on hi havia dos grups enemistats, un sostenia que els ous durs s'havien de començar a menjar per l'extrem gran (big end) o altres pel petit (little end). Per aquest motiu big endian s'ha d'entendre com "de començament per l'extrem més gran" i little endian com "de començament per l'extrem petit", encara que és propens a confondre amb "acaba en gran" i "acaba en petit". La seva etimologia prové d'un joc de paraules en anglès amb els termes compostos little-end-in i big-end-in. [4]

Xarxes

[modifica]

Molts RFC d’IETF utilitzen el terme ordre de xarxa, és a dir, l’ordre de transmissió de bits i bytes a través del cable en els protocols de xarxa. Entre d’altres, l’històric RFC 1700 (també conegut com a estàndard d’Internet STD 2) ha definit l’ordre de xarxa dels protocols de la suite de protocols d’Internet per ser big-endian, d’aquí l’ús del terme "ordre de bytes de xarxa" per a un ordre de bytes big-endian.[5]

Tot i així, no tots els protocols utilitzen l'ordre de bytes big-endian com a ordre de xarxa. El protocol de bloqueig de missatges del servidor (SMB) utilitza un ordre de bytes poc endian. En CANopen, els paràmetres de múltiples bytes s'envien sempre byte menys significatiu primer (ascendent cap a l'esquerra). El mateix passa amb Ethernet Powerlink.[6]

L’ API de sockets Berkeley defineix un conjunt de funcions per convertir enters de 16 i 32 bits a i des de l’ordre de bytes de xarxa: les htons (host-to-network-short) i htonl (host-to-network-long) converteixen Valors de 16 i 32 bits respectivament des de la màquina (host) fins a l'ordre de xarxa; les ntohs i ntohl es converteixen de l'ordre de la xarxa a l'amfitrió.[7][8] Aquestes funcions poden ser no operatives en un sistema big-endian.

Tot i que els protocols de xarxa d’alt nivell solen considerar el byte (la majoria es vol dir octet) com la seva unitat atòmica, els protocols de xarxa més baixos poden ocupar-se de l’ordenació de bits dins d’un byte.

Vegeu també

[modifica]

Referències

[modifica]
  1. «Ordre dels bytes». Cercaterm. TERMCAT, Centre de Terminologia.
  2. «Explanation of big endian and Little endian Architecture». Arxivat de l'original el 2010-03-03. [Consulta: 2009].
  3. «Understanding big and little endian byte order». [Consulta: 29 desembre 2018].
  4. «Explanation of Big Endian and Little Endian Architecture». [Consulta: 2009].
  5. Reynolds, J. & Postel, J. (October 1994), Assigned Numbers, IETF, p. 3, STD 2. RFC 1700, doi:10.17487/RFC1700, <https://datatracker.ietf.org/doc/html/rfc1700>. Consulta: 2 març 2012
  6. Ethernet POWERLINK Standardisation Group (2012), EPSG Working Draft Proposal 301: Ethernet POWERLINK Communication Profile Specification Version 1.1.4, chapter 6.1.1.
  7. IEEE and The Open Group. «3. System Interfaces». A: The Open Group Base Specifications Issue 7. 2, 2018, p. 1120. 
  8. «htonl(3) - Linux man page». linux.die.net. [Consulta: 9 abril 2021].

Enllaços externs

[modifica]