domingo, 5 de diciembre de 2010

S.O. Open Source - Linux

En una era de cambios en el ambiente computacional, de una amplia oferta en sistemas operativos e interfaces gráficas y sobre todo, del costo que representa contar con un sistema operativo que interactúe con el software sin problemas, surge con fuerza inusitada: Linux
LINUX es un sistema operativo, compatible Unix. Dos características muy peculiares lo diferencian del resto de los sistemas que podemos encontrar en el mercado, la primera, es que es libre, esto significa que no tenemos que pagar ningún tipo de licencia a ninguna casa desarrolladora de software por el uso del mismo, la segunda, es que el sistema viene acompañado del código fuente. El sistema lo forman el núcleo del sistema (kernel) más un gran número de programas / librerías que hacen posible su utilización.

LINUX se distribuye bajo la GNU Public License: Ingles, por lo tanto, el código fuente tiene que estar siempre accesible.

El sistema ha sido diseñado y programado por multitud de programadores alrededor del mundo. El núcleo del sistema sigue en continuo desarrollo bajo la coordinación de Linus Torvalds, la persona de la que partió la idea de este proyecto, a principios de la década de los noventa.

Día a día, más y más programas / aplicaciones están disponibles para este sistema, y la calidad de los mismos aumenta de versión a versión. La gran mayoría de los mismos vienen acompañados del código fuente y se distribuyen gratuitamente bajo los términos de licencia de la GNU Public License.

En los últimos tiempos, ciertas casas de software comercial han empezado a distribuir sus productos para Linux y la presencia del mismo en empresas aumenta rápidamente por la excelente relación calidad - precio que se consigue con Linux.

Las plataformas en las que en un principio se puede utilizar Linux son 386-, 486-. Pentium, Pentium Pro, Pentium II, Amiga y Atari, también existen versiones para su utilización en otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC.

Linux nació de la idea de crear un sistema operativo clon de Unix y que el código fuente estuviese disponible para todos. Esta idea nació en 1991 cuando el finlandés Linus Torvalds estudiaba la carrera de Ciencias Informáticas. Torvalds se encontraba especialmente interesado en Minix, un sistema Unix de fácil acceso para los estudiantes y profesores con el propósito de facilitar a los alumnos de universidad el estudio y diseño de sistemas operativos.

Minix era un Unix más, tanto en apariencia como en el kernel (núcleo del sistema operativo), pero distaba mucho de ser comparable a uno de los grandes. Es a partir de aquel momento que Torvalds decidió crear un sistema que excediera los estándares de Minix, poniendo en marcha el proyecto personal Linux.

Torvalds tomó sus primeras clases de C y Unix en 1990 y en poco tiempo empezó a utilizar el sistema operativo Minix en su nueva computadora 386. Durante mucho tiempo, Torvalds trabajó en la soledad de sus ideas, hasta la mañana del 3 de julio de 1991 cuando pidió ayuda a través del Internet. Al principio fueron unos pocos los que lo apoyaron, pero al poco tiempo muchos otros cibernautas se unieron al proyecto para poder lograr lo que es hoy.

En uno de los primeros e-mails enviados por Torvalds a la comunidad del ciberespacio respecto a Linux, informaba sobre su proyecto como si fuera un hobby, nada tan grande ni comparable con lo que ahora es LINUX.



Linux es un sistema operativo diseñado por cientos de programadores de todo el planeta, aunque el principal responsable del proyecto es Linus Tovalds. Su objetivo inicial es propulsar el software de libre distribución junto con su código fuente para que pueda ser modificado por cualquier persona, dando rienda suelta a la creatividad. El hecho de que el sistema operativo incluya su propio código fuente expande enormemente las posibilidades de este sistema. Este método también es aplicado en numerosas ocasiones a los programas que corren en el sistema, lo que hace que podamos encontrar muchísimos programas útiles totalmente gratuitos y con su código fuente. Y la cuestión es que, señores y señoras, Linux es un sistema operativo totalmente gratuito.

Linux no sacrifica en ningún momento la creatividad, tal y como lo hacen algunas compañías informáticas. Linux es una ventana abierta por la que es posible huir hacia un mundo donde la verdadera informática puede ser disfrutada sin límites ni monopolios.
Linux es distribuido mediante una serie de distribuciones como RedHat, Slackware, Debían, etc. las cuales se diferencian por su método de instalación y por los paquetes (software) que viene incluido. Es posible que encuentre a la venta versiones de Linux. Todo el software de Linux está regido por la licencia de GNU, con la cual cualquier persona puede modificar un programa y venderlo según el desee, con la condición que la persona que compra ese producto puede realizar la misma acción o simplemente hacer copias para todos aquellos que lo quieran sin tener que pagar más (por lo tanto no se extrañe si encuentra distribución comerciales). Esta licencia es la garantía que afirma la absoluta libertad de este sistema operativo.



Las principales funciones de este magnífico sistema operativo son:
  • Sistema multitarea: En Linux es posible ejecutar varios programas a la vez sin necesidad de tener que parar la ejecución de cada aplicación.
  • Sistema multiusuario: Varios usuarios pueden acceder a las aplicaciones y recursos del sistema Linux al mismo tiempo. Y, por supuesto, cada uno de ellos puede ejecutar varios programas a la vez (multitarea).
  • Shells programables: Un shell conecta las órdenes de un usuario con el Kernel de Linux (el núcleo del sistema), y al ser programables se puede modificar para adaptarlo a tus necesidades. Por ejemplo, es muy útil para realizar procesos en segundo plano.
  • Independencia de dispositivos: Linux admite cualquier tipo de dispositivo (módems, impresoras) gracias a que cada una vez instalado uno nuevo, se añade al Kernel el enlace o controlador necesario con el dispositivo, haciendo que el Kernel y el enlace se fusionen. Linux posee una gran adaptabilidad y no se encuentra limitado como otros sistemas operativos.
  • Comunicaciones: Linux es el sistema más flexible para poder conectarse a cualquier ordenador del mundo. Internet se creó y desarrolló dentro del mundo de Unix, y por lo tanto Linux tiene las mayores capacidades para navegar, ya que Unix y Linux son sistemas prácticamente idénticos. Con Linux podrá montar un servidor en su propia casa sin tener que pagar las enormes cantidades de dinero que piden otros sistemas.
  • Multiplataforma: Corre en muchas CPU’s distintas, no sólo Intel.


 
  • Funciona en modo protegido 386.
  • Tiene protección de la memoria entre procesos, de manera que uno de ellos no pueda colgar el sistema. 
  • Carga de ejecutables por demanda: Linux sólo lee de disco aquellas partes de un programa que están siendo usadas actualmente.
  • Política de copia en escritura para la compartición de páginas entre ejecutables: esto significa que varios procesos pueden usar la misma zona de memoria para ejecutarse. Cuando alguno intenta escribir en esa memoria, la página (4Kb de memoria) se copia a otro lugar. Esta política de copia en escritura tiene dos beneficios: aumenta la velocidad y reduce el uso de memoria.
  • Memoria virtual usando paginación (sin intercambio de procesos completos) a disco: una partición o un archivo en el sistema de archivos, o ambos, con la posibilidad de añadir más áreas de intercambio sobre la marcha (se sigue denominando intercambio, es en realidad un intercambio de páginas). Un total de 16 zonas de intercambio de 128Mb de tamaño máximo pueden ser usadas en un momento dado con un límite teórico de 2Gb para intercambio.
  • La memoria se gestiona como un recurso unificado para los programas de usuario y para el caché de disco, de tal forma que toda la memoria libre puede ser usada para caché y éste puede a su vez ser reducido cuando se ejecuten grandes programas.
  • Librerías compartidas de carga dinámica (DLL's) y librerías estáticas también, por supuesto.
  • Se realizan volcados de estado (core dumps) para posibilitar los análisis post-mortem, permitiendo el uso de depuradores sobre los programas no sólo en ejecución sino también tras abortar éstos por cualquier motivo.
  • Casi totalmente compatible con POSIX, System V y BSD a nivel fuente.
  • Mediante un módulo de emulación de iBCS2, casi completamente compatible con SCO, SVR3 y SVR4 a nivel binario.
  • Todo el código fuente está disponible, incluyendo el núcleo completo y todos los drivers, las herramientas de desarrollo y todos los programas de usuario; además todo ello se puede distribuir libremente. Hay algunos programas comerciales que están siendo ofrecidos para Linux actualmente sin código fuente, pero todo lo que ha sido gratuito sigue siendo gratuito.
  • Control de tareas POSIX.
  • Pseudo-terminales (pty's). 
  • Emulación de 387 en el núcleo, de tal forma que los programas no tengan que hacer su propia emulación matemática. Cualquier máquina que ejecute Linux parecerá dotada de coprocesador matemático. Por supuesto, si tu ordenador ya tiene una FPU (unidad de coma flotante), será usada en lugar de la emulación, pudiendo incluso compilar tu propio kernel sin la emulación matemática y conseguir un pequeño ahorro de memoria.
  • Soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir nuevos dinámicamente.
  • Consolas virtuales múltiples: varias sesiones de login a través de la consola entre las que se puede cambiar con las combinaciones adecuadas de teclas (totalmente independiente del hardware de video). Se crean dinámicamente y puedes tener hasta 64.
  • Soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix y todos los sistemas de archivo típicos de System V, y tiene un avanzado sistema de archivos propio con una capacidad de hasta 4 Tb y nombres de archivos de hasta 255 caracteres de longitud.
  • Acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT) mediante un sistema de archivos especial: no necesitas ningún comando especial para usar la partición MS-DOS, parece un sistema de archivos normal de Unix (excepto por algunas graciosas restricciones en los nombres de archivo, permisos, y esas cosas). Las particiones comprimidas de MS-DOS 6 no son accesibles en este momento, y no se espera que lo sean en el futuro. El soporte para VFAT (WNT, Windows 95) ha sido añadido al núcleo de desarrollo y estará en la próxima versión estable.
  • Un sistema de archivos especial llamado UMSDOS que permite que Linux sea instalado en un sistema de archivos DOS.
  • Sistema de archivos de CD-ROM que lee todos los formatos estándar de CD-ROM.
  • Appletalk disponible en el actual núcleo de desarrollo.
  • software cliente y servidor Netware disponible en los núcleos de desarrollo.     
Una distribución es un modo de facilitar la instalación, la configuración y el mantenimiento de un sistema GNU/Linux.
Existen numerosas distribuciones Linux (también conocidas como "distros"), ensambladas por individuos, empresas y otros organismos.
Entre las distribuciones de GNU/Linux, destacan el proyecto Debian/GNU. Debian nace como una iniciativa no comercial de la FSF, aunque luego se independiza de ésta y va más allá del propio sistema GNU/Linux. Es la única de las grandes distribuciones que no tiene intereses comerciales ni empresariales. Son sus propios usuarios, quienes mantienen la distribución de modo comunitario, incluidas todas sus estructuras de decisión y funcionamiento. Su objetivo es recopilar, difundir y promover el uso del software libre.
Reúne el mayor catálogo de software libre, todos ellos probados, mantenidos y documentados por algún desarrollador voluntario.
7.     Distribuidores:
Una distribución es un modo de facilitar la instalación, la configuración y el mantenimiento de un sistema GNU/Linux.
Existen numerosas distribuciones Linux (también conocidas como "distros"), ensambladas por individuos, empresas y otros organismos.
Actualmente existen 10 distribuciones en el mercado las cuales se basan en Ubuntu, ya que Ubuntu es la distribución Linux mas popular, la distribución creada por Canonical ha acercado el sistema operativo GNU/Linux al usuario final de una forma muy inteligente, y de hecho se ha convertido en la referencia en la industria y entre los usuarios.

La distribución original creada por Canonical está preparando su próxima edición, Intrepid Ibex, y su característica diferenciadora respecto a sus "hijas" reside en el hecho de usar GNOME y, cómo no, seguir los patrones de diseño en la interfaz que marca Canonical.

Los usuarios de KDE no se querían quedar sin disfrutar de las ventajas que ofrece esta distribución, de modo que no tardó en aparecer una versión específica que está basada completamente en este entorno de escritorio.

Si KDE y GNOME son las soluciones más extendidas en entornos de escritorio, XFCE es el gestor de ventanas ligero que más triunfa en equipos "modestos". Si no dispones de grandes prestaciones ni los últimos componentes hardware, Xubuntu hará que todo vaya mucho más fluido.

Los entornos educativos también han sido otro de los intereses de estas distribuciones, como demuestra la aparición de esta alternativa basada en Ubuntu y que se nutre de un buen número de paquetes educativos.

Algo similar ocurre en entornos científicos. En Linux existen una gran cantidad de proyectos destinados a aprovechar esa orientación científica de los sistemas Unix (y por extensión, GNU/Linux), y en Scibuntu podremos contar con utilidades y aplicaciones científicas interesantes para este tipo de proyectos.
En este caso nos encontramos con una versión muy especial de Ubuntu adaptada a las demandas de cierto grupo de usuarios que entre otras cosas cuenta con una interfaz GNOME con un tema propio muy "mentolado", y que además ofrece ciertas utilidades de configuración a medida.

Si lo tuyo es el trabajo con todo tipo de contenidos multimedia, Ubuntu Studio es una distribución precisamente pensada para este propósito, ya que cuenta con numerosos paquetes de edición de vídeo, audio e imagen que te permitirán sacar el máximo provecho a esos contenidos.

Otra versión ligera de Ubuntu que también se basa en ella pero que en lugar de apostar por el gestor de ventanas ligero XFCE lo hace por Fluxbox, otro de los más populares a la hora de sacarle partido a tu viejo equipo.

Nuestra española Guadalinex se basa desde hace un tiempo en Ubuntu, y lo hace aportando además una serie de herramientas pensadas para facilitar el trabajo en la administración pública. Toda una demostración de que Linux puede ser una alternativa real en grandes implantaciones.

Aunque su origen real es Debian, en SimpyMEPIS 7.0 (basada en KDE) nos encontramos además con código adicional de Ubuntu que permite disfrutar de las ventajas de esta distribución.




Blogs qu te pueden ayudar a complementar:



Sistemas Operativos Open Source

El sistema operativo es el software más importante de un ordenador, ya que actúa como interfaz entre los dispositivos de hardware. Para que funcionen los otros programas, cada ordenador de uso general debe tener un sistema operativo. Los sistemas operativos realizan tareas básicas, tales como reconocimiento de la conexión del teclado, enviar la información a la pantalla, no perder de vista archivos y directorios en el disco, y controlar los dispositivos periféricos tales como impresoras, escáner, etc., es decir es responsable de gestionar, coordinar las actividades y llevar a cabo el intercambio de los recursos, actúa como intermediario para las aplicaciones que se ejecuta, además de responsabilizarse de la seguridad, asegurándose de que los usuarios no autorizados no tengan acceso al sistema.. En sistemas grandes, el sistema operativo tiene incluso mayor responsabilidad y poder, es como un policía de tráfico, se asegura de que los programas y usuarios que están funcionando al mismo tiempo no interfieran entre ellos.
Se encuentran en la mayoría de los aparatos electrónicos que utilizan microprocesadores para funcionar. (Teléfonos móviles, reproductores de DVD, computadoras, radios, etc.). La elección del sistema operativo determina en gran medida las aplicaciones que puedes utilizar.

Los sistemas operativos pueden ser clasificados de la siguiente forma:

Soporta el abrir un mismo programa en más de una CPU.

Permite que varios programas se ejecuten al mismo tiempo.
Permite que diversas partes de un solo programa funcionen al mismo tiempo.

Responde a las entradas inmediatamente. Los sistemas operativos como DOS y UNIX, no funcionan en tiempo real.

Los sistemas operativos más utilizados en los PC son DOS, OS/2, y Windows, pero hay otros que también se utilizan, como por ejemplo Linux.



SISTEMAS OPERATIVOS OPEN SOURCE Ó CÓDIGO ABIERTO

Código abierto es un software que pone a disposición de cualquier usuario su código fuente. A pesar de que este tipo de software es de buena calidad, el principal atractivo es que es gratis. Más allá de esto, hay ciertas pautas que debe cumplir el código abierto:
  • Redistribución libre: la licencia del código abierto no debe de ninguna forma cobrar royalties o cualquier otro tipo de costo.
  • Código fuente: el software debe agregar el código fuente y permitir la distribución en la forma de código fuente y compilada.
  • La licencia no debe discriminar cualquier tipo de persona o toma de iniciativas específicas.
Actualmente, hasta el gobierno está de acuerdo con que el uso de software libre es una excelente opción. La liberación de los códigos de los programas desarrollados por órganos oficiales es considerada un bien para la sociedad. Realmente, la liberación del código fuente de muchos programas genera grandes beneficios a la población, entre los que se destacan, por ejemplo, los programas de educación a distancia.
Los programas mundiales más utilizados que poseen código abierto son:
  • Mozilla Firefox 
  • Perl
  • Apache HTTP Server 
  • Linux 
  • OpenOffice 
  • Gimp 
  • Emule


Su uso nació por primera vez en 1998 de la mano de algunos usuarios de la comunidad del software libre, tratando de usarlo como reemplazo al ambiguo nombre original en inglés del software libre (free software). Free en inglés significa dos cosas distintas dependiendo del contexto: gratuidad y libertad. Lo cual implica, para el caso que nos ocupa, "software que podemos leer, modificar y redistribuir gratuitamente" (software gratuito) y, además, software libre, según la acepción española de libertad.
El término para algunos no resultó apropiado como reemplazo para el ya tradicional free software, pues eliminaba la idea de libertad, confundida usualmente con la simple gratuidad.
Dada la anterior ambivalencia, se prefiere el uso del término software libre para referirse a programas que se ofrecen con total libertad de modificación, uso y distribución bajo la regla implícita de no modificar dichas libertades hacia el futuro.
Desde el punto de vista de una "traducción estrictamente literal", el significado textual de "código abierto" es que "se puede examinar el código fuente". Sin embargo, ambos movimientos reconocen el mismo conjunto de licencias y mantienen principios equivalentes.
Sin embargo, hay que diferenciar los programas de código abierto, que dan a los usuarios la libertad de mejorarlos, de los programas que simplemente tienen el código fuente disponible, previa restricciones sobre su uso o modificación.
En la actualidad el código abierto se utiliza para definir un movimiento nuevo de software (la Iniciativa Open Source), diferente al movimiento del software libre, incompatible con este último desde el punto de vista filosófico, y completamente equivalente desde el punto de vista práctico, de hecho, ambos movimientos trabajan juntos en el desarrollo práctico de proyectos.
La idea bajo el concepto de código abierto es sencilla: cuando los programadores (en Internet) pueden leer, modificar y redistribuir el código fuente de un programa, éste evoluciona, se desarrolla y mejora. Los usuarios lo adaptan a sus necesidades, corrigen sus errores a una velocidad.
Los defensores de este sistema sitúan los beneficios del open source a lo largo de todas las etapas por las que puede pasar un programa: desde su creación hasta que la última versión llega al usuario, pasando por toda la cadena de distribución.
Un pequeño proyecto open source puede contar con más cerebros-programadores para desarrollar un producto que los que cualquier empresa se puede permitir. El empresario puede comprobar los beneficios del open source tanto si produce programas para uso interno como para venderlos. Este modelo significa una notable reducción en los costos de producción de programas, porque permite a los desarrolladores repartir el trabajo sin gastar dinero. El programador recibe algo que no es tangible como el dinero pero sí igual de valioso: el aumento de la velocidad con que se detecta y corrige una deficiencia en el programa se traduce en beneficios para el cliente.

Si de lo que se trata es de producir programas para venderlos, el sistema también tiene sus ventajas. De entrada puede soñar con un servicio directo y cercano al cliente. Se puede conocer rápidamente qué es lo que necesita y responder a sus necesidades al instante. Para colocar un producto en el mercado, ¿qué mejor manera de hacerlo que colaborar con los programadores del cliente para ayudar en su desarrollo? El modelo de mercado open source tiene mucho que ver con el éxito alcanzado por algunas empresas japonesas en el desarrollo de sus productos: lanzar un buen producto que funciona aunque no sea perfecto y rápidamente rehacerlo teniendo en cuenta la experiencia del cliente.

Para un empresario o cualquiera que se meta a producir nuevos programas, el open source es una forma de compartir conocimientos. Con la mejor idea del mundo no se triunfará si no se da a conocer. Que esta estrategia tenga sentido depende de que el valor de la propuesta del empresario sea el programa en si o en el servicio y la experiencia asociada a los programas. En el ensayo de business decision, Paul Everitt abunda en el tema.

Además de la fiabilidad y de todos los beneficios que nos quieran vender del open source, el modelo tiene, para el cliente final, una ventaja incuestionable: como el cliente tiene acceso al código fuente, puede sobrevivir a la ruina de su vendedor, no está a merced de los errores de programación ni de las decisiones comerciales o estratégicas.

  • Soporte: Algunos Linux no cuentan con empresas que lo respalden, por lo que no existe un soporte sólido como el de otros sistemas operativos. 
  • Simplicidad: No es tan fácil de usar como otros sistemas operativos, aunque actualmente algunas distribuciones están mejorando su facilidad de uso, gracias al entorno de ventanas, sus escritorios y las aplicaciones diseñadas específicamente para él, cada día resulta más sencillo su integración y uso.
  • Software: No todas las aplicaciones Windows se pueden ejecutar bajo Linux, y a veces es difícil encontrar una aplicación determinada, y lo más importante, es que no todas las aplicaciones están en castellano.
  • Hardware: Actualmente Linux soporta un máximo de 16 procesadores simultáneamente, contra los 64 procesadores de otros sistemas operativos.

La idea del código abierto se centra en la premisa de que al compartir el código, el programa resultante tiende a ser de calidad superior al software propietario, es una visión técnica. Al igual que el software libre, el código abierto u open source tiene una serie de requisitos necesarios, como lo dijimos anteriormente, para que un programa pueda considerarse dentro de este movimiento, éstos son:
  •  Libre redistribución: el software debe poder ser regalado o vendido libremente.
  • Código fuente: el código fuente debe estar incluido u obtenerse libremente.
  • Trabajos derivados: la redistribución de modificaciones debe estar permitida.
  • Integridad del código fuente del autor: las licencias pueden requerir que las modificaciones sean redistribuidas sólo como parches.
  • Sin discriminación de personas o grupos: nadie puede dejarse fuera.
  • Sin discriminación de áreas de iniciativa: los usuarios comerciales no pueden ser excluidos.
  • Distribución de la licencia: deben aplicarse los mismos derechos a todo el que reciba el programa.
  • La licencia no debe ser específica de un producto: el programa no puede licenciarse solo como parte de una distribución mayor.
  • La licencia no debe restringir otro software: la licencia no puede obligar a que algún otro software que sea distribuido con el software abierto deba también ser de código abierto.
  • La licencia debe ser tecnológicamente neutral: no debe requerirse la aceptación de la licencia por medio de un acceso por clic de ratón o de otra forma específica del medio de soporte del software.





Otros blogs que también te pueden ayudar: