viernes, 13 de febrero de 2009
Virtualizacion y virtualbox 2.1
Virtualizacion y virtualbox 2.1
VirtualBox 2.1.0 – Virtualización de SUN
Sun Microsystems informó que su solución de virtualización conocida como VirtualBox ya esta en la versión 2.1.0.
VirtualBox 2.1.0 presenta una importante serie de cambios. Como principal característica la posibilidad de virtualización de sistemas basados en tecnologías de 64 bits (aún incluso si el host es de 32 bits).
Además, VirtualBox 2.1.0:
- Corrige variados bugs de su predecesor.
- Mejora la seguridad en general de la solución.
- Soporte en sistemas Mac OS X (Intel,VT-x y AMD)
- Aceleración 3D vía OpenGL (en pruebas aún)
- Soporte de controladoras SCSI LsiLogic y BusLogic SCSI
- Soporte VMDK/VHD
- Nuevo motor NAT: mejora el rendimiento.
La competencia directa de VirtualBox 2.1.0 es VMWare.
VirtualBox 2.1.2
A pesar de que se trata básicamente de una actualización de mantenimiento, la nueva VirtualBox 2.1.2 incluye novedades destacables como por ejemplo:
• Enormes aumentos de velocidad en algunas operaciones de I/O, como el formateo del disco.
• Aumentado el límite de memoria para nuevas VMs hasta 75% del total del host.
• Mejorado el soporte de USB para recientes hosts Linux.
• Agregado soporte para X.org 1.6 RC en huéspedes Linux.
• Agregado soporte para Windows 7 Beta.
Esta versión también incluye múltiples corecciones en huéspedes Linux, FreeBSD y OpenBSD; además de una versión unificada de 32 y 64 bits de su paquete para OpenSolaris.
• Download: VirtualBox 2.1.2 (Linux)
• Download: VirtualBox 2.1.2 (Mac Intel)
• Download: VirtualBox 2.1.2 (OpenSolaris)
• Download: VirtualBox 2.1.2 (Windows)
VirtualBox 2.1: Virtualización cada vez mas fácil
Sun Microsystems acaba de lanzar la version 2.1 de la popular herramienta de virtualización, VirtualBox. Esta versión cuenta con una gran cantidad de mejoras con respecto a la versión 2.06, de igual modo, varios aspectos fueron corregidos y/o mejorados en este lanzamiento.
Caracteristicas de VirtualBox 2.1
• Soporte para la Virtualización de hardware (VT-x y AMD-V) en equipos anfitriones Mac OS X.
• Soporta sistemas invitados de 64-bits sobre un sistema anfitrión de 32-bits (Esta función se encuentra aun en fase experimental).
• Se agregó soporte para las mejoras de virtualización Nehalem de Intel.
• Aceleración 3D via OpenGL (Experimental).
• Mejorado Motor NAT, con un significativo incremento en su rendimiento.
• Configuración de interfaz de red para sistemas anfitriones Linux y Windows mucho mas fácil de configurar.
VirtualBox corre actualmente sobre sistemas anfitriones Linux, Windows, Macintosh y OpenSolaris, y soporta un extenso numero de sistemas invitados, entre los que se cuentan las principales versiones de MS Windows, Linux (Kernel 2.4 y 2.6), Solaris y OpenSolaris.
VirtuaBox es un producto de software libre desarrollado por Sun MicroSystems bajo los terminos de la Licencia GNU General Public License (GPL).
VirtualBox 2.1 para usuarios de Mac
En cuanto a las herramientas de virtualización, parece ser que no hay ninguna herramienta que ofrezca completamente un rendimiento dependiendo de la plataforma o del sistema operativo.
Pero en cuanto a Mac, siempre la herramienta para virtualizar ha sido VMware o Parallels, que han funcionado perfectamente y se podría decir que no hay una herramienta que sea más usada, pero recientemente ha salido la versión de VirtualBox para sistemas Mac.
La versión de VirtualBox 2.1 ha salido con una gran cantidad de características y soportes, que podrían hacer dudar a algunos usuarios para utilizar esta herramienta de Sun que es muy utilizada por usuarios de Windows y Linux.
• Soporte para TV y sistemas OS X en procesadores AMD-V
• Soporte para clientes de 64 bits
• Aceleración experimental 3D por medio de OpenGL para clientes de Windows con 32 bits
• Soporte completo para VMDK/VHD
• Nuevo motor NAT
• Host integrado de red
Al parecer esta herramienta ha funcionado bien, pero en cuanto al rendimiento no ha sido lo bastante bueno en este sistema operativo ya que todavía cuenta con algunos errores y bugs cuando se encuentra virtualizando, aunque para ser una herramienta gratuita, así que mientras tus necesidades no sean demasiadas, será una buena herramienta.
Esta nueva versión de VirtualBox incluye las siguientes características para la virtualización de sistemas:
• Virtualización de hardware (VT-x y AMD-V) en host Mac OS X
• Mejoras en la virtualizatión EPT y VPID
• Virtualización VMDK/VHD
• Motor NAT con mejor rendimento y ICMP echo (ping)
• Configuración e implementación más sencilla para hosts Windows y Linux
• Virtualización de sistemas opetativos guest de 64 bits en host de 32bit
• Mejoras en la virtualización sistemas (EPT y VPID) para Intel Nehalem
• Virtualizar sistemas para aceleración 3D utilizando OpenGL
• Virtualizar controladores LsiLogic y BusLogic SCSI
La nueva versión del sistema de virtualización VirtualBox nos trae un amplio número de mejoras, entre ellas algunas muy esperadas como la mejora del soporte 3D para la aceleración de sistemas utilizando OpenGL.
VirtualBox 2.1.0 – Virtualización de SUN
Sun Microsystems informó que su solución de virtualización conocida como VirtualBox ya esta en la versión 2.1.0.
VirtualBox 2.1.0 presenta una importante serie de cambios. Como principal característica la posibilidad de virtualización de sistemas basados en tecnologías de 64 bits (aún incluso si el host es de 32 bits).
Además, VirtualBox 2.1.0:
- Corrige variados bugs de su predecesor.
- Mejora la seguridad en general de la solución.
- Soporte en sistemas Mac OS X (Intel,VT-x y AMD)
- Aceleración 3D vía OpenGL (en pruebas aún)
- Soporte de controladoras SCSI LsiLogic y BusLogic SCSI
- Soporte VMDK/VHD
- Nuevo motor NAT: mejora el rendimiento.
La competencia directa de VirtualBox 2.1.0 es VMWare.
VirtualBox 2.1.2
A pesar de que se trata básicamente de una actualización de mantenimiento, la nueva VirtualBox 2.1.2 incluye novedades destacables como por ejemplo:
• Enormes aumentos de velocidad en algunas operaciones de I/O, como el formateo del disco.
• Aumentado el límite de memoria para nuevas VMs hasta 75% del total del host.
• Mejorado el soporte de USB para recientes hosts Linux.
• Agregado soporte para X.org 1.6 RC en huéspedes Linux.
• Agregado soporte para Windows 7 Beta.
Esta versión también incluye múltiples corecciones en huéspedes Linux, FreeBSD y OpenBSD; además de una versión unificada de 32 y 64 bits de su paquete para OpenSolaris.
• Download: VirtualBox 2.1.2 (Linux)
• Download: VirtualBox 2.1.2 (Mac Intel)
• Download: VirtualBox 2.1.2 (OpenSolaris)
• Download: VirtualBox 2.1.2 (Windows)
VirtualBox 2.1: Virtualización cada vez mas fácil
Sun Microsystems acaba de lanzar la version 2.1 de la popular herramienta de virtualización, VirtualBox. Esta versión cuenta con una gran cantidad de mejoras con respecto a la versión 2.06, de igual modo, varios aspectos fueron corregidos y/o mejorados en este lanzamiento.
Caracteristicas de VirtualBox 2.1
• Soporte para la Virtualización de hardware (VT-x y AMD-V) en equipos anfitriones Mac OS X.
• Soporta sistemas invitados de 64-bits sobre un sistema anfitrión de 32-bits (Esta función se encuentra aun en fase experimental).
• Se agregó soporte para las mejoras de virtualización Nehalem de Intel.
• Aceleración 3D via OpenGL (Experimental).
• Mejorado Motor NAT, con un significativo incremento en su rendimiento.
• Configuración de interfaz de red para sistemas anfitriones Linux y Windows mucho mas fácil de configurar.
VirtualBox corre actualmente sobre sistemas anfitriones Linux, Windows, Macintosh y OpenSolaris, y soporta un extenso numero de sistemas invitados, entre los que se cuentan las principales versiones de MS Windows, Linux (Kernel 2.4 y 2.6), Solaris y OpenSolaris.
VirtuaBox es un producto de software libre desarrollado por Sun MicroSystems bajo los terminos de la Licencia GNU General Public License (GPL).
VirtualBox 2.1 para usuarios de Mac
En cuanto a las herramientas de virtualización, parece ser que no hay ninguna herramienta que ofrezca completamente un rendimiento dependiendo de la plataforma o del sistema operativo.
Pero en cuanto a Mac, siempre la herramienta para virtualizar ha sido VMware o Parallels, que han funcionado perfectamente y se podría decir que no hay una herramienta que sea más usada, pero recientemente ha salido la versión de VirtualBox para sistemas Mac.
La versión de VirtualBox 2.1 ha salido con una gran cantidad de características y soportes, que podrían hacer dudar a algunos usuarios para utilizar esta herramienta de Sun que es muy utilizada por usuarios de Windows y Linux.
• Soporte para TV y sistemas OS X en procesadores AMD-V
• Soporte para clientes de 64 bits
• Aceleración experimental 3D por medio de OpenGL para clientes de Windows con 32 bits
• Soporte completo para VMDK/VHD
• Nuevo motor NAT
• Host integrado de red
Al parecer esta herramienta ha funcionado bien, pero en cuanto al rendimiento no ha sido lo bastante bueno en este sistema operativo ya que todavía cuenta con algunos errores y bugs cuando se encuentra virtualizando, aunque para ser una herramienta gratuita, así que mientras tus necesidades no sean demasiadas, será una buena herramienta.
Esta nueva versión de VirtualBox incluye las siguientes características para la virtualización de sistemas:
• Virtualización de hardware (VT-x y AMD-V) en host Mac OS X
• Mejoras en la virtualizatión EPT y VPID
• Virtualización VMDK/VHD
• Motor NAT con mejor rendimento y ICMP echo (ping)
• Configuración e implementación más sencilla para hosts Windows y Linux
• Virtualización de sistemas opetativos guest de 64 bits en host de 32bit
• Mejoras en la virtualización sistemas (EPT y VPID) para Intel Nehalem
• Virtualizar sistemas para aceleración 3D utilizando OpenGL
• Virtualizar controladores LsiLogic y BusLogic SCSI
La nueva versión del sistema de virtualización VirtualBox nos trae un amplio número de mejoras, entre ellas algunas muy esperadas como la mejora del soporte 3D para la aceleración de sistemas utilizando OpenGL.
que es dpkg y atp?

Que es dpkg?
Dpkg
De Wikipedia, la enciclopedia libre
Saltar a navegación, búsqueda
dpkg
Diseñado por:
Ian Murdock
Última versión:
1.14.22
S.O.:
Linux tipo-Unix
Género:
Sistema de gestión de paquetes
Licencia:
GNU General Public License
Sitio web:
www.debian.org/doc/FAQ/ch-pkgtools.en.html
El programa dpkg es la base del sistema de gestión de paquetes de Debian GNU/Linux. Fue creado por Ian Jackson en 1993; es similar a RPM. Se utiliza para instalar, quitar, y proporcionar información sobre los paquetes .deb.
dpkg es en sí misma una herramienta de bajo nivel; se necesita un frontal de alto nivel para traer los paquetes desde lugares remotos o resolver conflictos complejos en las dependencias de paquetes. Debian cuenta con apt para esta tarea.
Herramientas Dpkg [editar]
Debian posee una serie de herramientas que es necesario llamar para construir un paquete:
dpkg-source empaqueta y desempaqueta los archivos fuentes de un paquete Debian.
dpkg-gencontrol lee la información de un árbol fuente Debian desempaquetado y genera un paquete binario de control, generando una entrada para éste en el fichero debian/files.
dpkg-shlibdeps calcula las dependencias de ejecutables respecto a librerías.
dpkg-genchanges lee la información de un árbol fuente Debian desempaquetado y ya construido, generando un fichero de control de los últimos cambios (un.changes).
dpkg-buildpackage es un script de control que se puede utilizar para automatizar la construcción del paquete.
dpkg-distaddfile añade una entrada de un fichero a debian/files.
dpkg-parsechangelog lee el fichero de cambios changelog) de un árbol fuente Debian desempaquetado y genera una salida con la información de estos cambios, convenientemente preparada.
Un sistema de gestión de paquetes, también conocido como gestor de paquetes, es una colección de herramientas que sirven para automatizar el proceso de instalación, actualización, configuración y eliminación de paquetes de software. El término se usa comúnmente para referirse a los gestores de paquetes en sistemas Unix-like, especialmente Linux, ya que se apoyan considerablemente en estos sistemas de gestión de paquetes.
En estos sistemas, el software se distribuye en forma de paquetes, frecuentemente encapsulado en un solo fichero. Estos paquetes incluyen otra información importante, además del software mismo, como pueden ser el nombre completo, una descripción de su funcionalidad, el número de versión, el distribuidor del software, la suma de verificación y una lista de otros paquetes requeridos para el correcto funcionamiento del software. Esta metainformación se introduce normalmente en una base de datos de paquetes local.
Contenido
[ocultar]
1 Comparación entre instaladores y sistemas de gestión de paquetes
2 Función
2.1 Desafíos con bibliotecas compartidas
2.2 Frontends para paquetes compilados localmente
2.3 Conversión de paquetes binarios
2.4 Mantenimiento de la configuración
2.5 Repositorios
2.6 Evitar la actualización de paquetes
3 Ejemplos
3.1 Sistemas libres
3.1.1 Sistemas basados en paquetes binarios
3.1.2 Sistemas de instalación desde una receta
3.1.3 Sistemas híbridos
3.1.4 Sistemas de metapaquetes
3.2 Sistemas propietarios
3.3 Gestión de paquetes incrustada en aplicaciones
4 Véase también
Comparación entre instaladores y sistemas de gestión de paquetes [editar]
Las diferencias principales entre un sistema de gestión de paquetes y un instalador son las siguientes:
Sistema de Gestión de Paquetes
Instalador
Forma parte del sistema operativo.
Cada producto viene unido a su propio instalador.
Usa una única base de datos de instalación.
Rastrea su propia instalación
Puede verificar y administrar todos los paquetes sobre el sistema.
Sólo trabaja con su propio producto.
Un único vendedor de sistema de administración de paquetes.
Múltiples vendedores de instalador.
Un único formato de paquetes.
Múltiples formatos de instalación
Función [editar]
Los sistemas de gestión de paquetes tienen la tarea de organizar todos los paquetes instalados en el sistema y se encargan de mantener su usabilidad. Esto se consigue combinando las siguientes técnicas:
Comprobación de la suma de verificación para evitar que haya diferencias entre la versión local de un paquete y la versión oficial
Comprobación de la firma digital
Instalación, actualización y eliminación simple de paquetes
Resolución de dependencias para garantizar que el software funcione correctamente
Búsqueda de actualizaciones para proveer la última versión de un paquete, ya que normalmente solucionan bugs y proporcionan actualizaciones de seguridad.
Agrupamiento de paquetes según su función para evitar la confusión al instalarlos o mantenerlos
Muchos de los sistemas de gestión de paquetes ampliamente utilizados utilizan backends simples para instalar los paquetes. Por ejemplo, YUM utiliza RPM como backend y APT utiliza dpkg.
Desafíos con bibliotecas compartidas [editar]
En los sistemas donde las aplicaciones comparten trozos de instrucciones, como en la mayor parte de las distribuciones de Linux, la resolución de dependencias al instalar y desinstalar software se convierte en una necesidad. Algunos de los sistemas de gestión de paquetes más avanzados tienen la capacidad de desinstalar los paquetes recursivamente o en cascada, de forma que se eliminan todos los paquetes que dependen del paquete a desinstalar y todos los paquetes de los que el paquete a desinstalar depende, respectivamente.
Frontends para paquetes compilados localmente [editar]
Es común que un administrador instale software que no está disponible en los repositorios provistos. Algunos ejemplos pueden ser una nueva versión de una aplicación que todavía no está disponible en la distribución o una alternativa distinta de la elegida por la distribución. Si este software adicional sólo se distribuye en forma de código fuente, la instalación requerirá la compilación del código. Sin embargo, la instalación de este software adicional en el sistema ocasionará que el estado del sistema y la base de datos del gestor de paquetes no estén sincronizados, por lo que el administrador deberá tomar medidas adicionales para asegurar que el sistema de gestión de paquetes se mantenga al día, puesto que éste no es capaz de hacerlo automáticamente.
Hay herramientas que se encargan de asegurar que los paquetes compilados localmente están integrados con el sistema de gestión de paquetes. En distribuciones basadas en paquetes .deb y .rpm, al igual que en Slackware, encontramos checkinstall. Para los sistemas basados en recetas como son Gentoo Linux o algunos sistemas híbridos como Arch Linux, es común escribir la receta en primer lugar, ya que ésta se encargará de asegurar que el paquete se incluye en la base de datos.
Conversión de paquetes binarios [editar]
alien es un programa que convierte entre los diferentes formatos de paquetes de Linux. Soporta la conversión entre Linux Standard Base, RPM, deb, Stampede (.slp) y paquetes de Slackware (.tgz).
Mantenimiento de la configuración [editar]
Otra problemática aparte de la actualización de software es la actualización de ficheros de configuración. Ya que los sistemas de gestión de paquetes surgieron como extensiones para las utilidades de archivado, normalmente sólo son capaces de sobrescribir o retener los ficheros de configuración, en lugar de poder aplicarles reglas de modificación. Sin embargo, hay excepciones, que normalmente se aplica al proceso de configuración del núcleo, ya que si estos son incorrectos pueden ocasionar fallos al reiniciar el sistema, pudiendo incluso hacer que el sistema no arranque. Estos problemas pueden ocasionarse cuando el formato de los ficheros de configuración cambia. Por ejemplo, cuando el antiguo fichero de configuración no deshabilita nuevas opciones que deberían ser deshabilitadas. Algunos sistemas de gestión de paquetes, como el dpkg de Debian, permiten configurar el software durante la instalación. En cualquier otra situación es preferible instalar los paquetes con la configuración por defecto y sobrescribirla posteriormente. Por ejemplo, en la instalación de un paquete en un gran número de computadoras (dpkg también soporta este tipo de instalación preconfigurada).
Repositorios [editar]
El software normalmente se pone a disposición de los usuarios en los repositorios, con el fin de proporcionar a los usuarios de un sencillo control sobre los diferentes tipos de software que van a instalar en su sistema y, en ocasiones, debido a razones legales o conveniencias por parte de los distribuidores.
Evitar la actualización de paquetes [editar]
Cuando un usuario interactúa con el gestor de paquetes para realizar una actualización, éste suele mostrar una lista de las tareas a realizar (normalmente la lista de paquetes a actualizar y, posiblemente, también los números de versión) y también es probable que permita realizar una actualización completa o bien seleccionar los paquetes que se desea actualizar. Algunos gestores de paquetes permiten indicar los paquetes que no se desea actualizar nunca o solamente cuando estos corrigen errores importantes en la versión anterior. A este proceso se lo suele denominar version pinning. Por ejemplo, yum permite esto mediante la sintaxis exclude=openoffice*, pacman con IgnorePkg=openoffice (en ambos casos para evitar la actualización de OpenOffice), mientras que las herramientas de Debian poseen una sintaxis más compleja y potente.
Ejemplos [editar]
Sistemas libres [editar]
Por la naturaleza del software libre, los paquetes bajo licencias compatibles y similares están disponibles para usarlo en varios sistemas operativos. Estos paquetes pueden ser fácilmente combinados y distribuidos usando "packaging systems" configurables para manejar los diferentes cambios del software y administrar las dependencias y los conflictos específicos de una versión. Algunos "packaging systems" de software libre son ellos mismos liberados como software libre.
Sistemas basados en paquetes binarios [editar]
dpkg, usado originalmente por Debian y ahora también por otros sistemas, usa el formato .deb y fue el primero en poseer una herramienta de resolución de dependencias ampliamente conocida, APT.
fink, para Mac OS X, deriva parcialmente de dpkg/apt y de ports. Esta herramienta pretende hacer más sencilla la instalación de programas libres en Mac OS X.
El sistema RPM, creado por Red Hat y usado por un gran número de distribuciones de Linux, es el formato de paquetes del Linux Standard Base. Para trabajar con este sistema de paquetes existen muy diversas herramientas como apt4rpm, up2date (de Red Hat), urpmi (de Mandriva), YaST (de SuSE) y YUM (usado por Fedora y Yellow Dog Linux).
El sistema tgz, usado por Slackware, empaqueta el software usando tar y gzip. Pero, además, hay algunas herramientas de más al nivel para tratar con este formato: slapt-get, slackpkg and swaret.
Pacman, para Arch Linux usa binarios precompilados distribuidos en un fichero .tgz.
Sistemas de instalación desde una receta [editar]
El sistema Portage (basado en el programa emerge) es usado por Gentoo Linux. Éste está inspirado en el sistema de ports de BSD y usan scripts llamados ebuilds para instalar el software.
En la distribución GoboLinux, un fichero-receta contiene información sobre cómo descargar, desempaquetar, compilar e instalar un paquete usando la herramienta Compile.
Sistemas híbridos [editar]
La Colección de Ports de FreeBSD, a veces llamada ports a secas, usa un sistema de Makefiles para instalar software desde código fuente o ficheros binarios. Las colecciones de MacPorts (para Mac OS X) y de ports para pkgsrc (en NetBSD y OpenBSD) son similares.
Sistemas de metapaquetes [editar]
Los siguientes sistemas unifican la gestión de paquetes para muchas o todas las distribuciones de Linux y otras variantes de Unix basándose también en el concepto de ficheros-receta:
klik proporciona una forma sencilla de instalar paquetes de software para la mayor parte de distribuciones sin los problemas de dependencias tan comunes en otros formatos de paquetes.
Autopackage usa fichero .package.
epm, desarrollado por Easy Software Products (creadores de CUPS), es un meta-empaquetador que permite crear paquetes nativos para todas las distribuciones de Linux y otros sistemas operativos basados en Unix (.deb, .rpm, .tgz para Linux; .pkg para Solaris y *BSD, .dmg para Mac OS X, ...) a partir de un único fichero .list.
Sistemas propietarios [editar]
En la actualidad, una gran variedad de sistemas de gestión de paquetes es usada por algunos sistemas operativos propietarios para tratar con la instalación tanto de paquetes propietarios como libres.
installp es el comando de AIX para las bases de datos Object Data Manager (ODM).
El formato SysV usado por Solaris.
Software Distributor es el gestor de paquetes de HP-UX.
En el framework .NET de Microsoft, un ensamblado es una biblioteca de código parcialmente compilado destinado al uso en deployment, versioning y seguridad.
Gestión de paquetes incrustada en aplicaciones [editar]
Algunos sistemas de gestión de paquetes no forman parte nativa del sistema operativo, como pueden ser fink en Mac OS X o el entorno Unix-like de Cygwin (para Windows). Algunos lenguajes de programación interpretados tienen su propio sistema de gestión de paquetes para manejar módulos del lenguaje, como pasa con los lenguajes de programación Perl (ver CPAN) o PHP (ver PEAR). Otros programas pueden venir con su propio sistema para gestionar módulos.
Véase también [editar]
Instalación de software
Paquete de software
Dependencias de software
Repositorio
Obtenido de "http://es.wikipedia.org/wiki/Sistema_de_gesti%C3%B3n_de_paquetes"
Que es atp?
Advanced Packaging Tool, ó APT, es un sistema de gestión de paquetes creado por el proyecto Debian. APT simplifica en gran medida la instalación y eliminación de programas en los sistemas GNU/Linux.
No existe un programa apt en sí mismo, sino que APT es una biblioteca de funciones C++ que se emplea por varios programas de Línea de comandos para distribuir paquetes. En especial, apt-get y apt-cache.
Existen también programas que proporcionan un frontispicio para APT, generalmente basados en apt-get, como aptitude con una interfaz de texto ncurses, Synaptic con una interfaz gráfica GTK+, o Adept con una interfaz gráfica Qt. Existe un repositorio central con más de 21.000 paquetes apt utilizados por apt-get y programas derivados para descargar e instalar aplicaciones directamente desde Internet, conocida como una de las mejores cualidades de Debian.
APT fue diseñado originariamente para trabajar con paquetes .deb, en lo sistemas Debian y distribuciones derivadas, pero desde entonces ha sido modificado para trabajar con paquetes RPM, con la herramienta apt-rpm, y para funcionar en otros sistemas operativos, como Mac OS X (Fink) y OpenSolaris (distribución Nexenta OS).
Referencias [editar]
↑ Debian -- Details of package apt in sid. Consultado el 2008-11-8.
Véase también [editar]
Portal: Software libre
dpkg, usado por APT para instalar y desinstalar paquetes Debian.
aptitude, frontispicio en modo texto para apt-get
apt-rpm, versión de APT modificada para usar RPM Package Manager.
Fink, un proyecto para portar programas Linux a Mac OS X, que utiliza APT.
Synaptic, GUI GTK.
Adept, GUI Qt.
sources.list
virtualizacion
En informática, virtualización es un término amplio que se refiere a la abstracción de los recursos de una computadora. Este término es bastante antiguo: viene siendo usado desde antes de 1960, y ha sido aplicado a diferentes aspectos y ámbitos de la informática, desde sistemas computacionales completos hasta capacidades o componentes individuales. El tema en común de todas las tecnologías de virtualización es la de ocultar los detalles técnicos a través de la encapsulación. La virtualización crea un interfaz externo que esconde una implementación subyacente mediante la combinación de recursos en locaciones físicas diferentes, o mediante la simplificación del sistema de control. Un reciente desarrollo de nuevas plataformas y tecnologías de virtualización han hecho que se vuelva a prestar atención a este maduro concepto. De modo similar al uso de términos como “abstracción” y “orientación a objetos”, virtualización es usado en muchos contextos diferentes. En este artículo vamos a ver los usos más comunes de este término, para esto lo dividimos en dos categorías principales:
Virtualización de plataforma que involucra la simulación de máquinas virtuales.
Virtualización de recursos que involucra la simulación de recursos combinados, fragmentados o simples.
Asimismo, el término virtualización es un concepto importante en contextos no computacionales. Muchos sistemas de control implementan interfaces virtuales en un mecanismo complejo; de esta manera el pedal del acelerador de un automóvil moderno hace más que solo aumentar el flujo del combustible hacia el motor; y el sistema de vuelos por cables (fly by wire) presenta un avión virtual simplificado que tiene muy poco que ver con la implementación física.
Contenido
[ocultar]
1 Virtualización de plataforma
2 Virtualización de los recursos
3 Enlaces externos
4 Referencias
Virtualización de plataforma [editar]
El sentido original del término virtualización, nacido en 1960, es el de la creación de una máquina virtual utilizando una combinación de hardware y software. Para nuestra conveniencia vamos a llamar a esto virtualización de plataforma. El término máquina virtual aparentemente tiene su origen en el experimento del sistema de paginación (paging system) de IBM M44/44X. La creación y administración de las máquinas virtuales también se refiere a la creación de seudo máquinas, en los primeros días de la CP-40, y de virtualización de servidores más recientemente. Los términos virtualización y máquina virtual han adquirido, a través de los años, significados adicionales.
La virtualización de plataforma es llevada a cabo en una plataforma de hardware mediante un software “host” (“anfitrión”, un programa de control) que simula un entorno computacional (máquina virtual) para su software “guest”. Este software “guest”, que generalmente es un sistema operativo completo, corre como si estuviera instalado en una plataforma de hardware autónoma. Típicamente muchas máquinas virtuales son simuladas en una máquina física dada. Para que el sistema operativo “guest” funcione, la simulación debe ser lo suficientemente robusta como para soportar todas las interfaces externas de los sistemas guest, las cuales pueden incluir (dependiendo del tipo de virtualización) los drivers de hardware.
Existen muchos enfoques a la virtualización de plataformas, aquí se listan con base en cuan completamente es implementada una simulación de hardware (estos términos no son reconocidos universalmente como tales, sin embargo todos los conceptos pueden ser ubicados en la bibliografía del tema).
Emulación o simulación: la máquina virtual simula un hardware completo, admitiendo un sistema operativo “guest” sin modificar para una CPU completamente diferente. Este enfoque fue muy utilizado para permitir la creación de software para nuevos procesadores antes de que estuvieran físicamente disponibles. Por ejemplo Bochs, PearPC, Qemu sin aceleración, y el emulador Hercules. La emulación es puesta en práctica utilizando una variedad de técnicas, desde state machines hasta el uso de la recopilación dinámica en una completa plataforma virtual.
Virtualización nativa y virtualización completa: la máquina virtual simula un hardware suficiente para permitir un sistema operativo “guest” sin modificar (uno diseñado para la misma CPU) para correr de forma aislada. Típicamente, muchas instancias pueden correr al mismo tiempo. Este enfoque fue el pionero en 1966 con CP-40 y CP[-67]/CMS, predecesores de la familia de máquinas virtuales de IBM. Algunos ejemplos: VMware Workstation, VMware Server, Parallels Desktop, Virtual Iron, Adeos, Mac-on-Linux, Win4BSD, Win4Lin Pro y z/VM.
Virtualización parcial (y aquí incluimos el llamado “address space virtualization”): la máquina virtual simula múltiples instancias de mucho (pero no de todo) del entorno subyacente del hardware, particularmente address spaces. Este entorno admite compartir recursos y aislar procesos, pero no permite instancias separadas de sistemas operativos “guest”. Aunque no es vista como dentro de la categoría de máquina virtual, históricamente éste fue un importante acercamiento, y fue usado en sistemas como CTSS, el experimental IBM M44/44X, y podría decirse que en sistemas como OS/VS1, OS/VS2 y MVS.
Paravirtualización: la máquina virtual no necesariamente simula un hardware, en cambio ofrece un API especial que solo puede usarse mediante la modificación del sistema operativo “guest”. La llamada del sistema al hypervisor tiene el nombre de “hypercall” en Xen y Parallels Workstation; está implementada vía el hardware instruction DIAG (“diagnose”) en el CMS de VM en el caso de IBM (este fue el origen del término hypervisor). Ejemplo: VMware ESX Server, Win4Lin 9x y z/VM.
Virtualización a nivel del sistema operativo: virtualizar un servidor físico a nivel del sistema operativo permitiendo múltiples servidores virtuales aislados y seguros correr en un solo servidor físico. El entorno del sistema operativo “guest” comparte el mismo sistema operativo que el del sistema “host” (el mismo kernel del sistema operativo es usado para implementar el entorno del “guest”). Las aplicaciones que corren en un entorno “guest” dado lo ven como un sistema autónomo. Ejemplos: Linux-VServer, Virtuozzo, OpenVZ, Solaris Containers y FreeBSD Jails.
Virtualización de aplicaciones: consiste en el hecho de correr una desktop o una aplicación de server localmente, usando los recursos locales, en una máquina virtual apropiada. Esto contrasta con correr la aplicación como un software local convencional (software que fueron “instalados” en el sistema). Semejantes aplicaciones virtuales corren en un pequeño entorno virtual que contienen los componentes necesarios para ejecutar, como entradas de registros, archivos, entornos variables, elementos de uso de interfaces y objetos globales. Este entorno virtual actúa como una capa entre la aplicación y el sistema operativo, y elimina los conflictos entre aplicaciones y entre las aplicaciones y el sistema operativo. Los ejemplos incluyen el Java Virtual Machine de Sun, Softricity, Thinstall, Altiris y Trigence (esta metodología de virtualización es claramente diferente a las anteriores; solo una pequeña línea divisoria los separa de entornos de máquinas virtuales como Smalltalk, FORTH, Tel, P-code).
Virtualización de los recursos [editar]
, descrita anteriormente, se extendió a la virtualización de recursos específicos del sistema como la capacidad de almacenamiento, nombre de los espacios y recursos de la red.
Los términos resource aggregation, spanning o concatenation (name spaces) se utiliza cuando se combinan componentes individuales en un mayor recurso o en un recurso de uso común (resource pools). Por ejemplo:
· RAID y volume managers combinan muchos discos en un gran disco lógico.
· La Virtualización de almacenamiento (Storage virtualization) refiere al proceso de abstraer el almacenamiento lógico del almacenamiento físico, y es comúnmente usado en SANs (Storage Area Network). Los recursos de almacenamientos físicos son agregados al storage pool, del cual es creado el almacenamiento lógico. Múltiples dispositivos de almacenamiento independientes, que pueden estar dispersos en la red, le aparecen al usuario como un dispositivo de almacenamiento independiente del lugar físico, monolítico y que puede ser administrado centralmente.
· Channel bonding[1] y el equipamiento de red utilizan para trabajar múltiples enlaces combinados mientras ofrecen un enlace único y con mayor amplitud de banda.
· Red privada virtual (en inglés Virtual Private Network, VPN), Traducción de dirección de red (en inglés Network Address Translation, NAT) y tecnologías de red similares crean una red virtual dentro o a través de subredes.
· Sistemas de computación multiprocessor y multi-core muchas veces presentan lo que aparece como un procesador único, rápido e independiente.
Cluster, grid computing y servidores virtuales usan las tecnologías anteriormente mencionadas para combinar múltiples y diferentes computadoras en una gran metacomputadora.
Particionamiento es la división de un solo recurso (generalmente grande), como en espacio de disco o ancho de banda de la red, en un número más pequeño y con recursos del mismo tipo más fáciles de utilizar. Esto es muchas veces llamado “zoning”, especialmente en almacenamiento de red.
Encapsulación es el ocultamiento de los recursos complejos mediante la creación de un interfaz simple. Por ejemplo, muchas veces CPUs incorporan memoria caché o segmentación (pipeline) para mejorar el rendimiento, pero estos elementos no son reflejados en su interfaz virtual externa. Interfaces virtuales similares que ocultan implementaciones complejas se encuentran en los discos, módems, routers y otros dispositivos “inteligentes” (smart).
Dpkg
De Wikipedia, la enciclopedia libre
Saltar a navegación, búsqueda
dpkg
Diseñado por:
Ian Murdock
Última versión:
1.14.22
S.O.:
Linux tipo-Unix
Género:
Sistema de gestión de paquetes
Licencia:
GNU General Public License
Sitio web:
www.debian.org/doc/FAQ/ch-pkgtools.en.html
El programa dpkg es la base del sistema de gestión de paquetes de Debian GNU/Linux. Fue creado por Ian Jackson en 1993; es similar a RPM. Se utiliza para instalar, quitar, y proporcionar información sobre los paquetes .deb.
dpkg es en sí misma una herramienta de bajo nivel; se necesita un frontal de alto nivel para traer los paquetes desde lugares remotos o resolver conflictos complejos en las dependencias de paquetes. Debian cuenta con apt para esta tarea.
Herramientas Dpkg [editar]
Debian posee una serie de herramientas que es necesario llamar para construir un paquete:
dpkg-source empaqueta y desempaqueta los archivos fuentes de un paquete Debian.
dpkg-gencontrol lee la información de un árbol fuente Debian desempaquetado y genera un paquete binario de control, generando una entrada para éste en el fichero debian/files.
dpkg-shlibdeps calcula las dependencias de ejecutables respecto a librerías.
dpkg-genchanges lee la información de un árbol fuente Debian desempaquetado y ya construido, generando un fichero de control de los últimos cambios (un.changes).
dpkg-buildpackage es un script de control que se puede utilizar para automatizar la construcción del paquete.
dpkg-distaddfile añade una entrada de un fichero a debian/files.
dpkg-parsechangelog lee el fichero de cambios changelog) de un árbol fuente Debian desempaquetado y genera una salida con la información de estos cambios, convenientemente preparada.
Un sistema de gestión de paquetes, también conocido como gestor de paquetes, es una colección de herramientas que sirven para automatizar el proceso de instalación, actualización, configuración y eliminación de paquetes de software. El término se usa comúnmente para referirse a los gestores de paquetes en sistemas Unix-like, especialmente Linux, ya que se apoyan considerablemente en estos sistemas de gestión de paquetes.
En estos sistemas, el software se distribuye en forma de paquetes, frecuentemente encapsulado en un solo fichero. Estos paquetes incluyen otra información importante, además del software mismo, como pueden ser el nombre completo, una descripción de su funcionalidad, el número de versión, el distribuidor del software, la suma de verificación y una lista de otros paquetes requeridos para el correcto funcionamiento del software. Esta metainformación se introduce normalmente en una base de datos de paquetes local.
Contenido
[ocultar]
1 Comparación entre instaladores y sistemas de gestión de paquetes
2 Función
2.1 Desafíos con bibliotecas compartidas
2.2 Frontends para paquetes compilados localmente
2.3 Conversión de paquetes binarios
2.4 Mantenimiento de la configuración
2.5 Repositorios
2.6 Evitar la actualización de paquetes
3 Ejemplos
3.1 Sistemas libres
3.1.1 Sistemas basados en paquetes binarios
3.1.2 Sistemas de instalación desde una receta
3.1.3 Sistemas híbridos
3.1.4 Sistemas de metapaquetes
3.2 Sistemas propietarios
3.3 Gestión de paquetes incrustada en aplicaciones
4 Véase también
Comparación entre instaladores y sistemas de gestión de paquetes [editar]
Las diferencias principales entre un sistema de gestión de paquetes y un instalador son las siguientes:
Sistema de Gestión de Paquetes
Instalador
Forma parte del sistema operativo.
Cada producto viene unido a su propio instalador.
Usa una única base de datos de instalación.
Rastrea su propia instalación
Puede verificar y administrar todos los paquetes sobre el sistema.
Sólo trabaja con su propio producto.
Un único vendedor de sistema de administración de paquetes.
Múltiples vendedores de instalador.
Un único formato de paquetes.
Múltiples formatos de instalación
Función [editar]
Los sistemas de gestión de paquetes tienen la tarea de organizar todos los paquetes instalados en el sistema y se encargan de mantener su usabilidad. Esto se consigue combinando las siguientes técnicas:
Comprobación de la suma de verificación para evitar que haya diferencias entre la versión local de un paquete y la versión oficial
Comprobación de la firma digital
Instalación, actualización y eliminación simple de paquetes
Resolución de dependencias para garantizar que el software funcione correctamente
Búsqueda de actualizaciones para proveer la última versión de un paquete, ya que normalmente solucionan bugs y proporcionan actualizaciones de seguridad.
Agrupamiento de paquetes según su función para evitar la confusión al instalarlos o mantenerlos
Muchos de los sistemas de gestión de paquetes ampliamente utilizados utilizan backends simples para instalar los paquetes. Por ejemplo, YUM utiliza RPM como backend y APT utiliza dpkg.
Desafíos con bibliotecas compartidas [editar]
En los sistemas donde las aplicaciones comparten trozos de instrucciones, como en la mayor parte de las distribuciones de Linux, la resolución de dependencias al instalar y desinstalar software se convierte en una necesidad. Algunos de los sistemas de gestión de paquetes más avanzados tienen la capacidad de desinstalar los paquetes recursivamente o en cascada, de forma que se eliminan todos los paquetes que dependen del paquete a desinstalar y todos los paquetes de los que el paquete a desinstalar depende, respectivamente.
Frontends para paquetes compilados localmente [editar]
Es común que un administrador instale software que no está disponible en los repositorios provistos. Algunos ejemplos pueden ser una nueva versión de una aplicación que todavía no está disponible en la distribución o una alternativa distinta de la elegida por la distribución. Si este software adicional sólo se distribuye en forma de código fuente, la instalación requerirá la compilación del código. Sin embargo, la instalación de este software adicional en el sistema ocasionará que el estado del sistema y la base de datos del gestor de paquetes no estén sincronizados, por lo que el administrador deberá tomar medidas adicionales para asegurar que el sistema de gestión de paquetes se mantenga al día, puesto que éste no es capaz de hacerlo automáticamente.
Hay herramientas que se encargan de asegurar que los paquetes compilados localmente están integrados con el sistema de gestión de paquetes. En distribuciones basadas en paquetes .deb y .rpm, al igual que en Slackware, encontramos checkinstall. Para los sistemas basados en recetas como son Gentoo Linux o algunos sistemas híbridos como Arch Linux, es común escribir la receta en primer lugar, ya que ésta se encargará de asegurar que el paquete se incluye en la base de datos.
Conversión de paquetes binarios [editar]
alien es un programa que convierte entre los diferentes formatos de paquetes de Linux. Soporta la conversión entre Linux Standard Base, RPM, deb, Stampede (.slp) y paquetes de Slackware (.tgz).
Mantenimiento de la configuración [editar]
Otra problemática aparte de la actualización de software es la actualización de ficheros de configuración. Ya que los sistemas de gestión de paquetes surgieron como extensiones para las utilidades de archivado, normalmente sólo son capaces de sobrescribir o retener los ficheros de configuración, en lugar de poder aplicarles reglas de modificación. Sin embargo, hay excepciones, que normalmente se aplica al proceso de configuración del núcleo, ya que si estos son incorrectos pueden ocasionar fallos al reiniciar el sistema, pudiendo incluso hacer que el sistema no arranque. Estos problemas pueden ocasionarse cuando el formato de los ficheros de configuración cambia. Por ejemplo, cuando el antiguo fichero de configuración no deshabilita nuevas opciones que deberían ser deshabilitadas. Algunos sistemas de gestión de paquetes, como el dpkg de Debian, permiten configurar el software durante la instalación. En cualquier otra situación es preferible instalar los paquetes con la configuración por defecto y sobrescribirla posteriormente. Por ejemplo, en la instalación de un paquete en un gran número de computadoras (dpkg también soporta este tipo de instalación preconfigurada).
Repositorios [editar]
El software normalmente se pone a disposición de los usuarios en los repositorios, con el fin de proporcionar a los usuarios de un sencillo control sobre los diferentes tipos de software que van a instalar en su sistema y, en ocasiones, debido a razones legales o conveniencias por parte de los distribuidores.
Evitar la actualización de paquetes [editar]
Cuando un usuario interactúa con el gestor de paquetes para realizar una actualización, éste suele mostrar una lista de las tareas a realizar (normalmente la lista de paquetes a actualizar y, posiblemente, también los números de versión) y también es probable que permita realizar una actualización completa o bien seleccionar los paquetes que se desea actualizar. Algunos gestores de paquetes permiten indicar los paquetes que no se desea actualizar nunca o solamente cuando estos corrigen errores importantes en la versión anterior. A este proceso se lo suele denominar version pinning. Por ejemplo, yum permite esto mediante la sintaxis exclude=openoffice*, pacman con IgnorePkg=openoffice (en ambos casos para evitar la actualización de OpenOffice), mientras que las herramientas de Debian poseen una sintaxis más compleja y potente.
Ejemplos [editar]
Sistemas libres [editar]
Por la naturaleza del software libre, los paquetes bajo licencias compatibles y similares están disponibles para usarlo en varios sistemas operativos. Estos paquetes pueden ser fácilmente combinados y distribuidos usando "packaging systems" configurables para manejar los diferentes cambios del software y administrar las dependencias y los conflictos específicos de una versión. Algunos "packaging systems" de software libre son ellos mismos liberados como software libre.
Sistemas basados en paquetes binarios [editar]
dpkg, usado originalmente por Debian y ahora también por otros sistemas, usa el formato .deb y fue el primero en poseer una herramienta de resolución de dependencias ampliamente conocida, APT.
fink, para Mac OS X, deriva parcialmente de dpkg/apt y de ports. Esta herramienta pretende hacer más sencilla la instalación de programas libres en Mac OS X.
El sistema RPM, creado por Red Hat y usado por un gran número de distribuciones de Linux, es el formato de paquetes del Linux Standard Base. Para trabajar con este sistema de paquetes existen muy diversas herramientas como apt4rpm, up2date (de Red Hat), urpmi (de Mandriva), YaST (de SuSE) y YUM (usado por Fedora y Yellow Dog Linux).
El sistema tgz, usado por Slackware, empaqueta el software usando tar y gzip. Pero, además, hay algunas herramientas de más al nivel para tratar con este formato: slapt-get, slackpkg and swaret.
Pacman, para Arch Linux usa binarios precompilados distribuidos en un fichero .tgz.
Sistemas de instalación desde una receta [editar]
El sistema Portage (basado en el programa emerge) es usado por Gentoo Linux. Éste está inspirado en el sistema de ports de BSD y usan scripts llamados ebuilds para instalar el software.
En la distribución GoboLinux, un fichero-receta contiene información sobre cómo descargar, desempaquetar, compilar e instalar un paquete usando la herramienta Compile.
Sistemas híbridos [editar]
La Colección de Ports de FreeBSD, a veces llamada ports a secas, usa un sistema de Makefiles para instalar software desde código fuente o ficheros binarios. Las colecciones de MacPorts (para Mac OS X) y de ports para pkgsrc (en NetBSD y OpenBSD) son similares.
Sistemas de metapaquetes [editar]
Los siguientes sistemas unifican la gestión de paquetes para muchas o todas las distribuciones de Linux y otras variantes de Unix basándose también en el concepto de ficheros-receta:
klik proporciona una forma sencilla de instalar paquetes de software para la mayor parte de distribuciones sin los problemas de dependencias tan comunes en otros formatos de paquetes.
Autopackage usa fichero .package.
epm, desarrollado por Easy Software Products (creadores de CUPS), es un meta-empaquetador que permite crear paquetes nativos para todas las distribuciones de Linux y otros sistemas operativos basados en Unix (.deb, .rpm, .tgz para Linux; .pkg para Solaris y *BSD, .dmg para Mac OS X, ...) a partir de un único fichero .list.
Sistemas propietarios [editar]
En la actualidad, una gran variedad de sistemas de gestión de paquetes es usada por algunos sistemas operativos propietarios para tratar con la instalación tanto de paquetes propietarios como libres.
installp es el comando de AIX para las bases de datos Object Data Manager (ODM).
El formato SysV usado por Solaris.
Software Distributor es el gestor de paquetes de HP-UX.
En el framework .NET de Microsoft, un ensamblado es una biblioteca de código parcialmente compilado destinado al uso en deployment, versioning y seguridad.
Gestión de paquetes incrustada en aplicaciones [editar]
Algunos sistemas de gestión de paquetes no forman parte nativa del sistema operativo, como pueden ser fink en Mac OS X o el entorno Unix-like de Cygwin (para Windows). Algunos lenguajes de programación interpretados tienen su propio sistema de gestión de paquetes para manejar módulos del lenguaje, como pasa con los lenguajes de programación Perl (ver CPAN) o PHP (ver PEAR). Otros programas pueden venir con su propio sistema para gestionar módulos.
Véase también [editar]
Instalación de software
Paquete de software
Dependencias de software
Repositorio
Obtenido de "http://es.wikipedia.org/wiki/Sistema_de_gesti%C3%B3n_de_paquetes"
Que es atp?
Advanced Packaging Tool, ó APT, es un sistema de gestión de paquetes creado por el proyecto Debian. APT simplifica en gran medida la instalación y eliminación de programas en los sistemas GNU/Linux.
No existe un programa apt en sí mismo, sino que APT es una biblioteca de funciones C++ que se emplea por varios programas de Línea de comandos para distribuir paquetes. En especial, apt-get y apt-cache.
Existen también programas que proporcionan un frontispicio para APT, generalmente basados en apt-get, como aptitude con una interfaz de texto ncurses, Synaptic con una interfaz gráfica GTK+, o Adept con una interfaz gráfica Qt. Existe un repositorio central con más de 21.000 paquetes apt utilizados por apt-get y programas derivados para descargar e instalar aplicaciones directamente desde Internet, conocida como una de las mejores cualidades de Debian.
APT fue diseñado originariamente para trabajar con paquetes .deb, en lo sistemas Debian y distribuciones derivadas, pero desde entonces ha sido modificado para trabajar con paquetes RPM, con la herramienta apt-rpm, y para funcionar en otros sistemas operativos, como Mac OS X (Fink) y OpenSolaris (distribución Nexenta OS).
Referencias [editar]
↑ Debian -- Details of package apt in sid. Consultado el 2008-11-8.
Véase también [editar]
Portal: Software libre
dpkg, usado por APT para instalar y desinstalar paquetes Debian.
aptitude, frontispicio en modo texto para apt-get
apt-rpm, versión de APT modificada para usar RPM Package Manager.
Fink, un proyecto para portar programas Linux a Mac OS X, que utiliza APT.
Synaptic, GUI GTK.
Adept, GUI Qt.
sources.list
virtualizacion
En informática, virtualización es un término amplio que se refiere a la abstracción de los recursos de una computadora. Este término es bastante antiguo: viene siendo usado desde antes de 1960, y ha sido aplicado a diferentes aspectos y ámbitos de la informática, desde sistemas computacionales completos hasta capacidades o componentes individuales. El tema en común de todas las tecnologías de virtualización es la de ocultar los detalles técnicos a través de la encapsulación. La virtualización crea un interfaz externo que esconde una implementación subyacente mediante la combinación de recursos en locaciones físicas diferentes, o mediante la simplificación del sistema de control. Un reciente desarrollo de nuevas plataformas y tecnologías de virtualización han hecho que se vuelva a prestar atención a este maduro concepto. De modo similar al uso de términos como “abstracción” y “orientación a objetos”, virtualización es usado en muchos contextos diferentes. En este artículo vamos a ver los usos más comunes de este término, para esto lo dividimos en dos categorías principales:
Virtualización de plataforma que involucra la simulación de máquinas virtuales.
Virtualización de recursos que involucra la simulación de recursos combinados, fragmentados o simples.
Asimismo, el término virtualización es un concepto importante en contextos no computacionales. Muchos sistemas de control implementan interfaces virtuales en un mecanismo complejo; de esta manera el pedal del acelerador de un automóvil moderno hace más que solo aumentar el flujo del combustible hacia el motor; y el sistema de vuelos por cables (fly by wire) presenta un avión virtual simplificado que tiene muy poco que ver con la implementación física.
Contenido
[ocultar]
1 Virtualización de plataforma
2 Virtualización de los recursos
3 Enlaces externos
4 Referencias
Virtualización de plataforma [editar]
El sentido original del término virtualización, nacido en 1960, es el de la creación de una máquina virtual utilizando una combinación de hardware y software. Para nuestra conveniencia vamos a llamar a esto virtualización de plataforma. El término máquina virtual aparentemente tiene su origen en el experimento del sistema de paginación (paging system) de IBM M44/44X. La creación y administración de las máquinas virtuales también se refiere a la creación de seudo máquinas, en los primeros días de la CP-40, y de virtualización de servidores más recientemente. Los términos virtualización y máquina virtual han adquirido, a través de los años, significados adicionales.
La virtualización de plataforma es llevada a cabo en una plataforma de hardware mediante un software “host” (“anfitrión”, un programa de control) que simula un entorno computacional (máquina virtual) para su software “guest”. Este software “guest”, que generalmente es un sistema operativo completo, corre como si estuviera instalado en una plataforma de hardware autónoma. Típicamente muchas máquinas virtuales son simuladas en una máquina física dada. Para que el sistema operativo “guest” funcione, la simulación debe ser lo suficientemente robusta como para soportar todas las interfaces externas de los sistemas guest, las cuales pueden incluir (dependiendo del tipo de virtualización) los drivers de hardware.
Existen muchos enfoques a la virtualización de plataformas, aquí se listan con base en cuan completamente es implementada una simulación de hardware (estos términos no son reconocidos universalmente como tales, sin embargo todos los conceptos pueden ser ubicados en la bibliografía del tema).
Emulación o simulación: la máquina virtual simula un hardware completo, admitiendo un sistema operativo “guest” sin modificar para una CPU completamente diferente. Este enfoque fue muy utilizado para permitir la creación de software para nuevos procesadores antes de que estuvieran físicamente disponibles. Por ejemplo Bochs, PearPC, Qemu sin aceleración, y el emulador Hercules. La emulación es puesta en práctica utilizando una variedad de técnicas, desde state machines hasta el uso de la recopilación dinámica en una completa plataforma virtual.
Virtualización nativa y virtualización completa: la máquina virtual simula un hardware suficiente para permitir un sistema operativo “guest” sin modificar (uno diseñado para la misma CPU) para correr de forma aislada. Típicamente, muchas instancias pueden correr al mismo tiempo. Este enfoque fue el pionero en 1966 con CP-40 y CP[-67]/CMS, predecesores de la familia de máquinas virtuales de IBM. Algunos ejemplos: VMware Workstation, VMware Server, Parallels Desktop, Virtual Iron, Adeos, Mac-on-Linux, Win4BSD, Win4Lin Pro y z/VM.
Virtualización parcial (y aquí incluimos el llamado “address space virtualization”): la máquina virtual simula múltiples instancias de mucho (pero no de todo) del entorno subyacente del hardware, particularmente address spaces. Este entorno admite compartir recursos y aislar procesos, pero no permite instancias separadas de sistemas operativos “guest”. Aunque no es vista como dentro de la categoría de máquina virtual, históricamente éste fue un importante acercamiento, y fue usado en sistemas como CTSS, el experimental IBM M44/44X, y podría decirse que en sistemas como OS/VS1, OS/VS2 y MVS.
Paravirtualización: la máquina virtual no necesariamente simula un hardware, en cambio ofrece un API especial que solo puede usarse mediante la modificación del sistema operativo “guest”. La llamada del sistema al hypervisor tiene el nombre de “hypercall” en Xen y Parallels Workstation; está implementada vía el hardware instruction DIAG (“diagnose”) en el CMS de VM en el caso de IBM (este fue el origen del término hypervisor). Ejemplo: VMware ESX Server, Win4Lin 9x y z/VM.
Virtualización a nivel del sistema operativo: virtualizar un servidor físico a nivel del sistema operativo permitiendo múltiples servidores virtuales aislados y seguros correr en un solo servidor físico. El entorno del sistema operativo “guest” comparte el mismo sistema operativo que el del sistema “host” (el mismo kernel del sistema operativo es usado para implementar el entorno del “guest”). Las aplicaciones que corren en un entorno “guest” dado lo ven como un sistema autónomo. Ejemplos: Linux-VServer, Virtuozzo, OpenVZ, Solaris Containers y FreeBSD Jails.
Virtualización de aplicaciones: consiste en el hecho de correr una desktop o una aplicación de server localmente, usando los recursos locales, en una máquina virtual apropiada. Esto contrasta con correr la aplicación como un software local convencional (software que fueron “instalados” en el sistema). Semejantes aplicaciones virtuales corren en un pequeño entorno virtual que contienen los componentes necesarios para ejecutar, como entradas de registros, archivos, entornos variables, elementos de uso de interfaces y objetos globales. Este entorno virtual actúa como una capa entre la aplicación y el sistema operativo, y elimina los conflictos entre aplicaciones y entre las aplicaciones y el sistema operativo. Los ejemplos incluyen el Java Virtual Machine de Sun, Softricity, Thinstall, Altiris y Trigence (esta metodología de virtualización es claramente diferente a las anteriores; solo una pequeña línea divisoria los separa de entornos de máquinas virtuales como Smalltalk, FORTH, Tel, P-code).
Virtualización de los recursos [editar]
, descrita anteriormente, se extendió a la virtualización de recursos específicos del sistema como la capacidad de almacenamiento, nombre de los espacios y recursos de la red.
Los términos resource aggregation, spanning o concatenation (name spaces) se utiliza cuando se combinan componentes individuales en un mayor recurso o en un recurso de uso común (resource pools). Por ejemplo:
· RAID y volume managers combinan muchos discos en un gran disco lógico.
· La Virtualización de almacenamiento (Storage virtualization) refiere al proceso de abstraer el almacenamiento lógico del almacenamiento físico, y es comúnmente usado en SANs (Storage Area Network). Los recursos de almacenamientos físicos son agregados al storage pool, del cual es creado el almacenamiento lógico. Múltiples dispositivos de almacenamiento independientes, que pueden estar dispersos en la red, le aparecen al usuario como un dispositivo de almacenamiento independiente del lugar físico, monolítico y que puede ser administrado centralmente.
· Channel bonding[1] y el equipamiento de red utilizan para trabajar múltiples enlaces combinados mientras ofrecen un enlace único y con mayor amplitud de banda.
· Red privada virtual (en inglés Virtual Private Network, VPN), Traducción de dirección de red (en inglés Network Address Translation, NAT) y tecnologías de red similares crean una red virtual dentro o a través de subredes.
· Sistemas de computación multiprocessor y multi-core muchas veces presentan lo que aparece como un procesador único, rápido e independiente.
Cluster, grid computing y servidores virtuales usan las tecnologías anteriormente mencionadas para combinar múltiples y diferentes computadoras en una gran metacomputadora.
Particionamiento es la división de un solo recurso (generalmente grande), como en espacio de disco o ancho de banda de la red, en un número más pequeño y con recursos del mismo tipo más fáciles de utilizar. Esto es muchas veces llamado “zoning”, especialmente en almacenamiento de red.
Encapsulación es el ocultamiento de los recursos complejos mediante la creación de un interfaz simple. Por ejemplo, muchas veces CPUs incorporan memoria caché o segmentación (pipeline) para mejorar el rendimiento, pero estos elementos no son reflejados en su interfaz virtual externa. Interfaces virtuales similares que ocultan implementaciones complejas se encuentran en los discos, módems, routers y otros dispositivos “inteligentes” (smart).
Suscribirse a:
Entradas (Atom)