Se faccio il seguente comando sul mio eseguibile chiamato "versione", compilata su Fedora Core 11, ottengo questa uscitaQual è il campo numero di versione nel output del comando file linux
versione del file
versione: ELF a 32 bit LSB eseguibile, Intel 80386, versione 1 (SYSV), in modo dinamico legato (utilizza librerie condivise), per GNU/Linux 2.6.18 , non spogliato
Qual è il significato del 2.6 .18 numero verso la fine, ed è qualsiasi uso in dis tinguendo ai clienti quale versione di alcuni software dovrebbero scaricare?
Da quello che ho guardato finora, questo numero è sicuramente non
- La versione del kernel
- La versione libc
- Niente a che fare con la lsb_release
I "Mi piacerebbe avere un identificatore facile per consentire ai clienti di sapere quale versione binaria devono scaricare, che dovrebbero idealmente essere in grado di identificare digitando un comando (come uname -a, anche se ovviamente è non quello in questo caso).
Grazie
Grazie - in modo efficace, la versione minima del kernel che ha la compatibilità binaria con l'eseguibile? Ho scontato inizialmente una versione del kernel come un programma spaziale utente "dipende" (come l'output ldd) su libc.so, ma posso vedere il link lì. –
Si potrebbe dire così. La verità è un po 'più sottile: non tutte le versioni del kernel portano nuove sysc e nei normali programmi si usano i wrapper syscall da libc. Quindi i numeri non sono codificati nel programma stesso ma in libc. Ma se un kernel ha inventato un nuovo syscall, il tuo programma dipende da questo, non puoi eseguire quel programma su un vecchio kernel ... –
Sì - questo è quello che stavo pensando - come programma per gli utenti, non mi interessa kernel - solo libc. Ma naturalmente, la libc deve preoccuparsi del kernel, poiché collega lo spazio utente con il kernel.Quindi, in realtà, il numero è la versione del kernel su cui è stata compilata la libc, che viene dal fornitore (Fedora in questo caso). Grazie per il tuo tempo –