miércoles, 5 de septiembre de 2012

Definamos GNU/Línux...

GNU/Línux ha quedado patente de boca en boca, y de computadora en computadora. Con sus penas y glorias; y con sus galardones y diatribas GNU/Línux ha encarnado una función social irrebatible e impecable, sin turbiedades de trasfondo, y sin intenciones ambivalentes.
El intercambio de pares, la cooperación generada por dominios públicos, y la libre distribución de softwares y bienes intelectuales han generado una virulenta solidez perenne y utilitaria capaz de rivalizar contra algunos conceptos monetarios, económicos, y contra ciertos rigores restrictivos legales que generan desinformación, y dificultan la libre difusión de bienes inmateriales. El Código Abierto, y el Software Libre, han favorecido más al pro-común, que a grandes industrias transnacionales opresoras.

El logotipo oficial del Proyecto GNU es un ñú y del núcleo Linux el pingüino TuxContendiendo la Licencia Pública y General (GPL y derivadas) contra las normas restrictivas de las propiedades intelectuales privativas, se ha puesto en solfa el nivel de utilidad y perpetuidad que empresas como Microsoft tendrán en un futuro no muy lejano. Cada día que pasa es un día menos para los injustos monopolios sobre las propiedades intelectuales intangibles.
La Licencia Pública General (GPL y derivadas) está establecida sobre un marco concreto, que se opone férreamente a la apropiación privada del valor creado por el común. El dominio público (o entiéndase propiedad entre iguales, y de pares) difiere esencialmente de la propiedad colectiva, y de la privada: la propiedad privada es individual, pero excluyente, lo que es mío no es tuyo. Pero el Estado, es decir, la propiedad colectiva también es excluyente, aunque en un sentido anverso, pues es nuestro, pero eso significa que no tienes soberanía sobre el mismo, ya que aqueste se rige bajo una burocracia estupefacta (democracia representativa). Lo colectivo absorbe la individualidad, muy a menudo por medio de algún tipo de coerción.
La GPL y derivadas tienen un carácter contractual (de mutuo acuerdo) en el que el usuario final poseerá los mismos derechos y la misma soberanía que tienen sus pares sobre el material intangible con que se beneficia. Cada usuario es libre de poseerlo, y de darle el uso que su albedrío quiera y lejos de ser un compromiso moral, subjetivo, y meramente sentimental, GNU/Linux trastoca facetas de nuestro raciocinio.
Es cuando nos enteramos que GNU/Línux ofrece un "ecosistema" donde podemos trabajarlo, aprenderlo, distribuirlo y modificarlo deliberadamente, cuando comprehndemos las omnímodas facultades obsequiadas por tan noble software.
Ergo, facultativamente GNU/Línux ofrece mayores posibilidades provechosas, antes que cualquier bisutería y oropel propagandeado, tanto por la ignorancia, como por los promotores de la misma, quienes son los mayores beneficiarios de que profusión de la filosofía del dominio público sea ralentizada.
Mas el Software Libre tiene una teórica ventaja, la cual se materializa día a día con su creciente aceptación en los mercados laborales, y en innumerables ámbitos informáticos. De tal modo que se ha enunciado una Ley de Competencia Asimétrica (ley científica) que establece que toda empresa o nación que compita contra una institución, entidad u organismo pro-beneficio basado en formas libres de conocimiento,  orientada a modos de producción participativos, y a la difusión de saberes abocados al pro-común tenderá a perder respecto a esta última. Por tanto, toda empresa o nación que utilice formatos de propiedad cerrados, que no se apoyen en comunidades participativas que promuevan la cocreación, y que tengan una orientación restringida tenderán al fracaso. ¿Qué sucedió con la enciclopedia digital de Microsoft Encarta 2009 versus Wikipedia?¿Se acuerdan cuando Firefox ganó terreno frente Internet Explorer 6? Obviamente Google Chrome ahora está en alza, pero vamos, Chrorium también es totalmente abierto y de dominio público.
Tras definir parte de la filosofía del software libre y del código abierto, empezaremos por definir las generalidades del software en sí.
Empecemos por los componentes que integran el término de GNU/Línux
¿Qué es GNU?
GNU fue un proyecto originariamente creado por Richard Stallman con el objetivo de crear un sistema operativo completamente libre: el sistema GNU.
Tras un manifiesto público llamado "Manifiesto GNU", y divulgado por "Dr. Dobb's Journal of Software Tools", se definieron las metas del proyecto, a fin de solicitar una cooperación mediática, y un apoyo voluntario. Es considerado por muchos participantes del movimiento del software libre, como una fuente filosófica  fundamental.
El término GNU es un acrónimo recursivo que significa GNU No es Unix (GNU is Not Unix). La pronunciación del término en el español es similar a la que se haría con la ñ: "Ñu"
En el Inglés su pronunciación es más parecida a la palabra "new", y Richard Stallman recomienda pronunciarlo "guh-noo". Finalmente no hay una pronunciación clara, por lo que cualesquiera de las mencionadas son correctas.
El sistema GNU fue diseñado para ser compatible con el sistema UNIX, por lo que el hecho de que comparta compatibilidad implica que tenga una estructura compuesta por pequeñas piezas individuales de software, muchas de las cuales ya estaban disponibles, como el sistema de edición de textos TeX y el sistema gráfico X Windows, los cuales tuvieron que ser adaptados para su re-ensamblaje, sin embargo otras piezas fueron escritas en su totalidad.
Fue en 1985 que Richard Stallman creó la Free Software Fountation (FSF), para la provisión de soportes lógicos, legales y financieros al proyecto GNU. la FSF contrató programadores para contribuir a GNU, mas una sustancial parte de los contribuyentes fueron y son voluntarios en la actualidad.
Para 1990 el sistema GNU ya tenía un editor de texto llamado Emacs, y un exitoso compilador del lenguaje C: "GCC". También tenían la mayor parte de las bibliotecas y utilidades que componían al sistema operativo UNIX típico. Sin embargo faltaba un núcleo (kernel).
Básicamente GNU fue el conglomerado de aplicaciones que a posteriori pasó a complementar el kernel Línux (creado por Linus Torvalds).
Antes del núcleo Línux no había otro sustituto que ocupara su lugar, por lo que Línux pasó a formar parte del sistema que conocemos hoy en día. Hubo antecedentes que precedieron a Línux-núcleo, pero éstos fueron descartados tras su aparición. Entre ellos se mencionan los siguientes: TRIX y Hurd.
Todos los aportes de GNU están bajo licencia GPLv3
¿Qué es el Núcleo Informático?
El núcleo informático, o Kernel (por su derivación germánica kern, que significa hueso o núcleo)  es un software que constituye medularmente la parte central de un sistema operativo. Es el principal responsable de facilitar a los distintos programas un acceso seguro al Hardware, y en su forma más básica gestiona los recursos del computador. Habiendo un límite en el uso de los programas, también decide qué programas han de hacer uso del Hardware, y durante cuánto tiempo. A esto se conoce como multiplexado. Acceder al sector físico de la computadora puede ser sumamente complejo, por lo que los núcleos lógicos del software implementan una serie de abstracciones, a fin de poner a disposición del programador, o usuario final una interfaz limpia y amigable.
File:Ubuntu 12.04 Final Live CD Screenshot.pngEl núcleo informático es el que gestiona los controladores del Hardware, los programas ejecutados y los límites del procesador, la memoria principal y auxiliar. Hay una estrecha correlación entre la arquitectura del procesador, la memoria RAM, los periféricos de entrada/salida y el núcleo informático.
Existen cuatro tipos de núcleos: híbridos, exonúcleos, monolíticos y micronúcleos. De los cuales Línux tiene un núcleo monolítico híbrido.
Finalmente...¿Qué es Línux?
Línux es el núcleo del sistema operativo GNU/Línux. A diferencia de lo que muchos afirman, si bien el kernel Línux tiene cierto parentezco con UNIX (casi se podría decir que son primos-hermanos) éste no está basado en el mismo, puesto Línux es el resultado de un ensamblaje estructurado que ha mantenido una lógica similar a UNIX, pero no transcripta, sino reescrita.
A diferencia de GNU, el Kernel Línux está bajo licencia GPLv2 (véase)
En 1991 , en Helsinki, Linus Torvalds comenzó un proyecto que más tarde llegó a ser el núcleo Linux. Esto fue al principio un emulador terminal, al cual Torvalds solía tener acceso en los grandes servidores UNIX de la universidad. Él escribió el programa expresamente para el hardware que usaba, e independiente de un sistema operativo, porque quiso usar las funciones de su nueva computadora personal con un procesador Intel 80386. El sistema operativo que él usó durante el desarrollo fue Minix, y el compilador inicial fue el GNU C Compiler, que aún es la opción principal para compilar Linux hoy (aunque Linux puede ser compilado bajo otros compiladores, tal como el Intel C Compiler).

Lo que en un principio realizó por diversión, se convirtió en el núcleo de nuestros sistemas operativos.
Linux es un núcleo monolítico híbrido. Los controladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario. A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos y las extensiones al núcleo se pueden cargar y descargar fácilmente como módulos, mientras el sistema continúa funcionando sin interrupciones. También, a diferencia de los núcleos monolíticos tradicionales, los controladores pueden ser prevolcados (detenidos momentáneamente por actividades más importantes) bajo ciertas condiciones. Esta habilidad fue agregada para gestionar correctamente interrupciones de hardware, y para mejorar el soporte demultiprocesamiento simétrico.

Linux está escrito en el lenguaje de programación C, en la variante utilizada por el compilador GCC (que ha introducido un número de extensiones y cambios al C estándar), junto a unas pequeñas secciones de código escritas con el lenguaje ensamblador. Por el uso de sus extensiones al lenguaje, GCC fue durante mucho tiempo el único compilador capaz de construir correctamente Linux.
Asimismo se usan muchos otros lenguajes en alguna forma, básicamente en la conexión con el proceso de construcción del núcleo (el método a través del cual las imágenes arrancables son creadas desde el código fuente). Estos incluyen a Perl, Python y varios lenguajes shell scripting. Algunos drivers también pueden ser escritos en C++, Fortran, u otros lenguajes.
El hecho de que Linux no fuera desarrollado siguiendo el diseño de un micronúcleo (diseño que, en aquella época, era considerado el más apropiado para un núcleo por muchos teóricos informáticos) fue asunto de una famosa y acalorada discusión entre Linus Torvalds y Andrew S. Tanenbaum.
En Linux existe un sistema de archivos que carga y contiene todos los directorios, redes, programas, particiones, dispositivos, etc. que el sistema sabe reconocer, o por lo menos, identificar. Este sistema de ficheros y directorios, tiene como base al carácter (/); ese mismo carácter sirve también para demarcar los directorios, como por ejemplo: "/home/usuario/imagen.jpg". El directorio especificado por una ruta consistente sólo por este carácter contiene toda la jerarquía de los directorios que constituyen todo el sistema. A este directorio suele llamárselo directorio raíz. En Linux, a los discos no se les asigna una letra como en Windows (p.e. "C:"), sino que se les asigna un directorio de la jerarquía del directorio raíz (/), como por ejemplo: "/media/floppy". Es práctica común en el sistema de ficheros de Linux, utilizar varias sub-jerarquíasde directorios, según las diferentes funciones y estilos de utilización de los archivos. Estos directorios pueden clasificarse en:
Estáticos: Contiene archivos que no cambian sin la intervención del administrador (root), sin embargo, pueden ser leídos por cualquier otro usuario. (/bin, /sbin, /opt, /boot, /usr/bin...)
Dinámicos: Contiene archivos que son cambiantes, y pueden leerse y escribirse (algunos solo por su respectivo usuario y el root). Contienen configuraciones, documentos, etc. Para estos directorios, es recomendable una copia de seguridad con frecuencia, o mejor aún, deberían ser montados en una partición aparte en el mismo disco, como por ejemplo, montar el directorio /home en otra partición del mismo disco, independiente de la partición principal del sistema; de esta forma, puede repararse el sistema sin afectar o borrar los documentos de los usuarios. (/var/mail, /var/spool, /var/run, /var/lock, /home...)
Compartidos: Contiene archivos que se pueden encontrar en un ordenador y utilizarse en otro, o incluso compartirse entre usuarios.
Restringidos: Contiene ficheros que no se pueden compartir, solo son modificables por el administrador. (/etc, /boot, /var/run, /var/lock...)


Numeración de los Núcleos:

La versión del núcleo Linux original suele constar de tres números. Por ejemplo, asumamos que el número de la versión está compuesta de esta forma: A.B.C[.D] (ej.: 2.2.1, 2.4.13 o 2.6.12.3).
El número A denota la versión del núcleo. Es el que cambia con menor frecuencia y solo lo hace cuando se produce un gran cambio en el código o en el concepto del núcleo. Históricamente sólo ha sido modificado tres veces: en 1994 (versión 1.0), en 1996 (versión 2.0) y en 2011 (versión 3.0).
El número B denota la subversión del núcleo.Antes de la serie de Linux 2.6.x, los números pares indicaban la versión “estable” lanzada. Por ejemplo una para uso de fabricación, como el 1.2, 2.4 ó 2.6. Los números impares, en cambio, como la serie 2.5.x, son versiones de desarrollo, es decir que no son consideradas de producción.Comenzando con la serie Linux 2.6.x, no hay gran diferencia entre los números pares o impares con respecto a las nuevas herramientas desarrolladas en la misma serie del núcleo. Linus Torvalds dictaminó que este será el modelo en el futuro.
El número C indica una revisión mayor en el núcleo. En la forma anterior de versiones con tres números, esto fue cambiado cuando se implementaron en el núcleo los parches de seguridad, bugfixes, nuevas características o drivers. Con la nueva política, solo es cambiado cuando se introducen nuevos drivers o características; cambios menores se reflejan en el número D.
El número D se produjo cuando un grave error, que requiere de un arreglo inmediato, se encontró en el código NFS de la versión 2.6.8. Sin embargo, no había otros cambios como para lanzar una nueva revisión (la cual hubiera sido 2.6.9). Entonces se lanzó la versión 2.6.8.1, con el error arreglado como único cambio. Con 2.6.11, esto fue adoptado como la nueva política de versiones. Bug-fixes y parches de seguridad son actualmente manejados por el cuarto número dejando los cambios mayores para el número C.
También, algunas veces luego de las versiones puede haber algunas letras como “rc1” o “mm2”. El “rc” se refiere a release candidate e indica un lanzamiento no oficial.

Eso es todo por hoy, queridos blogueros, esperamos contar con sus comentarios y sus críticas. También pedimos que tengan la amabilidad de compartir nuestros artículos, y que nos comuniquen sus opiniones a nuestra página del G+.