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

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

En su autobiografía,Solo por diversión, Linus menciona la característica "página a disco" que fue fundamental para hacer de Linux un digno competidor de Minix y otros clones de UNIX de la época:

Recuerdo que, en diciembre, había un tipo en Alemania que solo tenía 2 megabytes de RAM, y estaba tratando de compilar el kernel y no podía ejecutar GCC porque GCC en ese momento necesitaba más de un megabyte. Me preguntó si Linux podría compilarse con un compilador más pequeño que no necesitara tanta memoria. Entonces decidí que, aunque no necesitaba esa característica en particular, la haría realidad para él. Se llama página a disco y significa que aunque alguien sólo tenga 2 mg de RAM, puede hacer que parezca que está usando más el disco como memoria. Esto fue alrededor de la Navidad de 1991.

La conversión de página a disco fue algo bastante importante porque era algo que Minix nunca había hecho. Se incluyó en la versión 0.12, que se lanzó en la primera semana de enero de 1992. Inmediatamente, la gente comenzó a comparar Linux no sólo con Minix sino con Coherent, que era un pequeño clon de Unix desarrollado por Mark Williams Company. Desde el principio, el hecho de agregar página a disco hizo que Linux sobresaliera de la competencia.
Fue entonces cuando Linux despegó. De repente hubo gente que cambió de Minix a Linux.

¿Está esencialmente hablando de swappingaquí? Las personas con alguna perspectiva histórica sobre Linux probablemente lo sabrían.

Respuesta1

Sí, esto es efectivamente un intercambio. Citando elnotas 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. Luego se puede habilitar el intercambio cambiando la palabra en el desplazamiento 506 en la imagen de arranque al dispositivo deseado. Utilice 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 de 2M, y le permite ejecutar gcc sin mucha memoria. SIN EMBARGO, tuve que dejar de usarlo, ya que beta-gcc-2.0 consumió mi espacio en disco, así que me gustaría saber que todavía funciona: no he podido crear una partición de intercambio ni siquiera para elementos rudimentarios. pruebas desde aproximadamente Navidad. Por lo tanto, los nuevos cambios podrían haber sido contraproducentes para la máquina virtual, pero lo dudo.

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

Respuesta2

Sí, ese es exactamente el concepto conocido comopaginació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 Unix).

Para ser claros, el intercambio no era una característica innovadora: la mayoría de los sistemas Unix "serios" la tenían, y la característica es más antigua que Unix. Lo que hizo el intercambio para 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.

Respuesta3

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 dejar espacio para otro. El Unix original tenía dos peculiaridades en ese sentido: programas de "texto compartido" que mantenían el código del programa sólo una vez en la memoria e intercambiaban sólo la sección de datos. Y tenía la llamada al sistema "bifurcación" que cambiaba un proceso al disco sin reemplazar la imagen de la memoria y, en cambio, mantenía una copia (la secundaria) ejecutándose.

La página a disco, a diferencia del intercambio, permite ejecutar procesos que no caben en 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 no mapeada 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 fue necesario que el 68010 tuviera los mecanismos que permitieran reanudar un programa después de un error de página.

El 80386 era en muchos aspectos un diseño anticuado y de mala calidad. Pero su MMU incorporada y la capacidad de buscar correctamente los errores de página lo hicieron inmediatamente más viable para sistemas tipo UNIX que no solo podían intercambiar sino también paginar 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 requirieran bastante espacio) a los dioses de los sistemas modernos fue realizado principalmente por un aficionado, y el " Los peces grandes", como Xenix y OS/2, finalmente quedaron en el camino.

Si bien se puede decir que "nada paginado y no programado para ejecutarse" es 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 posteriores, ya que la paginación por demanda era mucho más útil y escalaba mejor que el intercambio ordinario, hasta el punto de reemplazarlo una vez que las características necesarias de CPU y MMU se volvieron comunes, pero la desaceleración y la paliza asociadas con cualquiera de ellos generaron un resultado similar. mira y siente.

información relacionada