¿Si el comando siguiente en mi ejecutable llamado "versión", compilado en Fedora Core 11, consigo esta salida¿Cuál es el campo de número de versión en la salida del comando de archivos de Linux
versión del archivo
versión: ELF 32-bits LSB ejecutable, Intel 80386, versión 1 (SYSV), vinculada de forma dinámica (que usan bibliotecas compartidas), para GNU/Linux 2.6.18 , no despojado
¿Cuál es la importancia de la 2.6 .18 número hacia el final, y ¿hay algún uso en dis Tinguishing a los clientes qué versión de algún software deberían descargar?
Por lo que he visto hasta ahora, este número es definitivamente no
- La versión del núcleo
- La versión de libc
- nada que ver con la lsb_release
I Me gustaría obtener un identificador fácil para que los clientes sepan qué versión binaria deben descargar, lo que idealmente deberían ser capaces de identificar escribiendo un comando (como uname -a, aunque eso obviamente no el de este caso).
Gracias
, gracias - de manera eficaz, la versión mínima del núcleo que tiene compatibilidad binaria con el ejecutable? Desconocí inicialmente una versión de kernel como un programa de espacio de usuario que solo "depende" (como salida ldd) en libc.so, pero puedo ver el enlace allí. –
Podrías decirlo. La verdad es un poco más sutil: no todas las versiones de kernel ofrecen nuevas llamadas a los sistemas Y en los programas normales se usan los contenedores de syscall de libc. Entonces los números no están codificados en el programa en sí, sino en libc. Pero si un kernel inventó un nuevo syscall, su programa depende de él, no puede ejecutar ese programa en un kernel anterior ... –
Sí - eso es lo que estaba pensando - como programa de espacio de usuario, no me importa el kernel - solo libc. Pero, por supuesto, libc debe preocuparse por el kernel, ya que une el espacio de usuario con el kernel.Entonces, realmente, el número es la versión del kernel contra la que se compiló libc, que proviene del proveedor (Fedora en este caso). Gracias por su tiempo –