Download Introducción a Linux del INEI

Document related concepts

Núcleo Linux wikipedia , lookup

Linux International wikipedia , lookup

Historia de Linux wikipedia , lookup

Distribución Linux wikipedia , lookup

Controversia por la denominación GNU/Linux wikipedia , lookup

Transcript
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
○ ○ ○ ○ ○ ○ ○ ○
Introducción
a LINUX
Lima, Abril de 2000
Elaboración
:
Sub-Jefatura de Informática
Impreso en los Talleres de la Oficina de Impresiones de la
Oficina Técnica de Difusión Estadística y Tecnología
Informática del Instituto Nacional de Estadística e Informática
Diagramación
Edición
Domicilio
Orden Nº
:
:
:
:
Centro de Edición del INEI
500 Ejemplares
Av. Gral. Garzón Nº 658 Jesús María, Lima 11
293 - OTDETI - INEI
Introducción a LINUX
Presentación
El Instituto Nacional de Estadística e Informática (INEI), en concordancia con sus fines y objetivos
institucionales y como ente rector de los sistemas de Estadística e Informática, pone a disposición de las
Entidades Públicas, Privadas, estudiantes y público en general, el libro ¨ Introducción al LINUX” que
forma parte de la Colección Informática Fácil.
La aparición de LINUX que fuera un pequeño sistema operativo de código público, se ha
apoderado poco a poco de la cultura informática a nivel mundial, habiendo pasado de manera fulgurante
por los ambientes estudiantiles, y entrando de lleno en el mundo empresarial, donde las tecnologías de
información tienen especial relevancia, condiciones que vienen afirmando que existe una ya bastante
evolucionada “cultura Linux”; propiciando el renacimiento del Código Público.
El Sistema operativo de código público LINUX, es un sistema operativo para redes por ser
multitarea, multiusuario, se persive confiable y escalable, además trabaja en un amplio rango de
hardware. Soporta casi todos los protocolos de red e internet estándar, se puede personalizar gracias a
su naturaleza abierta y cantidad de herramientas de programación.
El Instituto Nacional de Estadística e Informática, pone a disposición la presente Guía Práctica de
Informática Fácil, con el propósito de contribuir al conocimiento y desarrollo de la Cultura Informática y
en beneficio de sus economías por ser LINUX un sistema gratuito.
Econ. Félix Murillo Alfaro
Jefe
INSTITUTO NACIONAL DE
ESTADISTICA E INFORMATICA
Instituto Nacional de Estadística e Informática
3
Introducción a LINUX
4
Instituto Nacional de Estadística e Informática
Introducción a LINUX
Contenido
1.
¿Qué es Linux?................................................................................................................ 3
2.
Historia de Linux ............................................................................................................ 3
3.
¿Porqué Linux? ............................................................................................................... 4
3.1
3.2
3.3
3.4
4.
¿Cómo es licenciado Linux? .................................................................................... 4
¿De donde vienen los recursos para el desarrollo de Linux?........................................ 6
Características Principales ....................................................................................... 9
Ventajas de Linux frente a otros Sistemas Operativos .............................................. 11
Estructura de Linux ........................................................................................................ 15
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
Kernel GPL ......................................................................................................... 15
Manejadores GPL ................................................................................................ 15
Herramientas del usuario ...................................................................................... 16
Herramientas de usuario (GPL, GNU, FSF)
Herramientas de Desarrollo (GPL)
X Server.............................................................................................................. 17
Widgets y Desktops .............................................................................................. 17
Servidor WEB ...................................................................................................... 17
Servidor de Correo.............................................................................................. 18
Servidor DNS ...................................................................................................... 20
5.
Compatibilidad de Linux................................................................................................. 22
6.
Conectividad de Linux.................................................................................................... 23
7.
Conexión segura a Internet con Linux ............................................................................. 23
7.1
7.2
8.
Ipchains .............................................................................................................. 24
Ipmasquerade ..................................................................................................... 25
Distribuciones comerciales.............................................................................................. 26
8.1
Componentes fundamentales de una distribución comercial ..................................... 26
Boot Manager
Interfaz de usuario
Sistema X Window
Servicio de Internet
Servicios de impresión de archivos
Instituto Nacional de Estadística e Informática
5
Introducción a LINUX
Aplicaciones
Administrador de paquetes
Herramientas del programador
Bibliotecas
8.2
Distribuciones comerciales más populares............................................................... 29
Red Hat
Caldera Open Linux
Debian GNU Linux
Slackware
9.
Crecimiento de Linux..................................................................................................... 33
10.
Productos para Linux ..................................................................................................... 36
11.
Enlaces Linux ................................................................................................................ 38
11.1 Listas de consulta sobre Linux ............................................................................... 38
11.2 Sitios de Interés para usuarios de Linux .................................................................. 39
APENDICE ........................................................................................................................... 41
A.
Entrevista con Linus Torvalds - Tomado de la revista Linux Focus
B.
Una vista a Star Office
C.
Noticias Linux
6
Instituto Nacional de Estadística e Informática
Introducción a LINUX
1. ¿Qué es el LINUX?
Linux es un Sistema Operativo, una versión de Unix libremente distribuible e independiente, para
plataformas con maquinas x86, Motorola 68k, Digital Alpha, Sparc, Mips y Motorola Power PC.
Es una implantación de la especificación POSIX con la cual cumplen todas las verdaderas
versiones de Unix. El núcleo de Linux no usa código de AT&T o de cualquier otra fuente
propietaria, la mayoría de los programas disponible para Linux es desarrollado por el proyecto
GNU de la Free Software Foundation (Fundación de Programas Libres).
Este soporta un amplio espectro de aplicaciones o paquetes de programación tales como X
Window, Emacs, redes de datos bajo protocolos TCP/IP (incluyendo SLIP, PPP, ISDN). Mucha
gente ha corrido benchmarks en sistemas Linux 80486 consiguiendo a estos comparable con
estaciones de rango-medio de Sun y Digital.
Linux esta disponible en Internet en cientos de servidores ftp y de varios distribuidores en discos
flexibles o CD-ROM, alguno de estos son Caldera, Debian, Slakware, Red Hat, entre otros. Uno
de los sitios de ftp más famoso es el ftp://sunsite.unc.edu/pub/Linux/distributions, con decenas de
servidores espejos alrededor del mundo.
El núcleo de Linux esta legalmente protegido por la Licencia Publica GNU (GPL de sus siglas en
inglés), es usualmente empaquetado con varios ejecutables que comprenden un sistema operativo
Unix funcional. Estos paquetes de programas son llamados "distribuciones" y vienen en muchos
tamaños y arreglos.
Linux esta siendo usado por cientos de miles de personas alrededor del mundo. Es usado para
desarrollo de programas, redes (Intranet e Internet), y como plataforma para usuarios finales.
Linux se ha convertido en una alternativa efectiva comparándolo con costosos sistemas Unix y de
otros Sistemas Operativos.
Instituto Nacional de Estadística e Informática
7
Introducción a LINUX
2. Historia de LINUX
Linux fue creado originalmente por Linus Torvalds en la Universidad de Helsinki en Finlandia.
Inicialmente, sólo fue un proyecto de aficionado de Linus Torvalds. Se inspiraba en Minix, un
pequeño UNIX desarrollado por Andy Tanenbaum, y las primeras discusiones sobre Linux
surgieron en el grupo de noticias comp.os.minix. Estas discusiones giraban en torno al desarrollo
de un pequeño sistema UNIX de carácter académico dirigido a aquellos usuarios de Minix que
querían algo más. El desarrollo inicial de Linux ya aprovechaba las características de conmutación
de tareas en modo protegido del 386, y se escribió todo en ensamblador. Linus dice,
"Comencé a utilizar el C tras escribir algunos drivers, y ciertamente se
aceleró el desarrollo. En este punto sentí que mi idea de hacer "un
Minix mejor que Minix" se hacía más seria. Esperaba que algún día
pudiese recompilar el gcc bajo Linux... "Dos meses de trabajo, hasta
que tuve un driver de discos con numerosos bugs, pero que parecía
funcionar en mi PC y un pequeño sistema de ficheros. Aquí tenía ya la
versión 0.01 [al final de Agosto de 1991]; no era muy agradable de
usar sin el driver de disquetes, y no hacía gran cosa. No pensé que
alguien compilaría esa versión."
Linus Torvalds durante una conferencia en Buenos Aires (Junio 1996)
No se anunció nada sobre esa versión, puesto que las fuentes del 0.01 jamás fueron ejecutables:
contenían solo rudimentos de lo que sería el núcleo , y se asumía que se tenía acceso a un Minix
para poderlo compilar y jugar con él.
8
Instituto Nacional de Estadística e Informática
Introducción a LINUX
El 5 de Octubre de 1991, Linus anunció la primera versión "oficial" de Linux, la 0.02. Ya podía
ejecutar bash (el shell de GNU) y gcc (el compilador de C de GNU), pero no hacía mucho más.
La intención era ser un juguete para hackers. No había nada sobre soporte a usuarios,
distribuciones, documentación ni nada parecido. Hoy, la comunidad de Linux aun trata estos
asuntos de forma secundaria. Lo primero sigue siendo el desarrollo del kernel. Linus escribía en
comp.os.minix.
"¿Suspiráis al recordar aquellos días de Minix-1.1, cuando los hombres
eran hombres y escribían sus propios drivers? ¿Os sentís sin ningún
proyecto interesante y os gustaría tener un verdadero S.O. que
pudierais modificar a placer? ¿Os resulta frustrante el tener solo a
Minix? Entonces, este artículo es para vosotros. "Como dije hace un mes,
estoy trabajando en una versión gratuita de algo parecido a Minix
para ordenadores At-386. He alcanzado la etapa en la que puede ser
utilizable y voy a poner las fuentes para su distribución. Es solo la
versión 0.02. pero he conseguido ejecutar en él bash, gcc, gnu-make,
gnu-sed, compress, etc."
Tras numerosas revisiones, se alcanzó la versión 0.95, reflejando la esperanza de tener lista muy
pronto una versión "oficial". (Generalmente, la versión 1.0 de los programas se corresponden con
la primera teóricamente completa y sin errores). Esto sucedía en Marzo de 1992. Año y medio
después, en Diciembre del 93, el núcleo estaba en la revisión 0.99.pl14, en una aproximación
asintótica al 1.0. Actualmente, el núcleo se encuentra en la versión 2.2.x Hoy Linux es ya un
clónico de UNIX completo, capaz de ejecutar X Window, TCP/IP, Emacs, UUCP y software de
correo y News. Mucho software de libre distribución ha sido ya portado a Linux, y están
empezando a aparecer aplicaciones comerciales.
El hardware soportado es mucho mayor que en las primeras versiones del núcleo. Mucha gente
ha ejecutado tests de rendimiento en sus sistemas Linux 486 y se han encontrado que son
comparables a las estaciones de trabajo de gama media de Sun Microsystems y Digital. ¿Quién
iba a imaginar que este "pequeño" clónico de UNIX iba a convertirse en un estándar mundial para
los ordenadores personales? como lo es hoy en día.
Instituto Nacional de Estadística e Informática
9
Introducción a LINUX
3. ¿Porqué LINUX?
Cuando se desarrollo el sistema operativo Linux, muchos pensaban que no tendría éxito. A lo más
podría tener un éxito de corto plazo. Probablemente sería rápidamente olvidado como OS/2,
Nextstep, Interactive, y otras alternativas comerciales maduras.
Hoy Linux cuenta con decenas de miles, si no millones, de entusiastas usuarios, y estamos seguros
de que Linux disfrutará de éxito por largo tiempo.
La lista de rasgos actuales de Linux es impresionante. Por ejemplo, corre en un rango más ancho
de equipos PC que cualquier otro SO no-Microsoft. Cuando usted también considera que Linux
corre sobre computadoras Alpha de Digital, Sun SPARC y ahora hardware Apple PowerMac, Linux
igual aventaja a otros SOs.
Además, ofrece un ambiente fiable y estable de multitasking /multithreading en todas éstas
plataformas, con apoyo para SMP (multiprocesamiento simétrico), y una amplia lista de hardware
drivers para virtualmente todos los hardware populares. Sin embargo, los factores que asegurarán
el éxito a largo plazo de Linux tienen poco que ver con la lista actual de rasgos, y mucho más con
cómo es licenciado.
3.1
¿Cómo es Licenciado Linux?
Todos estos rasgos parecen notables más aun cuando usted
considera que es libremente distribuido bajo los términos de la
licencia GPL. Simplemente con poner esta licencia permite a
cualquiera trabajar en Linux proporcionando a ellos hacer que sus
cambios estén disponibles bajo los mismos términos. Esto significa
que mientras Linux puede ser (y es) vendido en una variedad de
formas, puede también ser bajado o ser copiado sin costo o
restricción.
La GPL no es el único tipo de licencia de software free, y Linux se
beneficia de software licenciado bajo varios otros tipos de licencias
de software libremente-distribuible.
Los cuatro tipos principales son: Software del Dominio público (Public Domain Software),
Shareware, derechos de propiedad de tipo-BSD, y la Licencia Pública General (GPL). Hay pros y
contras en cada uno de estos, pero para proyectos de desarrollo de software cooperativo nosotros
preferimos la GPL y aquí esta por qué:
La GPL le permite toda la libertad de los otros, con un beneficio agregado - no a usted o su autor
- pero un beneficio para el propio proyecto: Requiriendo que si usted puso cualquier cambio o
agregado al código GPL que usted pidió prestado queden bajo los mismos términos de GPL,
10
Instituto Nacional de Estadística e Informática
Introducción a LINUX
asegurándose que ningún desarrollador gana alguna ventaja encima de otros contribuyentes del
desarrollo. (Software en el que simplemente corre sobre de o usa Linux u otro código de GPL
pueden ponerse bajo cualquier derecho de propiedad que usted escoja).
Esto resuelve problemas como ocurrió en el proyecto de UNIX original. AT&T sostuvo los derechos
de propiedad de UNIX y muchos grupos incluso el de la Universidad de California de Berkeley les
ayudaron a construirlo. Cuando estuvo terminado, AT&T ejerció sus derechos de propiedad para
restringir todo el uso de la tecnología que se había construido cooperativamente.
Bajo la GPL el derecho de propiedad de Linux puede ser sostenido por Linus Torvalds y otros pero
ellos no tienen ningún mayor derecho para restringir el uso de él que usted o Red Hat hacen. Esta
carga pequeña de falta de control restrictivo asegura que Linux y sus tecnologías relacionadas
continuarán evolucionando para el beneficio igual de todos sus usuarios.
3.2
¿De donde vienen los recursos para desarrollo de Linux?
¿Cómo puede un SO gratis que al parecer no tiene dinero detrás de él ser competitivo con
productos de las compañías de software de computadora más ricas del mundo? Las apariencias
pueden engañar.
Hay de hecho una porción de dinero que se invierte en desarrollo de Linux. Compañías
comerciales de Linux como Red Hat Software y otras, invierten directamente en Linux a través de
código que sus programadores escriben y contribuyen bajo la GPL, y dinero que es donado a los
equipos de desarrollo Linux más importantes como la Fundación de Software Libre y los proyectos
GNU, la LDP y a los responsables por la documentación de Linux, y al equipo XFree86 y su
Servidor de X.
El papel de Red Hat Software en el desarrollo de Linux se relaciona con que los desarrolladores de
Linux que son principalmente indiferentes en las características de facilidad-de-uso. Si usted tiene
las habilidades para ayudar escribir un código de sistema operativo también usted tiene las
habilidades para instalar y manejar un SO sin usar menús pull-down, cajas del diálogo, y
Instituto Nacional de Estadística e Informática
11
Introducción a LINUX
herramientas de configuración. Rasgos, que la mayoría de las personas a quiénes podría
beneficiar el uso un sistema operativo avanzado, requieren para usarlo productivamente.
La historia de Red Hat Linux ilustra este punto. En 1994 Marc Ewing, un graduado del famoso
programa de informática de Carnegie Mellon, estaba trabajando a IBM. En su tiempo libre él
estaba construyendo la herramienta de desarrollo más avanzada del mundo. Sus máquinas de
desarrollo eran una pareja de workstations Linux. Ellos estaban ejecutando SLS Linux que él había
tenido que parchar y modificar substancialmente. Cuando él encontró que no estaba teniendo el
progreso que él esperó en su proyecto, se detuvo y analizó el uso de su tiempo.
Él descubrió que estaba gastando más tiempo manteniendo su workstations Linux que lo que
estaba trabajando en su proyecto. De esa manera se detuvo y decidió que el mundo realmente no
necesita otra herramienta de desarrollo, pero sí una mejor distribución de Linux.
Así empezó el proyecto de Linux Red Hat proyectándose sobre las limitaciones de Linux que él
había experimentado personalmente. Un ejemplo de esto es RPM - posiblemente el sistema de
software de manejo de paquetes más avanzado y sofisticado de la industria de computadoras. Los
RPM permiten a los usuarios de Linux instalar nuevos paquetes o actualizar los viejos, sin todas las
pruebas y los errores de poner los archivos apropiados en los directorios correctos, construyendo
los links necesarios, y en el caso de las actualizaciones borrando los archivos y links viejos.
Los RPM hacen todo esto por el usuario incluyendo advertir al usuario de otros programas y
archivos que el nuevo programa requiera por lo que no pueda instalarse todavía, ahorrando, a
nuevos usuarios y desarrolladores experimentados, horas de administración y de mantenimiento
del sistema.
Contribuyendo con valiosos rasgos de facilidad-de-uso al SO Linux bajo GPL, Red Hat ha hecho
al Linux SO útil para un número mayor de usuarios de computadoras los cuales extienden a la
comunidad de Linux. A su vez Red Hat puede hacer ventas de CD Linux, libros y aplicaciones las
que ensanchan rápidamente el mercado de Linux. Pero las contribuciones de compañías como
Red Hat Software sólo representan una parte pequeña de los fondos que entran en el desarrollo
de Linux.
♦
Linux es construido por los usuarios para los usuarios:
El volumen de desarrollo de Linux es consolidado por los
desarrolladores que trabajan en Linux para aplicarlo a los proyectos o
aplicaciones que ellos necesitan.
Desde proyectos de super-computación de NASA a desarrollo de
software de empresas como Empress Software, el trabajo es
consolidado por los usuarios para su propio beneficio. El hecho de que
este trabajo también beneficia de gran forma a la comunidad usuaria
de Linux es simplemente una realidad en el verdadero sentido de esa
palabra.
La historia del disco ZIP Iomega en Linux es un buen ejemplo. Grant Guenther, el diseñador en
jefe de los fabricantes de bases de datos Empress Software Inc. (http://www.empress.com/) estaba
12
Instituto Nacional de Estadística e Informática
Introducción a LINUX
animando el uso de Linux como OS de desarrollo de Empress. Dieron acceso a sus equipos de
desarrollo a workstations de bajo costo para el trabajo y para la casa. Cuando Empress escogió
el ZIP drive como estándar para la compañía para transferir datos, Grant encontró que ellos no
tenían soporte para Linux.
El tenía opciones y tenía que hacer una decisión. Abandonar Linux y comprar números
significantes de las licencias caras de las alternativas comerciales, las que vienen sin compiladores
o códigos fuente - dos de las valiosas características de Linux para los desarrolladores de software
- o gastar algún tiempo investigando y escribiendo su propio driver ZIP para Linux. Lo que hizo.
Grant, como jefe de desarrollo de una compañía de base de datos comercial tenía ambas
habilidades y estaba entrenando para hacer bien este trabajo.
Habiéndolo construido, lo anunció entonces en Internet pidiendo ayuda para probarlo y
mejorarlo. Asi, rápidamente se volvió parte del SO Linux para el uso de cualquiera que tuviera un
drive ZIP de Iomega.
♦
Desarrollo de Linux continuado:
Empress Software podría haber cobrado varios miles de
dólares por los servicios que Grant hizo por escribir
profesionalmente semejante driver. Bajo el modelo de Linux/GNU
en el que el incentivo directo no está en el dinero en efectivo pero el
beneficio indirecto para él y Empress radica en el uso que le dan a
Linux.
Ahora considere a Empress y Red Hat son sólo dos de varias
miles de organizaciones las que incluyen literalmente todas las
grandes instituciones de investigación gubernamentales, la mayoría
de las Universidades y una mayoría de los equipos de investigación
comercial y de desarrollo de software, y de usted que empieza a
concebir una idea del notable alcance y calidad del SO Linux no son ningún accidente.
La grande (y creciente) cantidad de esfuerzo en desarrollo detrás de Linux resulta, en esta
tecnología, que se mantenga o sobrepase cualquier proyecto comercial de SOs que usted pueda
nombrar. Un ejemplo ilustrativo es la seguridad. Debido a la naturaleza extensamente abierta de
Linux y sus fuentes disponibles, se identifican problemas de seguridad, se debaten, y se reparan en
tiempo real. El problema se discute abiertamente, los parches se prueban ampliamente, y el
problema es trabajado hasta que es resuelto para la satisfacción de todos.
Mientras esta discusión abierta de problemas de seguridad en Linux tiene, de vez en cuando, a los
usuarios de SOs tradicionales desconcertados al pensar que Linux tiene problemas de seguridad a decir verdad: todos los SOs tienen problemas de seguridad, Linux simplemente los identifica y
los resuelve más rápido.
Cuando nos ponemos a pensar de cuantas compañías como Red Hat pueden tener éxito
compitiendo con gigantes corporativos en el negocio de los sistemas operativos, nosotros
pensamos en personas como Grant Guenther, en desarrolladores de la Universidad de Helsinki,
en la National Aeronautics and Space Administration (NASA), en todas las universidades y en los
Instituto Nacional de Estadística e Informática
13
Introducción a LINUX
equipos de investigación comerciales que funcionan alrededor del mundo sobre Linux. De pronto
la pregunta se da vuelta... "¿Cómo es que estos gigantes van a competir con Linux?"
3.3
Características Principales
El Sistema Operativo Linux presenta las siguientes
características:
Multitarea: varios programas (realmente procesos)
•
ejecutándose al mismo tiempo.
Multiusuario: varios usuarios en la misma máquina al
•
mismo tiempo (¡y sin tener que comprar licencias para
cada usuario!).
Multiplataforma: corre en muchas CPUs 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.
[No como otros sistemas que todos conocemos ]
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.
•
•
•
•
14
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
Instituto Nacional de Estadística e Informática
Introducción a LINUX
•
•
•
•
•
•
•
•
•
•
•
•
•
3.4
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. (Está de hecho
disponible desde principios de 1997)
Un sistema de archivos especial llamado UMSDOS que permite que Linux sea
instalado en un sistema de archivos DOS.
Soporte en sólo lectura de HPFS-2 del OS/2 2.1
Sistema de archivos de CD-ROM que lee todos los formatos estándar de CDROM.
TCP/IP, incluyendo ftp, telnet, NFS, etc.
Appletalk disponible en el actual núcleo de desarrollo.
Software cliente y servidor Netware disponible en los núcleos de desarrollo. (Ya
está disponible de forma standar)
Ventajas de Linux frente a otros S.O.
Muchos somos conscientes de que el mayor inconveniente de cualquier sistema Unix, Linux
incluido, es la 'empinada' curva de aprendizaje que se le obliga a 'subir' al usuario tipo de
cualquier otro sistema operativo.
Muchas veces termina uno preguntándose si realmente merece la pena ese esfuerzo.
Instituto Nacional de Estadística e Informática
15
Introducción a LINUX
Normalmente, ese tipo de preguntas suelen aparecer durante las primeras semanas de
aprendizaje del sistema, cuando todavía no se ha obtenido una visión global de sus posibilidades.
Con el tiempo, uno aprende a pensar de una forma radicalmente diferente a la que tenía cuando
se sentaba delante de otros S.O. propietarios, como el OS/2, (ya vencido), System 7, de Mac o
los Win95 o NT de Microsoft.
Con estos sistemas, uno se acostumbra a 'ver' solo las opciones que el sistema le presente,
mientras que en cualquier Unix, lo que no se te presenta directamente, enseguida estás pensando
en como hacerlo. Este cambio de mentalidad delante del sistema se convierte en un pequeño reto
diario que los usuarios de Linux solemos disfrutar cada día.
OS/2 y Windows NT son sistemas operativos completamente multitarea, muy parecidos a Linux.
Técnicamente, OS/2, Windows NT y Linux son bastante similares: Soportan aproximadamente las
mismas características en términos de interfaz de usuario, redes, seguridad, y demás. Sin
embargo, la diferencia real entre Linux y los otros es el hecho de que Linux es una versión de
UNIX, y por ello se beneficia de las contribuciones de la comunidad UNIX en pleno.
¿Qué hace a UNIX tan importante?
No solo es el sistema operativo más popular para máquinas multiusuario,
también es la base de la mayoría del mundo del software de libre distribución.
Si tiene acceso a Internet, casi todo el software de libre distribución disponible
está específicamente escrito para sistemas UNIX. (Internet en si está
profundamente basada en UNIX.)
Hay muchas implementaciones de UNIX, de muchos vendedores, y ni una sola organización es
responsable de su distribución. Hay un gran pulso en la comunidad UNIX por la estandarización
en forma de sistemas abiertos, pero ninguna corporación controla este diseño. Por eso, ningún
vendedor (o, como parece, ningún hacker) puede adoptar estos estándares en una
implementación de UNIX.
Por otro lado, OS/2 y Windows NT son sistemas propietarios. El interface y diseño están
controlados por una sola corporación, y solo esa corporación puede implementar ese diseño. (No
espere encontrar una versión gratis de OS/2 en un futuro cercano.) De alguna forma, este tipo de
organización es beneficiosa: establece un estándar estricto para la programación y el interfaz de
usuario distinto al encontrado incluso en la comunidad de sistemas abiertos.
OS/2 es OS/2 vaya donde vaya lo mismo ocurre con Windows NT.Sin embargo, el interface UNIX
está constantemente desarrollándose y cambiando. Varias organizaciones están intentando
estandarizar el modelo de programación, pero la tarea es muy difícil.
Linux, en particular, es en su mayoría compatible con el estándar POSIX. para el interface de
programación UNIX. A medida que pase el tiempo, se espera que el sistema se adhiera a otros
estándares, pero la estandarización no es la etapa primaria en la comunidad de desarrollo de
Linux.
16
Instituto Nacional de Estadística e Informática
Introducción a LINUX
Entre las ventajas más saltantes de Linux podemos mencionar las siguientes:
•
•
•
•
•
•
•
•
•
•
•
•
•
Linux representa la mejor variante de UNIX, al cual
se le ha confiado aplicaciones de misión crítica y -debido a su código fuente abierto -- tiene una
credibilidad a largo plazo que excede a muchos
otros SO que compiten con él.
La mayor parte de las aplicaciones primarias que la
gente requiere cuando se desplazan hacia Linux ya
están disponibles de manera gratuita. Entre estos
están los servidores de web, clientes POP, servidores
de correo, editores de texto, etc.
Un usuario avanzado del GUI de Win32 tendría que pasar por un período corto de
aprendizaje para hacerse productivo [bajo Linux].
Las virtudes de Linux incluyen: Personalización... Disponibilidad / Confiabilidad ...
Escalabilidad / Desempeño... Interoperabilidad...
Linux está emergiendo como un sistema operativo clave dentro del mercado de servidores.
Utilizando los requerimientos actuales para servidores, Linux es una alternativa creíble para
los servidores desarrollados de manera comercial en muchas aplicaciones de alto volumen.
Se puede usar en casi cualquier computadora, desde una 386.
Puede manejar múltiples procesadores. Incluso hasta 16 procesadores.
Libre de virus, aun no se conoce ningún virus para Linux.
Maneja discos duros de hasta 16 TeraBytes.
Se posee el apoyo de millones de usuarios a nivel mundial.
Los fabricantes de Hardware le están dando su apoyo, como IBM y COMPAQ.
La ventaja más contundente se encuentra en la relación costo beneficio, a comparación de
otros SOs. Como ejemplo mostramos el costo de una solución para redes con Microsoft
Windows NT 4.0 y con Linux S.u.S.e. 5.2
Cuadro Comparativo
Windows NT 4.0 - Linux
Servicio
Microsoft
Costo
Sistema Operativo Windows NT Server 4.0 US $ 2.950,00
Linux
Costo
S.u.S.E. Linux 5.2
US $ 89,00
Apache
US $
0,00
Web Server
Internet Information
Server (I IS)
E-Mail
Exchange 5.0 Enterprise US $ 6.400,00
Sendmail, UW I MAP,
US $
POP-3
0,00
Telnet server
SLNet (4 usuarios)
US $
300,00
Incluida licencia libre
ilimitada
US $
0,00
FTP server
Incluido con I IS
US $
0,00
Incluido
US $
0,00
Base de datos
relacional
SQL Server 6.5
US $ 10.650,00
ADABAS D
US $ 250,00
Proxy Server
Microsoft Proxy Server
US $
995,00
Squid Object Cache
US $
0,00
Backup Software
Incluido
US $
0,00
Backup Arkeia
US $
0,00
Costo Total
US $
0,00
US$ 20.995,00
Instituto Nacional de Estadística e Informática
US$ 339,00
17
Introducción a LINUX
4. Estructura de LINUX
"Linux" técnicamente es solamente el Kernel, no el SO de soporte. Para poder crear un producto
útil, las "distribuciones" de Linux son creadas cuando se relaciona el Kernel, manejadores y
aplicaciones y muchos otros componentes necesarios para tener una experiencia plena del
UNIX/GUI.
Los subsistemas son desarrollados típicamente dentro del esquema del OSS, así como varios de
ellos – ej. el Xfree86 GUI – tienen una base de código fuente de tamaño/complejidad que excede
el Kernel de Linux.
Estos componentes externos vienen de muchas fuentes, y son escogidos individualmente por el
vendedor de la distribución de un producto en particular. Un fuente frecuente de controversia
surge debido a que los vendedores de distribución conectan código que no es GPL con el kernel
de Linux y lo distribuyen de manera masiva.
COMPONENTES DE LINUX
Componente
Encargado(s) de
Proporcionarlo /
Mantenerlo
Código Fuente Base/Nombre
Kernel
SO Básico, Conexión en Red, Stacks
Linux
Sistema(s) de Archivos
MSDOS, EXT2FS
Kernel de Linux
Biblioteca de System
Glibc, Lib5c
GNU/FSF
Manejadores
(http://www.kernel.org/ )
Contribuidores Inidividuales, Linux
Herramientas para Usuarios
Herramientas para Usuarios de GNU
GNU/FSF
Instalación del System
LISA
Caldera
Instalación de Aplicaciones
Mantenimiento
Red Hat Package Manager
Red Hat
Herramientas de Desarrollo
Herramientas de Desarrollo GNU GCC
GNU/FSF
Servidor de Web
APACHE
El Grupo Apache
http://www.apache.org/
Servidor de Correos
SendMail
http://www.sendmail.org/
Servidor de DNS
BIND
http://www.bind.org/
Servidor X
Xfree86 / Metro X
Proyecto Xfree86/
comercial
Manejador de Ventanas
FVWM
GPL
Widgets
Motif
X Consortium
Herramientas de Escritorio
X Contrib, KDE
Gnome
X Consortium
http://www.kde.org/
http://www.gnome.org/
Mantenimiento
Paquetes RPM Instalados
Específico de cada distribución
Red Hat (gratuito)
Debian / Slackware
Metro
X
Descripción Detallada
18
Instituto Nacional de Estadística e Informática
Introducción a LINUX
4.1
Kernel GPL
El Kernel es la parte central de Linux que está manejada expresamente por Linus Torvalds y
sus lugartenientes y está protegida vía GPL.
Las funciones contenidas dentro del Kernel de Linux son:
•
•
•
Características centrales del SO (distribución del tiempo, administración de la memoria,
hilos, abstracción del hardware, etc.).
Stack de red
Sistema de archivos
Se puede encontrar una extensa documentación sobre la arquitectura del Kernel de Linux y de sus
componentes en:
http://sunsite.unc.edu/linux/LDP/tlk/tlk.html.
Nótese que los manejadores de video existen fuera del Kernel – el Kernel sólo tiene soporte para
un desplegado en modo de texto para la consola.
El Kernel de Linux esta en constante actualización y es el núcleo central de todas las distribuciones
Linux.
Las versiones se dividen en 3 categorías: estable, alpha y beta.
Las versiones estables, son las que han sido totalmente probadas y son la base de todas las
distribuciones.
Instituto Nacional de Estadística e Informática
19
Introducción a LINUX
Las versiones alpha son las que están en una etapa previa de evaluación entre la beta y la estable
y son las candidatas a la próxima versión estable.
Las versiones beta son versiones estrictamente de evaluación, en la que se incorporan mejoras o
novedades que deben ser debidamente evaluadas, antes de pasar a la etapas de alpha y estable.
Las versiones actuales son:
Ultima Versión estable:2.2.14
Ultima Versión Alpha: 2.3.99/3-6
Ultima Versión Beta: 2.3.99-pre2
4.2
Manejadores – GPL
Son componentes típicos de una distribución de Kernel un conjunto variado de módulos para
funciones y dispositivos estándar. Además, frecuentemente se incluye una selección de módulos
no estándar.
Sin embargo, en algunos casos en que el software es en su mayor parte GPL, pero que los NDA
con los fabricantes de hardware son obligados a proporcionar especificaciones para hacer un
controlador, en cuyo caso no son de fuente abierta.
Los manejadores de dispositivos de Linux son típicamente desarrollados por usuarios de
dispositivos específicos sobre sus máquinas. Este proceso acumulativo de poquito en poquito ha
creado un gran conjunto de manejadores de dispositivos para Linux (hasta el 1 de Julio de 1998):
•
•
•
Vídeo: http://sunsite.unc.edu/LDP/HOWTO/Hardware-HOWTO-6.html– cerca de 400
manejadores dispositivos disponibles.
Red: http://sunsite.unc.edu/LDP/HOWTO/Hardware-HOWTO-11.html – cerca de 75
tarjetas de red tienen soporte.
PCMCIA: http://sunsite.unc.edu/LDP/HOWTO/Hardware-HOWTO-26.html – cerca de 150
tarjetas con soporte.
NatBro señala que:
Una importante característica a notar, que ha llevado a ese volumen de manejadores, es la
facilidad con que usted puede escribir manejadores para Linux, y la infraestructura de depuración
relativamente poderosa que Linux tiene. Encontrar e instalar el DDK y tratar de unirlo a un
depurador del kernel y realizar cualquier tipo de interacción con el modo de usuarios sin romper
en pedazos el sistema NT implica un reto bastante mayor que escribir un manejador sencillo de
dispositivo para Linux. Cualquiera podría escribir un manejador en dos días con un libro como
"Manejadores de Dispositivos de Linux" – no hay tal cosa como un manejador de dispositivo en
dos días para NT.
20
Instituto Nacional de Estadística e Informática
Introducción a LINUX
Recientemente, varios vendedores pequeños de hardware han comenzado a proporcionar
manejadores para sus NICs (3Com) y adaptadores SCSI (Adaptec). Se cree que estos dispositivos
serán protegidos por la Librería-GPL y por lo tanto no serán software abierto (la Librería-GPL será
descrita posteriormente).
Librerías de Sistema y Aplicaciones – GNU GPL
Las librerías de sistema proporcionan:
•
•
API POSIX básicos para servicios de sistema.
API básicos para utilerías de líneas de comando/shell.
Las librerías de sistemas dentro de una distribución de Linux NO son manejadas por Linux. Como
tales, se ha presentado un poco de escisiones en esta área con dos librerías dominantes – glibc y
lib5c – quienes introducen incompatibilidades menores entre diferentes aplicaciones.
4.3
Herramientas de Usuario
Herramientas del Usuario (GPL, GNU FSF)
Estas son herramientas de línea de comando de UNIX y ambientes de shell básicos. Existen
muchos ambientes de shell, aunque todos tienen soporte para FSF.
También, dentro de esta categoría están las viejas aplicaciones "stand by" tales como Finger,
Telnet, etc.
Herramientas de Desarrollo (GPL)
Uno de los éxitos del sistema operativo UNIX es la disponibilidad gratuita de herramientas de
desarrollo/compilación. Los compiladores de lenguaje GCC y PERL son frecuentemente
proporcionados de manera gratuita para todas las versiones de Linux y están disponibles también
para otras variantes de UNIX.
Para los estándares del desarrollador novato/intermedio para VB/VS/VC/VJ, estas herramientas
son increíblemente primitivas.
4.4
X SERVER
El X Server pertenece a MIT, quien se lo concesiona a la X Consortium. Las prácticas de
licenciamiento de X Consortium son vistas como demasiado limitantes por la gente de OSS, por lo
que se lanzaron una serie de iniciativas públicas X. Entre las que se lanzaron, el Xfree86 se
convirtió en la distribución dominante.
Lo que es interesante es que la licencia del equipo de desarrollo de Xfree86 está bajo la licencia
de BSD, debido a que consideran a la GPL demasiado restrictiva: http://www.redhat.com/linuxinfo/xfree86/developer.html.
Instituto Nacional de Estadística e Informática
21
Introducción a LINUX
La configuración del sistema Xfree86 sobre Linux puede ser un proceso bastante difícil, que
consume mucho tiempo. Linux no tiene capa de abstracción de hardware para los servicios de
video, y la mayor parte de los fabricantes de tarjeta de video no proporcionan manejadores de
video para el SO Linux. Así, Xfree86 proporciona soporte interno para una amplia variedad de
tarjetas de video y chipsets. Una configuración correcta de Xfree86 requiere de que el usuario
conozca al fabricante, modelo y chipset de su tarjeta de video. En muchos casos, el usuario
deberá conocer o calcular la sincronización de video.
4.5
Widgets y Desktops
Existen muchos conjuntos de widget que existen en muchas aplicaciones, por lo que no
todas las aplicaciones X parecen ser la misma o actúan de la misma manera que Windows. Se le
considera a Motif como el conjunto de widget de UNIX de facto, pero debido a que no se puede
distribuir libremente, ésta es contraria al modelo de Linux.
Por lo tanto, las distribuciones de Linux generalmente escogen uno de tantos conjuntos Widget,
aunque no sean completamente compatibles.
•
•
•
•
Motif
LessTif
Xaw3d (widgets 3d athena que se ven como los de Motif)
Qt
Obviamente, este caos ha entorpecido varios esfuerzos para unificar el "desktop", así como los
conjuntos widget. A la típica manera Linux, existen varios esfuerzos que compiten entre sí:
•
•
•
•
4.6
Gnome / totalmente nuevo
KDE
FreeQT / KDE
CDE / Comercial
Servidor WEB – Apache
Apache es un "programa de servidores", que son el cerebro y corazón de poderosos
ordenadores que administran los sitios Web.
Contrariamente a los programas comerciales, distribuidos en
determinados códigos ejecutable -que el ordenador
comprende-, Apache es un programa libre (freeware).
Apache está publicado sobre Internet en un código
original, el código fuente, que cada uno es libre de rescribir a su gusto para adaptar mejor el
programa a sus necesidades específicas o rectificar errores.
22
Instituto Nacional de Estadística e Informática
Introducción a LINUX
La única obligación es que esta nueva versión de Apache debe ser publicada a su turno sobre
Internet en código fuente.
Forma así una comunidad de un potencial de millones de profesionales que participan en el
desarrollo del programa. Según la publicación mensual de estadísticas sobre Internet Netcraft,
Apache equipe al 49% de los sites Web.
Apache compite directamente con un servidor desarrollado por Netscape y con
un producto de Microsoft, Internet Information Server (IIS).
¿Que es Apache?
Apache se basó originalmente en codificación e ideas basadas en el servidor HTTP mas popular
de todos, el NCSA httpd 1.3 (principios de 1995). Esto ha desencaminado en un sistema que
puede rivalizar (y probablemente sobrepasar) a casi cualquier otro servidor basado en UNIX HTTP
en cuanto a funcionalidad, eficacia y rapidez. Desde su comienzo, se ha vuelto a escribir
completamente, e incluye muchos rasgos nuevos. Apache, actualmente, es el servidor WWW mas
popular en Internet, según el Netcraft Survey.
¿Por que se creo Apache?
Apache fue creado para enviar las preocupaciones de un grupo de proveedores WWW y
programadores httpd a los cuales ese httpd no se porto como querían que se portara. Apache es
producto de un esfuerzo enteramente voluntario, completamente consolidado por sus miembros,
no por ventas comerciales.
Instituto Nacional de Estadística e Informática
23
Introducción a LINUX
¿Como hace el grupo de trabajo del Apache para relatar sus esfuerzos a otros
servidores tales como NCSA?
Ellos, por supuesto, tienen una gran deuda con NCSA y sus programadores porque el servidor
Apache este basado en el. De todos modos, ahora ellos tienen su propio servidor y su proyecto es
mayormente de ellos. El Proyecto Apache es una empresa enteramente independiente. ¿De donde
viene el nombre de Apache? El nombre de Apache viene de "A PAtCHy server", (Un servidor lleno
de remiendos). Estaba basado en alguna codificación existente y en una serie de archivos
"parche".
¿Como se compara Apache con otros servidores?
Apache ha mostrado ser substancialmente mas rápido que muchos otros servidores libres. Aunque
seguro que los servidores comerciales han exigido superar la rapidez del Apache, ellos opinan
que es mejor tener un servidor libre y en su mayor parte rápido, que un servidor extremadamente
rápido pero que cueste miles de dólares. Apache funciona en sitios que tienen millones de usos al
día, y estas se ejecutan sin complicaciones.
¿Como se ha comprobado totalmente el Apache?
Para garantizar que funciona completamente hay que tener en cuenta que Apache esta en mas de
500,000 servidores en Internet, y se ha probado completamente por servidores y usuarios. Aparte,
el Grupo Apache mantiene normas rigurosas antes de lanzar versiones nuevas de su servidor. Este
corre sobre una tercera parte de los servidores WWW disponibles en Internet. Cuando aparecen
"Bugs" el Grupo Apache lanza parches y versiones nuevas en cuanto estas están disponibles. La
Pagina Web del Proyecto Apache (http://www.apache.org/ )incluye una lista parcial de los sitios
que funcionan con Apache. ¿Cuáles son sus planes de futuro?
•
•
•
•
Continuar como un servidor público de HTTP.
Seguir con los adelantos en protocolo HTTP y desarrollos del Web en general.
Recoger sugerencias de los usuarios para ajustes y mejoras.
Responder a las necesidades de un gran numero de proveedores así como a usuarios.
¿Con quien tengo que contactar para recibir ayuda?
No hay ningún soporte oficial de Apache. Ninguno de los desarrolladores quiere sumergirse en un
mar de preguntas triviales que se pueden resolver en otra parte. Informes de "bugs" y sugerencias
deben enviarse vía pagina de informe de "bugs".
Otras preguntas deben dirigirse al comp.infosystems.www.servers.unix newsgroup donde alguien
del equipo Apache que este en ese momento debería ser capaz de ayudar.
24
Instituto Nacional de Estadística e Informática
Introducción a LINUX
¿Existe mas información sobre Apache?
Por supuesto que si. En esta misma pagina hay una lista de direcciones en Internet sobre Apache.
¿Donde se puede conseguir el Apache?
Puede enterarse de como bajarse la fuente
del Apache en la página del Proyecto
Apache en Internet http://www.apache.org/
¿Cuál es
Apache?
la
ultima
versión
de
Apache se encuentra actualmente en su
versión 1.3.12 la cual puede ser
descargada
de
su
sitio
web
http://www.apache.org
Adicionalmente ya se encuentra en su etapa Alpha la próxima versión 2.0 la cual también puede
ser descargada.
4.7
Servidor de Correo – Sendmail
Sendmail es el agente de transporte de correo más común de
Internet (en los sistemas UNIX). Aunque actúa principalmente como
MTA, también puede ser utilizado como MUA (aunque no posee
interfaz de usuario). Las misiones básicas de sendmail son las
siguientes:
•
•
•
•
•
•
Recogida de mails provinientes de un Mail User Agent (MUA)
como pueden ser elm, Eudora o pine; o provinientes de un Mail
Transport Agent (MTA) como puede ser el propio sendmail.
Elección de la estrategia de reparto de los mails, basándose en la información de la dirección
del destinatario contenida en la cabecera:
Si el mail es local en nuestro sistema, enviará el mail al programa de reparto local de mails.
Si el mail no es local, sendmail utilizará el DNS de nuestro sistema para determinar el host al
que debe ser enviado el mail. Para transferir el mensaje, iniciará una sesión SMTP con el
MTA de dicho host.
Si no es posible mandar el mail a su destino (porque la maquina receptora esta
desconectada, o va muy lenta), sendmail almacenará los mails en una cola de correo, y
volverá a intentar el envío del mail un tiempo después. Si el mail no puede ser enviado tras
un tiempo razonable, el mail será devuelto a su autor con un mensaje de error. Sendmail
debe garantizar que cada mensaje llegue correctamente a su destino, o si hay error este debe
ser notificado (ningún mail debe perderse completamente).
Reformatear el mail antes de pasarlo a la siguiente máquina, según unas reglas de
reescritura. Según el tipo de conexión que poseamos con una determinada máquina, o según
Instituto Nacional de Estadística e Informática
25
Introducción a LINUX
•
•
el agente de transporte al que vaya dirigido el mail, necesitaremos cambiar los formatos de
las direcciones del remitente y del destinatario, algunas líneas de la cabecera del mail, o
incluso puede que necesitemos añadir alguna línea a la cabecera. Sendmail debe realizar
todas estas tareas para conseguir la máxima compatibilidad entre usuarios distintos.
Otra función muy importante de sendmail es permitir el uso de "alias" entre los usuarios del
sistema; lo que nos permitirá (entre otras funciones) crear y mantener listas de correo entre
grupos.
Ejecución como agente de usuario (MUA). Aunque no posee interfaz de usuario, sendmail
también permite el envío directo de mails a través de su ejecutable.
Todas estas características y muchas otras que posee el sendmail deben ser configuradas y
variarán de unos sistemas a otros. Para configurarlas hacemos uso del fichero de configuración
de sendmail. La revisión y modificación de este fichero es bastante complicada y necesita de una
serie de conocimientos previos.
La ultima versión de sendmail es la 8.10.0 y puede ser descargada de su sitio web
http://www.sendmail.org
4.8
Servidor DNS – Bind
En una red TCP/IP típica, el servidor de nombres es una máquina
encargada de hacer la conversión entre direcciones nombres de máquinas y
direcciones IP y viceversa. El software utilizado para este fin fue desarrollado en
la universidad de Berkeley, California, y es llamado por esta razón BIND
(Berkeley Internet Name Domain).
El software BIND incluye un demonio llamado named, así como utilerías que permiten controlar
este programa, que es el encargado de realizar las traducciones de nombres a IP
La ulrima versión de BIND es la 8.2.2 patchlevel 5 la cual puede ser descargada del sitio web
http://www.isc.org/products/BIND
♦
¿ Dónde conseguir el software?
En algunas versiones de Unix, como SCO ODE 2.0 y superiores, el software ya viene
incluido, sin embargo el código fuente de última versión de BIND puede obtenerse en ftp.vix.com.
Este software puede compilarse en casi cualquier versión moderna de Unix, aunque es necesario
leer cuidadosamente las instrucciones que acompañan al código fuente para hacer las
adecuaciones necesarias a cada ambiente.
Para algunas versiones del sistema operativo Linux es posible conseguir paquetes precompilados
que facilitan en gran manera la instalación del software. Para RedHat Linux, por ejemplo, es
posible obtener el paquete bind-4.9.4-3.i386.rpm del sitio oficial de RedHat, ftp.redhat.com. Un
buen sitio para obtener el paquete correspondiente a la versión de Slakware Linux es
sunsite.unc.edu
26
Instituto Nacional de Estadística e Informática
Introducción a LINUX
♦
Como instalarlo
El proceso de instalación varía de una versión de Unix a otra. En SCO, por ejemplo, es
necesario utilizar el custom runtime system para verificar que la instalación de TCP/IP haya sido
realizada adecuadamente. La instalación a partir de los fuentes debe hacerse siguiendo las
instrucciones que acompañan al código. Es necesario disponer de un ambiente de desarrollo
completo (compilador, make, etc.), compilar los fuentes y poner el ejecutable named y programas
auxiliares en un directorio como /usr/sbin.
La instalación en una máquina con Linux RedHat es muy sencilla. Basta utilizar el siguiente
comando en directorio que contiene los paquetes de software RedHat (RPMS):
rpm -i bind-4.9.3-3.i386.rpm
Los números de versión del paquete, así como el especificador de arquitectura (i386) pueden
variar: lo mejor es verificar el nombre exacto del paquete mediante el comando ls.
♦
Cómo ejecutarlo
El sistema operativo debería arrancar por sí solo el demonio named al terminar su propia
secuencia de arranque. En los sistemas UNIX BSD (Linux Slakware, por ejemplo), esto se logra
incluyendo en el archivo rc.local la línea:
named &
Los sistemas que, por el contrario, siguen la norma System V para los archivos de arranque,
contienen directorios especiales con scripts de shell que levantan los programas necesarios en
cada runlevel. El caso de Linux RedHat, es el más sencillo: la misma instalación mediante el
comando rpm agrega en el directorio correspondiente el script necesario para levantar el
demonio.
Instituto Nacional de Estadística e Informática
27
Introducción a LINUX
5. Compatibilidad de LINUX
La compatibilidad ha sido y será uno de los grandes éxitos de Linux, y en esto tiene mucho que ver
la gente que está colaborando en el desarrollo de Linux, que trabaja habitualmente sobre distintas
plataforma software, motivo este, que causa ese interés razonado por mantener la compatibilidad
con cualquier otro entorno informático.
Si trabajáramos con Mac o con Pc's, nos interesaría, en un momento dado, el poder intercambiar
la información que pudiera tener en ambos equipos. En Linux, estas necesidades van siendo
solventadas sobre la marcha, de manera que hoy día, se puede decir que alrededor del 50% del
software producido a nivel mundial se podría ejecutar sobre una plataforma Linux.
Actualmente contamos con emuladores para los principales entornos 'domésticos' del mundo, el
'Dosemu' para Ms-Dos, el 'wabi' y el 'wine' para Windows.
Aparte de las emulaciones, que como es lógico y normal, no rinden
igual que el sistema operativo al cual emulan, contamos con el 'samba',
que nos permite interactuar con sistemas Win95 utilizando su famoso
'Netbios', logrando compartir recursos de forma transparente en
cualquier pequeña, o no tan pequeña, red de área local.
También hemos logrado lo mismo con los entornos Mac, donde también
podemos compartir recursos de forma transparente.
Asimismo, hemos logrado interconectar los servidores de red Novell con cualquier servidor Linux,
de forma tal que podemos montar nuevos volúmenes desde Linux sin problemas.
Entre los formatos de ficheros soportados por Linux tenemos los siguientes:
Sistemas de Ficheros soportados
Sistema de Ficheros
Tipo
Definición
Extended File System
Ext
Reemplazado por ext2.
Second Extended Filesystem
Ext2
Sistema de ficheros mas común en Linux.
Minix File System
minix
Sistema de ficheros Minix original; raras veces utilizado.
Xia Filesystem
Xia
Como ext2, pero raras veces utilizado.
UMSDOS Filesystem
umsdos
Utilizado para instalar Linux en una partición MS-DOS.
MS-DOS File System
msdos
Utilizado para acceder a ficheros MS-DOS.
/proc File System
proc
Suministra información de proceso para ps, etc.
ISO 9660 File System
iso9660
Formato utilizado por muchos CD-ROMs.
Xenix File System
xenix
Sistema de ficheros de Xenix.
System V File System
sysv
Variantes del System V para el x86.
Coherent File System
coherent Acceso a ficheros de Coherent.
28
Instituto Nacional de Estadística e Informática
Introducción a LINUX
HPFS File System
hpfs
Acceso en lectura a particiones HPFS (DoubleSpace).
6. Conectividad de LINUX
Linux puede trabajar con otros SOs sin problemas gracias a los productos desarrollados para tal
fin, y uno de los mas usados es Samba.
Samba es un paquete que permite que un sistema Unix se integre en una red a través del
protocolo NETBIOS. De esta forma sistemas Unix pueden integrarse en redes Lan Manager y
compartir recursos con otros sistemas así como ofrecer recursos propios a los demás.
SAMBA es un conjunto de aplicaciones que permiten establecer una total Compartición de
recursos en sistemas heterogéneos. Fue desarrollado con la idea de que los UNIX "entendieran " el
lenguaje de los PC´s antes que los PC´s entendieran el lenguaje de UNIX. Se trata de un
protocolo muy complicado, y que ni siquiera Windows NT lo implementa en su totalidad, ya que
permite realizar tareas de muchas formas diferentes. Según Andrew Tridgell, parece como si cada
vez que Microsoft añadiera una nueva funcionalidad a su sistema operativo, añadiera la función
equivalente en un nuevo nivel de protocolo.
La aparición de "Windows for Workgroups" (WfW), llevó aparejada la aparición de un protocolo
de Compartición de servicios desarrollado por Microsoft.. Este protocolo llamado SMB (SERVER
MESSAGE BLOCK), también conocido por "Lan Manager" o "Netbios", se encuentra implementado
en WfW, Win95 y WinNT, y permite el intercambio de servicios entre distintos ordenadores en una
red local.
Debido a la proliferación y uso de este protocolo en clientes de gama baja, les surge la necesidad
a muchos programadores de que las máquinas de gama más alta puedan acceder a aquellas y
por eso surge SAMBA. Aunque inicialmente fue escrito para UNIX ha sido portado a OS/2, VMS y
Netware. Y aún dentro del mundo UNIX con todas sus variantes Samba funciona en muchas
plataformas diferentes: "GNU/ Linux, SunOS, Solaris, Ultrix, HP-UX, NetBSD, SCO, NeXT, IRIX,
etc...".
La primera versión de Samba salió en Diciembre de 1993, y la versión actual es la 1.9.17, que es
la que se distribuye habitualmente, con lo que Samba a pasado de ser un pequeño programa a
un programa muy popular y un proyecto de desarrollo de muchas personas. La distribución a
través de Internet es, una vez más, fundamental ya que ha hecho posible que muchas personas
hayan visto la gran utilidad de este software.
Instituto Nacional de Estadística e Informática
29
Introducción a LINUX
7. Conexión segura a Internet con LINUX - Firewall
Una red local conectada a Internet necesita de direcciones IP oficiales para todos los puestos de
la red. Por direcciones IP oficiales entendemos las direcciones que nos asigna nuestro proveedor
de servicios internet de su propio rango.
Si no tenemos direcciones reservadas para la red local. Es obligado que para conectar un
ordenador a una red TCP/IP (como internet), éste disponga de una dirección IP (un número de 32
bits que identifica cada ordenador de forma exclusiva, una especie de matrícula de circulación).
En esta situación, para que cada ordenador de la red pueda tener acceso a Internet es obligada
la utilización de un Proxy o apoderado
Asimismo nuestra red local debe de estar protegida de ataques externos y filtrar los paquetes
recibidos. Lo cual significa, decidir si a un paquete se le permite pasar o no.
Linux permite esta y muchas otras posibilidades, y cuenta con las herramientas necesarias para
lograrlo.
Una de estas herramientas es ipchains.
ipchains)
ipchains Esta misma herramienta (ipchains
ipchains es usada para controlar
enmascaramiento y proxy transparente, a pesar de que son dos conceptos del filtrado de paquetes
totalmente separados (la implementación actual de Linux los opaca, dando la impresión de que se
relacionan estrechamente).
Enmascaramiento y Proxies son tratados en forma separada, y las características auto forwarding
(auto re-envio) y el port forwarding (re-envío a puerto) son manejadas por herramientas
separadas.
7.1
Ipchains
Linux ipchains es una modificación de la codificación de Linux IPv4 firewalling (la cual fue
obtenida en su mayor parte de BSD) y una modificación de ipfwadm, la cual fue a su vez
modificación de ipfw de BSD.
Es necesaria para la administración de filtros de paquetes de IP en las versiones 2.1.102 de Linux
o posteriores.
Actualmente el código está en el Kernel 2.1.102. Para las series 2.0 del Kernel, necesitará
descargar un parche del Kernel desde la página web. Si su Kernel 2.0 es más reciente que el
parche proporcionado, el parche más viejo debe ser el adecuado; esta porción de los kernels 2.0
es bastante estable (eg. el parche del kernel 2.0.34 trabaja sobre el Kernel 2.0.35).
Necesita un kernel que tenga el nuevo IP firewall chains. Puede saber si el kernel que está
ejecutando actualmente lo tiene instalado, simplemente buscando el archivo
'/proc/net/ip_fwchains'.
30
Instituto Nacional de Estadística e Informática
Introducción a LINUX
Si no es así, usted necesita un kernel que tenga ip firewall chains. Primero, descargue los fuentes
del kernel que desea. Si tiene el kernel 2.1.102 o superior, no necesitará parcharlo. Caso
contrario, aplique el parche de la página web listada anteriormente, y configúrelo como se indica
abajo. Si no sabe hacerlo, no tenga miedo -- lea el Kernel-HOWTO.
Las opciones de la configuración que usted necesitará para las series 2.0 del kernel son:
CONFIG_EXPERIMENTAL=y
CONFIG_FIREWALL=y
CONFIG_IP_FIREWALL=y
CONFIG_IP_FIREWALL_CHAINS=y
Para las series 2.1 o 2.2 del kernel:
CONFIG_FIREWALL=y
CONFIG_IP_FIREWALL=y
La herramienta ipchains le dice al Kernel, qué paquetes se filtran. El Kernel toma las decisiones
basado en las reglas con que se han configurado ipchains. Estas reglas han de permitir los
servicios como http, ftp, POP3, SMTP, etc de acuerdo a lo que sea necesario
Esta herramienta reemplaza a ipfwadm usado en el antiguo código de Ip firewall.
El paquete también contiene un shell script llamado ipfwadm-wrapper el cual le permitirá hacer
filtrado tal como se hacia antes. No debe usar este script a menos que desee una manera rápida
de actualizar un sistema que use ipfwadm (es más lento, y no verifica argumentos, etc).
7.2
Ip Masquerade
La función de IP-Masquerade es hacer un servicio proxy a nivel de red. A diferencia de otros
servidores proxy, que ofrecen sus servicios a nivel de transporte, IP-Masquerade lo hace a nivel 3
(Capa de red), con lo que de cara a la red privada se comporta como un router. De esta forma,
en los ordenadores de la red interna simplemente hay que configurar el ordenador que ejecute IPMasquerade como el gateway de la red y ya se puede acceder a recursos de otras redes sin
necesidad de tener asignadas direcciones IP oficiales.
Esto permite a un conjunto de maquinas acceder de forma transparente a Internet ocultas tras la
maquina pasarela, la cual aparece como el único sistema que está usando Internet. A tener en
cuenta también que romper la seguridad de un sistema configurado de forma correcta con IP
Masquerade es considerablemente mas difícil que romper un buen filtro de paquetes basado en
cortafuegos (suponiendo que no hay fallos en ninguno).
Instituto Nacional de Estadística e Informática
31
Introducción a LINUX
Se ha comprobado que los Navegadores de páginas web y telnet funcionan bien sobre ip_masq.
FTP, IRC y Real Audio funcionan con ciertos módulos cargados. Otras variedades de audio por
red como True Speech e Internet Wave también funcionan. Algunos usuarios de la lista de correo
incluso lo intentaron con software de vídeo-conferencia.
Además IP Masquerade funciona bien con 'máquinas clientes' con diferentes sistemas operativos y
plataformas. Ha habido éxito con sistemas usando Unix, Windows 95, Windows NT, Windows
para Trabajo en Grupo (con el paquete TCP/IP), OS/2, Sistemas Macintosh OS con Mac TCP,
Mac Open Transport, DOS con el paquete NCSA Telnet, VAX, Alpha con Linux, e incluso Amiga
con AmiTCP o AS225-stack.
32
Instituto Nacional de Estadística e Informática
Introducción a LINUX
8. Distribuciones Comerciales
Una distribución no es mas que una forma de hacerte llegar LINUX de forma que puedas
instalarlo fácilmente. Cada una tiene su propia forma de "empaquetar" y distribuir el software que
acompaña a LINUX junto con utilidades para la instalación y configuración del sistema. La
mayoría de ellas están disponibles en Internet y en CD-ROM.
Para tener una idea existe Slackware, Red Hat, Debian, Caldera, ... algunas pertenecientes a
empresas privadas (la distribución, no LINUX!!)
y otras mantenidas por grupos de gente.
No vamos a recomendar ninguna ni a entrar en cual es mejor o peor, con el tiempo se oirá
suficientes juicios a favor y en contra de unas y de otras para tener argumentos de valor sobre
cual conviene. Conviene no confundir la versión del sistema operativo que se utilice
(compuesta por tres dígitos separados por un punto) con la de la distribución, aunque
generalmente se puede entender perfectamente si mencionamos Debian 1.2.xx, Red Hat 4.x,
Slackware 3.0, etc...
8.1
Componentes fundamentales de una distribución comercial
Aunque la esencia de Linux es el Kernel, se necesita mucho mas para convertirlo en un
ambiente operativo completo. Aquí hay unos elementos clave de una típica distribución Linux.
♦
Boot Manager
El boot manager o administrador de inicio es una utilería que reside en el sector de inicio
maestro (MBR), que el bios de su computadora carga al inicio. Si agrega Linux a un sistema
operativo con Windows u otro SO, el administrador de inicio le permite seleccionar el SO que
quiere ejecutar.
Aunque hay administradores de inicio de otros fabricantes, como el System comander de V
Comunications, Linux incluye su propio administrador de inicio, conocido como LILO(Linux
Loader), que por lo general se instala por omisión.
Instituto Nacional de Estadística e Informática
33
Introducción a LINUX
♦
Interfaz de usuario
En el núcleo, Linux es un derivado de Unix, y su interfaz por omisión es una línea de
comando DOS. Para hacer mas accesible a Linux, hay varios ambientes de escritorio gráficos que
pueden semejarlo al SO Windows o Macintos. Algunos ejemplos son CDE(Common Desktop
Environment), KDE (Kool Desktop Environment) y GNOME(GNU Network Object Model
Environment).
A continuación mostramos las interfaces gráfica GNOME y KDE:
Interfaz gráfica GNOME
34
Instituto Nacional de Estadística e Informática
Introducción a LINUX
Interfaz Gráfica KDE
Sistema X Window
Al igual que GDI(Graphics Device Interface) de windows, X window es el subsistema gráfico que
soporta una interfaz de usuario gráfica. Uno delos servidores más comunes es Xfree86
(www.xfree86.org). Durante la configuración puede instalar o no un sistema X Window, según su
preferencia
Servicio de Internet
Linux tiene soporte nativo para TCP/IP y para todos los protocolos internet comunes, como
DNS(domain name system), http(web server), SMTP(correo electrónico), FTP (file transport
protocol), TNP(foros de discusión) y PPP/SLIP(para cuentas conmutadas). Gran parte de las
distribuciones incluyen Apache, el popular servidor web de código público, así como
visualñizadores web, clientes de correo electrónico, lectores de foros y otras aplicaciones de
internet.
Servicios de impresión de archivos
Estos servicios permiten a un sistema acceder a los recurso de red y compartir archivos e
impresoras con otros usuarios. Entre los servicios típicos se incluyen NFS(Netwrk File System) para
compartir archivos con otros sistemas basados en unís; y samba, que hace que los sistemas Linux
luzcan y actúen como servidores Windows NT y Appletalk.
Instituto Nacional de Estadística e Informática
35
Introducción a LINUX
Aplicaciones
Linux aún no goza del mismo soporte de aplicaciones que Windows. Pero gran parte de las
distribuciones incluyen, literalmente cientos de aplicaciones, y si deseas buscarlas, encontrará una
buena variedad de herramientas en otro lado. Además de editores básicos de texto como Crisp y
Xemacs, hay diversas aplicaciones y suites de productividad. GIMP(GNU Image Manipulation
Program) es un clon de Adobe Photoshop.
Administradores de Paquetes
Los administradores de paquete son herramientas diseñadas para instalar , desintalar y actualizar
aplicaciones en sistemas Linux. El Debian Package Management System y el Red Hat Package
Manager.(RPM) son administradores de paquetes bien conocidos.
Herramientas del Programador
Puesto que Linux es un favorito de los programadores , no sorprende que las distribuciones
incluyan muchas herramientas de programación. Entre estas se incluyen utilerías para administrar
y crear programas a partir de código fuente, eliminadores de fallas como gdb, lenguajes de
programación y lenguajes de guiones como Pitón y TCL.
Bibliotecas
Linux incluye un conjunto central de rutinas de bibliotecas de vínculo dinámico(DLL) que se
encuentran en Windows, las libcs son módulos ejecutables que se encuentran en Windows, las
libcs son módulos ejecutables que realizan funciones ocultas que soportan a otras aplicaciones.
Gran parte de las distribuciones incluyen muchas bibliotecas; los tipos más comunes son GNU
Libc(glibc) y Libc5.
8.2
Distribuciones comerciales más populares
♦
Red Hat
http://www.redhat.com/
Red Hat fue fundado en 1995 por dos entusiastas/desarrolladores
de Linux con la intención de crear una distribución "limpia" con
soporte comercial.
La compañía, sus finanzas y alguna información sobre su
desempeño están disponibles en una entrevista con su CEO en
Inforworld
(http://www.infoworld.com/cgibin/displayArchive.pl?/98/23/e03-23.102.htm):
Bob Young, presidente de Red Hat, espera que su compañía tenga
ingresos por $10 millones de dólares este año y que venda 400,000
copias de Linux, cuyos precios van de US$ 50 a casi US$ 1,000 para una versión con soporte.
Extensiones Desarrolladas de manera Comercial
Es posible que el aspecto más interesante del modelo de negocio de Red Hat sea sus
contribuciones extremadamente activas y continuas hacia la comunidad de Red Hat. Varias
iniciativas encabezadas por Red Hat han sido liberadas como OSS para su modificación. En la
36
Instituto Nacional de Estadística e Informática
Introducción a LINUX
mayor parte de los casos, estas liberaciones eran simples depuraciones o manejadores
adicionales.
Red Hat emplea de manera activa a varios desarrolladores clave de Linux y les paga para que
hackeen Linux de tiempo completo. Algunos de los componentes que han sido "donados" de
vuelta hacia el esfuerzo de Linux son:
•
Red Hat Package Manager – RPM es un componente de Linux que proporciona
facilidades de instalación y mantenimiento de aplicaciones similares al Application Manifest
que está siendo desarrollado por Microsoft.
•
Manejador Conectable de Autentificación – El PAM es similar al sistema NT
SSPI/SAM y permite que plug-ins divididos en componentes la función de autentificación
(Red Hat proporciona un plug-in LDAP). PAM estuvo disponible originalmente en los
sistemas Sun.
Sin embargo, una de las donaciones más "grandes" ha sido el ahora universal "Red Hat Package
Manager" o RPM, el cual es distribuido en casi todas las distribuciones de Linux. RPM crea el
concepto de un manifiesto de aplicaciones que simplifica la tarea de instalación y eliminación de
aplicaciones en Linux.
El proyecto actual de desarrollo de Red Hat es un nuevo GUI para Linux conocido como
"Gnome". Gnome es la respuesta a las preocupaciones latentes con versiones que no son GPL de
la interfaz de usuarios de X Windows.
Características del Producto
De los distribuidores comerciales de Linux, Red Hat tiene el conjunto más grande de SKU’s. En su
producto más completo, Red Hat reúne lo siguiente en sus distribuciones de Linux:
•
•
•
Apache Web Server
DBMaker DBMS por Casemaker
Servidor de ventanas Xfree86.
Distribuidor::
Red Hat Software INC.
Durham NC; 800-454-5502
www.redhat.com ; ftp.redhat.com/pub
(*) La última versión de Red Hat es la 6.2 , la cual salió mientras se preparaba esta publicación.
En esta nueva versión se han mejorado algunos problemas con la versión anterior y se han
incorporado nuevas versiones de servicios como Samba , Apache etc.
Algunas nuevas características son las siguientes:
-
Instala específicamente los paquetes seleccionados durante la instalación, lo que no
ocurría en la anterior versión (6.1) ya que en algunos casos instalaba componentes que
no se seleccionaron.
Instituto Nacional de Estadística e Informática
37
Introducción a LINUX
-
RedHat 6.2, además de traer nuevas versiones de aplicaciones muy usadas (samba 2.0.6,
Apache 1.3.12, XFree 3.3.6, etc.), corrije finalmente problemas anteriores.
-
Se ha mejorado el X configurator , ahora se cuenta con mas opciones que antes.
Ahora dentro de el men