2011-05-23 8 views
5

Tengo un pequeño problema. Necesito reconstruir una versión de Linux para que coincida con una versión creada hace un tiempo. Pero, estoy teniendo algunos problemas.¿Qué puede afectar la compilación final de un kernel de Linux?

Me preguntaba qué aspectos de un linux box afectarían el proceso de compilación del kernel? Aquí hay algunos hechos.

Actualmente nuestra empresa utiliza una versión preinstalada y preinstalada de fedora para instalar la caja de desarrollo de ingenieros. Esta versión solo se copia en bloques en discos duros en blanco. Si utilizo un cuadro de desarrollo, puedo reconstruir con éxito el kernel, por lo que es un byte para la coincidencia de bytes con el original que estoy tratando de reproducir.

Pero tengo que demostrarle a un organismo gubernamental que no hemos hecho nada malo con el kernel, por lo que requieren que construyamos el kernel de Linux en una máquina que se ha instalado desde cero utilizando solo software de confianza. Trusted significa descargado de sitios web oficiales y verificado a través de resultados hash. Una máquina construida de esta manera produce un kernel que difiere del construido en la caja de desarrollo (y por lo tanto difiere del original que estoy tratando de emparejar).

¿Qué variables pueden afectar el resultado de la compilación? En la actualidad estos son los mismos en las dos cajas (de confianza y desarrollo)

  • versión de GCC
  • núcleo en tiempo de ejecución
  • fuente de kernel que estoy tratando de reconstruir (incluyendo archivos .configs)

¿Alguna idea sobre qué crea las diferencias?

+2

Para la persona que vota para cerrar: ¿Cómo exactamente esto 'no es una pregunta real'? – bdonlan

+1

Una pregunta perfectamente aceptable. Las compilaciones reproducibles idénticas a las de Bit definitivamente están relacionadas con la programación y son una gran pregunta. – camh

+1

Por favor, edite el título para 'afectar'. Me hace temblar mientras leo la pregunta. – new123456

Respuesta

2

El kernel de Linux contiene una serie de marcas de tiempo y otros elementos no deterministas. This patch series elimina estos, lo que permite una construcción determinista.

Cuestiones relacionadas