EDICIóN GENERAL

Google ignora Windows y lanza su herramienta de edición de video VR para Linux y Mac [en]

#47
Pues entonces me parece una tontería decir que está hecho para macOS o GNU-Linux.
Basta con decir que funciona con POSIX y Windows y ya está :roll:
#49 Exacto. Si tú haces un programa para POSIX te va a funcionar en cualquier sistema operativo Unix decente sólo con recompilarlo. Lo de GNU/Linux se refiere a la suma del kernel de Linux y las herramientas del sistema de GNU (bash, gcc, grep, etc).
#50
La realidad es que es imposible ser POSIX compatible únicamente puesto que siempre dependerás de cosas específicas del sistema operativo sobre el que se vaya a ejecutar la aplicación.

GNU-Linux es Linux junto con la biblioteca de tiempo de ejecución de GNU, las utilidades nucleicas de GNU (coreutils), las utilidades binarias de GNU (binutils) y un largo etcétera entre los que se incluye el dialecto de C de GNU. El uso de cualquiera de ellos convierte al programa en diseñado para ser compatible con GNU.

Si se llama biblioteca de tiempo de ejecución de GNU (GNU C runtime library) es por algo :roll:
Y es que dispone de funcionalidad específica de GNU y que si eres compatible con GNU eres incompatible con otros SOs salvo que lo hagas multiplataforma y tengas código que abstraiga todas las particularidades para poder explotar al 100% cada SO. La biblioteca de tiempo de ejecución de GNU realiza operaciones que otras bibliotecas de tiempo de ejecución no realizan.
Una comparación con algunas cosas: www.etalabs.net/compare_libcs.html

Con la GNU C runtime library también se incluye GNU ld, el cargador de binarios ejecutables y bibliotecas. Por cierto, dlopen() se incluyó en POSIX 2001 después de llevar bastante tiempo en la GNU C runtime library.
POSIX.1-2001 describes dlclose() and dlopen(). The dlmopen() function
is a GNU extension.

The RTLD_NOLOAD, RTLD_NODELETE, and RTLD_DEEPBIND flags are GNU exten‐
sions; the first two of these flags are also present on Solaris.


Luego está también el tema de la ABI, caso en el cual todos imitan la de GCC ... así que si fuera por eso todo sería GNU pero supongo que eso ya no gusta.

Extensiones GNU C: gcc.gnu.org/onlinedocs/gcc/C-Extensions.html#C-Extensions
Extensiones sólo para GNU C++: gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Extensions.html#C_002b_002b-
ABI de GNU:
* gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html
* gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html

Explicaciones acerca de la ABI: en.wikipedia.org/wiki/Application_binary_interface
* Convención para llamadas a procedimientos
** en.wikipedia.org/wiki/Calling_convention
** Arquitectura x86 dispone de múltiples formas. En el mundo POSIX actual se utiliza la de GCC (GNU): en.wikipedia.org/wiki/X86_calling_conventions
* Formato del binario. Aunque hay un estándar, el ELF, si usas GNU ld o gold el binario tiene ciertas extensiones con información adicional, útiles para depurar o modificar el comportamiento a la hora de buscar bibliotecas: en.wikipedia.org/wiki/Rpath Gracias al Rpath configurado por GNU ld puedes modificar en un sistema GNU-Linux el archivo /etc/ld.so.conf con rutas adicionales para bibliotecas. Siempre habrá otros que lo imiten para ser compatibles con GNU.
* Cómo hacer las llamadas a sistema. La GNU libc provee facilidades para realizar llamadas a sistema mediante la función syscall().

menéame