1.
Introducción
2.
Diseño
3.
Programación
4. Requisitos
5. Puesta a Punto
6. Conclusiones
LINUX es un sistema
operativo, compatible Unix. Dos
características muy peculiares lo
diferencian del resto de los sistemas que
podemos encontrar en el mercado, la
primera, es que es libre, esto significa que no tenemos que pagar
ningún tipo de licencia a ninguna casa desarrolladora de
software por el
uso del mismo, la segunda, es que el sistema viene
acompañado del código
fuente. El sistema lo forman el núcleo del sistema
(kernel) mas un gran numero de programas /
librerías que hacen posible su
utilización.
Su objetivo
inicial es propulsar el software de libre distribución junto con su código
fuente para que pueda ser modificado por cualquier persona, dando
rienda suelta a la creatividad.
El hecho de que el sistema operativo
incluya su propio código fuente expande enormemente las
posibilidades de este sistema. Este método
también es aplicado en numerosas ocasiones a los programas que
corren en el sistema, lo que hace que podamos encontrar
muchisimos programas útiles totalmente gratuitos y con su
código fuente. La cuestión es que, como ya
mencionamos, Linux es un
sistema operativo totalmente gratuito.
LINUX se distribuye bajo la GNU Public License: Ingles ,
por lo tanto, el código fuente tiene que estar siempre
accesible.
El sistema ha sido diseñado y programado por
multitud de programadores alrededor del mundo. El núcleo
del sistema sigue en continuo desarrollo
bajo la coordinación de Linus Torvalds, la persona de la que
partió la idea de este proyecto, a
principios de
la década de los noventa.
Día a día, más y más
programas / aplicaciones están disponibles para este
sistema, y la calidad de los
mismos aumenta de versión a versión. La gran
mayoría de los mismos vienen acompañados del
código fuente y se distribuyen gratuitamente bajo los
términos de licencia de la GNU Public License.
En los últimos tiempos, ciertas casas de software
comercial han empezado a distribuir sus productos para
Linux y la
presencia del mismo en empresas aumenta
rápidamente por la excelente relación calidad –
precio que se
consigue con Linux.
Linux es un sistema operativo completo con multitarea y
multiusuario (como cualquier otra versión de UNIX). Esto
significa que pueden trabajar varios usuarios
simultáneamente en él, y que cada uno de ellos
puede tener varios programas en ejecución.
El sistema Linux es compatible con ciertos
estándares de UNIX a nivel de código fuente,
incluyendo el IEEE POSIX.1, System V y BSD. Fue desarrollado
buscando la portabilidad de los fuentes: casi
todo el software gratuito desarrollado para UNIX se compila en
Linux sin problemas. Y
todo lo que se hace para Linux (código del núcleo,
drivers, librerías y programas de usuario) es de libre
distribución.
En Linux también se implementa el control de
trabajos POSIX (que se usa en los shells csh y bash), las
pseudoterminales (dispositivos pty), y teclados nacionales
mediante manejadores de teclado
cargables dinámicamente. Además, soporta consolas
virtuales, lo que permite tener más de una sesión
abierta en la consola de texto y
conmutar entre ellas fácilmente. A los usuarios del
programa
"screen" les resultará familiar esto.
El núcleo es capaz de emular por su cuenta las
instrucciones del coprocesador 387, con lo que en cualquier 386
con coprocesador o sin él se podrán ejecutar
aplicaciones que lo requieran.
Linux soporta diversos sistemas de
ficheros para guardar los datos. Algunos de
ellos, como el ext2fs, han sido desarrollados
específicamente para Linux. Otros sistemas de ficheros,
como el Minix-1 o el de Xenix también están
soportados. Y con el de MS-DOS se
podrán acceder desde Linux a los disquetes y particiones
en discos duros
formateados con MS-DOS.
Además, también soporta el ISO-9660, que
es el estándar seguido en el formato de los CD-ROMs.
Hablaremos más
sobre los sistemas de ficheros en los capítulos 2
y 4.
Linux implementa todo lo necesario para trabajar en
red con
TCP/IP. Desde
manejadores para las tarjetas de red
más populares hasta SLIP/PPP, que permiten acceder a
una red
TCP/IP por el
puerto serie. También se implementan PLIP (para
comunicarse por el puerto de la impresora) y
NFS (para acceso remoto a ficheros). Y también se han
portado los clientes de
TCP/IP, como FTP, telnet, NNTP y
SMTP. Hablaremos más acerca de esto en el capítulo
5.
El núcleo de Linux ha sido desarrollado para
utilizar las características del modo protegido de los
microprocesadores 80386 y 80486. En concreto, hace
uso de la gestión
de memoria avanzada
del modo protegido y otras características
avanzadas.
Cualquiera que conozca la programación del 386 en el modo protegido
sabrá que este modo fue diseñado para su uso en
UNIX (o tal vez Multics). Linux hace uso de esta funcionalidad
precisamente.
El núcleo soporta ejecutables con
paginación por demanda. Esto
significa que sólo los segmentos del programa que se
necesitan se cargan en memoria desde el
disco. Las páginas de los ejecutables son compartidas
mediante la técnica copy-on-write, contribuyendo todo ello
a reducir la cantidad de memoria requerida para las
aplicaciones.
Con el fin de incrementar la memoria
disponible, Linux implementa la paginación con el
disco:
Puede tener hasta 256 megabytes de espacio de
intercambio o "swap" en el disco duro.
Cuando el sistema necesita más memoria, expulsará
páginas inactivas al disco, permitiendo la
ejecución de programas más grandes o aumentando el
número de usuarios que puede atender a la vez. Sin
embargo, el espacio de intercambio no puede suplir totalmente a
la memoria RAM, ya
que el primero es mucho más lento que
ésta.
La memoria dedicada a los programas y a la cache de
disco está unificada. Por ello, si en cierto momento hay
mucha memoria libre, el tamaño de la cache de disco
aumentará acelerando así los accesos.
Los ejecutables hacen uso de las librerías de
enlace dinámico. Esto significa que los ejecutables
comparten el código común de las librerías
en un único fichero, como sucede en SunOS. Así, los
ejecutables serán más cortos a la hora de
guardarlos en el disco, incluyendo aquellos que hagan uso de
muchas funciones de
librería. También pueden enlazarse
estáticamente cuando se deseen ejecutables que no
requieran la presencia de las librerías dinámicas
en el sistema. El enlace dinámico se hace en tiempo de
ejecución, con lo que el programador puede cambiar las
librerías sin necesidad de recompilación de los
ejecutables.
Para facilitar la depuración de los programas, el
núcleo de Linux puede generar volcados de la imagen de memoria
de los programas (ficheros core). Entre esto y la posibilidad de
compilar ejecutables con soporte de depuración, el
programador podrá averiguar la causa de los fallos de su
programa.
Las funciones
principales de este sistema operativo son:
Sistema multitarea En Linux es posible ejecutar varios
programas a la vez sin necesidad de tener que parar la
ejecución de cada aplicación.
Sistema multiusuario Varios usuarios pueden acceder a
las aplicaciones y recursos del
sistema Linux al mismo tiempo. Y, por
supuesto, cada uno de ellos puede ejecutar varios programas a la
vez (multitarea).
Shells programables Un shell conecta las ordenes de un
usuario con el Kernel de Linux (el núcleo del sistema), y
al ser programables se puede modificar para adaptarlo a tus
necesidades. Por ejemplo, es muy útil para realizar
procesos en
segundo plano.
Independencia de dispositivos Linux admite cualquier
tipo de dispositivo (módems, impresoras)
gracias a que cada una vez instalado uno nuevo, se añade
al Kernel el enlace o controlador necesario con el dispositivo,
haciendo que el Kernel y el enlace se fusionen. Linux posee una
gran adaptabilidad y no se encuentra limitado como otros sistemas
operativos.
Comunicaciones Linux es el sistema más flexible
para poder
conectarse a cualquier ordenador del mundo. Internet se creó y
desarrollo
dentro del mundo de Unix, y por lo tanto Linux tiene las mayores
capacidades para navegar, ya que Unix y Linux son sistemas
prácticamente idénticos. Con linux podrá
montar un servidor en su
propia casa sin tener que pagar las enormes cantidades de
dinero que
piden otros sistemas.
LINUX es un sistema desarrollado completamente en C, con
el uso de algunas librerías hechas en ensamblador.
Actualmente Cuenta con el sistema X Windows que es
un sistema de administración gráfico por lo que se
han incorporado otros lenguajes de
programación para el desarrollo de aplicaciones como
el Java y Visual
C.
Instalación:
Procesador y Tarjeta
Madre:
Actualmente Linux soporta sistemas con una CPU Intel14
80386, 80486, o Pentium/Pro. Esto
incluye todas las variantes del tipo de CPU, como el
386SX, 486SX, 486DX, y 486DX2. Los "clónicos" no Intel,
como AMD y Cyrix también funcionan con Linux .Linux ya
soporta, en la actualidad a otras arquitecturas tales como ALPHA,
Amiga, PowerPc, etc.
Si se tiene un 80386 o 80486SX, puede que también
quiera aprovechar el coprocesador matemático, si bien no
es imprescindible (el núcleo de Linux puede emular el
coprocesador si no cuenta con uno). Están soportados todos
los copros estándar, tales como los IIT, Cyrix FasMath, e
Intel.
La placa base debe ser de arquitectura ISA
o EISA en cuanto a bus se refiere.
Estos términos definen cómo
interactúa el sistema con los periféricos y otros componentes por medio
del bus principal.
La mayoría de los sistemas vendidos hoy son de bus ISA o
EISA. El bus MicroChannel (MCA), que se encuentra en máquinas
como los IBM/PS2 no está soportado actualmente.
Los sistemas que usan arquitectura de
bus local (para accesos más rápidos en vídeo
y disco) también están soportados. Es recomendable
que tenga una arquitectura de bus local estándar como
pueda ser el Bus Local VESA, PCI también está
soportado
Requisitos de memoria
Linux, comparado con otros sistemas
operativos avanzados, necesita muy poca memoria para
funcionar . Debería contar con un mínimo de 2
megabytes de RAM; sin embargo,
es altamente recomendable tener 4 megabytes. Cuanta más
memoria tenga más rápido irá su
sistema.
Linux soporta el rango completo de direcciones de
32-bits de los 386/486; es decir, utilizará toda la
memoria RAM de
forma automática, y se apañará sin problemas con
tan sólo 4 megabytes de RAM, incluyendo
aplicaciones "pedigüeñas" como X-Window, Emacs, y
demás. Sin embargo, disponer de más memoria es casi
tan importante como tener un procesador
más rápido. 8 megabytes es más que
suficiente para uso personal; 16
megabytes o más pueden ser necesarios si espera una fuerte
carga de usuarios en el sistema.
La mayoría de los usuarios de Linux, reservan una
parte del disco duro
para espacio de intercambio ("swapping") que se usa como RAM
virtual. Incluso si dispone de bastante memoria RAM física en su
máquina, puede que quiera utilizar un área de
"swap" .
El área de "swap" no puede reemplazar a una
memoria física
RAM real, pero puede permitir a su sistema ejecutar aplicaciones
más grandes guardando en disco duro aquellas partes de
código que están inactivas.
Requisitos de la controladora de disco duro
No se necesita un disco duro para ejecutar Linux; se
puede ejecutar un sistema mínimo completamente desde
disquete. Sin embargo, resulta lento y muy limitado, y de todas
formas, muchos usuarios tienen acceso a almacenamiento en
disco duro. Se debe tener una controladora AT-estándar
(16-bit). El núcleo soporta controladoras
XT-estándar (8 bit); aunque la mayoría de las
controladoras usadas hoy son AT-estándar. Linux
debería soportar todas las controladoras MFM, RLL, e IDE.
La mayoría, pero no todas, las controladoras ESDI
están soportadas sólo aquellas que hacen
emulación hardware de la
ST506.
La regla general para controladoras que no sean SCSI, es
que si puede acceder a las unidades (disco y/o disquete) desde
MS-DOS u otro sistema operativo, debería poder hacerlo
desde Linux.
Linux también soporta un número de
controladoras de disco SCSI, si bien el soporte para SCSI es
más limitado a causa de la gran cantidad de estandars que
existen para el interfaz de las controladoras. Las controladoras
SCSI soportadas16 incluyen las Adaptec AHA1542B, AHA1542C,
AHA1742A (versión de BIOS 1.34),
AHA1522, AHA1740, AHA1740 (controladora SCSI-2, BIOS 1.34 en
modo mejorado); Future Domain 1680, TMC-850, TMC-950; Seagate
ST-02; UltraStor SCSI; Western Digital WD7000FASST. Las
controladoras clónicas basadas en estas tarjetas
también deberían funcionar.
Requisitos de espacio en disco
Para instalar Linux, se necesitará tener algo de
espacio libre en el disco duro. Linux soporta múltiples
discos duros
en la misma máquina; puede disponer de espacio para Linux
en múltiples unidades si es necesario.
La cantidad de espacio en disco duro que se
necesitará depende en gran medida de las necesidades de
cada uno y de la cantidad de software que se va a instalar. Linux
es relativamente pequeño en relación a las
implementaciones de UNIX; uno podría correr un sistema
completo con 10-20 megabytes de espacio en disco. Sin embargo, si
se quiere disponer de espacio para expansiones, y para paquetes
más grandes como X Windows,
necesitará más espacio. Si se planea permitir a
múltiples usuarios utilizar la máquina, se
tendrá que dejar espacio para sus ficheros.
También, a menos que se tenga un montón de
memoria RAM física (16 megabytes o más), se
necesitará crear espacio de intercambio ("swap"), para ser
usado como RAM virtual.
Cada distribución de Linux normalmente viene con
algún que otro texto que
debería ayudarla estimar la cantidad precisa de espacio a
reservar en función
del software que se planee instalar. Puede ejecutarse un sistema
mínimo con menos de 20 megabytes; un sistema completo con
toda la parafernalia en 80 megabytes o menos; y un sistema grande
con sitio para muchos usuarios y espacio para futuras expansiones
en un rango de 100-150 megabytes. De nuevo, estas cifras son
meramente orientativas; uno tendrá que decidir,
según sus necesidades y objetivos, los
requerimientos específicos de almacenamiento
para su sistema.
Requisitos de monitor y
adaptador de vídeo
Linux soporta todas las tarjetas de
vídeo estándar Hercules, CGA, EGA, VGA, IBM
monocromo, y Super VGA así como monitores para
el interfaz por defecto basado en texto. En general, si la
combinación que tiene de monitor y
tarjeta de vídeo funcionan bajo otro sistema operativo
como MS-DOS, debería funcionar perfectamente con Linux. La
genuínas tarjetas CGA de IBM sufren el (d)efecto nieve
("snow") bajo Linux, por lo que no es muy recomendable su
uso.
Los entornos gráficos como el Sistema X Window tienen
requerimientos propios de hardware para la tarjeta de
vídeo.
La Puesta a Puntos del sistema LINUX se realiza a
través de órdenes directas que se le dan al
intérprete de comandos, tales
instrucciones sirven para crear directorios, alta de cuentas,
solución de problemas tanto de hardware como de software.
Con la introducción del sistema X Windows la
administración se realiza de una manera gráfica
a través de ventanas y el uso del mouse.
Operación:
La operación del sistema es cómoda, siempre
y cuando se tengan los conocimientos necesarios, como
conocimientos mínimos se requieren los necesarios para
usar el UNÍS, lo demás es pan comido, ya que lo que
se tiene que aprender demás es el uso de las aplicaciones
que se instalarán en el sistema operativo. Con la
introducción de X Windows todo es ya más sencillo
debido a es una GUI (Graphic User Interface) por
que se familiariza uno con el uso de ventanas y puntero, tal y
como si fuera MS-Windows.
Mantenimiento:
LINUX posee el ext2, éste es un sistema de
archivos mucho
más avanzado que el MS-DOS, con soporte de
corrección y detección de errores (los cuales
inician al encender la computadora
después de un apagado no correcto), compresión de
archivos,
mayor tolerancia a la
fragmentación de archivos y con unos tiempos de respuesta
muy superiores, aunque a un costo superior de
utilización de memoria.
Actualización:
Las actualizaciones pueden bajarse del internet de forma gratuita
desde los sitios oficiales de Linux. La comunidad Linux
es muy dinámica. Las versiones nuevas del
núcleo aparecen cada pocas semanas, y otros programas se
actualizan casi tan a menudo. Por esto, los nuevos usuarios de
Linux sienten a menudo la necesidad de actualizar sus sistemas
constantemente para mantener el paso de los cambios.
No sólo ésto no es necesario, sino que es
una pérdida de tiempo. Para mantenerse al día de
todos los cambios del mundo Linux, uno debería utilizar
todo su tiempo actualizando en vez de usando su
sistema.
Pero entonces, cuándo se debe actualizar?. Alguna
gente piensa que se debe actualizar cuando se libera una nueva
versión de distribución . Por ejemplo, cuando
Slackware (sistema de Instalación del LINUX) presenta una
nueva versión.
Muchos usuarios Linux reinstalan completamente sus
sistemas con la nueva versión Slackware, cada vez. Esto,
también, es una pérdida de tiempo. En general, los
cambios de las versiones Slackware son pequeños. Bajarse y
reinstalar 30 discos cuando sólo ha cambiado un 10% del
software es, por supuesto, inútil.
La mejor forma de actualizar el sistema es
haciéndolo a mano: actualizando solo aquellos paquetes de
software que se sepa que hay que actualizar. Esto asusta a un
montón de gente: quieren saber qué actualizar y
cómo, y qué se romperá si no actualizan.
Para tener éxito
con Linux, es importante superar los temores del "hágalo
usted mismo" que es lo que Linux es, a fin de cuentas. De
hecho, una vez que se tenga el sistema trabajando y todo el
software correctamente configurado, la reinstalación de
una nueva versión no dudará en limpiar toda la
configuración y todo estará roto otra vez, igual
que la primera vez que instaló su sistema. Volver
atrás de ésta forma no es necesario, todo lo que se
necesita es algún conocimiento
acerca de cómo actualizar el sistema y de cómo
hacerlo bien.
Nos encontraremos con que cuando se actualice un
componente del sistema, no tienen por que fallar los
demás. Realmente, la actualización insensata para
mantenerse en la ola" no es tan importante. Esto no es MS-DOS o
Microsoft
Windows. No hay ninguna razón importante para ejecutar la
versión más reciente de todo el software. Si se
desean o necesitan funciones de una versión nueva,
entonces es necesario actualizar. Si no, no es necesario. En
otras palabras, hay que actualizar sólo lo que necesite y
cuando se tenga que hacer. No hay que actualizar sólo por
el mero hecho de actualizar. Hacerlo sólo gastaría
un montón de tiempo y esfuerzo intentando mantenerse al
día.
El software más importante para actualizar en el
sistema es el núcleo, las librerías y el compilador
gcc. Estas son las tres partes esenciales del sistema, y en
algunos casos cada uno depende de las otras para que todo
funcione bien. Todos ellos se toman los fuentes
actualizados y se compilan manualmente. La mayor parte del resto
del software del sistema no necesita ser actualizado
periódicamente.
La conclusión más importante es que Linux
es una excelente elección para trabajar con UNIX a nivel
personal.
Linux permite desarrollar y probar el software UNIX en su PC,
incluyendo aplicaciones de bases de datos y
X Windows. Con Linux, se puede correr un sistema UNIX y adaptarlo
a las necesidades. La instalación y uso de Linux es
también una excelente manera de aprender UNIX si no se
tiene acceso a otras máquinas UNIX.
Linux no es solo para los usuarios personales de UNIX.
Es robusto y suficientemente completo para manejar grandes
tareas, así como necesidades de cómputo
distribuidas. Muchos negocios
especialmente los pequeños se están cambiando a
Linux en lugar de otros entornos de estación de trabajo
basados en UNIX. Grandes vendedores de software comercial se
están dando cuenta de las oportunidades que puede brindar
un sistema operativo gratuito.
Linux es, propiamente, el núcleo de un sistema
operativo. Es decir, el conjunto de programas que controla los
aspectos más básicos del funcionamiento de un
ordenador. Y como ya se dijo su desarrollo lo inició en
1991 Linus Tovalds, entonces estudiante en la Universidad de
Helsinki, en Finlandia, y se completó con miles de
aportaciones a través de Internet.
Autor:
Francisco Armando Dueñas
Rodríguez
Edad: 23 años
Universidad La
Salle
Cancún, Quintana Roo México