<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>A) Virtualización on seraldinho.pages.dev</title><link>https://seraldinho.pages.dev/notas/sistemas/virt/</link><description>Recent content in A) Virtualización on seraldinho.pages.dev</description><generator>Hugo -- gohugo.io</generator><language>es</language><managingEditor>nseral@proton.me (Nicolás Seral)</managingEditor><webMaster>nseral@proton.me (Nicolás Seral)</webMaster><copyright>© 2026 Nicolás Seral</copyright><atom:link href="https://seraldinho.pages.dev/notas/sistemas/virt/index.xml" rel="self" type="application/rss+xml"/><item><title>1. Virtualización de CPU</title><link>https://seraldinho.pages.dev/notas/sistemas/virt/virtualizacion_cpu/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nseral@proton.me (Nicolás Seral)</author><guid>https://seraldinho.pages.dev/notas/sistemas/virt/virtualizacion_cpu/</guid><description>&lt;p&gt;Los ordenadores actuales disponen de una cantidad limitada de recursos de hardware. En particular, una CPU cuenta con un número finito de núcleos físicos y solo puede ejecutar un conjunto reducido de instrucciones en cada instante. Sin embargo, un usuario esperaría poder ejecutar múltiples aplicaciones y procesos a la vez.&lt;/p&gt;
&lt;p&gt;La solución a esto es la virtualización de CPU, que consiste en tomar uno o varios núcleos &lt;strong&gt;físicos&lt;/strong&gt; de la CPU y simular, a partir de ellos, muchos más núcleos &lt;strong&gt;virtuales&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>2. Virtualización de Memoria: Espacios de dirección, Base &amp; Bounds y Segmentación</title><link>https://seraldinho.pages.dev/notas/sistemas/virt/virt_mem_bbseg/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nseral@proton.me (Nicolás Seral)</author><guid>https://seraldinho.pages.dev/notas/sistemas/virt/virt_mem_bbseg/</guid><description>&lt;p&gt;En un dispositivo sin sistema operativo, el programa que ejecutemos tendrá toda la CPU y memoria para sí mismo. Cuando entran más programas en juego y se ejecutan &amp;ldquo;&lt;a href="notas/sistemas/virtualizacion_cpu" &gt;simultáneamente&lt;/a&gt;&amp;rdquo;, es necesario encontrar un modo de que todos ellos puedan estar en RAM a la vez sin interferir entre sí.&lt;/p&gt;
&lt;p&gt;A partir de esta necesidad surge el concepto de &lt;strong&gt;Espacio de direcciones (Address Space)&lt;/strong&gt;.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Espacio de direcciones
 &lt;div id="espacio-de-direcciones" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#espacio-de-direcciones" aria-label="Ancla"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;El &lt;strong&gt;espacio de direcciones&lt;/strong&gt; es una abstracción que se crea de cara a un proceso específico y que representa su visión (punto de vista) de la memoria del sistema. Esto implica que un proceso no necesariamente tiene que poder ver o acceder a todas las direcciones de memoria reales del sistema.&lt;/p&gt;</description></item><item><title>3. Virtualización de Memoria: Paginación</title><link>https://seraldinho.pages.dev/notas/sistemas/virt/virt_mem_paging/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nseral@proton.me (Nicolás Seral)</author><guid>https://seraldinho.pages.dev/notas/sistemas/virt/virt_mem_paging/</guid><description>&lt;h1 class="relative group"&gt;Paginación
 &lt;div id="paginación" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#paginaci%c3%b3n" aria-label="Ancla"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;Mientras que la segmentación consistía en dividir la memoria física en partes de tamaño variable, la &lt;strong&gt;paginación la divide en partes del mismo tamaño.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Este método es más flexible y soluciona varios de los problemas que tenían los anteriores. Cuando un proceso necesita cierta cantidad de memoria y se la pide al sistema, este simplemente busca los primeros huecos que encuentre vacíos, y le da tantos como necesite. Para esto, el SO puede por ejemplo llevar una &lt;strong&gt;free list&lt;/strong&gt; de todas las páginas vacías.&lt;/p&gt;</description></item><item><title>4. Virtualización de Memoria: Swapping</title><link>https://seraldinho.pages.dev/notas/sistemas/virt/virt_mem_swapping/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nseral@proton.me (Nicolás Seral)</author><guid>https://seraldinho.pages.dev/notas/sistemas/virt/virt_mem_swapping/</guid><description>&lt;h1 class="relative group"&gt;Swapping
 &lt;div id="swapping" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#swapping" aria-label="Ancla"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;Hasta ahora, habíamos asumido que todos los espacios de direccionamiento de todos los procesos, y en específico todas las páginas &lt;strong&gt;en uso&lt;/strong&gt; por todos los procesos, cabían en memoria, pero la realidad es diferente.&lt;/p&gt;
&lt;p&gt;Generalmente, cuando tengamos una cantidad limitada de RAM para alojar una cantidad arbitraria de procesos, tendremos que encontrar la manera de desplazar o &lt;strong&gt;swappear&lt;/strong&gt; las páginas (que aunque tienen datos válidos en memoria reservada, no están siendo usadas activamente) a un sitio en el que tengamos más espacio disponible, para dejar la RAM a los procesos que la necesiten (y luego traerlas de vuelta a la RAM). Habitual y conceptualmente &lt;strong&gt;este otro sitio es el disco duro&lt;/strong&gt;, aunque evidentemente resulta mucho más lento acceder a datos en disco que a datos en RAM, pero por eso mismo se suelen swappear los datos que menos se usan.&lt;/p&gt;</description></item><item><title>5. Virtualización de Memoria: Ejemplos y técnicas reales</title><link>https://seraldinho.pages.dev/notas/sistemas/virt/virt_mem_real/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nseral@proton.me (Nicolás Seral)</author><guid>https://seraldinho.pages.dev/notas/sistemas/virt/virt_mem_real/</guid><description>&lt;h1 class="relative group"&gt;Sistemas Reales (VAX/VMS y Linux)
 &lt;div id="sistemas-reales-vaxvms-y-linux" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#sistemas-reales-vaxvms-y-linux" aria-label="Ancla"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;Aunque &lt;strong&gt;VAX/VMS&lt;/strong&gt; es un sistema operativo con casi 50 años, muchas de las técnicas y métodos usados para solucionar algunos de los problemas que tenía se siguen usando hoy en día. Además, a algunos de los métodos que usaba para solucionar dichos problemas también les surgieron otros problemas nuevos, mediante los que se explican técnicas más nuevas usadas por sistemas modernos.&lt;/p&gt;</description></item><item><title>6. Virtualización de Memoria: Seguridad</title><link>https://seraldinho.pages.dev/notas/sistemas/virt/virt_mem_security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><author>nseral@proton.me (Nicolás Seral)</author><guid>https://seraldinho.pages.dev/notas/sistemas/virt/virt_mem_security/</guid><description>&lt;h1 class="relative group"&gt;Seguridad
 &lt;div id="seguridad" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#seguridad" aria-label="Ancla"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h1&gt;
&lt;p&gt;Una de las principales diferencias entre sistemas como VMS y los modernos, como Linux, es el enfoque en seguridad. Aquí hay algunas medidas que se fueron tomando con el tiempo.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Buffer Overflow - Bit NX
 &lt;div id="buffer-overflow---bit-nx" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#buffer-overflow---bit-nx" aria-label="Ancla"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;Una de las primeras protecciones fue contra los &lt;strong&gt;buffer overflows&lt;/strong&gt;.&lt;/p&gt;</description></item></channel></rss>