En la red, muchos servidores usan Linux. Para mejorar aún más el rendimiento del servidor, puede ser necesario recompilar el kernel de Linux de acuerdo con el hardware y los requisitos específicos. Para compilar el kernel de Linux, debe seguir los pasos prescritos. Varios archivos importantes participan en la compilación del kernel. Por ejemplo, para RedHat Linux, hay algunos archivos relacionados con el kernel de Linux en el directorio /boot, y escriba /boot para ejecutar: ls – l. Aquellos que han compilado el kernel de RedHat Linux pueden tener una profunda impresión en System.map, vmlinuz, initrd-2.4.7-10.img, porque el proceso de compilación del kernel implica el establecimiento de estos archivos. Entonces, ¿cómo surgieron estos archivos? ¿Cuál es el papel? Este artículo introducirá algo de esto.
1. vmlinuz
vmlinuz es un kernel comprimido y de arranque. " vm " significa " Memoria virtual ". Linux admite la memoria virtual, a diferencia de los sistemas operativos más antiguos, como DOS, que tienen un límite de memoria de 640 KB. Linux puede usar el espacio del disco duro como memoria virtual, de ahí el nombre "vm". Vmlinuz es un kernel de Linux ejecutable ubicado en /boot /vmlinuz, que suele ser un enlace flexible.
Hay dos formas de construir vmlinuz. Primero, al compilar el kernel, créalo con " make zImage ", luego pase:
" cp /usr/src/linux-2.4/arch/i386/linux/boot/zImage /boot /vmlinuz " zImage funciona para kernels pequeños y existe para compatibilidad con versiones anteriores. La segunda es que el kernel se compila con el comando make bzImage y luego se genera por: <; cp /usr/src/linux-2.4/arch/i386/linux/boot/bzImage /boot /vmlinuz " bzImage es una imagen del kernel comprimida. Tenga en cuenta que bzImage no está comprimido con bzip2. bz en bzImage es fácil de malinterpretar, bz significa "big zImage". b en bzImage es el significado "grande".
zImage (vmlinuz) y bzImage (vmlinuz) están comprimidos con gzip. No solo son un archivo comprimido, sino que el código descomprimido de gzip está integrado al principio de los dos archivos. Por lo tanto, no puede descomprimir vmlinuz con gunzip o gzip – dc.
El archivo del kernel contiene un pequeño gzip para descomprimir el kernel y arrancarlo. La diferencia entre los dos es que la antigua zImage descomprime el kernel a la memoria de gama baja (los primeros 640K), y bzImage descomprime el kernel a la memoria de gama alta (1M o más). Si el kernel es pequeño, puede utilizar una de las imágenes zImage o bzImage. El sistema que se ejecuta de dos maneras es el mismo. Los núcleos grandes usan bzImage y no pueden usar zImage.
vmlinux es un kernel sin comprimir, vmlinuz es un archivo comprimido de vmlinux.
Segundo, initrd-x.x.x.img
initrd es la abreviatura de " initial ramdisk ". Initrd se usa generalmente para arrancar temporalmente el hardware al estado donde el kernel real vmlinuz puede tomar el control y continuar el arranque. Por ejemplo, si usa un disco duro scsi y el kernel vmlinuz no tiene este controlador de hardware scsi, el kernel no puede cargar el sistema de archivos raíz antes de cargar el módulo scsi, pero el módulo scsi se almacena en /lib /modules del sistema de archivos raíz. Para resolver este problema, puede iniciar un kernel initrd que lee el kernel real y usar initrd para solucionar el problema de arranque de scsi. Initrd-2.4.7-10.img es un archivo comprimido con gzip. Echemos un vistazo al contenido de este archivo.
La implementación de initrd carga algunos módulos e instala sistemas de archivos, etc.
El archivo de imagen initrd se crea utilizando mkinitrd. La utilidad mkinitrd es capaz de crear archivos de imagen initrd. Este comando es propiedad de RedHat. Otras distribuciones de Linux pueden tener comandos correspondientes. Esta es una utilidad práctica Para obtener más información, consulte la ayuda: man mkinitrd
El siguiente comando crea un archivo de imagen initrd:
3. System.map System.map es una tabla de símbolos del kernel para un kernel específico. Es un enlace a System.map del kernel que está ejecutando actualmente.
¿Cómo se crea la tabla de símbolos del kernel? System.map es generado por " nm vmlinux " y los símbolos irrelevantes se eliminan. Para los ejemplos en este artículo, System.map se crea en /usr/src/linux-2.4/System.map cuando se compila el kernel. Así:
nm /boot/vmlinux-2.4.7-10 > System.map
Las siguientes líneas son de /usr/src/linux-2.4/Makefile:
nm vmlinux
El programa en ejecución se llama proceso. Cuando un programa se almacena en un archivo ejecutable y
Cuando se trata de problemas de Oracle en el entorno de producción real, a veces se necesita una i
Ese día, mi colega me mostró un paso de operación en mi computadora , usando un comando env, bueno,
Ext2Fsd es una buena herramienta para leer y escribir particiones de Linux. Este software se prese
Cómo borrar información SVN en el directorio
Descripción general del sistema operativo Linux
¡Linux nginx admite el archivo .htaccess para implementar el método pseudoestático!
Métodos detallados de enrutamiento de software Linux añadido
Método de configuración de la política de seguridad común en Linux
Problema de uso de la tercera edición del controlador de dispositivo Linux
Comando de linux detallado mkdir
Cómo CDMA 1x conexión telefónica en la etapa Linux
Cómo cargar U disco o disco duro móvil bajo el sistema Linux
Cómo ajustar el sistema Win7, como la calidad de color del monitor
Intel: No es optimista sobre ARM + Windows8
Entorno de seguridad traído por Windows Vista SP1
Cómo restaurar la papelera de reciclaje para eliminar archivos
Cómo resolver la recarga del sistema Win7 después de ejecutar la versión más lenta de
Cómo resolver el problema que IE siempre deja de funcionar en Win7
FTP es lo que el servidor ftp es
¿Qué debo hacer si el uso de la CPU es demasiado alto después de arrancar win8?