LINUX Trabajo Escrito

13
LINUX Historia En 1965, los laboratorios de telefonía Bell (una división de A T&T) trabajaban (Iunto con General Electric y el M.I.T. (Instituto Tecnológico 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 concepción diferente, mucho más simple. En 1970, Ken Thompson implementó una primera versión 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 programación C y junto a Thompson rescribieron todo el código 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 sólo era necesario realizar los cambios pertinentes para adaptarlo a la nueva arquitectura, manteniendo intacto el resto del código. Este es el concepto de sistema abierto que lo hizo triunfar. Además, UNIX fue diseñado

description

linux y unix

Transcript of LINUX Trabajo Escrito

Page 1: LINUX Trabajo Escrito

LINUX

Historia

En 1965, los laboratorios de telefonía Bell (una división de A T&T) trabajaban(Iunto con General Electric y el M.I.T. (Instituto Tecnológico de Massachussets) enel desarrollo de Multics, un proyecto para realizar un sistema operativo de grandesprestaciones, multitarea y de tiempo compartido. Por diversas razones, Bell seseparó del grupo y Ken Thompson y Dennis Ritchie (empleados de BellTechnologies) decidieron continuar independientemente con el proyecto para suempresa. Así pues, se dedicaron a desarrollar un sistema operativo que cumplieracon la mayor parte de los requisitos del proyecto anterior pero con unaconcepción diferente, mucho más simple.

En 1970, Ken Thompson implementó una primera versión 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 programación C y junto a Thompson rescribieron todo el código Sistemas Operativos 268 UNIX con este lenguaje.

En 1977, UNIX se portó a otra arquitectura diferente a la de la PDP, gracias a quepara recompilarlo sólo era necesario realizar los cambios pertinentes paraadaptarlo a la nueva arquitectura, manteniendo intacto el resto del código. Este esel concepto de sistema abierto que lo hizo triunfar. Además, UNIX fue diseñadomodularmente, es decir, se programaron multitud de sencillos módulos genéricosque una vez interconectados eran capaces de realizar tareas complejas. Estopermitió una fácil depuración de sus errores y facilitó la colaboración entre distintosequipos de desarrollo.

En resumen, UNIX es uno de los sistemas operativos más populares del mundodebido a su extenso soporte, distribución y, sobre todo, a su característica desistema abierto. Originalmente fue desarrollado como sistema multitarea contiempo compartido para mini ordenadores y mainframes y, desde entonces, se haconvertido en uno de los sistemas más utilizados a pesar de su, ocasionalmente,confusa interfaz con el usuario y el problema de su estandarización.

Por su parte, Linux es una versión de UNIX de libre distribución, inicialmentedesarrollada por Linus Torvalds en la Universidad de Helsinki, en Finlandia. Hasido desarrollado con la colaboración de muchos programadores y expertos deUNIX a lo largo y ancho del mundo, gracias a la existencia de Internet. Cualquierhabitante del planeta puede acceder a Linux y desarrollar nuevos módulos ocambiarlo a su antojo.

El núcleo de Linux no utiliza ni una sola línea del código de A T &T o de cualquierotra fuente de propiedad comercial y buena parte del software para Linux sedesarrolla bajo las reglas del proyecto de GNU de la Free Software Foundation.

Page 2: LINUX Trabajo Escrito

Cambridge, Massachusetts.

Inicialmente, Linux fue un proyecto de aficionado de Linus Torvalds. Se inspiraba en Minix, un pequeño UNIX de carácter fundamentalmente académico diseñado para microprocesadores de Intel de las familias 8086, 8088 y 80286 desarrollado por Andrew Tanenbaum. La intención de Linus Torvalds era la de mejorar MINIX para aprovechar al máximo las características avanzadas del procesador 80386 de Intel como son la conmutación de tareas en modo protegido y el coprocesador matemático.

El 5 de octubre de 1991, Linus anunció la primera versión «oficial» de Linux, La0.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íanada sobre soporte a usuarios, distribuciones, documentación ni nada parecido.Hoy, la comunidad de Linux aún trata estos asuntos de forma secundaria. Loprimero sigue siendo el desarrollo del kernel.

Actualmente, Linux es ya un clónico de UNIX completo, capaz de ejecutar XWindow,TCP/IP, Emacs, UUCP y software de correo y News, mucho software delibre distribución ha sido ya portado a Linux y están empezando a aparecermultitud de aplicaciones comerciales. El hardware soportado es mucho mayor queen las primeras versiones del núcleo y abarca la práctica totalidad de arquitecturasy periféricos.

Linux es, pues, una reimplementación completamente gratuita de lasespecificaciones POSIX, con extensiones de SYSV y BSD (lo cual significa queparece UNIX pero no proviene del mismo código fuente base), que está disponibletanto en su versión fuente como ya compilada. El copyright pertenece a Linus B.Torvalds ([email protected]) y otros colaboradores, y es librementeredistribuible bajo las condiciones de la «GNU Public License».

Arquitectura de UNIX y LINUX

El núcleo del Sistema Operativo

El núcleo del sistema operativo Unix (llamado Kernel) es un programa escrito casien su totalidad en lenguaje C, con excepción de una parte del manejo deinterrupciones, expresada en el lenguaje ensamblador del procesador en el queopera.

Las funciones del núcleo son permitir la existencia de un ambiente en el que sea posible atender a varios usuarios y múltiples tareas en forma concurrente, repartiendo al procesador entre todos ellos, e intentando mantener en grado óptimo la atención individual.

El Kernel opera como asignador de recursos para cualquier proceso que necesite

Page 3: LINUX Trabajo Escrito

hacer uso de las facilidades de cómputo. Es el componente central de Unix y tienelas siguientes funciones:

Creación de procesos, asignación de tiempos de atención y sincronización. Asignación de la atención del procesador a los procesos que lo requieren. Administración de espacio en el sistema de archivos, que incluye: acceso,

protección y administración de usuarios; comunicación entre usuarios yentre procesos, y manipulación de E/S y administración de periféricos.

Supervisión de la transmisión de datos entre la memoria principal y losdispositivos periféricos.

El Kernel reside siempre en la memoria central y tiene el control sobre lacomputadora, por lo que ningún otro proceso puede interrumpirlo; sólo puedenllamarlo para que proporcione algún servicio de los ya mencionados. Un procesollama al Kernel mediante módulos especiales conocidos como llamadas alsistema.

El Kernel consta de dos partes principales: la sección de control de procesos y lade 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 periféricos.

Arquitectura del Núcleo de LINUX

Para empezar, la arquitectura abstracta de Linux puede describirse como la composición de un conjunto subsistemas o componentes interactuando unos con otros de forma simultanea. El núcleo se descompone en estos subsistemas basándose 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 núcleo, 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 elque provee al núcleo de una interfaz externa. Es decir, es el subsistema quepermite la comunicación a los programas de usuario interactuar con los demássubsistemas mediante lo que se denominan "llamadas al sistema".

Subsistema Administrador de Memoria. El subsistema administrador dememoria, como su propio nombre indica, ofrece los servicios necesarios quepermiten acceder a la memoria física del ordenador. Este subsistema esconde alos programas de usuario todo el manejo de la memoria virtual, que proporcionauna mejor gestión de la memoria disponible del sistema, creando la apariencia de

Page 4: LINUX Trabajo Escrito

una mayor cantidad de memoria física utilizable, además de ofrecer la posibilidadde que los procesos compartan fragmentos de memoria.

Subsistema Administrador de procesos. Linux es un sistema operativomultiproceso y como tal permite que muchos procesos se ejecuten a la vez. Estesubsistema gestiona la creación, planificación y eliminación de los procesos (delos que se encargan los tres módulos del subsistema). Todos los procesos tienenun espacio de direcciones virtuales propio y un conjunto de ficheros abiertos, asíque para su gestión habrá que administrar todos estos recursos.

Subsistema del Sistema de ficheros. Linux utiliza el standard de sistema deficheros de Unix. Este subsistema se encarga de todo acceso (ya sea lectura oescritura) a cualquier dispositivo físico utilizado para almacenar datos. Estosdispositivos físicos 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 utilización desockets BSD y los protocolos de red TCP/IP, para seguir en la línea decompatibilidad con Unix. De esta manera permite la comunicación con otrascomputadoras 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 "híbrido" 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 jerarquía de capas para los distintos módulos del núcleo, diferenciados según su funcionalidad y nivel de acceso a los dispositivos físicos. 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.

Page 5: LINUX Trabajo Escrito

Sin embargo, no se puede afirmar que Linux es estrictamente una arquitectura decapas, 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, setiene que los diferentes subsistemas "encapsulan" las operaciones que realizansobre los dispositivos en forma de herramientas, de tal forma, que el programadorhace uso de esas herramientas olvidándose de las vicisitudes del manejo delhardware y todo lo que ello conlleva.

Pero el estilo "híbrido" entre las dos ideas de arquitectura explicadas, es la quemejor describe el estilo de la arquitectura de Linux.

Versiones y características Linux/Unix

VersionesExisten numerosas versiones de UNIX para muchos sistemas, desde ordenadorespersonales 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 (también conocido como OEC UNIX), para procesadores Alpha de Digital.

Ultrix, disponible para estaciones V AX de Digital. SYSVR4 (también 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 versión de UNIX para cualquier máquina medianamente conocida. Esto es debido a la gran portabilidad de su código, escrito en C, y a que éste es público y accesible.

Page 6: LINUX Trabajo Escrito

Características de Linux/Unix

Debido a que LINUX es una versión de UNIX, ambos sistemas comparten la mayoría de las características técnicas y funcionalidades.

A continuación, se exponen en una lista las principales características de Linux:

Multitarea: varios programas (realmente procesos) se pueden ejecuta: a

mismo tiempo.

Multiusuario: varios usuarios pueden trabajar en la misma máquina a

mismo tiempo.

Multiplataforma: corre en muchas CPUs distintas, no sólo Intel.

Funciona en modo protegido 386.

Protección de la memoria entre procesos, de manera que uno de ellos -

pueda colgar el sistema.

Carga de ejecutables por demanda: Linux sólo lee de disco aquellas

partes de un programa que están siendo usadas actualmente.

Política de copia en escritura (copy on write).

Memoria virtual usando paginación (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.

Librerías compartidas de carga dinámica (DLL's).

Casi totalmente compatible con POS IX, System V y BSD a nivel fuente.

Código fuente disponible, incluyendo el núcleo completo y todos los

drivers, las herramientas de desarrollo y todos los programas de usuario.

Control de tareas POS IX.

Pseudo-terminales (pty , s).

Page 7: LINUX Trabajo Escrito

Acceso a los diferentes dispositivos como si de ficheros se tratase.

Emulación de la unidad de coma flotante 80387 en el núcleo.

Consola virtual es múltiples: varias sesiones de login a través 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 estándar de

CD-ROM.

Pila de protocolos TCP/IP.

Admite protocolos Appletalk.

Software cliente y servidor NetWare disponible en los núcleos de

desarrollo.

Instalación del sistema

Antes de proceder a la instalación del sistema operativo Linux en una máquina, se han de realizar dos pasos muy importantes:

Verificar que la máquina cumple al menos con los requisitos mínimos de hardware que el sistema operativo a instalar requiere. Elegir la distribución a instalar entre las muchas existentes.

BIBLIOGRAFÍA

ALCALDE, Eduardo. MORERA, Juan. PEREZ-CAMPANERO, Juan A. (1994). Introducción a los Sistemas Operativos. Serie Informática de Gestión. México: Editorial Mc Graw Hill.

FLYNN, Ida M, MCHOES, Ann McIver.(2001) Sistemas operativos. Tercera Edición. México: Editorial Thomson Learning.

Page 8: LINUX Trabajo Escrito