viernes, 24 de julio de 2015

INTRODUCCIÓN





Linux es un Sistema Operativo libre, basado en Unix. Es uno de los principales ejemplos de software libre y de código abierto. Esta licenciado bajo la GPL v2 y está desarrollado por colaboradores de todo el mundo.
 
Linux es el software necesario para que tu ordenador te permita utilizar programas como: editores de texto, juegos, navegadores de Internet, etc. Linux puede usarse mediante un interfaz gráfico al igual que Windows o MacOS, pero también puede usarse mediante línea de comandos como DOS.
 
 

El núcleo Linux fue concebido por el entonces estudiante de ciencias de computación finlandés Linus Torvalds en 1991. Linux consiguió rápidamente desarrolladores y usuarios que adoptaron  códigos de otros proyectos de software libre para usarlo con el nuevo sistema operativo.
El núcleo Linux ha recibido contribuciones de miles de programadores de todo el mundo.  Se utiliza bajo un empaquetador de software, llamado distribución GNU/ Linux y servidores.

jueves, 23 de julio de 2015

BREVE HISTORIA DE LINUX


 



En 1991, con 21 años, un estudiante de informática de la Universidad de Helsinki (Finlandia) llamado Linus Torvalds se propone como entretenimiento hacer un sistema operativo que se comporte exactamente igual al sistema operativo UNIX, pero que funcione sobre cualquier ordenador compatible PC. Posteriormente Linus tuvo que poner como requisito mínimo que el ordenador tuviese un procesador i386, ya que los ordenadores con CPU más antiguas no facilitaban el desarrollo de un sistema operativo compatible con UNIX.


Un factor decisivo para el desarrollo y aceptación de Linux fue la gran expansión de Internet. Internet facilitó el trabajo en equipo de todos los que quisieron colaborar con Linus y fueron aportando todos los programas que vienen con UNIX. Linus no pretendía crear todos los programas que vienen con UNIX. Su objetivo fundamental era crear un núcleo del S.O. que fuera totalmente compatible con el de UNIX y que permitiera ejecutar todos los programas gratuitos compatibles. UNIX desarrollados por la Free Software Foundation (fundada por Richard Stallman) que vienen con licencia GNUF. Esta licencia impide poner precio a los programas donados a la comunidad científica por sus propietarios (programas libres) y obliga a que si se escriben nuevos programas utilizando código de programas libres, estos sean también libres.

Para crear su núcleo, Linus se inspiró en Minix, una versión reducida de UNIX desarrollada por el profesor Andy Tanenbaum para que sus alumnos pudieran conocer y experimentar con el código de un sistema operativo real.


Linus escribió un pequeño núcleo que tenía lo necesario para leer y escribir ficheros en un disquette. A finales de Agosto de 1991  Linus ya tiene la versión  . Como no era muy agradable de usar y no hacia gran cosa, no lo anunció. Le puso como nombre Linux, que es un acrónimo en inglés de ``Linus UNIX'' (el UNIX de Linus).

 En septiembre de 1991 se lanzó la versión 0.01 de Linux. Tenía 10.239 líneas de código. En octubre de ese año (1991), se lanzó la versión 0.02 de Linux; luego, en diciembre se lanzó la versión 0.11 (1991). Esta versión fue la primera en ser self-hosted (autoalbergada). Es decir, Linux 0.11 podía ser compilado por una computadora que ejecutase Linux 0.11, mientras que las versiones anteriores de Linux se compilaban usando otros sistemas operativos. Cuando lanzó la siguiente versión, Torvalds adoptó la GPL como su propio boceto de licencia, la cual no permitía su redistribución con otra licencia que no sea GPL.

Desde 1993 a principios de 1994, se desarrollaron 15 versiones diferentes de 0.99 (llegando a la versión 0.99r15).

El 14 de marzo de 1994 se lanzó Linux 1.0.0, que constaba de 176.250 líneas de código. En marzo de 1995 se lanzó Linux 1.2.0, que ya estaba compuesto de 310.950 líneas de código.

  •          Mayo de 1996 Torvalds decidió adoptar al pingüino TUX como mascota para Linux.
  •         9 de junio de 1996: Se lanzó la versión 2 de Linux, con una recepción positiva.
  •         25 de enero de 1999: Se lanzó Linux 2.2.0 con 1.800.847 líneas de código.
  •          18 de diciembre de 1999: se publicaron parches de IBM Mainframe para 2.2.13, permitiendo de esta forma que Linux fuera usado en ordenadores corporativos.
  •          4 de enero de 2001: se lanzó Linux 2.4.0 con 3.377.902 líneas de código.
  •         17 de diciembre de 2003: se lanzó Linux 2.6.0 con 5.929.913 líneas de código.
  •          24 de diciembre de 2008: se lanzó Linux 2.6.28 con 10.195.402 líneas de código.
  •          20 de octubre de 2010: se lanzó Linux 2.6.36 con 13.499.457 líneas de código.
  •          30 de mayo de 2011: Linus Torvalds anunció que la versión del núcleo dará el salto a la 3.0 en la siguiente publicación.
  •          21 de julio de 2011: Torvalds publicó en su perfil en la red social Google+ que el núcleo versión 3.0 estaba listo con la frase "3.0 Pushed Out".
  •          22 de julio de 2011: Fue lanzada la versión 3.0 del núcleo en http://www.kernel.org
  •         12 de mayo y 13 de mayo de 2012 Fueron lanzadas las versiones 3.3.6 y 3.4-rc7 del núcleo en http://www.kernel.org  respectivamente.
  •         2 de febrero de 2015 Fue lanzada la versión 3.19.  Su código fuente está disponible para descarga en el sitio web oficial:  http://www.kernel.org

 

El nombre

Linus torvalds había querido llamar su invención Freax, un portmanteau de freak (anormal o raro), free (libre), y "X", una alusión a Unix. Durante el inicio de su trabajo sobre el sistema, él almacenó los archivos bajo el nombre "Freax" por aproximadamente medio año. Torvalds ya había considerado el nombre "Linux", pero al principio lo había descartado por ser demasiado egocéntrico o egoísta.

Para dar a otra gente la capacidad de cooperar en el sistema o sugerir mejoras, los archivos fueron colocados en el servidor ftp (ftp.funet.fi) de la universidad de Tecnología de Helsinki (Helsinki University of Technology) (HUT), en septiembre de 1991. Ari Lemmke, colega de Torvalds en la HUT, que en ese entonces era responsable de los servidores, no estuvo de acuerdo con el nombre Freax, prefiriendo el nombre Linux. Él simplemente llamó a los archivos colocados sobre el servidor "Linux" sin consultar a Torvalds. Más tarde, sin embargo, Torvalds accedió a usar el nombre "Linux":
 

TUX 

Tux es el nombre de la mascota oficial de Linux. Creado por Larry Ewing en 1996, es un pequeño pingüino de aspecto risueño y cómico. La idea de que la mascota de kernel Linux fuera un pingüino provino del mismo Linus Torvalds, creador de kernel Linux.
Existen dos versiones sobre el origen de su nombre:
1.    Los pingüinos parecen vestir un esmoquin (que en inglés es tuxedo max, abreviado tux).
2.    Las letras que componen Tux provienen de las palabras Torvalds y Unix.
Hay quien dice que Tux era el nombre de un peluche que tenía Linus que era un pingüino llamado Tux.
El logotipo se puede usar y modificar sin restricciones, siempre que se reconozca la autoría de Larry Ewing, ya que es su trabajo y se debe reconocer su autoría tal y como se indica en su página.


miércoles, 22 de julio de 2015

CARACTERÍSTICAS Y COMPONENTES DE LINUX


Principales Características de los Sistemas Linux
·         Funciona en modo protegido 386.
·         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 del disco aquellas partes de un programa que están siendo usadas actualmente.
·         Política de copia en escritura para la comparició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.
·         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 ésta puede a su vez ser reducida cuando se ejecuten grandes programas.
·         Soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir nuevos dinámicamente.


Funciones

Linux es un Sistema Operativo tipo Unix diseñado para aprovechar al máximo las capacidades de las computadoras PC basadas en el microprocesador i386 y posteriores. Es un SO con capacidades de multiprocesamiento, multitarea y multiusuario. Sin embargo, a diferencia de otros sistemas Unix para PC, usted no tiene que pagar cuantiosas licencias por el uso de Linux.

  • Compatibilidad con UNIX
Al apegarse a las normas POSIX mantiene un máximo de compatibilidad con otras variantes de los sistemas operativos UNIX.
  • Multiusuario: Permite que más de una sola persona pueda trabajar en la misma versión de la misma aplicación de manera simultánea, desde las mismas terminales, o en terminales separadas.
  • Multitarea: Describe la habilidad de ejecutar, aparentemente al mismo tiempo, numerosos programas sin obstaculizar la ejecución de cada aplicación. Esto se conoce como multitarea preferente, porque cada programa tiene garantizada la posibilidad de correr.

  • Redes y Telecomunicaciones:La superioridad de Linux sobre otros sistemas operativos es evidente en sus utilerías para redes y comunicaciones. Ningún otro sistema operativo incluye capacidades para red tan estrechamente acopladas. Linux soporta las siguientes interfaces de red: ethernet, fddi, token ring, arcnet, X.25, ISDN, líneas seriales síncronas y asíncronas.
  •  Internet :Con Linux usted puede conectarse a Internet y al vasto mundo de información que esta red abarca. Correo Electrónico, Listas de Correo, Grupos de Interés, Búsqueda y Transferencia de Archivos, Gopher, WAIS, y por supuesto, World Wide Web.
  •  Interconectividad: Puede conectar Linux a una red local, y convertirlo en servidor para MS-DOS, Windows, Windows para Trabajo en Grupo (WfW), Windows 95 y Macintosh por un costo muy por debajo de otros sistemas comerciales.

  • Programación :Linux cuenta con un conjunto poderoso de herramientas para el desarrollo de programas: C, C++, ObjectiveC, Pascal, Fortran, BASIC, CLISP, SmallTalk, Ada, Perl, así como depuradores y bibliotecas compartidas de enlace dinámico (DLL).
  •  Portabilidad: Linux fue diseñado teniendo en cuenta la portabilidad de las aplicaciones. Es compatible con diversos estándares Unix, tales como System V, BSD y los estándares internacionales IEEE POSIX.1 e IEEE POSIX.2, facilitando el desarrollo de aplicaciones para múltiples plataformas.
  • Ambiente Gráfico: Proporciona la capacidad de ejecutar aplicaciones gráficas mediante una red heterogénea al incorporar la revisión 6 del estándar X11 del MIT, conocido también simplemente como X-Window. Con el hardware adecuado, las Estaciones de Trabajo Linux son una alternativa de bajo costo a las Estaciones de Trabajo de alto rendimiento.
  •  Poder RISC : Si su organización necesita verdadero poder de cómputo Linux corre en computadoras basadas en microprocesadores RISC como Alpha AXP, Sparc, PowerPC y MIPS. Ningún otro sistema operativo soporta una gama tan amplia de plataformas.

  • Poderosas herramientas de desarrollo
Linux es una plataforma ideal para el desarrollo de aplicaciones y la experimentación de nuevos lenguajes. Como parte de la instalación encontramos diversos compiladores incluidos C, C++, Fortran, Pascal, LISP, Ada, Basic y Smalltalk. Muchos de los compiladores de Linux, herramientas, debugers y editores son de la Free Software Foundation (Fundación para el Software Libre).
  • Estabilidad
Linux se ha distinguido por su estabilidad de operación, se han conocido y comentado muchos casos de equipo trabajando por más de un año sin tener que apagar o reiniciarlo.
  • Velocidad
Los equipos Linux también se han distinguido por su extraordinaria velocidad. El sistema operativo administra eficientemente los recursos como memoria, poder de CPU y espacio en disco.
  • Librerías dinámicas compartidas (dynamic shared libraries)
Linux usa extensivamente las librerías dinámicas compartidas. Estas librerías utilizan una sección común para todos los ejecutables, reduciendo el tamaño de la aplicación.
  • Ejecutables compartidos (shared executables)
Si más de una copia de una aplicación o programa es cargado a memoria para ejecución, (para un usuario que realiza varias tareas similares o por varios usuarios), todas las tareas pueden compartir la misma área de memoria.

Este proceso de ejecutables compartidos (shared executables) hace un uso eficiente de memoria RAM.
  • Demanda de paginación (demand paging)
El kernel de linux soporta demanda de paginación, para los programas muy extensos significa el que sólo una sección del programa es cargado a memoria.

Y para optimizar aún más la memoria Linux, usa un sólo espacio “pool” de memoria, y esto permite el uso de la memoria restante para poner secciones del disco permitiendo un acceso rápido a programas de uso común (disk cache).

Espacio de Swap (swap space)

Para soportar de manera simulada grandes cantidades de memoria para los diversos requerimientos cuando sólo tenemos una cantidad pequeña de memoria física RAM. Linux soporta espacio de swap, que le permite escribir secciones de memoria en espacios reservados de disco para extender la cantidad disponible al usuario.

Diferentes sistemas de archivos (file systems)

Linux soporta varios formatos de sistemas de archivos para compartir información. El propio sistema de archivos ext3, está diseñado para hacer un uso óptimo del espacio en el disco duro. Y el reciente ext4 mejora la eficiencia en velocidad e integridad de la información.

Construcción Modularizada o Monolítica
El sistema operativo Linux puede ser compilado con los drivers en forma de módulos los cuales al ser necesarios pueden ser incluidos y se acoplan en el corazón del sistema operativo reconociendo el hardware para el cual fueron diseñados.

 
Para dar velocidad al sistema operativo se puede compilar el kernel con todos los drivers necesarios para todo el hardware del equipo en el cual se cargará y construir un sistema operativo que no necesite incluir módulos.
 
Componentes de Linux

El sistema operativo Linux consiste en cuatro componentes principales: el kernel o núcleo, el shell, los comandos y el sistema de archivos. Cada componente se describe a continuación.

Kernel o núcleo

El kernel es la parte del sistema operativo que interactúa directamente con el hardware de la computadora. Ofrece un conjunto de servicios que aísla a los programas de aplicaciones del tipo de hardware en el que se está ejecutando. Se le considera el administrador, o el núcleo del sistema operativo porque administra la memoria, el tiempo de procesamiento, mantiene el sistema de archivos, maneja las interrupciones y errores, y controla las entradas y salidas.

Shell

El programa shell lee los comandos alimentados por el usuario, los interpreta y manda una petición de ejecución del programa. Puesto que realiza esta tarea, se le llama intérprete de comandos. Además de ser el intérprete de comandos es también un lenguaje de programación que permite el controlar la ejecución de comandos. Un shell es asignado a cada usuario por el administrador al momento de creación de la cuenta. El administrador puede cambiar el shell del usuario en cualquier momento.

Comandos y Aplicaciones

 
El sistema Linux cuenta con cientos de programas de utilería o comandos. También se les conoce como herramientas puesto que pueden ser usados en varias formas para completar un trabajo. Una ventaja del sistema operativo Linux es la facilidad de instalación de nuevos comandos o aplicaciones. El shell sólo necesita saber en donde se encuentran y estos los pueden asignar los usuarios.




lunes, 20 de julio de 2015

DISTRIBUCIÓN DE LINUX

Una  distribución Linux es una distribución de software basada en el núcleo Linux que incluye determinados paquetes de software  para satisfacer las necesidades de un grupo específico de usuarios, dando así origen a ediciones domésticas, empresariales y para servidores. Por lo general están compuestas, total o mayoritariamente, de software libre,  aunque a menudo incorporan aplicaciones o controladores propietarios. 
Además del núcleo Linux,  las distribuciones incluyen habitualmente las bibliotecas y herramientas del proyecto GNU  y el sistema de ventanas X Windows System.  Dependiendo del tipo de usuarios a los que la distribución esté dirigida se incluye también otro tipo de software como procesadores de texto, hoja de cálculo, reproductores multimedia, herramientas administrativas, etc. En el caso de incluir herramientas del proyecto GNU, se denomina distribución GNU/Linux.
Existen distribuciones que están soportadas comercialmente, como  Fedora(Red Hat), openSUSE (Novell), Ubuntu (Canonical Ltd.) y Mandriva; distribuciones mantenidas por la comunidad, como Debian y Gentoo; y distribuciones que no están relacionadas con ninguna empresa o comunidad, como es el caso de Slackware.

Antes de que surgieran las primeras distribuciones, un usuario de Linux debía ser algo experto en Unix; no solo debía conocer qué bibliotecas y ejecutables necesitaba para iniciar el sistema y que funcionase, sino también los detalles importantes que se requieren en la instalación y configuración de los archivos en el sistema.
Las distribuciones Linux comenzaron a surgir poco después de que el núcleo Linux  fuera utilizado por otros programadores además de los creadores originales. Existía mayor interés en desarrollar un sistema operativo que en desarrollar aplicaciones, interfaces para los usuarios o un paquete de software  conveniente.

Componentes
El conjunto típico de una distribución Linux contiene un núcleo,  herramientas y bibliotecas, software adicional, documentación, un sistema de ventanas, un administrador de ventanas y  un entorno de escritorio, este suele ser GNOME o KDE. Gran parte del software incluido es de fuente abierta o software libre y  distribuido por sus desarrolladores tanto en binario compilado como en forma de código fuente permitiendo a sus usuarios modificar o compilar  el código fuente original si lo desean. Muchas distribuciones incorporan software privativo, no disponible en forma de código fuente.
Muchas distribuciones proveen un sistema de instalación gráfica como lo hacen otros sistemas operativos modernos. Distribuciones independientes como Gentoo  LinuxT2 y Linux From Scratch proveen el código fuente de todo el software y solo incluyen los binarios del núcleo, herramientas de compilación y de un instalador; el instalador compila todo el software para el CPU específico de la PC del usuario.

Gestión de paquetes.


Las distribuciones están divididas en «paquetes». Cada paquete contiene una aplicación específica o un servicio. Ejemplos de paquetes son una biblioteca para manejar el formato de imagen PNG, una colección de tipografías o un navegador web.
El paquete es generalmente distribuido en su versión compilada y la instalación y desinstalación de los paquetes es controlada por un sistema de gestión de paquetes  lugar de un simple gestor de archivos. Cada paquete elaborado para ese sistema de paquetes contiene meta-información tal como fecha de creación, descripción del paquete y sus dependencias.  El sistema de paquetes analiza esta información para permitir la búsqueda de paquetes, actualizar las librerías y aplicaciones instaladas, revisar que todas las dependencias se cumplan y obtenerlas si no se cuenta con ellas de manera automática.

Algunos de los sistemas de paquetes más usados son:
  • RPM, creado por Red Hat  y usado por un gran número de distribuciones de Linux, es el formato de paquetes del Linux Estándar Base.  Originalmente introducido por Red  Hat, pero ahora se usa en muchas distribuciones, como por ejemplo Mandriva.
  • Deb, paquetes Debian, originalmente introducidos por Debian, pero también utilizados por otros como Knoppix y Ubuntu.
  • .tgz, usado por Slackware, empaqueta el software usando tar y gzip. Pero, además, hay algunas herramientas de más alto nivel para tratar con este formato: slapt-get, slackpkg y swaret.
  • Ebuilds, archivo que contiene información acerca de cómo obtener, compilar e instalar un paquete en el sistema Portage de Gentoo Linux con el comando emerge. Generalmente, estas instalaciones se basan en la compilación de fuentes, aunque algunos paquetes binarios se pueden instalar de esta manera.
  • Pacman, para Arch Linux, usa binarios precompilados distribuidos en un fichero .pkg.tar.gz ó .pkg.tar.xz.
  • PET, utilizado por Puppy Linux, sus derivados y Quirky, su proyecto hermano.
Tipos y tendencias
En general, las distribuciones Linux pueden ser:
  • Comerciales o no comerciales.
  • Ser completamente libres o incluir software privativo.
  • Diseñadas para uso en el hogar o en las empresas.
  • Diseñadas para servidores, escritorios o dispositivos empotrados.
  • Orientadas a usuarios regulares o usuarios avanzados.
  • De uso general o para dispositivos altamente especializados, como un cortafuegos, un enrutador o un clúster computacional.
  • Diseñadas e incluso certificadas para un hardware o arquitectura específicos.
  • Orientadas hacia grupos en específico, por ejemplo a través de la internacionalización y localización del  lenguaje, o por la inclusión de varios paquetes para la producción musical o para computación científica.
  • Configuradas especialmente para ser más seguras, completas, portables o fáciles de usar.
  • Soportadas bajo distintos tipos de hardware.

La diversidad de las distribuciones Linux es debido a cuestiones técnicas, de organización y de puntos de vista diferentes entre usuarios y proveedores. El modo de licenciamiento del software libre permite que cualquier usuario con los conocimientos e interés suficiente pueda adaptar o diseñar una distribución de acuerdo a sus necesidades.