GNU/Linux >> Tutoriales Linux >  >> Linux

¿La función de página a disco de la que habla Linus en su autobiografía es esencialmente el concepto de intercambio que usamos hoy?

Sí, esto es efectivamente un intercambio. Citando las notas de la versión 0.12:

Memoria virtual.

Además del programa "mkfs", ahora hay un programa "mkswap" en el disco raíz. La sintaxis es idéntica:"mkswap -c /dev/hdX nnn", y nuevamente:esto escribe sobre la partición, así que tenga cuidado. Entonces se puede habilitar el intercambio cambiando la palabra en el desplazamiento 506 en la imagen de arranque al dispositivo deseado. Use el mismo programa que para configurar el sistema de archivos raíz (pero cambie el desplazamiento 508 a 506, por supuesto).

¡NOTA! Esto ha sido probado por Robert Blum, que tiene una máquina 2M, y te permite ejecutar gcc sin mucha memoria. SIN EMBARGO, tuve que dejar de usarlo, ya que el beta-gcc-2.0 consumió mi espacio en disco, por lo que me gustaría saber que todavía funciona:he sido totalmente incapaz de hacer una partición de intercambio incluso para pruebas rudimentarias desde aproximadamente Christmastime. Por lo tanto, los nuevos cambios podrían haber fracasado en la máquina virtual, pero lo dudo.

En 0.12, la paginación se usa para una serie de características, no solo para cambiar a un dispositivo:carga por demanda (solo cargar páginas de archivos binarios a medida que se usan), compartir (compartir páginas comunes entre procesos).


Sí, ese es exactamente el concepto conocido como paginación o intercambio. (Hace mucho tiempo, estos términos tenían significados ligeramente diferentes, pero en el siglo XXI son sinónimos, excepto quizás en el contexto de algunos sistemas operativos que no son de Unix).

Para ser claros, el intercambio no era una característica innovadora:la mayoría de los sistemas Unix "serios" lo tenían, y la característica es más antigua que Unix. Lo que hizo el intercambio por Linux fue convertirlo en un Unix "serio", mientras que MINIX estaba destinado a fines educativos.

El intercambio hoy sigue siendo el mismo concepto. La heurística para decidir qué páginas guardar y cuándo guardarlas se ha vuelto mucho más compleja, pero el principio básico permanece.


El intercambio es un concepto anterior a la memoria virtual e incluso a la protección de la memoria:simplemente significa poner un proceso en el disco para hacer espacio para otro. El Unix original tenía dos peculiaridades en ese sentido:los programas de "texto compartido" que mantenían el código del programa solo una vez en la memoria y cambiaban solo la sección de datos. Y tenía la llamada al sistema "bifurcación" que intercambiaba un proceso en el disco sin reemplazar la imagen de la memoria y, en cambio, mantenía una copia (el elemento secundario) en ejecución.

La página a disco, a diferencia del intercambio, permite que se ejecuten procesos que no se ajustan a la memoria física. Requiere toda la memoria protegible, mapeo de memoria de direcciones virtuales a direcciones físicas y un mecanismo de falla de página reiniciable que permitirá cambiar el mapeo de una dirección virtual sin mapear a una dirección física razonablemente seleccionable y reanudar el comando que tuvo que ser abortado porque del mapeo faltante.

UNIX pudo ejecutarse en procesadores 68000 (incluido el intercambio) sin MMU, e hizo un buen uso de una MMU si estaba disponible para la protección de la memoria, pero se necesitó que el 68010 tuviera los mecanismos que permitieran reanudar un programa después de una falla de página.

El 80386 fue en muchos aspectos un diseño de mala calidad y obsoleto. Pero su MMU integrado y la capacidad de fallar la página correctamente lo hicieron inmediatamente más viable para sistemas similares a UNIX que no solo podían intercambiar, sino pasar de página a disco.

Es una especie de ironía histórica que este gran sacrificio de silicio (una MMU completa y un diseño de CPU con capacidad virtual tomó bastante espacio) a los dioses de los sistemas modernos fue asumido principalmente por un aficionado, y el " peces gordos" como Xenix y OS/2 finalmente se quedaron en el camino.

Si bien puede llamar a "nada paginado y no programado para ejecutarse" lo mismo que "intercambiado", en realidad no es una propuesta de todo o nada como lo era el significado original de "intercambiado".

La diferencia se perdió en las décadas transcurridas desde entonces, ya que la paginación por demanda era mucho más útil y se escalaba mejor que el intercambio ordinario que lo reemplazó una vez que las funciones necesarias de CPU y MMU se volvieron comunes, pero la ralentización y la paliza asociadas con cualquiera de los dos hicieron un similar. mirar y sentir.


Linux
  1. ¿Cuál es el concepto de vruntime en CFS?

  2. ¿Por qué usar shm_open?

  3. ¿Cuál es el uso de $# en Bash?

  4. ¿Cuánta RAM usa el kernel?

  5. ¿Cómo usar la nueva función de datos en línea ext4? (almacenando datos directamente en el inodo)

Usar el escritorio de Window Maker en Linux

Cómo usar el comando de historial de Linux

Cómo usar el comando de lectura Bash

Cómo usar el comando xargs de Linux

¿Qué es la función de la comunidad ONLYOFFICE y por qué debería usarla?

Uso del comando grep en Linux