sábado, 27 de agosto de 2011

La marcha del pinguino: Ars da un vistazo a 20 años de Linux.

El aniversario fue hace dos días pero había que celebrarlo. El sistema es un fenómeno, pero lo es mas la manera en que se gestiona su desarrollo, o cuando menos la manera en que inició, hoy en día las empresas tienen una parte considerablemente grande del desarrollo en sus manos. A decir de Eric Raymond "Linux vino a trastocar buena parte de lo que pensaba que sabía. Había estado predicando durante años el evangelio UNIX de las herramientas pequeñas, de la creación rápida de prototipos y de la programación evolutiva. Pero también creía que existía una determinada complejidad crítica, por encima de la cual se requería un enfoque más planeado y centralizado." Y desde ese punto de vista Linux debió ser un completo fracaso, pero no fue así. Si nunca han leído "La catedral y el bazar" consideren hacerlo, es una lectura bastante entretenida
A veces me molesta un poco el hecho de que sistemas como FreeBSD no tengan tal difusión ni hagan tanto ruido como hace Linux, pero ni modo, al César lo que es del César el sistema funciona y funciona muy bien (luego de varios años de enseñar Linux me habitué al arranque por niveles que es una de las diferencias básicas con FreeBSD y similares, terminó gustándome mas aunque me duela admitirlo, o me acostumbré...). El fin que aquí les va, el original es de arsTechnica. Nos vemos el lunes si Dios quiere (lunes de redes si Dios me da tiempo). Provecho! 

La marcha del pinguino: Ars da un vistazo a 20 años de Linux.
El kernel de Linux fue creado originalmente por Linus Torvalds, un estudiante de informática finlandés, y anunciado por primera vez al mundo el 25 de agosto de 1991-hace hoy exactamente 20 años. En ese momento, Torvalds describió su obra como un "hobby" y sostuvo que no sería "grande y profesional" como el proyecto GNU.

Sin embargo, el kernel de Linux resultó ser una de las piezas más importantes de software de código abierto que se haya desarrollado. Durante las últimas dos décadas, ha pasado de ser un humilde hobby a un fenómeno global que se ejecuta en todo, desde lectores de libros electrónicos de bajo costo a la mayoría de las supercomputadoras del mundo. Así es como creció.

Desde Freax a Linux
Aun cuando es fácil ahora tomar el nombre de "Linux" por dado, Torvalds rechazó modestamente la idea de nombrar el nuevo kernel como su propio nombre, llamándolo en su lugar Freax. El nombre "Linux" fue seleccionado por Ari Lemmke, un empleado de la Universidad Tecnológica de Helsinki (HUT) que creó el directorio en el que fue alojado el código fuente original de Linux en el servidor FTP de la Universidad y Red de Investigaciones de Finlandia (FUNET). A Lemmke supuestamente no le gustaba el nombre de "Freax" y creyó que "Linux" sonaba más atractivo.


La versión original 0.01 de Linux en realidad no podía ejecutarse. Torvalds publicó el código fuente, a pesar de sus deficiencias técnicas - para beneficio de Lemmke, que había expresado su interés después del anuncio inicial. No fue sino hasta la versión 0.02 5 liberada el 5 de octubre de 1991 que funcionó como un sistema operativo.

Las primeras versiones del código fuente del kernel de Linux se publicaron bajo términos de licencia que especificaban que el software era libre de usarse y redistribuirse para fines no comerciales. El código se cambió a la Licencia Pública General GNU en 1992, tras el lanzamiento de la versión 0.12, y el kernel de Linux está siendo distribuido bajo la misma licencia hasta el día de hoy.

El paisaje de UNIX en el nacimiento de Linux Otros prominentes clones de UNIX ya estaban en desarrollo en el momento del nacimiento de Linux, incluyendo algunos que fueron distribuidos en forma de código fuente para el beneficio de los académicos y aficionados.
Los sistemas Berkeley Software Distribution (BSD), derivados originalmente del código de UNIX de los laboratorios Bell, poco a poco surgieron como una variante distinta de UNIX durante la década de 1980. La mayor parte del código propietario de UNIX había sido purgado en el momento de la liberación de BSD Networking Release 2 (Net/2) (que no era funcional) publicada en 1991, un mes antes de que Torvalds anunciara su proyecto. El desarrollador William Jolitz liberó un versión funcional portada a la arquitectura 386 el año siguiente.

Aunque BSD tenía un gran potencial y una fuerte base de desarrolladores, el proyecto fue paralizado en la puerta de salida debido a una demanda presentada por una filial de Unix System Laboratories de AT&T, que tenía los derechos de propiedad del sistema operativo UNIX V. AT&T tenía algunas preguntas sobre si el código gravado por derechos de propiedad intelectual de USL había sido verdaderamente purgado de BSD en su totalidad. Tales preocupaciones sofocaron la adopción de BSD hasta que el pleito se resolvió en 1994 en términos que disiparon la nube de incertidumbre.
Richard Stallman, el fundador idealista del movimiento de software libre, lanzó el proyecto GNU en 1983 con el objetivo de crear un clon de UNIX bajo una licencia de Software Libre. El proyecto GNU originalmente iba a adoptar el núcleo TRIX del MIT en 1986, pero más tarde decidió construirlo sobre la base de un microkernel Mach, que se estaba desarrollando en la Universidad Carnegie Mellon (CMU).

A comienzos de 1991, el sistema estaba esperando que CMU determinara si podría liberar Mach bajo una licencia de software adecuado. El desarrollo real de kernel GNU Hurd sobre Mach no iniciaría hasta finales de 1991. El desarollo de Hurd nunca tuvo un gran impulso y en consecuencia tampoco consiguió mucha aceptación. Hurd está aún en fase de desarrollo activo, sin embargo, y pronto será soportado en un port oficial de Debian.
MINIX también jugó un papel importante en la historia temprana de Linux. El profesor de Vrije Universiteit de Amsterdam Andrew Tanenbaum creó el kernel de MINIX y liberó el código fuente en 1987 a través de los libros de texto de la editorial Prentice Hall, que vendió las copias a los estudiantes e investigadores por $ 69. MINIX fue construido con una arquitectura de microkernel que refleja lo que la comunidad académica considera como una de las mejores prácticas de diseño de sistemas operativos.

Tanenbaum creó MINIX y además un libro de texto para enseñar diseño de sistemas operativos, por lo que no tenía ningún interés en la evolución del código en una plataforma de producción de calidad. Según ha explicado en un ensayo de 2004 sobre la historia de MINIX, que quería mantener el código tan esbelto y comprensible como fuera posible en beneficio de sus estudiantes. Rechazó varias solicitudes de extensión del código con varias características que habrían aumentado su complejidad y disminuido su valor de exposición pedagógica.
GNU y MINIX jugaron un papel esencial en la creación de Linux. Las primeras versiones de Linux se arrancaban sobre MINIX y tomaron inspiración en el kernel de MINIX. Los primeros usuarios de Linux también dependían en gran medida de las herramientas GNU y su compilador de C, como muchos lo siguen haciendo hoy.

"Tristemente, un núcleo por sí mismo no le lleva a ninguna parte. Para lograr un sistema de trabajo se necesita un intérprete de comandos (shell), compiladores, una librería, etc Estas son partes separadas y puede estar bajo derechos de autor estrictos (o aun no tan estrictos). La mayoría de las herramientas usadas en Linux son software GNU y están bajo el copyleft de GNU ", escribió Torvalds en las notas originales de la versión 0.01 de Linux. "El núcleo de Linux se ha construido sobre minix, ya que era mi idea original era que fuera compatible a nivel binario con minix. Esto fue eliminado, a medida que las diferencias se hicieron más grandes, pero el sistema todavía se asemeja mucho a minix. "

El debate Torvalds y Tanenbaum
Aunque Linux y MINIX tenían mucho en común en sus inicios, incluyendo un diseño de sistema de archivos similares, importantes diferencias técnicas entre los dos núcleos se convertirían más tarde en objeto de un debate que ocurrió entre Torvalds y Tanenbaum.
El kernel de Linux tiene una arquitectura "monolítica", mientras que el MINIX de Tanenbaum fue diseñado como un microkernel modular. En una declaración de 1992, Tanenbaum declaró que el kernel de Linux era "obsoleto" desde el principio y que la construcción de un kernel monolítico era un "gran paso hacia atrás" en el estado de la técnica y "una idea realmente mala". Tanenbaum llegó a sugerir que la gente que quería un sistema operativo libre moderno mejor esperaran a que GNU les ofreciera un microkernel en lugar de utilizar Linux.

Torvalds respondió fuertemente a las críticas y defendió su decisión de diseño. Aunque reconoció los beneficios teóricos del diseño de microkernel, argumentó que Linux era un núcleo mejor en el mundo real que MINIX debido una serie de ventajas técnicas pragmáticas en áreas como el threading y la multitarea. Pensó que GNU eventualmente podría producir una alternativa superior, pero siguió avanzando con Linux porque había una demanda evidente de una solución inmediata.
"Yo tengo más excusas de las que usted tiene, y Linux sigue siendo superior a minix en casi todas las áreas", escribió Torvalds en respuesta a Tanenbaum. "Desde un punto de vista teórico (y estético) linux pierde. Si el kernel de GNU hubiera estado listo en la primavera pasada, yo no me habría molestado siquiera en comenzar mi proyecto: el hecho es que no fue así y aun no lo es. Linux gana en gran medida dado que está disponible ahora mismo ».

Linux llegò en un momento crucial en la historia de la informática, ofreciendo una combinación ideal de características útiles. Torvalds estaba dispuesto a colaborar con los demás y añadir las características que los usuarios deseaban, el código fue una implementación limpia, sin ningún tipo de gravámenes de propiedad intelectual, y estaba siendo conducido a un buen ritmo con un enfoque en las consideraciones pragmáticas. Estas ventajas permitieron que Linux atrajese el interés durante sus años de formación.

Arquitectura y portabilidad Uno de los temas técnicos más importantes que surgieron en el debate entre Torvalds y Tanenbaum fue el tema de la portabilidad. El kernel de Linux había sido diseñado para procesadores 386 de Intel y se acopló perfectamente a la arquitectura x86. Pero el profesor estaba convencido de que la arquitectura x86 "no va a durar tanto tiempo", y que poco a poco se vería desplazada por arquitecturas nuevas y más sofisticadas. Sobre esa base, consideró que la construcción del núcleo sobre una arquitectura específica de procesador era miope.
Tanenbaum estaba obviamente errado sobre el destino de la arquitectura x86, pero su queja sobre la falta de portabilidad inicial del núcleo se basó en este hecho. Torvalds comenzó inicialmente el proyecto con el fin de aprender más acerca de las capacidades de la CPU 386 en su nuevo equipo. Ni siquiera estaba tratando de desarrollar un núcleo originalmente, sólo quería experimentar con la conmutación de tareas en 386.

A medida que el experimento se convirtió en un núcleo, Torvalds se fue extendiendo a todos los rincones del conjunto de funciones 386. También utilizó un montón de código ensamblador en el principio. Estas características hicieron al núcleo técnicamente interesante y muy poderoso en el hardware x86, pero hicieron parecer la portabilidad un desafío insostenible. Torvalds Linux describío Linux como "no portátil" en un post que escribió en USENET en 1991 en respuesta a un desarrollador que quería adaptar Linux a Amiga.
"Simplemente, yo diría que la adaptación es imposible. Está más que nada en C, pero la mayoría de la gente no llamaría a lo que escribo C. Utiliza todas las funciones imaginables que pude encontrar de los 386, ya que también fue un proyecto que me enseñó acerca de la 386. Como ya se mencionó, utiliza una MMU, tanto para la paginación (no en el disco todavía) como para la segmentación. Es la segmentación lo que hace que sea muy dependiente de 386 ", escribió. "Además, utiliza todas las características de gcc que pude encontrar, en concreto la Directiva __asm__, por lo que no se necesitan tantos objetos de lenguaje ensamblador. Algunos de mis archivos 'C' (en concreto MM.C) son casi tanto ensamblador como C. "

Por supuesto, Linux no permaneció "no portátil" por mucho tiempo. El moderno kernel de Linux soporta una amplia variedad de arquitecturas de CPU y puede funcionar en hardware especializados que van desde dispositivos empotrados a los mainframes. La transición de un diseño 386-dependiente a soportar diversos multi-arquitecturas fue uno de los cambios más significativos que tuvieron lugar en la evolución del kernel de Linux.
Algunos de los primeros esfuerzos para portar Linux a arquitecturas de CPU adicionales se enfocaron al 68000 de Motorola, SPARC, y la DEC de Alfa. El soporte para Alfa fue particularmente significativo, sin embargo, debido a que fue el primer port que se hizo.

Digital Equipment Corporation (DEC) tuvo un temprano interés en Linux y pensó que podría ser un sistema operativo de nivel de entrada atractivo para equipos Alpha. El ingeniero de DEC Jim Paradis comenzó a trabajar en un port de Linux de 32 bits para alfa a finales de 1993 como una prueba de concepto interna.
DEC también ayudó a pagar a Torvalds para asistir a una conferencia de usuarios de DEC en Nueva Orleans en 1994 a petición del organizador de la conferencia. La empresa quedó tan impresionado con Torvalds que decidió darle un sistema Alpha para que pudiera trabajar el mismo en el port. Torvalds se mostró entusiasmado con el proyecto y empezó a colaborar con los ingenieros de DEC en un nuevo port para 64 bits en Alfa que sustituyó al anterior trabajo experimental realizado por Paradis.

Linux 1.2 fue lanzado en 1995 con soporte para Alpha, SPARC y MIPS. Torvalds llamó divertidamente a la versión "Linux 95" e hizo algunas bromas sobre el modelo de licenciamiento de Microsoft en las notas de versión 1.2 de Linux.

Participación de las empresasJon "Maddog" Hall fue fundamental para promover el apoyo inicial de DEC para Linux. Leyó por primera vez en 1993 acerca de Linux y se reunió con Torvalds en 1994 en el evento de Nueva Orleans. Después de la reunión, Hall concluyó que Linux podría ser una fuerza importante en el futuro de la informática empresarial, se involucró en el proyecto y estableció una estrecha amistad con Torvalds. Hall se ha convertido en una de las figuras más reconocibles y ampliamente conocidas en la comunidad Linux.
Durante una sesión este mes en la conferencia de LinuxCon en Vancouver, Hall recordó su temprana participación en Linux. Él describió un informe que escribió y presentó a la administración de DEC después de darle la estación de trabajo Alpha a Torvalds. En el informe, había una viñeta que decía: "Linux es inevitable." En ese momento, todos se rieron de él. Hoy, dice, la mayoría de la gente que se rió ahora están trabajando en Red Hat.

La participación de las empresas ha tenido un papel importante en el desarrollo y la adopción de Linux. DEC fue uno de los primeros grupos de interés, pero Red Hat, el mas exitoso distribuidor comercial de Linux, es sin duda la empresa que define Linux.
La distribución de Red Hat Linux fue creada por el desarrollador Marc Ewing en 1994. Se unió al empresario de Linux Bob Young al año siguiente para fundar Red Hat software. (Red Hat es el nombre de un sombrero rojo real que Ewing solía usar cuando asistía a CMU como estudiante. El sombrero original fue exhibido en LinuxCon en una impresionante galería que la Fundación Linux reunió para presentar la historia de Linux.)

Young fue Director General hasta poco después que la compañía dio a conocer su oferta pública inicial en 1999. Red Hat ha visto un gran crecimiento desde su fundación. La empresa adquirió el proveedor de herramientas de desarrollo Cygnus en el año 1999, se hizo con el servidor de aplicaciones de código abierto JBoss en 2006, además de la plataforma de virtualización Qumranet en 2008.
Red Hat, que se espera que genere un billón de dólares en ingresos el próximo año, es también uno de los colaboradores más prolíficos de Linux. La empresa contribuye con el código para la plataforma Linux desde el núcleo y hasta el escritorio. Red Hat fue el contribuyente número uno del código corporativo para el kernel de Linux el año pasado y representó casi el 12 por ciento de todo el desarrollo del kernel. En los últimos años, las inversiones en Linux de Red Hat en el área de la virtualización han sido particularmente significativas.

Otra empresa con una larga historia de participación en Linux es SUSE - originalmente S. u. s. e., un acrónimo de Software und System-Entwicklung. La empresa alemana fue fundada en 1992 y trató de prestar servicios comerciales y soporte para Linux. La distribución de Linux de la compañía fue muy popular en Europa y comenzó a ver una adopción comercial importante, siendo especialmente conocida por su sistema de gestión gráfico distintivo llamado YaST.
Cuando Novell llegó al mercado de Linux en el 2007, la compañía adquirió SUSE y Ximian, con el objetivo hacer converger las dos importantes distribuciones Linux en un producto unificado. Novell decidió mantener el nombre comercial de SUSE, pero simplificado unificando el tipo de letra. Bajo la propiedad de Novell, SUSE hecho algunos avances importantes, pero siempre ha jugado un papel secundario a Red Hat. Novell contribuyó con aproximadamente un 5 por ciento del desarrollo del kernel de Linux el año pasado.

Novell fue recientemente adquirida por Attachmate, que ha optado por mantener la venerable marca SUSE viva.


Fuera del espacio de los distribuidores, IBM es sin duda uno de los más comprometidos aliados corporativos de Linux. Dan Frye, vicepresidente de Open Systems en IBM y el autor de la estrategia Linux de la empresa, discutió el descubrimiento de IBM de Linux durante una sesión en LinuxCon.


Frye dice que IBM llegó "tarde a la fiesta" y empezaron a tomar en serio Linux en 1998. IBM confía en Linux y es entusiasta acerca de su potencial, pero el alcance del éxito del sistema operativo ha superado las expectativas de la compañía.

IBM fundó un Centro de Tecnología Linux en 1999 con el objetivo de habilitar Linux a través de las plataformas de hardware de IBM, el centro todavía existe hoy y emplea a aproximadamente 600 ingenieros que trabajan en tecnologías relacionadas con Linux. En una declaración de 2001, los ejecutivos de IBM se comprometieron a invertir mil millones de dólares en Linux.
En 2003, IBM produjo un comercial de televisión destacando los puntos fuertes de la plataforma. El icónico comercial cuenta con un niño que aprende a partir de una serie de instructores, el niño es entonces identificado por el narrador como Linux. "Lo que el aprende, todos aprendemos", dice el narrador.


Aunque IBM tenía mucho que aprender acerca de software de código abierto cuando empezó a contribuir al kernel de Linux, la compañía ha recorrido un largo camino y ha creado fuertes lazos con la comunidad. En LinuxCon, Frye discutió la importancia de trabajar hacia arriba y contribuir con otros colaboradores. IBM aumentó su productividad en Linux, dijo, al exigir a sus empleados a colaborar entre sí a través de canales públicos de la Comunidad en lugar de las listas privadas de correo interno.

Distros
La participación de las empresas ha sido fundamental para el éxito de Linux, pero también lo ha hecho la comunidad que se formó alrededor del OS. La historia de Linux está estrechamente entrelazada con la historia de las distribuciones independientes y orientadas a la comunidad de Linux que han proporcionado un rico ecosistema de voluntarios para fomentar el desarrollo de Linux.
La primera distribución de Linux en ver el uso generalizado, SoftLanding Linux System (SLS), fue creada en 1992. Era una completa instalación de Linux con aproximadamente 600 diferentes herramientas y un entorno gráfico básico. La instalación completa utilizaba sólo 90MB de almacenamiento. Podría funcionar con un mínimo de 2 MB de RAM, pero se requerían 8MB de RAM si el usuario deseaba ejecutar Xwindows.

SLS pronto fue superada por un número de alternativas. La venerable distribución Slackware fue lanzado por primera vez por Patrick Volkerding en 1993. Originalmente trató de remediar algunas deficiencias técnicas en SLS, pero finalmente terminó por desarrollar su propia distribución. Slackware sigue siendo activamente desarrollado por una comunidad fuerte, y publicó su última versión, la versión 13.37 en abril. Slackware es una distribución Linux de bajo coste que está pensada para funcionar más como un entorno tradicional de UNIX.


Debian es una importante distribución Linux impulsada por la comunidad que nació originalmente de la frustración con SLS. Fue fundada en 1993 por el desarrollador Ian Murdock con el objetivo de construir una distribución centrada en los valores del movimiento del Software Libre. Llamó a la distribución uniendo su nombre y el de su novia (ahora su ex esposa) Debra.

El modelo de gobierno del proyecto ha evolucionado en concordancia con la visión original, dando lugar a la creación del Contrato Social de Debian y las Directrices de Software Libre de Debian. Una de las más importantes contribuciones técnicas de Debian a Linux es el sistema de gestión de paquetes APT, y el repositorio de paquetes de software de Debian es enorme.
Debian también ha generado una serie de derivados significativos, incluyendo Ubuntu, una distribución de Linux centrada en el escritorio fundada por el multimillonario certificado SSL y turista espacial, Mark Shuttleworth, en 2004. Shuttleworth estuvo involucrado anteriormente en la comunidad de Debian y pensó a Ubuntu como un sistema más moderno, un entorno de Linux fácil de usar, y de desarrollo rápido - basado en las fortalezas tradicionales de Debian.

Hoy
El kernel de Linux ha crecido enormemente desde su nacimiento en 1991. Las estadísticas publicadas el año pasado indicaban que el núcleo de Linux tenía 13 millones de líneas de código (ahora son 14 millones) con un promedio de 5 parches contribuidos por hora.
Una parte importante de ese código es ahora aportado por las grandes empresas, incluidas las distribuciones comerciales de Linux, los fabricantes de electrónica de consumo, y los vendedores de chips. La Fundación Linux estima que más de 500 compañías diferentes están involucrados de alguna manera. Aunque la participación de las empresas sigue siendo alta, las estadísticas muestran que entre el 15 y el 20 por ciento de las contribuciones siguen procediendo de los desarrolladores, un grupo independiente, que en conjunto representa más contribuciones de cualquier empresa individual.

Durante una sesión sobre la historia del proceso de desarrollo del kernel en LinuxCon, el desarrollador del kernel y escritor de LWN Jonathan Corbet discutió la demografía de la población de desarrolladores de Linux y el crecimiento de las contribuciones. La participación es más fuerte que nunca, pero el panorama está cambiando.
Corbet comentó que el volumen de parches contribuido no decae, a diferencia de una predicción hecha en 1995 por el destacado desarrollador del kernel Andrew Morton. La complejidad del código va en aumento, sin embargo, convirtiendo a Linux en menos hackeable y creando una barrera más alta a la entrada de nuevos colaboradores.

Debido a la madurez del kernel de Linux, simplemente ya no es la fruta bajita que solía ser. Corbet también señaló que la base de desarrolladores centrales se está haciendo mayor, su pelo empieza a tornarse gris, bromeó, si es que aun tienen pelo.
Torvalds sigue siendo el desarrollador líder del kernel, pero una cantidad significativa de trabajo se delega a un grupo de mantenedores de componentes específicos. Torvalds dice que él pasa la mayor parte de su tiempo de trabajo en el núcleo escribiendo e-mails para coordinar el proceso y orientando las decisiones de diseño técnico. Es contratado por la Fundación Linux y vive en Portland, Oregon con su familia.

Aun cuando Linux no ha sido un éxito total en todos los mercados, sigue siendo un fracaso en el escritorio -- el sistema operativo ha tenido un profundo impacto en la industria de la tecnología y la informática empresarial. El profesor de la Universidad de Columbia, Eben Moglen, uno de los autores originales de la GPL, tomó un momento en LinuxCon para discutir sus puntos de vista sobre el papel que Linux tiene en la sociedad. Él describió a Linux como el acero y el carbón de la revolución industrial del siglo 21. Linux y la Internet, dijo, han cambiado la civilización humana en conjunto, más que cualquier otro par de inventos.
Linux se ejecuta en la mayoría de las súper computadoras del mundo, muchos de los sitios web más populares, y un gran número de productos de electrónica de consumo corriente. Si usted busca en la Web con Google, interactuar con tus amigos en Facebook, buscar un dato en la Wikipedia, lee un libro en un Kindle, ve Netflix en una caja Boxee, o hacer una llamada con un teléfono Android, usted está sosteniéndose en Linux . Jon "Maddog" Hall luce ahora francamente profético cuando su informe de 1994 definió el auge de Linux como inevitable.

Nota final: El original incluye un material sacado de The Linux Foundation que es mas largo que un dolor así que lo omití, si les interesa verlo, pueden ir aquí, hay varios materiales además que les gustarán.