Monday, November 13, 2006

Linux

Fuente Wikimedia
Linux es la denominación de un sistema operativo y el nombre de un núcleo. Es uno de los paradigmas del desarrollo de software libre (y de código abierto), donde el código fuente está disponible públicamente y cualquier persona, con los conocimientos informáticos adecuados, puede libremente estudiarlo, usarlo, modificarlo y redistribuirlo.
El término Linux estrictamente se refiere al
núcleo Linux, pero es más comúnmente utilizado para describir al sistema operativo tipo Unix (que implementa el estándar POSIX), que utiliza primordialmente filosofía y metodologías libres (también conocido como GNU/Linux) y que está formado mediante la combinación del núcleo Linux con las bibliotecas y herramientas del proyecto GNU y de muchos otros proyectos/grupos de software (libre o no libre). El núcleo no es parte oficial del proyecto GNU (el cual posee su propio núcleo en desarrollo, llamado Hurd), pero es distribuido bajo los términos de la licencia GNU GPL.
La expresión Linux también es utilizada para referirse a las
distribuciones GNU/Linux, colecciones de software que suelen contener grandes cantidades de paquetes además del núcleo. El software que suelen incluir consta de una enorme variedad de aplicaciones, como: entornos gráficos, suites ofimáticas, servidores web, servidores de correo, servidores FTP, etcétera. Coloquialmente se aplica el término Linux a éstas, aunque en estricto rigor sea incorrecto, dado que la distribución es la forma más simple y popular para obtener un sistema GNU/Linux.
La
marca Linux (Número de serie: 1916230) pertenece a Linus Torvalds y se define como "un sistema operativo para computadoras que facilita su uso y operación".

Desde su lanzamiento, Linux ha incrementado su popularidad en el mercado de
servidores. Su gran flexibilidad ha permitido que sea utilizado en un rango muy amplio de sistemas de cómputo y arquitecturas: computadoras personales, supercomputadoras, dispositivos portátiles, etc.
Los sistemas GNU/Linux funcionan sobre más de 20 plataformas diferentes de
hardware; entre ellas las más comunes son las de los sistemas compatibles con PCs x86 y x86-64, computadoras Macintosh, PowerPC, Sparc y MIPS.
Asimismo, existen
Grupos de Usuarios de GNU/Linux en casi todas las áreas del planeta.
Una distribución es un conjunto de aplicaciones reunidas por un grupo, empresa o persona para permitir instalar fácilmente un sistema GNU/Linux. Es un 'sabor' de GNU/Linux. En general se destacan por las herramientas para configuración y sistemas de paquetes de software a instalar.
Existen numerosas
distribuciones GNU/Linux (también conocidas como "distros"), ensambladas por individuos, empresas y otros organismos. Cada distribución puede incluir cualquier número de software adicional, incluyendo software que facilite la instalación del sistema. La base del software incluido con cada distribución incluye el núcleo Linux, al que suelen adicionarse también varios paquetes de software.
Las herramientas que suelen incluirse en la
distribución de este sistema operativo se obtienen de diversas fuentes, incluyendo de manera importante proyectos de código abierto o libre, como el GNU y el BSD. Debido a que las herramientas que en primera instancia volvieron funcional al núcleo de Linux provienen de un proyecto anterior a Linux, Richard Stallman (fundador del proyecto GNU) pide a los usuarios que se refieran a dicho sistema como GNU/Linux. A pesar de esto, la mayoría de los usuarios continúan llamando al sistema simplemente "Linux" y las razones expuestas por Richard Stallman son eterno motivo de discusión. La mayoría de los sistemas GNU/Linux incluyen también herramientas procedentes de BSD.
Con la adopción por numerosas empresas fabricantes de PCs, muchas
computadoras son vendidas con distribuciones GNU/Linux pre-instaladas, y Linux ha comenzado a tomar su lugar en el vasto mercado de las computadoras de escritorio.
Con
entornos de escritorio, GNU/Linux ofrece una interfaz gráfica alternativa a la tradicional interfaz de línea de comandos de Unix. Existen en la actualidad numerosas aplicaciones gráficas, ya sean libres o no, que ofrecen funcionalidad que está permitiendo que GNU/Linux se adapte como herramienta de escritorio.
Algunas
distribuciones permiten el arranque de Linux directamente desde un disco compacto (llamados LiveCDs) sin modificar en absoluto el disco duro de la computadora en la que se ejecuta Linux. Para este tipo de distribuciones, en general, los archivos de imagen (archivos ISO) están disponibles en Internet para su descarga.
Otras posibilidades incluyen iniciar el arranque desde una red (ideal para sistemas con requerimientos mínimos) o desde un
disco flexible o disquete.
[editar] La escala del desarrollo de Linux
Un estudio sobre la distribución
Red Hat 7.1 reveló que ésta en particular posee más de 30 millones de líneas de código real. Utilizando el modelo de cálculo de costos COCOMO, puede estimarse que esta distribución requeriría 8.000 programadores por año para su desarrollo. De haber sido desarrollado por medios convencionales de código cerrado, hubiera costado más de mil millones de dólares en los Estados Unidos.
La mayor parte de su código (71%) pertenecía al
lenguaje C, pero fueron utilizados muchos otros lenguajes para su desarrollo, incluyendo C++, Bash, Lisp, Ensamblador, Perl, Fortran y Python.
Alrededor de la mitad de su código total (contado en líneas de código) fue liberado bajo la licencia
GPL.
El
núcleo Linux contenía entonces 2,4 millones de líneas de código, correspondiente al 8% del total, demostrando que la vasta mayoría del sistema operativo no pertenece al núcleo del mismo.
En un estudio posterior, Counting potatoes: the size of Debian 2.2, el mismo análisis fue hecho para
Debian GNU/Linux versión 2.2. Esta distribución contiene más de 55 millones de líneas de código fuente, y habría costado 1.900 millones de dólares (año 2000) el desarrollo por medios convencionales (no libre).
La colección de utilidades para la
programación de GNU es con diferencia la familia de compiladores más utilizada en GNU/Linux. Tiene capacidad para compilar C, C++, Java, Ada, entre otros muchos lenguajes. Además soporta diversas arquitecturas mediante la compilación cruzada, lo que hace que sea un entorno adecuado para desarrollos heterogéneos.
Hay varios
IDEs disponibles para GNU/Linux incluyendo, Anjuta, KDevelop, NetBeans IDE y Eclipse. Además existen editores extensibles como pueda ser Emacs que hoy en día siguen siendo ampliamente utilizados. GNU/Linux también dispone de capacidades para lenguajes de guión (script), aparte de los clásicos lenguajes de programación de shell, la mayoría de las distribuciones tienen instalado Python, Perl, PHP y Ruby

Desde hoy está disponible el código fuente de Java

Sun publica hoy el código fuente de su lenguaje de programación Java, bajo la licencia pública general GNU versión 2 (GPLv2). Cualquiera puede ver, así, las instrucciones que dan vida al compilador javac y al componente HotSpot de la edición estándar (Java Standard Edition). Además, la implementación Java Micro Edition , presente en 1800 millones de teléfonos celulares, también está disponible en www.sun.com/opensource/java . En los primeros meses del año próximo la compañía distribuirá bajo el GPLv2 su versión de código abierto de Java Enterprise Edition (conocida como Project GlassFish ). En diálogo con LA NACION, la directora de marketing de desarrolladores de Sun, Jean Elliott, explicó que así la plataforma "ganará en flexibilidad, y en la innovación que puedan aportar otros programadores, agregando funciones y exportándolo a dispositivos en los que no está presente hoy. Además, nos beneficiamos con más ojos corrigiendo el código. Para Sun, la ganancia está en tener una plataforma más rica que atraiga a más interesados en adquirir el hardware y los servicios que ofrece la compañía para correr Java."

Java

es un lenguaje de programación orientado a objetos desarrollado por James Gosling y sus compañeros de Sun Microsystems al inicio de la década de 1990. A diferencia de los lenguajes de programación convencionales, que generalmente están diseñados para ser compilados a código nativo, Java es compilado en un bytecode que es ejecutado (usando normalmente un compilador JIT), por una máquina virtual Java.
El lenguaje en sí mismo toma mucha de su sintaxis de
C y C++, pero tiene un modelo de objetos mucho más simple y elimina herramientas de bajo nivel como punteros.
Java está sólo lejanamente emparentado con
JavaScript, aunque tengan nombres similares y compartan una sintaxis al estilo de C algo parecida.