Vous êtes sur la page 1sur 8

LINUX

Historia
En 1965, los laboratorios de telefona Bell (una divisin de A T&T) trabajaban
(Iunto con General Electric y el M.I.T. (Instituto Tecnolgico de Massachussets) en
el desarrollo de Multics, un proyecto para realizar un sistema operativo de grandes
prestaciones, multitarea y de tiempo compartido. Por diversas razones, Bell se
separ del grupo y Ken Thompson y Dennis Ritchie (empleados de Bell
Technologies) decidieron continuar independientemente con el proyecto para su
empresa. As pues, se dedicaron a desarrollar un sistema operativo que cumpliera
con la mayor parte de los requisitos del proyecto anterior pero con una
concepcin diferente, mucho ms simple.
En 1970, Ken Thompson implement una primera versin escrita en ensamblador,
en una PDP-7, y, a modo de burla hacia el Multics de la General Electrics, lo llam
UNIX. Posteriormente, en 1973 Dennis Ritchie desarroll junto a B.W. Kernighan
el lenguaje de programacin C y junto a Thompson rescribieron todo el cdigo
Sistemas Operativos 268 UNIX con este lenguaje.
En 1977, UNIX se port a otra arquitectura diferente a la de la PDP, gracias a que
para recompilarlo slo era necesario realizar los cambios pertinentes para
adaptarlo a la nueva arquitectura, manteniendo intacto el resto del cdigo. Este es
el concepto de sistema abierto que lo hizo triunfar. Adems, UNIX fue diseado
modularmente, es decir, se programaron multitud de sencillos mdulos genricos
que una vez interconectados eran capaces de realizar tareas complejas. Esto
permiti una fcil depuracin de sus errores y facilit la colaboracin entre
distintos
equipos de desarrollo.
En resumen, UNIX es uno de los sistemas operativos ms populares del mundo
debido a su extenso soporte, distribucin y, sobre todo, a su caracterstica de
sistema abierto. Originalmente fue desarrollado como sistema multitarea con
tiempo compartido para mini ordenadores y mainframes y, desde entonces, se ha
convertido en uno de los sistemas ms utilizados a pesar de su, ocasionalmente,
confusa interfaz con el usuario y el problema de su estandarizacin.
Por su parte, Linux es una versin de UNIX de libre distribucin, inicialmente
desarrollada por Linus Torvalds en la Universidad de Helsinki, en Finlandia. Ha
sido desarrollado con la colaboracin de muchos programadores y expertos de
UNIX a lo largo y ancho del mundo, gracias a la existencia de Internet. Cualquier
habitante del planeta puede acceder a Linux y desarrollar nuevos mdulos o
cambiarlo a su antojo.
El ncleo de Linux no utiliza ni una sola lnea del cdigo de A T &T o de cualquier
otra fuente de propiedad comercial y buena parte del software para Linux se
desarrolla bajo las reglas del proyecto de GNU de la Free Software Foundation.

Cambridge, Massachusetts.
Inicialmente, Linux fue un proyecto de aficionado de Linus Torvalds. Se inspiraba
en Minix, un pequeo UNIX de carcter fundamentalmente acadmico diseado
para microprocesadores de Intel de las familias 8086, 8088 y 80286 desarrollado
por Andrew Tanenbaum. La intencin de Linus Torvalds era la de mejorar MINIX
para aprovechar al mximo las caractersticas avanzadas del procesador 80386
de Intel como son la conmutacin de tareas en modo protegido y el coprocesador
matemtico.
El 5 de octubre de 1991, Linus anunci la primera versin oficial de Linux, La
0.02. Ya poda ejecutar bash (el shell de GNU) y gcc (el compilador de C de GNU),
pero no haca mucho ms. La intencin era ser un juguete para hackers. No haba
nada sobre soporte a usuarios, distribuciones, documentacin ni nada parecido.
Hoy, la comunidad de Linux an trata estos asuntos de forma secundaria. Lo
primero sigue siendo el desarrollo del kernel.
Actualmente, Linux es ya un clnico de UNIX completo, capaz de ejecutar
XWindow,
TCP/IP, Emacs, UUCP y software de correo y News, mucho software de
libre distribucin ha sido ya portado a Linux y estn empezando a aparecer
multitud de aplicaciones comerciales. El hardware soportado es mucho mayor que
en las primeras versiones del ncleo y abarca la prctica totalidad de arquitecturas
y perifricos.
Linux es, pues, una reimplementacin completamente gratuita de las
especificaciones POSIX, con extensiones de SYSV y BSD (lo cual significa que
parece UNIX pero no proviene del mismo cdigo fuente base), que est disponible
tanto en su versin fuente como ya compilada. El copyright pertenece a Linus B.
Torvalds (Linus.Torvalds@.Helsinki.FI) y otros colaboradores, y es libremente
redistribuible bajo las condiciones de la GNU Public License.
Arquitectura de UNIX y LINUX
El ncleo del Sistema Operativo
El ncleo del sistema operativo Unix (llamado Kernel) es un programa escrito casi
en su totalidad en lenguaje C, con excepcin de una parte del manejo de
interrupciones, expresada en el lenguaje ensamblador del procesador en el que
opera.
Las funciones del ncleo son permitir la existencia de un ambiente en el que sea
posible atender a varios usuarios y mltiples tareas en forma concurrente,
repartiendo al procesador entre todos ellos, e intentando mantener en grado
ptimo la atencin individual.
El Kernel opera como asignador de recursos para cualquier proceso que necesite

hacer uso de las facilidades de cmputo. Es el componente central de Unix y tiene


las siguientes funciones:
Creacin de procesos, asignacin de tiempos de atencin y sincronizacin.
Asignacin de la atencin del procesador a los procesos que lo requieren.
Administracin de espacio en el sistema de archivos, que incluye: acceso,
proteccin y administracin de usuarios; comunicacin entre usuarios y
entre procesos, y manipulacin de E/S y administracin de perifricos.
Supervisin de la transmisin de datos entre la memoria principal y los
dispositivos perifricos.
El Kernel reside siempre en la memoria central y tiene el control sobre la
computadora, por lo que ningn otro proceso puede interrumpirlo; slo pueden
llamarlo para que proporcione algn servicio de los ya mencionados. Un proceso
llama al Kernel mediante mdulos especiales conocidos como llamadas al
sistema.
El Kernel consta de dos partes principales: la seccin de control de procesos y la
de control de dispositivos.
La primera asigna recursos, programas, procesos y atiende sus requerimientos de
servicio; la segunda, supervisa la transferencia de datos entre la memoria principal
y los dispositivos perifricos.
Arquitectura del Ncleo de LINUX
Para empezar, la arquitectura abstracta de Linux puede describirse como la
composicin de un conjunto subsistemas o componentes interactuando unos con
otros de forma simultanea. El ncleo se descompone en estos subsistemas
basndose en su funcionalidad, donde cada subsistema pone su granito de arena
propio y diferente en la labor del sistema operativo.
De esta manera, identificamos cinco subsistemas importantes en el ncleo, que
son: el subsistema de llamadas al sistema, el administrador de memoria, el
administrador de procesos, el sistema de ficheros y el subsistema encargado de la
Red.
Subsistema de llamadas al sistema. El subsistema de llamadas al sistema es el
que provee al ncleo de una interfaz externa. Es decir, es el subsistema que
permite la comunicacin a los programas de usuario interactuar con los dems
subsistemas mediante lo que se denominan "llamadas al sistema".
Subsistema Administrador de Memoria. El subsistema administrador de
memoria, como su propio nombre indica, ofrece los servicios necesarios que
permiten acceder a la memoria fsica del ordenador. Este subsistema esconde a
los programas de usuario todo el manejo de la memoria virtual, que proporciona

una mejor gestin de la memoria disponible del sistema, creando la apariencia de


una mayor cantidad de memoria fsica utilizable, adems de ofrecer la posibilidad
de que los procesos compartan fragmentos de memoria.
Subsistema Administrador de procesos. Linux es un sistema operativo
multiproceso y como tal permite que muchos procesos se ejecuten a la vez. Este
subsistema gestiona la creacin, planificacin y eliminacin de los procesos (de
los que se encargan los tres mdulos del subsistema). Todos los procesos tienen
un espacio de direcciones virtuales propio y un conjunto de ficheros abiertos, as
que para su gestin habr que administrar todos estos recursos.
Subsistema del Sistema de ficheros. Linux utiliza el standard de sistema de
ficheros de Unix. Este subsistema se encarga de todo acceso (ya sea lectura o
escritura) a cualquier dispositivo fsico utilizado para almacenar datos. Estos
dispositivos fsicos pueden ser discos duros (p. ej. IDE, SCSI), discos flexibles,
CDROMS e incluso sistemas de ficheros de red (NFS).
Subsistema de Red. Linux provee servicios de red mediante la utilizacin de
sockets BSD y los protocolos de red TCP/IP, para seguir en la lnea de
compatibilidad con Unix. De esta manera permite la comunicacin con otras
computadoras diferentes, que utilicen los mismos protocolos.
Esta arquitectura muestra todos estos subsistemas, escondiendo los mecanismos
internos de cada uno de ellos.
La arquitectura de Linux es como un estilo "hbrido" o mezcla entre un estilo de
una arquitectura de capas y un estilo de una arquitectura orientada a objeto.
La idea clave del estilo de arquitectura por capas es el planteamiento de una
jerarqua de capas para los distintos mdulos del ncleo, diferenciados segn su
funcionalidad y nivel de acceso a los dispositivos fsicos. En Linux se pueden
distinguir tres grandes capas, donde cada capa se comunica con los dispositivos
pasando por las inmediatamente inferiores. Veamos un momento estas tres capas
independientes:
1a capa: Programas de usuario: Aplicaciones ejecutadas por el usuario,
programas desarrollados por l, rutinas del sistema operativo, etc.
2a capa: Kernel: Subsistemas encargados de facilitar las herramientas al
programador que le permitan comunicarse con el hardware, sin tener que
ocuparse del manejo detallado de cada uno de los dispositivos. As, el
programador se olvida de si pretende leer de una unidad de disquetera, de
un disco duro, de un CDROM o de un recurso de red compartido, ya que
dispone de una herramienta que "escribe en dispositivos" cuya tarea
particular se reparten estos subsistemas para llevarla a cabo eficazmente.
3a capa: Dispositivos hardware: Son los propios aparatos, unidades de
almacenamiento, dispositivos de lectura, impresoras, tarjetas de
comunicaciones, sonido, imagen... etc.

Sin embargo, no se puede afirmar que Linux es estrictamente una


arquitectura de
capas, ya que las capas se forman de subsistemas que colaboran entre s.
Si se revisa el otro estilo de arquitectura, el de arquitectura orientada a
objeto, se
tiene que los diferentes subsistemas "encapsulan" las operaciones que
realizan
sobre los dispositivos en forma de herramientas, de tal forma, que el
programador
hace uso de esas herramientas olvidndose de las vicisitudes del manejo
del
hardware y todo lo que ello conlleva.
Pero el estilo "hbrido" entre las dos ideas de arquitectura explicadas, es la
que
mejor describe el estilo de la arquitectura de Linux.
Versiones y caractersticas Linux/Unix
Versiones
Existen numerosas versiones de UNIX para muchos sistemas, desde
ordenadores
personales hasta supercomputadores como el Cray Y-MP.
Entre las versiones de los sistemas operativos UNIX actuales cabe
destacar:
Linux, disponible para las familias x86 de Intel y compatibles, las
estaciones Alpha de ODigital (ahora Compaq-HP), la familia 68K de
Motorola, estaciones MIPS, estaciones SP ARC, etc.
SunOS, disponible. para la familia 68K as como para la familia de
estaciones de trabajo SP ARC de Sun Microsystems.
Solaris, disponible para la familia SP ARC de Sun y la familia x86 de
Intel y compatibles.
OSF1 (tambin conocido como OEC UNIX), para procesadores
Alpha de Digital.
Ultrix, disponible para estaciones V AX de Digital.
SYSVR4 (tambin conocido como Novell-UNIX o UNIXware
disponible para las familias de procesadores x86, V AX.
IRIX, disponible para MIPS.
AIX, disponible para las series RS6000 de IBM y para el PowerPC.
Como puede observarse, se puede asegurar que existe una versin de UNIX para

cualquier mquina medianamente conocida. Esto es debido a la gran portabilidad


de su cdigo, escrito en C, y a que ste es pblico y accesible.
Caractersticas de Linux/Unix
Debido a que LINUX es una versin de UNIX, ambos sistemas comparten la
mayora de las caractersticas tcnicas y funcionalidades.
A continuacin, se exponen en una lista las principales caractersticas de Linux:
Multitarea: varios programas (realmente procesos) se pueden ejecuta: a
mismo tiempo.
Multiusuario: varios usuarios pueden trabajar en la misma mquina a
mismo tiempo.
Multiplataforma: corre en muchas CPUs distintas, no slo Intel.
Funciona en modo protegido 386.

Proteccin de la memoria entre procesos, de manera que uno de ellos pueda colgar el sistema.
Carga de ejecutables por demanda: Linux slo lee de disco aquellas
partes de un programa que estn siendo usadas actualmente.
Poltica de copia en escritura (copy on write).
Memoria virtual usando paginacin (sin intercambio de procesos
completos) a disco.
La memoria se gestiona como un recurso unificado para los programas
de usuario y para la cach de disco.
Libreras compartidas de carga dinmica (DLL's).
Casi totalmente compatible con POS IX, System V y BSD a nivel fuente.
Cdigo fuente disponible, incluyendo el ncleo completo y todos los
drivers, las herramientas de desarrollo y todos los programas de usuario.

Control de tareas POS IX.


Pseudo-terminales (pty , s).
Acceso a los diferentes dispositivos como si de ficheros se tratase.
Emulacin de la unidad de coma flotante 80387 en el ncleo.
Consola virtual es mltiples: varias sesiones de login a travs de la consola.
Soporte para varios sistemas de archivo comunes.
Acceso transparente a particiones MS-DOS (o a particiones OS/2 FA T) mediante
un sistema de archivos especial.
Sistema de archivos ISO-9660 que lee todos los formatos estndar de
CD-ROM.
Pila de protocolos TCP/IP.
Admite protocolos Appletalk.
Software cliente y servidor NetWare disponible en los ncleos de
desarrollo.
Instalacin del sistema
Antes de proceder a la instalacin del sistema operativo Linux en una mquina, se
han de realizar dos pasos muy importantes:
Verificar que la mquina cumple al menos con los requisitos mnimos de hardware
que el sistema operativo a instalar requiere.
Elegir la distribucin a instalar entre las muchas existentes.
BIBLIOGRAFA
ALCALDE, Eduardo. MORERA, Juan. PEREZ-CAMPANERO, Juan A. (1994).
Introduccin a los Sistemas Operativos. Serie Informtica de Gestin. Mxico:
Editorial Mc Graw Hill.
FLYNN, Ida M, MCHOES, Ann McIver.(2001) Sistemas operativos. Tercera
Edicin. Mxico: Editorial Thomson Learning.

Vous aimerez peut-être aussi