The Linux Programming Interface tiene un ejercicio en el capítulo 3 que dice así:números mágicos de la convocatoria reiniciar el sistema Linux()
Cuando se utiliza el reinicio específica de Linux() llamada al sistema para reiniciar el sistema, el El segundo argumento, magic2, debe ser especificado como uno de un conjunto de números mágicos (por ejemplo, LINUX_REBOOT_MAGIC2). ¿Cuál es la importancia de estos números ? (Convirtiéndolos a hexadecimal proporciona una pista.)
La página del manual nos dice magic2
puede ser una de LINUX_REBOOT_MAGIC2 (672274793), LINUX_REBOOT_MAGIC2A (85072278), LINUX_REBOOT_MAGIC2B (369367448), o LINUX_REBOOT_MAGIC2C (537993216). No logré descifrar su significado en hexadecimal. También miré /usr/include/linux/reboot.h
, que tampoco dio ningún comentario útil.
Luego busqué en el código fuente del kernel la definición de sys_reboot
. Todo lo que encontré fue una declaración en un archivo de encabezado.
Por lo tanto, mi primera pregunta es, ¿cuál es el significado de estos números? Mi segunda pregunta es, ¿dónde está la definición de sys_reboot
, y cómo la encontró?
EDIT: Encontré la definición en kernel/sys.c
. Solo grepped para sys_reboot
, y olvidé grep para los números MAGIC. Pensé que la definición debe estar oculta detrás de algún macro truco, así que miré el archivo System.map
bajo /boot
, y lo encontré junto a ctrl_alt_del
. Luego grepped para ese símbolo, lo que me llevó al archivo correcto. Si hubiera compilado el kernel desde el código fuente, podría tratar de encontrar qué archivo de objeto definió el símbolo e ir desde allí.
+1 sólo por las fechas;) – BlackBear
debe ser eso! ¡Debería haber alineado los números! –
28 de diciembre de 1969 es la fecha de nacimiento de Linus Torvalds [Wikipedia]. Los otros parecen ser las fechas de nacimiento de sus hijos, aunque solo puedo confirmar que uno nació en diciembre de 1996 [al azar en Google]. –