domingo 17 de mayo de 2009

Reunión de Usuarios de Linux - Perú


El día sábado 20 de Junio a partir de las 4:00 pm. se llevará a cabo la primera reunión presencial en el presente año, de los usuarios de Linux en el Perú, agrupados en el Peruvian Linux User Group - PLUG.

Para asistir no es necesario ser miembro del PLUG o estar inscrito, el ingreso es completamente libre, pueden participar todos aquellos que tengan algún interés o curiosidad respecto a GNU/Linux o el Software Libre. La reunión se realizará en Lima, en el 4to piso del Centro Comercial Compupalace (Av. Petit Thouars 5356) ubicado entre las Avenidas Petit Thouars y Arequipa en Miraflores.

Posteriormente se tiene programado realizar las reuniones en forma mensual el tercer sábado de cada mes.

Más información y otras formas de participar se pueden encontrar en la página web del PLUG: http://www.linux.org.pe/

jueves 10 de abril de 2008

Linux : Desde Multics - Unix - Minix a Linux

A finales de 1960, el Instituto Tecnológico de Massachusetts, los Laboratorios Bell de AT&T y General Electric trabajaban en un Sistema Operativo experimental llamado Multics (Multiplexed Information and Computing Service - Servicio de Información y Computación Multiplexado). El objetivo del proyecto era desarrollar un sistema operativo interactivo que contase con muchas innovaciones, entre ellas mejoras en las políticas de seguridad. El proyecto consiguió dar a luz versiones para producción, pero las primeras versiones contaban con un pobre rendimiento. Los laboratorios Bell de AT&T decidieron desvincularse y dedicar sus recursos a otros proyectos.
Uno de los programadores del equipo de los laboratorios Bell, Ken Thompson, siguió trabajando para la computadora mainframe GE-635 y escribió un juego llamado Space Travel (Viaje espacial). Sin embargo, descubrió que el juego era lento en la máquina de General Electric. Por ello Thompson con ayuda de Dennis Ritchie escribió nuevamente el programa en lenguaje ensamblador, para que se ejecutase en una computadora DEC PDP-7 (un mini ordenador). Esta experiencia, junto al trabajo que desarrolló para el proyecto Multics, condujo a Thompson a iniciar la creación de un nuevo sistema operativo para la DEC PDP-7. Thompson y Ritchie lideraron un grupo de programadores, entre ellos a Rudd Canaday, en los laboratorios Bell, para desarrollar tanto el sistema de ficheros como el sistema operativo multitarea en sí. A lo anterior, agregaron un intérprete de órdenes (o intérprete de comandos) y un pequeño conjunto de programas. El proyecto fue bautizado UNICS, como acrónimo de Uniplexed Information and Computing System, pues sólo prestaba servicios a dos usuarios (de acuerdo a Andrew Tanenbaum, era sólo a un usuario). La autoría de esta sigla se le atribuye a Brian Kernighan, ya que era un hack de Multics. Dada la popularidad que tuvo un juego de palabras que consideraba a UNICS un sistema MULTICS castrado (pues eunuchs, en inglés, es un homófono de UNICS), se cambió el nombre a UNIX, dando origen al legado que llega hasta nuestros días.


En 1972 se tomó la decisión de escribir nuevamente UNIX, pero esta vez en el lenguaje de programación C, (para entonces UNIX ya contaba con el primer programa de edición electrónica –Trof, un año antes Thomson y Ritchie habían publicado un manual de programación de UNIX). Este cambio significaba que UNIX podría ser fácilmente modificado para funcionar en otras computadoras (de esta manera, se volvía portable) y así otras variaciones podían ser desarrolladas por otros programadores. Ahora, el código era más conciso y compacto, lo que se tradujo en un aumento en la velocidad de desarrollo de UNIX. AT&T puso a UNIX a disposición de universidades y compañías, también al gobierno de los Estados Unidos, a través de licencias. Una de estas licencias fue otorgada al Departamento de Computación de la Universidad de California, con sede en Berkeley. En 1975 esta institución desarrolló y publicó su propio sucedáneo de UNIX, conocida como Berkeley Software Distribution (BSD), que se convirtió en una fuerte competencia para la familia UNIX de AT&T.

Mientras tanto, AT&T creó una división comercial denominada Unix Systems Laboratories para la explotación comercial del sistema operativo. El desarrollo prosiguió, con la entrega de las versiones 4, 5 y 6 en el transcurso de 1975. Estas versiones incluían los pipes o tuberías, lo que permitió dar al desarrollo una orientación modular respecto a la base del código, consiguiendo aumentar aún más la velocidad de desarrollo. Ya en 1978, cerca de 600 o más máquinas estaban ejecutándose con alguna de las distintas encarnaciones de UNIX.

La versión 7, la última versión del UNIX original con amplia distribución, entró en circulación en 1979 . En la década del 80 UNIX contaba con varias versiones desarrolladas en distintas universidades y empresas. Para finalizar con la confusión de todas las versiones divergentes, AT&T decidió combinar varias versiones dando origen en 1983 al Unix System V Release 1. Esta versión presentó características tales como el editor Vi y la biblioteca curses, desarrolladas por Berkeley Software Distribution en la Universidad de California, Berkeley.

En 1993, la compañía Novell adquirió la división Unix Systems Laboratories de AT&T junto con su propiedad intelectual. Esto ocurrió en un momento delicado en el que Unix Systems Laboratories disputaba una demanda en los tribunales contra BSD por infracción de los derechos de copyright, revelación de secretos y violación de marca de mercado

MINIX
Minix es un clon del sistema operativo Unix distribuido junto con su código fuente y desarrollado por el profesor Andrew S. Tanenbaum en 1987. La última versión oficial de Minix es la 3.1.2, publicada el 8 de Mayo de 2006. Fue creado para enseñar a sus alumnos el diseño de sistemas operativos en la Vrije Universiteit de Ámsterdam. La razón de su desarrollo fue porque Unix estaba bajo restricciones de licencia de AT&T, era demasiado complicado y corría sobre máquinas complejas; algo completamente antipedágogico.
Gracias a su reducido tamaño, diseño basado en el paradigma del micronúcleo, y su amplia documentación, resulta bastante apropiado para personas que desean instalar un sistema operativo compatible con Unix en su máquina personal así como aprender sobre su funcionamiento interno. Minix fue desarrollado para correr sobre IBM PC con procesador Intel 8088 o superior, aunque se han creado conversiones para otros sistemas.
Debido al enfoque puramente educacional de Minix, Tanenbaum no permitía que este fuera modificado demasiado ya que esto complicaría el sistema y no permitiría que sus estudiantes lo entendieran en un semestre.
Para una persona poco familiarizada con los elementos internos de un sistema operativo, Minix es una buena opción que le permite entender casi todos los elementos del sistema con solo algunos meses de uso y estudio.


LINUX

En 1991 teniendo como base el Sistema Operativo Minix, Linus Torvalds empezó a programar las primeras lineas de código de lo que hoy se conoce como el Sistema Operativo Linux.

El 25 de agosto de 1991 Torvalds envío el siguiente mensaje al grupo de noticias comp.os.minix :

"Hola a todos por ahí que estan usando minix. Estoy haciendo un sistema operativo (gratuito, es sólo un hobby, no será grande y profesional como gnu) para sistemas 386 (486) AT clones. Esto ha iniciado desde abril y está empezando a tomar forma. Me gustaría algún comentario de las personas como por ejemplo cosas que les gusta o no les gusta en minix, como mi sistema operativo se parece un poco (la misma disposición física de los archivos del sistema, debido a razones prácticas entre otras cosas). Actualmente he portado bash (1.08) y gcc (1.40), y las cosas parecen funcionar. Esto implica que pondré algo en práctica dentro de unos meses y me gustaría saber qué características desea la mayoría de las personas. Cualquier sugerencia será bienvenida, pero no prometo que puedan ser aplicadas :-)


Linus (torva. .. @ kruuna.helsinki.fi)


PS. Sí - es libre de cualquier código de minix, y tiene un multi-hilos fs. NO es portable (386 utiliza la conmutación de tareas, etc), y probablemente nunca será otra cosa que el apoyo AT-discos duros, ya que es todo lo que tengo :-(."

El 05 de Octubre de 1991 Linus mediante este correo anunció por primera vez la versión oficial de Linux:

¿Extraña los agradables días de minix-1.1, cuando los hombres eran hombres y escribían sus propios controladores de dispositivos? ¿Estás sin un buen proyecto y acabas de morir a dentelladas sin un OS que puedas intentar modificar para tus necesidades? ¿Le resulta frustrante cuando no todo funciona en minix? No más amanecidas para obtener un bonito programa de trabajo? Entonces este puesto podría ser para usted :-) Como dije hace un mes (?) Hace un tiempo estoy trabajando en una versión libre de un minix- Buscando algo como para ordenadores AT-386. Por fin he llegado a la fase en que es usable incluso (aunque no podrá ser en función de todo lo que se quiere), y estoy dispuesto a poner las fuentes para una distribución más amplia. Es sólo la versión 0.02 (+1 (muy pequeña) casi un parche), pero he tenido éxito plenamente al ejecutar bash / gcc / gnu-make / gnu-sed / compress, etc en virtud del mismo. Las fuentes de este proyecto, de mi mascota se puede encontrar en nic.funet.fi (128.214.6.100) en el directorio / pub /OS/Linux. El directorio también contiene el archivo README- y un par de binarios para trabajar bajo linux (bash, gcc y actualización, por ahora es todo lo que se puede pedir :-). Se proporciona el codigo completo de las fuentes del núcleo, ya que el codigo de minix se ha utilizado. Las fuentes de la biblioteca son sólo parcialmente libres, de modo que no puede ser distribuido actualmente. El sistema es capaz de compilar "tal y como esta" y se ha puesto a trabajar. Las fuentes de los binarios (gcc y bash) se puede encontrar en el mismo lugar en /pub/ gnu. ALERTA! ¡ADVERTENCIA! NOTA! Estas fuentes todavía necesitan minix-386 para ser compilados (gcc-1,40 y, posiblemente, 1.37.1, no han sido probados), y se necesita configurar minix en la opción correspondiente si se desea ejecutar, por lo que todavía no es un sistema autónomo. Aquellos de ustedes sin minix estan avisados. Estoy trabajando en ello. También tendrá que tener algo de hacker para configurarlo (?), Así que para aquellos que esperan una alternativa a minix-386, por favor, hacer caso omiso de este aviso. En la actualidad está destinado a los hackers interesados en sistemas operativos y sistemas 386 con el acceso a minix. El sistema necesita un AT-compatible con disco duro (IDE está bien) y monitor EGA/VGA. Si todavía está interesado, por favor, lea en el ftp el README/RELNOTES, y/o envie un correo con nueva información. Yo puedo (bueno, casi) escuchar de ustedes preguntar "por qué?". El núcleo estará listo en un año (o dos, o el mes que viene, quién sabe), y ya he modificado minix. Este es un programa para los hackers hecho por un hacker. He disfrutado haciéndolo, y alguien puede disfrutar viendo e incluso modificándolo para sus propias necesidades. Aún es lo suficientemente pequeño como para entender, utilizar y modificar, y estoy ansioso de ver cualquier comentario que usted pueda tener. También estoy interesado en la opinión de alguien que haya escrito alguna de las utilidades, herramientas servicios públicos/biblioteca de funciones para minix. Si sus esfuerzos son libremente distribuibles (incluso en virtud de los derechos de autor o de dominio público), me gustaría saber de usted, así que puede añadirlos al sistema. Estoy utilizando Earl Chews estudio ahora (gracias a un buen sistema de trabajo y Earl), y obras similares será muy bienvenido. Su (C) 's va a ser dejado intacto. Enviarme una línea si está dispuesto a que me permita utilizar su código. Linus.
Luego de este mensaje muchos hackers se sumaron al proyecto colaborando a traves de Internet. Linus tal como lo menciona utilizó el compilador gcc (del proyecto GNU). En 1992 el núcleo Linux fue combinado con el sistema GNU el cual se encuentra compuesto de piezas individuales de software pero que hasta ese momento carecían de núcleo. El Sistema Operativo resultante es lo que se conoce como GNU/Linux (aunque existen algunas controversias por la denominación exacta).

martes 11 de marzo de 2008

Software Libre


Para que las computadoras puedan interactuar con los usuarios requieren una serie de programas y aplicaciones (como el Sistema Operativo, procesadores de texto, hojas de cálculo, etc), pues bien, cuando las computadoras empezaron a desarrollarse a un nivel más alla del ámbito meramente militar y se empezarón a utilizar en entornos académicos como Universidades, necesitaban contar con software, los cuales eran creados por los mismos investigadores y estudiantes quienes lo cedían, copiaban o intercambiaban colaborando entre si como una forma de aprender, mejorar lo creado por ellos mismo o por otros y porque sobre todo lo necesitaban. Cuando las computadoras empezaron a distribuirse o venderse a empresas y organizaciones, este software era una parte integrante de las mismas, un valor añadido que era proporcionado por los mismos vendedores de hardware, quienes en algunos casos tenían areas especificas de desarrollo de software para las computadoras que vendían.

Entre la decada del 70 y 80 sin embargo las condiciones cambiaron, las computadoras pasaron de ser enormes e inalcanzables maquinas sofisticadas vistas solo en peliculas de ciencia ficción a artefactos cotidianos y parte de los enseres de las viviendas, con ello también algunas personas y empresas vieron un enorme potencial comercial en el software, dedicándose entonces a fabricar sistemas operativos, aplicaciones, programas y demás según las necesidades y capacidades de las computadoras, las empresas se dividieron y se especializaron en fabricantes de hardware o fabricantes de software, llegando a desligarlo y hacerlo independiente uno del otro. Poco a poco no bastaba solo crear y vender los programas, estas empresas empezaron a contratar a aquellos que creaban los programas o simplemente compraban a otras empresas pequeñas que habían desarrollado una aplicación o programa interesante y le cambiaban el nombre y marca para venderlo o simplemente lo mandaban al olvido para que no estorbara a su producto estrella. Para asegurarse que nadie más pudiera hacer algo parecido los programas originales (al que se denomina codigo fuente) se empezaron a guardar celosamente y solo se entregaba a los usuarios la aplicación o software resultante previamente "empaquetado" o "compilado" con otra aplicación especifica. Para la decada del 90 se había iniciado ya una competencia por Licencias y Patentes de software de todo tipo que impedía a otras empresas o personas crear, copiar, distribuir, modificar o comercializar algún programa que ya estuviera registrado por una empresa propietaria.

El 27 de Setiembre de 1983
Richard Stallman anuncia públicamente la creación del Proyecto GNU con el objetivo de crear un Sistema Operativo completamente libre (sin restricciones de licencias) con la finalidad de "volver al espíritu de cooperación que prevaleció en los tiempos iniciales de la comunidad de usuarios de computadoras".

Es así que el
Software Libre garantiza a los usuarios, desarrolladores, etc. 4 posibilidades o grados de libertad
Libertad 0 . Es la libertad de Ejecutar el programa con cualquier propósito(privado, educativo, público, comercial, militar, etc).
Libertad 1. Es la libertad de permitir estudiar y modificar el programa y adaptarlo a tus necesidades con pleno acceso al codigo fuente (a quien lo desee o lo necesite)
Libertad 2. Es la libertad de distribuir copias, con lo que puedes ayudar a tu vecino.
Libertad 3 La libertad de mejorar el programa y hacer públicas las mejoras a los demás, de modo que toda la comunidad se beneficie. El acceso al código fuente es un requisito previo para esto.

Un programa es software libre si los usuarios tienen todas estas libertades. Así pues, deberías tener la libertad de distribuir copias, sea con o sin modificaciones, sea gratis o cobrando una cantidad por la distribución, a cualquiera y a cualquier lugar. El ser libre de hacer esto significa (entre otras cosas) que no tienes que pedir o pagar permisos.




martes 4 de marzo de 2008

Sistemas Operativos

Cuando encendemos una computadora lo primero que entra en funcionamiento es el Bios (un procesador o chip) que verifica y reconoce los componentes como la tarjeta de video, las memorias RAM y ROM, el teclado(las luces se encienden y apagan rapidamente), el mouse y otros. Luego de esto el Bios busca el Sistema Operativo.
El Sistema Operativo son un conjunto de instrucciones que permite a los componentes de la computadora interactuar entre ellos y el usuario (humanos), sin el Sistema Operativo serían solo piezas electrónicas ensambladas.
El Sistema Operativo administra cada uno de los componentes y traduce las instrucciones y ordenes que ingresan los usuarios, por ejemplo al digitar una letra recibe impulsos eléctricos desde un teclado y los muestra en un monitor como puntos encendidos o apagados que los usuarios pueden reconocer como tal.
El Sistema Operativo también es la base de otras aplicaciones o software que van a permitir a la computadora realizar diversas tareas, por ejemplo para redactar documentos utilizaremos procesadores de texto, para realizar calculos o funciones matemáticas podemos usar hojas de cálculo o calculadoras, para ver imagenes podemos utilizar software de diseño o graficadores o editores de imagenes o video, para oir música podemos usar reproductores de audio. El Sistema Operativo va a permitir a todo ese software utilizar los recursos (hardware) que tiene la computadora.
Existe gran variedad de Sistemas Operativos, por ejemplo hasta los primeros años de la decada del 90 el más conocido y usado era el Sistema Operativo de Disco (Disk Operating System- DOS por sus siglas en inglés), el cual al principio podia ser usado en dos diskettes de 5 1/2 pulgadas de 120 Kb cada uno, se introducian en la disquetera mientras encendía la computadora y una vez que el DOS se guardaba en la memoria podían usarse las aplicaciones (que estaban en otros diskettes), con los Discos Duros ya no fue necesario utilizar diskettes y el DOS podía grabarse en ellos.