Creative Commons 3.0 RSS CSS 2.1 XHTML 1.0
Entrar  
Rexistru
Lo que pasa detrás y delantre la pantalla 
Escrito por Sumiciu el llunes, 25 xunu de 2007

A día de hoy, cuando hablamos de virtualización se nos vienen a la cabeza bien extraños procesos, desarrollo avanzado o bien extraños frikis aficionados a la prueba de todo lo que les caiga entre manos que han hecho de VMWare, QEMU y compañía su mejor juguete.



Lo cierto es que la velocidad de los equipos se ha incrementado hasta el punto de que empecemos a pensar en el uso corriente de la virtualización sin que nos llamen chalaos a la cara, o al menos no a las primeras de cambio.

El hecho es que ya están apareciendo soluciones y pasos orientados en este sentido, y GNU/Linux (cómo no..) ya se está dando prisa en aplicarlas. Si lo habitual hasta hoy era usar una máquina virtual proporcionada por un programa de terceros como los mencionados antes, a partir del kernel 2.6.20 en GNU/Linux nos proveen de nuevas herramientas "para empezar a jugar".



A nivel de hardware, tenemos los dos bandos de siempre. Intel nos ofrece la Inter Virtualization Tecnology -alias Intel VT (VT-x para IA-32 y VT-i para Itanium respectivamente)[1]-, mientras que AMD cuenta con la AMD Virtualization o AMD-V. Básicamente, hablamos de unos conjuntos de instrucciones añadidos al procesador que proveen de asistencia via hardware a los hipervisores o vmm (virtual machine monitor), que son los host que crean el entorno virtual en el que podremos cacharrear.


En Linux si queremos saber si nuestra CPU tiene dichas capacidades, si ejecutando el siguiente comando obtenemos alguna respuesta, esta será afirmativa (si no obtenemos nada, debemos tomarlo como un no).



egrep '^flags.*(vmx|svm)' /proc/cpuinfo



Debemos tener en cuenta para ello que /proc/cpuinfo sólo nos mostrará nuestras capacidades de virtualizacióna partir de la version 2.6.15 para Intel y 2.6.16 para AMD. Además, algunos fabricantes desactivan por defecto estas opciones por lo que habrá que meterle mano a la configuración de la BIOS para ponerlo a punto.



A nivel software, y más concretamente de sistemas operativos, la única posibilidad que tenemos hasta el momento (no tardará la competencia, no desespere nadie..) es la anteriormente menciona que proporciona el pingüino y que han dado en llamar KVM. Tal y como podemos leer en la Wikipedia, KMV está implementado actualmente como un módulo para cargar en el kernel, aunque en futuras versiones, probablemente use una interfaz de llamadas al sistema integrada en el núcleo del operativo directamente.

Cabe decir, que realmente, KMV, por si misma, no realiza ninguna emulación, sino que provee de una interfaz que será usada por otro programa desde el espacio de usuario. El único programa capaz de hacerlo, hasta la fecha, es una version modificada de QEMU. KMV, puede usar discos virtuales que soportaba QEMU (incluyendo lo usados por VMWare).




Y llegó el momento de tocar la seguridad, la recomendación principal es usar el dispositivo /dev/kmv (que provee la interfaz para localizar las direcciones virtuales de la máquina virtual cliente) con un usuario distinto al root, para ello es conveniente cambiarle los permisos. Pero esto no acaba aquí, ya que empiezan a surgir los análisis y las búsquedas de agujeros en estos sistemas. Y es que, amiguitos, sólo estamos ante el principio.

Escrito por Sumiciu el martes, 12 xunu de 2007

Esta es una traducción de este artículo sobre un vistazo muy por encima al núcleo de GNU/Linux aparecido entre los artículos de la base de conocimiento de IBM y que considero bastante importante para empezar a entender algunos detalles del S.O.




Anatomía del núcleo de Linux



El kernel de Linux es el núcleo de un sistema operativo extenso y complejo, y aunque su tamaño es enorme, esta correctamente organizado en subsistemas y capas. En este artículo, se explorará la estructura general del kernel de Linux y se conseguirá conocer sus subsistemas e interfaces del núcleo más importantes.[...]



Dado que la meta de este artículo es introducirse en el kernel de Linux y explorar su arquitectura y componentes principales, empezaremos con una vuelta rápida por la historia del kernel, después nos centraremos en la arquitectura del kernel de Linux a vista de pájaro y, finalmente, examinaremos sus subsistemas más importantes. El kernel de Linux tiene más de seis millones de líneas de código, por lo tanto, esta introducción no es exhaustiva. Los recursos ayudarán a profundizar.



Un pequeño viaje a través de la historia de Linux

Aunque podría decirse que Linux es el sistema operativo de código abierto más popular, su historia es realmente bastante corta considerando la línea temporal de los sistemas operativos. En los primero momentos de la computación, los programadores desarrollaban sobre el hardware directamente en el lenguaje que él entendía. La falta de un sistema operativo significaba que únicamente una aplicación (y por lo tanto un único usuario) podía usar una dispositivo enorme y caro de cada vez. Los primeros sistemas operativos fueron desarrollados en los años 50 para proveer de una experiencia de desarrollo más simple. Algunos ejemplos son General Motors Operating System (GMOS) desarrollado para el IBM 701 y el FORTRAN Monitor System (FMS) desarrollado por la aviación americana para el IBM 709.




En los años 60, el Instituto Tecnológico de Massachussets (MIT) y un grupo de compañías desarrollaron un sistema operativo experimental llamado Multics (Multiplexed Information and Computing Service) para la GE-654. Uno de los desarrolladores de este sistema, AT&T, abandonó Multics y desarrolló su propio sistema operativo en 1970 llamado Unics. Junto con este sistema operativo vino el lenguaje C, para el que fue desarrollado y, posteriormente, reescrito con el fin de hacer el desarrollo del sistema operativo portable.



Veinte años más tarde, Andrew Tanenbaum creo una versión de UNIX con un microkernel llamada MINIX que corría en pequeños PC. Este sistema operativo de código abierto inspiró el desarrollo inicial de Linux por parte de Linus Torvals a principios de los 90 (ver figura 1).



Linux evolucionó rápidamente para transformarse de ser un proyecto de una sola persona a un proyecto de desarrollo de extensión mundial que involucraba a miles de programadores. Una de las más importantes decisiones para Linux fue la adopción de la Licencia Pública General de la GNU (GPL). Bajo la GPL, el kernel de Linux fue protegido contra el la explotación comercial, y además beneficiado por el espacio de desarrollo del proyecto GNU. Esto permitió que aplicaciones útiles como GCC y varias shell fueran soportadas.



Escrito por Sumiciu el llunes, 11 xunu de 2007

A continuación cuelgo un video de un documental emitido por la segunda cadena, que servirá como introducción a algún artículo más sobre el sistema.



Muy recomendable para los que quieran empezar a conocer el mundillo.