domingo, 15 de abril de 2012

Escritorio remoto entre GNU/Linuxes =)

Seguramente más de una vez un amig@, familiar o alguien les dice que su PC `no anda` y que quieren que les arregle o que les ayude a hacer alguna cosa.
Si ayudaron o guiaron a un amigo a instalar por primera vez alguna distro o a instalar y configurar alguna aplicación van a sentirse identificados con esta situación. Fundamentalmente cuando sabemos que la solución no tomaría más de unos 10 minutos lo cual frecuentemente es un tiempo mucho menor que el que nos tomaría en desplazarnos por el bendito espacio/tiempo desde nuestra casa a la del aproblemad@ :)
Vale aclarar que siendo una chica con buenos atributos la del problema tal vez obviemos todo esto de escritorios remotos >_<

Bien entonces ahora vamos a ver como hacer para conseguir solucionar este problema de un modo muy muy sencillo.

Vamos a valernos de una técnica llamada "reverse VNC connection" o sea conexión inversa por VNC y fundamentamos su uso en la esencialidad de que el otro usuario tal vez no entienda como abrir puertos en su router y cuestiones similares que no valen la pena detallarlas acá pero que son muy útiles de conocer si estas intentando hacer esto.
Primeramente hace falta que el usuario al que vamos a ayudar tenga instalada una aplicación que no es para nada difícil de hacerlo, simplemente:
sudo apt-get install x11vnc
 Pero si no es capaz de abrir un terminal para pegar ese código podría buscar esa aplicación en el centro de software de su distribución.


Ahora "nosotros" en nuestro router debemos natear las conexiones entrantes para que sean redirigidas a nuestra IP interna. Es decir que vamos a la config del router y en la parte de NAT buscamos donde diga VirtualServer o algo parecido y creamos una nueva regla con el nombre que querramos.




En este caso creamos una regla (10) con el nombre "AsistenciaRemota" y abrimos el puerto 5500 redireccionandolo a nuestra IP.


Bien una vez que hicimos esto ya estamos en condicioines de habilitar la escucha por ese puerto.
vncviewer -listen
En este caso no hace falta aclarar el puerto pero si deciden abrir otro puerto que no sea el 5500 el siguiente comando debe ir acompañado del número de puerto que abrieron para la conexión, por ejemplo si abrieron el 8890 el comando sería vncviewer -listen 8890


 Una vez que habilitamos la escucha solo necesitamos que el usuario remoto, o sea nuestro amig@, familiar, cliente, conocido del chat, de un foro, etc. escriba este comando en su consola
x11vnc -connect TU_IP_EXTERNA:5500
Donde el parámetro  TU_IP_EXTERNA es justamente "nuestra" IP WAN o en el mejor de los casos sería una buena idea auxiliar crearnos un dominio en www.dyndns.com y configurar ese dominio a nuestra IP asi evitamos averiguar que IP tenemos asignada y el comando quedaría
x11vnc -connect nuestroDominio.dyndns.org:5500
No esta demás aclarar que si abrieron otro puerto que no sea el 5500  van a tener que poner ese número de puerto en el comando anteriormente citado.


Listo una vez que nustro usuario remoto ejecute dicho comando en su consola nos aparecera su escritorio en nuestra PC y vamos a utilizarlo como si fuera nuestro propio escritorio y ayudarle a solucionar cosas o simplemente hacerle un paseo por el entorno gráfico si es su primera vez en GNU/Linux ;) 

sábado, 14 de abril de 2012

LIGHTTPD - un servidor web muy ágil y liviano


Plataforma: windows, linux, solaris, openbsd, irix, aix
Idioma: inglés
       Servidor web cuyo objetivo primordial es el de ser rápido, seguro, flexible y fiel a los estándares. Se recomienda especialmente en servidores con excesiva carga, ya que lighttpd requiere menos capacidad de proceso y memoria RAM.

Lighttpd es un servidor web diseñado para ser rápido, seguro, flexible, y fiel a los estándares. Está optimizado para entornos donde la velocidad es muy importante. Esto se debe a que consume menos CPU y memoria RAM que otros servidores.
Lighttpd es apropiado para cualquier servidor que tenga problemas de carga. Es software libre y se distribuye bajo la licencia BSD. Funciona en GNU/Linux y UNIX de forma oficial.
Para Microsoft Windows hay una distribución conocida como Lighttpd For Windows mantenida por Kevin Worthington.


Características:
• Virtual hosting (alojar varios dominios en la misma IP)
• CGI, SCGI y FastCGI
• Soporte para PHP, Ruby, Python y otros
• Consumo de memoria constante
• Redirecciones HTTP, y reescrituras de URL
• ETC.


Lighttpd permite comunicarse con programas externos mediante FastCGI o SCGI, que son mejoras al CGI original (también soportado). De esta forma, se pueden usar programas en prácticamente cualquier lenguaje de programación.
Tiene una importancia especial en PHP, para el que se han hecho mejoras específicas.
También es habitual combinarlo con Ruby on Rails.

Vamos a instalar LIGHTTPD  y php para ahorrar tiempo y lo hacemos todo con el siguiente comando:
# aptitude install lighttpd php5-cgi 


Si quisiéramos cambiar el puerto de escucha de Lighttpd tendremos que entrar al archivo “lighttpd.conf” que se encuentra en la carpeta “/etc/lighttpd/” y agregar las siguientes líneas:
(debemos estar como root)
server.pot=8080
server.socket = “[::]:8080′′
En este caso pusimos en escucha el puerto 8080.


 Luego configuramos el archivo php.ini (que se encuentra en /etc/php5/cgi/) para habilitarlo al CGI, para eso le agregamos esta línea la final “cgi.fix_pathinfo = 1”, lo hacemos de la siguiente manera:
# echo "cgi.fix_pathinfo = 1" >> nano /etc/php5/cgi/php.ini
y nos debería quedar algo asi:

Ahora vamos advertir a LGHTTPD que vamos a utilizar FastCGI y editamos el archivo lighttpd.conf que se encuentra en la carpeta “/etc/lighttpd/”.
# nano /etc/lighttpd/lighttpd.conf
Yo uso nano pero uds pueden usar el que quieran, gedit, vi, kwrite, geany, etc.
fastcgi.server = (".php" => (( "bin-path" => "/usr/bin/php5-cgi", "socket" => "/tmp/php.socket")))
Les recomiendo que esto lo copien uds y no sea un copy paste porque suelen presentarse errores de caracteres como las comas, comillas y todo eso.


Ahora activamos el módulo fast cgi y reiniciamos el webserver (lighttpd) para que los cambios realizados se apliquen:
# lighttpd­enable­mod fastcgi && /etc/init.d/lighttpd restart
 Bien con todo esto ya tenemos el websserver configurado y levantado listo para alojar una página html o scripts php, sólo necesitaríamos abrir un navegador y poner nuestra dirección IP o simplemente escribir localhost y debería aparecernos una página de muestra avisándonos que el servidor esta corriendo.
Sino podemos aprovechar y probar si esta corriendo también el intérprete php, para eso podemos hacer un pequeño y simple script php y guardarlo en el directorio por default que trae configurado lighttpd
# echo "<?php phpinfo();?>" >> /var/www/prueba.php
y luego abrimos el navegador y el la barra de direcciones ponemos: localhost/prueba.php
y deberíamos ver algo como esto. Si NO lo ven revisen los pasos anteriores porque algo hicieron mal.


si ven esto entonces.... 



Listo con esto ya tenemos funcionando nuestro Servidor LIGHTTPD con PHP5.

Pronto voy a subir como hostear más de un dominio mediante la hermosa modalidad de host-virtuales ;)



jueves, 12 de abril de 2012

MINIX 3 - SO Libre

Antes que nada voy a pedirles que si no les interesa este tema simplemente cierren la pestaña y listo, habemos muchas personas que nos interesa aprender sobre sistemas operativos (sobre todo la comunidad linuxera) y este MINIX es excelente para empezar, solo se necesita tener conocimientos del lenguaje "C" y obviamente saber lo qeu significa un Sistema Operativo y conocimientos sobre gestión de procesos, planificaciones, administración de Memoria, paginación, etc..

Para aclarar e informar un poco voy a avisarles que esto NO ES LINUX.

Si bien MINIX fué desde donde Linus Torvalds se apoyo para crear Linux aya por sus orígenes (cuando estaba aburrido) cabe aclarar que ambos SO's tomaron caminos diferentes. Al principio AST y Linux debatian antre si debían o si sería mejor usar kernels monolíticos o kernels modulares, despues de eso ya es toda historia, si les interesa un poco más en este sitio podran encontrar mas información www.google.com.ar  

Minix fue y sigue siendo un sistema operativo orientado al sector educativo, tiene una notabla menor cantidad de líneas de código en comparación con linux y es lo que permite que pueda ser más fácil de entender para cualquier estudiante o persona que tenga ganas de aprender. 

dijo:
En su tiempo para usar MINIX habia que ser capaz de compilar cualquier herramienta GNU xq no venia con ambiente gráfico ni nada por el estilo, tampoco estaba preparado para soportar miles de hardwares ni nada parecido (eso hasta ahora no cambio mucho, pero funciona normalmente). Ya dije que la finalidad de MINIX es ademas de brindar funcionalidad poder aprender como funciona un Sistema Operativo. Nació simple y asi lo quiere seguir manteniendo su autor.



O sea que era así... 









Ahora algo de Historia cortita como patada de chancho  

MINIX fue liberado en 1987 pra fines educativos, consistía de 11.800 líneas de C y 800 líneas de código ensamblador, era casi el equivalente a la versión 7 de UNIX. 
MINIX fue el primero de los Sistemas Operativos basados en UNIX que se basaba en el diseño del microkernel, lo cual permite proveer una funcionalidad mínima al kernel para que de esa manera sea confiable y eficiente. Como consecuencia de esto el Sistema de archivos y el manejo de memoria fueron dejados como procesos de usuario. 
La ventaja de los microkernels frente a kerneles monolíticos es que son mucho más fáciles de comprender y de mantener, esto es debido a su estructura modular. Además el proceso de pasar el código del modo kernel al modo usuario lo hace muy confiable y esto es debido a que cuando falla un proceso del modo usuario se producen menos daños que cuando falla un componente en modo kernel. 
Su principal desventaja es que el rendimiento disminuye un poco debido a los cambios del modo kernel y del modo usaurio. Sin embargo, el rendimiento no lo es todo: todos los sistemas UNIX modernos ejecuntan X Window en modo usuario y simplemente aceptan la reducción en el rendimiento para obtener una mayor modularidad (al contrario de Windows en donde la GUI está en el mismo Kernel). 

Luego en 2004 tras su tercera versión, MINIX se encuentra dotado con más de 500 programas populares de UNIX, dentro de los cuales voy a resaltar el sistema X Window, varios compiladores (incluyendo gcc), software de procesamiento de textos, software de RED, navegadores Web, y otras cosas.
 

Ahora ya es así... 









Algunas cositas para quitarnos las dudas sobre MINIX, aca vamos a ver información básica y también algunas cositas técnicas



dijo:
PREGUNTAS GENERALES

¿Qué es MINIX 3?
MINIX 3 es un clon pequeño y gratuito de UNIX diseñado para una tener una fiabilidad muy alta. Es particularmente apropiado para PCs de bajo costo, sistemas con recursos limitados y aplicaciones embebidas. Todo su código fuente está disponible, lo cual lo hace apropiado para su uso en cursos o para aquellos que desean aprender por su cuenta cómo funciona un sistema operativo.

¿Qué hardware se necesita para ejecutar MINIX 3?
Se necesita un Intel 386 o superior con 4 MB de RAM, un disco duro IDE con al menos 100 MB de espacio libre y un CD-ROM IDE para iniciar. No es posible (por ahora) iniciar desde un CD-ROM USB.

¿Dónde puedo obtener MINIX 3?
MINIX 3 Versión 3.1 se distribuye en un CD-ROM incluido en el texto Sistemas Operativos. Diseño e Implementación. 3a. Edición (NdT: en inglés) por Andrew S. Tanenbaum y Albert S. Woodhull. Las versiones más nuevas están disponibles gratuitamente en la página de descargas de MINIX 3.

¿Dónde puedo obtener ayuda sobre MINIX 3?
Hay un grupo de noticias USENET. Existe también una lista de correo.

Soy un principiante. ¿Dónde puedo aprender acerca de la programación con MINIX 3?
Comienze consultando esta guía.

Alguien debe haber tenido mi problema anteriormente. ¿Está archivado el grupo de noticias?
Sí. Consulte el archivo.

Desapareció una página que vi en el pasado. ¿Existe alguna manera de encontrarla?
Quizás. Intente con la Wayback Machine.

¿Dónde puedo conseguir información sobre el uso de MINIX 3 para la enseñanza?
Un buen lugar para comenzar es esta página Web.

¿Me puedo unir al grupo de desarrollo de MINIX 3?
Si usted tiene el tiempo, el interés y los conocimientos requeridos, es bienvenido a la comunidad de MINIX 3. Este es el sitio para comenzar.



dijo:
PREGUNTAS TÉCNICAS 

MINIX 3 alega cumplir con POSIX. ¿Qué significa POSIX?
Consulte este documento sobre el estándar POSIX.

¿Cómo aprendo a programar en el entorno de MINIX 3?
Consulte este documento sobre la programación en MINIX.

¿Cómo puedo hacer un disco de RAM de más de 8 MBytes?
Consulte este documento sobre discos de RAM.

¿Cómo puedo arrancar múltiples sistemas operativos en la misma computadora?
Utilice un gestor de arranque múltiple. Para más información, consulte este documento sobre gestores de arranque múltiple.

¿Cómo puedo evitar problemas con el comando vol y los disquetes?
Consulte este documento sobre el comando vol.

¿Por qué el editor elle no se comporta según se indica en la página man?
Para ayuda acerca de elle, consulte este documento sobre elle.

¿Es posible intercambiar datos entre los sistemas de archivos de diferentes sistemas operativos?
Sí. Consulte este documento sobre el intercambio de datos.

¿Cómo veo el borrador de una página man que todavía no ha sido instalada?
Utilice nroff -man man_file | more

¿Qué tipo de rendimiento ofrece MINIX 3?
Comparamos el rendimiento de MINIX 3 (manejadores de dispositivo en espacio de usuario) con el de MINIX 2 (manejadores de dispositivo en espacio de kernel) y MINIX 3 es 5-10% más lento. No lo hemos comparado con otros sistemas debido a que hay muchas otras diferencias (e.g., el manejador de dispositivo de disco actual ni siquiera soporta DMA, el compilador ACK es más rápido que GCC pero el código es peor, los sistemas de archivos son diferentes, etc.) La diferencia más grande es que MINIX 3 representa aproximadamente un año-hombre de trabajo, mientras que otros sistemas representan miles de años-hombre de trabajo y nuestra prioridad ha sido la fiabilidad, no el rendimiento.


dijo:
Fuente para estas 2 citas: ACA






Requerimiento 
El Sistema operativo MINIX, puede ser instalado sobre una arquitectura x86 con al menos 1 Mb de memoria (recomendable) y 40 Mb de espacio libre en disco. 
Cabe señalar que este sistema operativo puede convivir con WINDOWS y/o LINUX en la misma computadora, para lo cual tiene un sistema de boot similar al LINUX. Las restricciones sobre el tamaño de la memoria permiten que la instalación sea mas fácil. 
Existen dos formas de instalar el MINIX en una computadora. 

La primera de ellas es mediante la generación de una partición en el disco rígido. 
La segunda se basa en simular una partición para MINIX en un filesystem de otro sistema operativo como ser DOS o LINUX, esto último se logra gracias a la implementación de un monitor de MINIX que le simula los discos y las particiones necesarias.
 

Aparentemente según lo que andube webeando hay para descargar unas imagenes para isntalarlo en un PenDrive asi que si es que eso funciona perfecto para probar esto... 


Mas información sobre MINIX y todas sus descargas 





Este Sistema operativo fue desarrollado por Andrew Tanenbaum y acompañado de un completo Libro dedicado a MINIX. 
Si les interesa acá se lo pueden bajar el .pdf para comprenderlo mejor. 
Pero obviamente que no hay nada como el olro a un libro de verdad mientras lo estas leyendo  






Aca una Foto del Autor de MINIX y por sobre todo es autor de muchos libros sobre Sistemas Operativos que son altamente recomendables para entender su funcionamiento. 
dijo:



ATENCION!!! No desesperen aca hay dos pequeños manuales de 15 paginas entre los dos en donde te explican sobre... 
Como Compilar MINIX... por si quieren modificar algo y probar... 
http://cid-8f00f29d90d1050f.skydrive.live.com/self.aspx/SoftWare/Como%20Compilarlo.pdf 

Como Instalarlo... 
http://cid-8f00f29d90d1050f.skydrive.live.com/self.aspx/SoftWare/Como%20Instalarlo.pdf 

Bueno ahora si complete un poquito mas
 

Página de MINIX para más información clickeando sobre la imagen





Bueno la verdad espero que les haya gustado esto y despierte un poquito el interés por aprender algo nuevo, Yo Recinén estoy empezando y espero pueda seguir con esto pero inevitablemente voy a tener que ir postergando todo cada tanto pero los que tengan más tiempo a su disposición y les interesa aprovechénlo ahora que existe esto...