I'm not criticizing here, but actually seeking to understand.
I'm not criticizing here, but actually seeking to understand.
Here is an old HP-UX machine running on PA-RISC:
# grep ntoh /usr/include/netinet/in.h
#ifndef ntohl
#define ntohl(x) (x)
#define ntohs(x) (x)
On x86_64, this is a byte-swap: $ grep bswap /usr/include/netinet/*.h
/usr/include/netinet/in.h:# define ntohl(x) __bswap_32 (x)
/usr/include/netinet/in.h:# define ntohs(x) __bswap_16 (x)
/usr/include/netinet/in.h:# define htonl(x) __bswap_32 (x)
/usr/include/netinet/in.h:# define htons(x) __bswap_16 (x)
SPARC is big-endian, and the memory is not in the same order as it is on x86. This can coax bugs out of software that are otherwise not seen on little-endian systems.Alpha is litte-endian, but it has its own exotic problems.
At least some models of the Alpha were bi-endian, selectable via a pin on the package, IIRC. I believe the Cray T3E ran the chips big-endian.
Apple Arm chips however are LE only, but all of Arm's Cortex-A/Neoverse and NVIDIA's cores support both LE and BE operation.
Or somebody may just think it’d be a fun challenge to do and so it supports it. That’s all.
Also, the environmental cost of manufacturing new hardware is often greater than even a decade of running less efficient, older hardware longer.
To add to that, Alphas and older Sun systems are actually proper server hardware. There are differences that you may never learn about in the x86 world. I've been running an AlphaServer DS25 for years now, and it's worlds better hardware quality than any x86 server product you can buy now.
The power supplies on that Alpha are 500W and even fairly low end Supermicro systems have 600W supplies.
The biggest differential is probably the efficiency of the power supply.
How would you characterize the differences?