Buscado en Internet durante mucho tiempo, solo entiendo lentamente la forma de mantener la memoria en el arranque, ¡ahora resuma el proceso de aprendizaje en esta etapa! (Estoy experimentando en el tablero del brazo, la versión del kernel es 2.6.38)
Hay tres formas de reservar memoria en el arranque:
1. reserve_bootmem (addr, size, Bandera)
Este método, no he tenido éxito en hacer experimentos …
Si hay éxito, espero que el mensaje de Dios, ¡pida orientación!
2. alloc_bootmem (tamaño)
De hecho, es relativamente simple, en int /main.c:
//Establecer variable global
char * reserve_memory;
EXPORT_SYMBOL_GPL (reserve_memory);
void __init start_kernel ()
{
…
trap_init ();
//Agregue código aquí, mantenga 40M de memoria en la zona
reserve_memory = alloc_bootmem (0x2800000);
mem_init ();
…
}
Pero después de obtener reserve_memory en el kernel, cómo asignarlo al espacio del kernel, no hay ninguna pista y …
Alguien dijo en Internet,
Con la dirección devuelta por allco_bootmem,
En el modo kernel, encuentre la tarea task_struct para usar esta memoria;
y luego obligue a crear la tabla de páginas;
Si hay un dios Entienda esta oración, o mejor método de mapeo, por favor deje un mensaje, ¡gracias!
3. Establezca los parámetros del kernel de Linux en el momento del inicio
mem = 180M /* Solo se le da al sistema espacio de memoria de 180M cuando se inicia, y el resto está reservado * /
Simple, pero cuando se configura y se usa, debe ser compatible con el tamaño físico de la memoria del hardware.
En el controlador del kernel, puede asignar al espacio del kernel en forma de ioremap (), o mmap () para leer y escribir en el espacio del usuario.
causa proceso de implementación de aplicaciones en una piscina virtual, se descubre entor
se proporciona desde otras máquinas conectadas a la remota Linux sistema de interfaz, establecer sól
(1) Ver el uso de cada núcleo de CPU sudo top -d 1 Después de ingresar, presione 1, aparecerá el
Minicom es muy fácil de usar, pero a veces no es lo suficientemente intuitivo. Se recomienda
[Notas de estudio de Linux] intercambiar memoria virtual agregar y eliminar configuración
Configuración de la variable del entorno relacionado con Weblog de Linux
Información detallada del comando de Linux
Centos7 modifica el número de puerto SSH
Linux pipeline y redireccionamiento detallado
Linux modificar el nombre de la partición que se crea cuando se instala
Comandos comunes de compresión y descompresión en Linux
Análisis y métodos de reparación de la corrupción del sistema de archivos de Linux
En Win8, la versión de 64 bits de IE10
El tipo MIME de uso generalizado de IIS Daquan
Resumen del método de activación del sistema Win10
WP8 desarrollado en 2013 que es bastante bueno
Cómo actualizar el controlador de gráficos win10
El comando de uso común de la ventana
Microsoft reconoció por primera vez el desarrollo de Windows Blue