Está en la página 1de 34

Ingeniera en Sistemas Computacionales

Taller de Sistemas Operativos Maestra:


Ing. Mariela Yanin Magaa Gutirrez.

Tema: Estructura General del Sistema Operativo Linux. Integrantes del Equipo:
Oscar Daniel Rangel Ignacio Jimnez Flores Juan Bernab del Castillo

Introduccin:
Linux es, a simple vista, un Sistema Operativo. Es una implementacin de libre distribucin UNIX para computadoras personales (PC), servidores, y estaciones de trabajo. Fue desarrollado para el i386 y ahora soporta los procesadores i486, Pentium, Pentium Pro y Pentium II, as como los clones AMD y Cyrix. Tambin soporta mquinas basadas en SPARC, DEC Alpha, PowerPC/PowerMac, y Mac/Amiga Motorola 680x0. Como sistema operativo, Linux es muy eficiente y tiene un excelente diseo. Es multitarea, multiusuario, multiplataforma y multiprocesador; en las plataformas Intel corre en modo protegido; protege la memoria para que un programa no pueda hacer caer al resto del sistema; carga slo las partes de un programa que se usan; comparte la memoria entre programas aumentando la velocidad y disminuyendo el uso de memoria; usa un sistema de memoria virtual por pginas; utiliza toda la memoria libre para cache; permite usar bibliotecas enlazadas tanto esttica como dinmicamente; se distribuye con cdigo fuente; usa hasta 64 consolas virtuales; tiene un sistema de archivos avanzado pero puede usar los de los otros sistemas; y soporta redes tanto en TCP/IP como en otros protocolos. Linux es un sistema operativo de gran difusin en la actualidad debido principalmente a que es de libre distribucin. Linux permite trabajar al usuario en modo mono-puesto o en modo de red, permitiendo iniciar sesin localmente en la mquina o de forma remota. Es una versin de UNIX desarrollada para funcionar en plataformas de ordenador personal. Tambin recibe el nombre de GNU/Linux o sistema operativo libre con licencia pblica GNU. Su nombre proviene del ncleo de un sistema operativo desarrollado en 1991 por Linus B. Torvalds.

La estructura general de un sistema operativo UNIX/Linux es la siguiente:

El sistema operativo est formado bsicamente por 2 componentes:


Shell: Es el equivalente al intrprete de comandos de Windows y sirve para introducir rdenes, ejecutar programas, etc. Ncleo: Como en todos los sistemas operativos, es la parte del sistema que interacta con el hardware.

Elementos de la interfaz grfica Los elementos bsicos del escritorio de Linux son muy similares a los de Windows:

Iconos Ventanas Barra de tareas Mens de trabajo o Aplicaciones o Lugares o Sistema rea de notificacin

En Linux, a diferencia de lo que ocurre en Windows, podemos utilizar diferentes tipos de interfaz grfica. Las 2 ms importantes son:

KDE

-Gnome

Entre ambos tipos hay grandes diferencias en cuanto a opciones disponibles y configuracin. El uso de uno u otro depende, en gran medida, del gusto personal de quien instala el sistema.

3. DESCRIPCION DE APARTADOS
1.- INTRODUCCIN

Un sistema Linux reside bajo un rbol jerrquico de directorios muy similar a la estructura del sistema de archivos de plataformas Unix. Originariamente, en los inicios de Linux, este rbol de directorios no segua un estndar cien por cien, es decir, podamos encontrar diferencias en l de una distribucin a otra. Todo esto hizo pensar a cierta gente* que, posteriormente, desarrollaran el proyecto FHS (Filesystem Hierarchy Standard, o lo que es lo mismo: Estndar de Jerarqua de Sistema de Ficheros) en otoo de 1993.

* Rusty Russell, Daniel Quinlan y Christopher Yeoh, creadores del estndar FHS entre otras personas.

2.- FHS
FHS se define como un estndar que detalla los nombres, ubicaciones, contenidos y permisos de los archivos y directorios, es decir, un conjunto de reglas que especifican una distribucin comn de los directorios y archivos en sistemas Linux. Como se ha mencionado, se cre inicialmente para estandarizar la estructura del sistema de archivos para sistemas GNU/Linux y ms tarde, en torno al ao 1995, tambin para su aplicacin en sistemas Unix. FHS no es ms que un documento gua, es decir, cualquier fabricante de software independiente o cualquier persona que decida crear una nueva distribucin GNU/Linux, podr aplicarlo o no a la estructura del sistema de archivos, con la ventaja de que si lo integra en el sistema, el entorno de ste ser mucho ms compatible con la mayora de las distribuciones. Es importante saber que el estndar FHS es en cierto modo flexible, es decir, existe cierta libertad en el momento de aplicar las normas. De ah que existan en la actualidad leves diferencias entre distribuciones GNU/Linux. Objetivos principales de FHS
o o o o

Presentar un sistema de archivos coherente y estandarizado. Facilidad para que el software prediga la localizacin de archivos y directorios instalados. Facilidad para que los usuarios prediga la localizacin de archivos y directorios instalados. Especificar los archivos y directorios mnimos requeridos.

El estndar FHS est enfocado a


o o

Fabricantes de software independiente y creadores de sistemas operativos, para que establezcan una estructura de ficheros lo ms compatible posible. Usuarios comunes, para que entiendan el significado y el contendido de cada uno de los elementos del sistema de archivos.

Adems, FHS manifiesta algunas diferencias entre varios tipos de archivos que puede haber en el sistema:
o

Archivos compartibles y no compartibles.

Ficheros que son propios de un host determinado y, archivos que pueden compartirse entre diferentes host. Ejemplo:
o o

Archivos compartibles: los contenidos en /var/www/html (que es el DocumentRoot por defecto del servidor Web Apache. Donde se almacena inicialmente el index.html de bienvenida). Archivos no compartibles: los contenidos en /boot/grub/ (Subdirectorio donde se ubican los ficheros del gestor de arranque GRUB). Archivos estticos y variables.

Ficheros que no cambian sin la interaccin de un administrador del sistema y, archivos que cambian sin la interaccin de un administrador del sistema. Para comprender mejor estos dos tipos, imaginemos los ficheros log (archivos de bitcora) del sistema. Estos cambian sin la intervencin del administrador; en consecuencia estos son del tipo variables. Los dems archivos son estticos. No cambian su contenido ni tamao a menos que lo autorice el administrador del sistema (o sea el propio quien lo modifique, por supuesto). o Archivos estticos: /etc/password, /etc/shadow.

O Archivos variables: /var/log/messages (log de mensajes generados por el kernel del sistema).

Todo en Linux es un archivo


Cierto, todo en un sistema Linux es un archivo, tanto el Software como el Hardware. Desde el ratn, pasando por la impresora, el reproductor de DVD, el monitor, un directorio, un subdirectorio y un fichero de texto. De ah vienen los conceptos de montar y desmontar por ejemplo un CDROM. El CDROM se monta como un subdirectorio en el sistema de archivos. En ese subdirectorio se ubicar el contenido del disco compacto cuando est montado y, nada cuando est desmontado. Para ver que tenemos montado en nuestra distribucin GNU/Linux, podemos ejecutar el comando mount. Este concepto es muy importante para conocer como funciona Linux.

En apartados posteriores, veremos donde ubica Linux los elementos Hardware del PC en el sistema de ficheros. NOTA: podemos acceder a los dispositivos Hardware como si fueran archivos. Realmente son ficheros para Linux; pero no son archivos normales, son archivos binarios (o .exe para los que vengan de Windows). Hay que saber que si editamos, por ejemplo, un fichero vinculado a un elemento Hardware, seguramente sea totalmente ilegible y posiblemente quedar inutilizable y bloqueada nuestra lnea de comandos (shell). Es ms, corremos el riesgo de corromper los datos y dejar el sistema inestable. En definitiva, no es aconsejable leer o abrir y mucho menos modificar archivos vinculados a elementos Hardware y/o dispositivos, a menos que sepamos con toda seguridad lo que estemos haciendo.

Organizacin de sistema de archivos segn FHS


El directorio raz

Todo surge a partir del directorio raz (/). El contenido de este directorio debe ser el adecuado para reiniciar, restaurar, recuperar y/o reparar el sistema, es decir, debe proporcionar mtodos, herramientas y utilidades necesarias para cumplir estas especificaciones. Adems, es deseable que se mantenga los ms razonablemente pequeo como sea posible por cuestin de funcionamiento y de seguridad. Por ltimo, este debe que ser el nico directorio en el nivel superior del rbol jerrquico de archivos y, tiene que ser imposible moverse ms all del mismo. Es el ltimo origen. Vemos, por ejemplo, un listado de su estructura:

Contenido del directorio raz /bin En este directorio se ubica el cdigo binario o compilado de los programas y comandos que pueden utilizar todos los usuarios del sistema. La denominacin es clara, bin de BINARY (binario en castellano). No debe haber subdirectorios en /bin. Estos son, por ejemplo, algunos comandos contenidos en /bin.

* La @ al lado del nombre de un fichero representa un enlace simblico /boot Este directorio contiene todo lo necesario para que funcione el proceso de arranque del sistema. /boot almacena los datos que se utilizan antes de que el kernel comience a ejecutar programas en modo usuario*.

El ncleo del sistema operativo (normalmente se guarda en el disco duro como un fichero imagen llamado vmlinuz-versin _ ncleo) se debe situar en este directorio o, en el directorio raz. *El ncleo tiene la capacidad de crear dos entornos o modos de ejecucin totalmente separados. Uno de ellos est reservado para el propio kernel, denominado el modo ncleo; y el otro est reservado para el resto de programas, llamado el modo usuario. Realmente se crean dos entornos totalmente separados, es decir, cada uno tiene su propia zona de memoria y procesos independientes. Dmonos cuenta que esta tcnica ofrece mucha seguridad y estabilidad al sistema. Cuando un proceso del modo usuario necesita recursos del modo kernel (por ejemplo, acceder a la memoria USB) se hacen uso de las famosas llamadas al sistema (interface que ofrece el ncleo para la comunicacin del modo usuario con el modo kernel).

Vemos su contenido:

/dev

Este directorio almacena las definiciones de todos los dispositivos. Como se ha mencionado, cada dispositivo tiene asociado un archivo especial. Por ejemplo, el contenido de la sexta particin del disco duro ser /dev/hda5. El fichero asociado al ratn tipo PS/2 ser /dev/psaux. Adems, es importante saber que los dispositivos pueden ser de bloque o de carcter. Normalmente los dispositivos de bloque son los que almacenan datos y, los de carcter los que transfieren datos. En definitiva, la estructura de este directorio es algo complejo. Podramos dedicar otro artculo entero para poder explicar en profundidad el contenido y funcionamiento especifico del directorio /dev. De momento nos vasta con saber que Linux lo utiliza para asociar dispositivos (devices) con ficheros. NOTA: El subdirectorio /dev/null es como un agujero negro. Esto es as, puesto que cualquier dato que se almacena aqu, desaparece. Es muy til para redireccionar los errores por ejemplo: alex@alexDebian# find / name pepe print 2>/dev/null /etc El directorio /etc contiene archivos necesarios para configuracin del sistema. Archivos que son propios del ordenador y que se utilizan para controlar el funcionamiento diversos programas. Deben ser ficheros estticos y nunca pueden ser archivos binarios y/o ejecutables. Algunos subdirectorios contenidos en /etc: O X11. Subdirectorio para la configuracin del sistema de ventanas. Es opcional. O O SGML. Subdirectorio para la configuracin de SGML. Es opcional. Xml. Subdirectorio para la configuracin de XML. Es opcional.

X11 Sistema de ventanas graficas originario de UNIX en su versin 11. Este sistema tiene la peculiaridad de ser totalmente independiente del sistema operativo. Es una estructura cliente-servidor.

XML - eXtensible Markup Language (lenguaje de marcas extensible). Es un metalenguaje de etiquetas. SGML - Standard Generalized Markup Language (Lenguaje de Marcacin Generalizado). Sistema para la organizacin y etiquetado de documentos. En definitiva, /etc mantiene los archivos de configuracin del sistema para un ordenador especfico. Vemos parte de su contenido:

/home Directorio que contiene los subdirectorios que son directorios origen para cada uno de los usuarios del sistema. Cada subdirectorio /home/user de cada usuario proporciona el lugar para almacenar sus ficheros, as como los archivos de configuracin propios de cada uno. Es importante saber que tambin algunos servicios, y no solo usuarios, crean aqu su directorio origen, por ejemplo: el servicio de transferencia de ficheros (FTP). El administrador tiene su propio directorio home, que es /root.

/lib El directorio /lib contiene libreras compartidas (similar a las dlls para los usuarios de Windows) necesarias para arrancar el sistema y para los ficheros ejecutables contenidos en, por ejemplo, /bin. Normalmente las libreras son ficheros binarios escritos en lenguaje C *. Tambin contiene mdulos del kernel esenciales que permiten el funcionamiento de muchos elementos Hardware. Se ubicarn normalmente en /lib/modules/versin-del-kernel/. *En el apartado /usr/include se explica que son y como funcionan las libreras y los archivos cabecera. Vemos parte de su contenido:

/media Este directorio contiene los subdirectorios que se utilizan como puntos del montaje para los medios de almacenamiento, tales como disquetes, CD-ROM y memorias USB. /mnt

Este directorio contiene sistemas de archivos externos que hayan sido montados. Las entidades que aparecen dentro de /mnt representan recursos externos a los que se puede acceder a travs de este directorio. /opt En este directorio (/opt de options, u opciones en castellano) se suelen instalar complementos o add-ons de los programas. Las aplicaciones crean un subdirectorio dentro de /opt denominado con el mismo nombre del programa. /root Este directorio es el directorio /home del administrador del sistema (root). /sbin Los programas y comandos que se utilizan para la administracin del sistema se almacenan en /sbin, /usr/sbin y /usr/local/sbin. /sbin nicamente contiene los ejecutables esenciales para el arranque, recuperacin y reparacin del sistema. Todos estos directorios (/sbin, /usr/sbin y /usr/local/sbin) se utilizan con fines administrativos, por tanto, slo puede ejecutar su contenido el administrador. Vemos parte de su contenido:

/srv Contiene los archivos de datos especficos para cada servicio instalado en el sistema. /tmp En este directorio se guardan los archivos temporales.
4.2 El directorio /usr

Es la segunda seccin ms grande o estructura jerr quica (despus del directorio raz) del sistema de ficheros. Este directorio est pensado para almacenar datos que se puedan compartir con otros hosts. Estos datos adems deben ser inalterables, es decir, slo de lectura. Normalmente, este directorio tiene su particin propia. Comnmente, se almacena aqu el software instalado en el sistema.

Vemos su contenido:

Estructura de /usr /usr/bin ste es el directorio primario de comandos ejecutables del sistema. /usr/bin alberga los archivos ejecutables vinculados al software instalado en el sistema. /usr/include Linux est escrito en lenguaje C. En C es posible utilizar funciones que ya estn predefinidas (como otros muchos lenguajes de programacin) para incluirlas en el programa que estemos haciendo. Esta tcnica se denomina programacin modular. Estas funciones se llaman comnmente archivos cabecera (.h de header) y contienen las declaraciones externas de una librera. La manera de incluir estos archivos cabecera en nuestro programa, es haciendo uso de la directiva include; de ah la denominacin del subdirectorio. Ejemplo programa C: #include main() { unsigned char clrscr(); do{

int

num,masc; resp;

Todos estos ficheros cabecera (que necesite el software instalado en el sistema) se almacenan en este subdirectorio. *Una librera no es ms que un programa compilado, donde originariamente se implement el cdigo fuente de las funciones que la componen. La declaracin pblica del conjunto de funciones de la librera reside en los archivos cabecera. Vemos parte de su contenido:

/usr/lib Este directorio incluye libreras compartidas y ficheros binarios pensados para no ser ejecutados directamente por los usuarios del sistema. /usr/local/ /usr/local/ es para uso del administrador del sistema cuando instala software localmente. Puede usarse para programas y datos que son compartibles entre un grupo de mquinas Este subdirectorio tiene una estructura similar a la del directorio /usr.

Vemos su contenido:

/usr/sbin Este directorio contiene comandos y programas no exclusivamente por el administrador de sistema. esenciales usados

Como se ha comentado, los comandos necesarios para la reparacin, recuperacin y otras funciones esenciales del sistema, se almacenan en /sbin. Vemos parte de su contenido:

/usr/src Por lo general, en /usr/src (src de source o, fuente en castellano) se guarda el cdigo fuente del Kernel del sistema.

Para comprobar si tenemos en nuestra distribucin los fuentes del kernel instalados, deberamos ver un enlace simblico llamado linux.
4.3.- El directorio /var

Este directorio va ha contener ficheros de datos variables y temporales, as como archivos spool (ficheros almacenados en filaen espera a ejecutarse, como por ejemplo colas de impresin). Todos los log del sistema y los generados por los servicios instalados, se ubican dentro de la estructura jerrquica de /var. Esto quiere decir que el tamao global de este directorio va ha crecer constantemente. La utilidad de /var radica en poder detectar problemas para prevenirlos y solucionarlos. Es aconsejable montar en una nueva particin este directorio. Si no se pudiera, es preferible ubicar /var fuera de la particin raz y de la particin /usr. Vemos su contenido:

Distribucin de algunos subdirectorios de /var /var/cache Subdirectorio pensado para albergar datos de aplicaciones en cache (usados en un espacio breve de tiempo). El sistema de paquetes de Debian (apt-get), mantiene y almacena todos los paquetes que nos hemos instalado con el gestor de paquetes Apt-get. Por ejemplo, si ejecutamos: alex@alexDebian:# apt-get install nmap Debian se bajar de algn repositorio especificado en /etc/apt/sources.list el archivo nmap_version.deb, lo almacenar en /var/cache/apt y lo instalar desde esta ruta.

Posteriormente lo podemos borrar. Por defecto Debian almacena aqu todo los paquetes que nos hemos instalado con su gestor de paquetes Apt-get. /var/lib Encontramos aqu informacin sobre el estado variable de las aplicaciones. /var/lock Aqu se almacenan los ficheros que estn bloqueados por el sistema. /var/log En /var/log se guardan los mensajes de registro generados por el sistema operativo y por diversos servicios. Por ejemplo: En /var/log/messages son los logs generados por el kernel, en /var/log/httpd/access_log encontramos quien (desde que ip) est accediendo a nuestro servidor Web y, en /var/log/wtmp encontraremos todos los accesos y salidas en el sistema. Vemos su contenido:

/var/mail Linux enviar aqu los archivos de correos de cada usuario del sistema. /var/run

/var/run contiene archivos con informacin del sistema que lo describen desde que se arranc. Generalmente, se borrar todos los archivos que cuelgan de este subdirectorio al comenzar el proceso de arranque. Estos archivos con informacin del sistema son los llamados archivos identificados de procesos PID, que guardan el identificador del proceso (Process ID). Podemos ver aqu los archivos PID en un instante determinado en mi mquina:

/var/spool /var/spool contiene ficheros almacenados en forma de fila de trabajos, para un procesamiento posterior. Vemos su contenido:

Un ejemplo claro puede ser los trabajos que guarda la impresora para, posteriormente, ejecutarlos por un orden de llegada y/o prioridad. o /var/tmp

Algunos datos temporales se almacenan aqu y que, posiblemente, pueden aparecer en nuestra distribucin GNU/Linux para no saturar el directorio /tmp. Existen otra serie de directorios que no especifica el estndar FSH, pero que son importantes. Los vemos

4.4. Directorio /lost+found. Perdidos y encontrados

Las herramientas y utilidades para restaurar y/o reparar el sistema de archivos almacenan los datos en este directorio. Es un espacio temporal donde se guardan los datos que se recuperan despus de una cada del sistema. Fijmonos que, normalmente en cada particin que creemos existir un /lost+found en el nivel superior. Por ltimo, decir que este directorio existe slo en distribuciones que tengan como sistemas de archivos ext2 o ext3.
4.5.- Directorio /proc

/proc es un sistema de archivos virtual. Se genera y actualiza dinmicamente, es decir, no se mantiene en el disco duro, se mantiene el la memoria RAM. Es el sistema quien lo crea y lo destruye. Este directorio contiene informacin sobre los procesos, el ncleo e informacin relativa al sistema. Vemos su contenido:

* Los subdirectorios identificados por un numero, corresponden a los PID de los procesos.

4. CONEXIN ENTRE APARTADOS


Las funciones principales de este magnfico sistema operativo son:

Sistema multitarea En Linux es posible ejecutar varios programas a la vez sin necesidad de tener que parar la ejecucin de cada aplicacin. 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 ncleo 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 (mdems, impresoras) gracias a que cada una vez instalado uno nuevo, se aade 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 ms 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 prcticamente idnticos. Con Linux podr montar un servidor en su propia casa sin tener que pagar las enormes cantidades de dinero que piden otros sistemas. CARACTERISTICAS ENTRE APARTADOS

1.

Multitarea: varios programas (realmente procesos) ejecutndose al mismo tiempo. Multiusuario: varios usuarios en la mismo tiempo (y sin licencias para todos). misma mquina al

2.

3. 4. 5.

Multiplataforma: corre en muchas CPU distintas, no slo Intel. funciona en modo protegido 386. tiene proteccin de la memoria entre procesos, que uno de ellos no pueda colgar el sistema. de manera

6.

carga de ejecutables por demanda: Linux slo lee de disco aquellas partes de un programa que estn siendo usadas actualmente. 7. poltica de copia en escritura para la comparticin de pginas entre ejecutables: esto significa que varios procesos pueden usar la misma zona de memoria para ejecutarse. Cuando alguno intenta escribir en esa memoria, la pgina (4Kb de memoria) se copia a otro lugar. Esta poltica de copia en escritura tiene dos beneficios: aumenta la velocidad y reduce el uso de memoria. 8. memoria virtual usando paginacin (sin intercambio de procesos completos) a disco: una particin o un archivo en el sistema de archivos, o ambos, con la posibilidad de aadir ms reas de intercambio sobre la marcha (se sigue denominando intercambio, es en realidad un intercambio de pginas). Un total de 16 zonas de intercambio de 128Mb de tamao mximo pueden ser usadas en un momento dado con un lmite terico 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. y libreras

9.

10. Libreras compartidas de carga dinmica (DLL's) estticas tambin, por supuesto.

11. se realizan volcados de estado (core dumps) para posibilitar los anlisis post-mortem, permitiendo el uso de depuradores sobre los programas no slo en ejecucin sino tambin tras abortar stos por cualquier motivo. 12. Casi totalmente compatible con POSIX, System V y BSD a nivel fuente. 13. Mediante un mdulo de emulacin de iBCS2, casi completamente compatible con SCO, SVR3 y SVR4 a nivel binario. 14. todo el cdigo fuente est disponible, incluyendo el ncleo completo y todos los drivers, las herramientas de desarrollo y todos los programas de usuario; adems todo ello se puede distribuir libremente. Hay algunos programas comerciales que estn siendo ofrecidos para Linux actualmente sin cdigo fuente, pero todo lo que ha sido gratuito sigue siendo gratuito. 15. Control de tareas POSIX.

16. pseudo-terminales (pty's). 17. Emulacin de 387 en el ncleo, de tal forma que los programas no tengan que hacer su propia emulacin matemtica. Cualquier mquina que ejecute Linux parecer dotada de coprocesador matemtico. Por supuesto, si tu ordenador ya tiene una FPU (unidad de coma flotante), ser usada en lugar de la emulacin, pudiendo incluso compilar tu propio kernel sin la emulacin matemtica y conseguir un pequeo ahorro de memoria. 18. soporte para muchos teclados nacionales o adaptados y es bastante fcil aadir nuevos dinmicamente.

19. consolas virtuales mltiples: varias sesiones de login a travs de la consola entre las que se puede cambiar con las combinaciones adecuadas de teclas (totalmente independiente del hardware de video). Se crean dinmicamente y puedes tener hasta 64. 20. soporte para varios sistemas de archivo comunes, incluyendo minix1, Xenix y todos los sistemas de archivo tpicos 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.

21. acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT) mediante un sistema de archivos especial: no necesitas ningn comando especial para usar la particin 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 aadido al ncleo de desarrollo y estar en la prxima versin estable. 22. un sistema de archivos especial llamado UMSDOS que permite que Linux sea instalado en un sistema de archivos DOS. 23. soporte en slo lectura de HPFS-2 del OS/2 2.1 24. sistema de archivos de CD-ROM que lee todos los formatos estndar de CD-ROM.

25. TCP/IP, incluyendo ftp, telnet, NFS, etc. 26. AppleTalk disponible en el actual ncleo de desarrollo.

27. software cliente y servidor NetWare de desarrollo.

disponible

en

los

ncleos

De este sistema se toman sus caractersticas, especificaciones y funcionamiento. Mas el sistema educativo Minix creado en 1987 por Andrew S. Tanenbaum del cual se toma la estructura y cdigo del ncleo. Con todo esto en 1991 Linus Torvalds crea Linuss Unix = Linux Kernel, esto es crea solo el ncleo Del sistema sin la capa de servidores, manejadores, aplicaciones graficas, etc que sern creadas posteriormente por otros autores. El cdigo del ncleo lo podemos encontrar en la aproximadamente direccin (www.kernel.org). El ncleo actual tiene

1,5 millones de lneas de cdigo, y representa menos del 50 por ciento de todo el cdigo del sistema. CARACTERISTICAS Su cdigo es de libre uso. - Escrito en lenguaje C, compilado con gcc, primera capa en ensamblador. - Ejecutable en varias plataformas hardware. - Se ejecuta en mquinas con arquitectura de 32 bits y 64 bits. - Estaciones de trabajo y servidores. - Cdigo y funcionamiento escrito bajo la familia de estndares POSIX (Portable Operating System Interface). - Soporta CPUs con uno o varios microprocesadores (SMP) symmetric multiprocessing. - Multitarea.

- Multiusuario. - Gestin y proteccin de memoria. Memoria virtual. - Varios sistemas de ficheros. - Comunicacin entre procesos (seales, pipes, IPC, sockets). - Libreras compartidas y dinmicas. - Permite trabajar en red TCP/IP. - Soporte grafico para interfase con el usuario. - Estable, veloz, completo y rendimiento aceptable. - Funcionalmente es muy parecido a UNIX. - Mas de 100.000 usuarios. - Actualizado, mejorado, mantenido y ampliado por la comunidad de usuarios (Modelo bazar, contrapuesto al modelo catedral). ARQUITECTURA Veamos los objetivos ms importantes que se han tenido en cuenta a la hora de disear el ncleo, basados en claridad, compatibilidad, portabilidad, robusto, seguro y veloz. CLARO Claridad y velocidad son dos objetivos normalmente contrapuestos. Los diseadores Suelen sacrificar claridad por velocidad. La claridad complementa la robustez del sistema y facilita la realizacin de cambios y mejoras. Podemos encontrar reglas de estilo en el fichero /usr/src/Documentation/CodingStyle. COMPATIBLE Diseado bajo la normativa POSIX. Soporta ejecutar ficheros Java. Ejecuta Aplicaciones DOS, con el emulador DOSEMU. Ejecuta algunas aplicaciones

Windows a travs del proyecto WINE. Se mantiene compatibilidad con ficheros Windows a travs de los servicios SAMBA. Soporta varios sistemas de ficheros Ext2 y ext3 (sistemas de ficheros nativos), ISO-9660 usado sobre los CDROMs, MSDOS, NFS (Network File System), etc. Soporta protocolo de redes TCP/IP, Soporta protocolo de AppleTalk (Macintosh), tambin protocolos de Novell IPX (Internetwork Packet Exange), SPX (Sequenced Packet Exange), NCP (NetWare Core Protocol), y IPv6 la nueva versin de IP. Mantiene compatibilidad con una variedad de dispositivos hardware. MODULAR El ncleo define una interfaz abstracta a los subsistemas de ficheros denominada VFS (Virtual File System Interface), que permite integrar en el sistema varios Sistemas de ficheros reales. Tambin mantiene una interfase abstracta para Manejadores binarios, y permite soportar nuevos formatos de ficheros ejecutables como Java. PORTABLE Mantiene una separacin entre cdigo fuente dependiente de la arquitectura y Cdigo fuente independiente de la arquitectura, que le permite ejecutar Linux en diversas plataformas como Intel, Alpha, Motorola, Mips, PowerPC, Sparc, Macintosh es, Sun, etc. Existen versiones del ncleo especficas para porttiles, y PADs. ROBUSTO Y SEGURO El disponer de los fuentes, permite a la comunidad de usuarios modificar los errores Detectados y mantener el sistema constantemente actualizado. Dispone de

Mecanismos de proteccin para separar y proteger los programas del sistema de los Programas de los usuarios. Soporta cortafuego para proteccin de intrusos. VELOZ Este es el objetivo ms demandado por los usuarios, si bien no suele ser un objetivo Crucial. El cdigo est optimizado as encontramos la primera capa del ncleo escrita en ensamblador. La interaccin o solicitud de un servicio por parte de un programa de usario, sigue Los siguientes pasos: 1. El usuario en su programa solicita una funcin de la librera libc. 2. la funcin de libc, hace una llamada al ncleo a travs de una llamada (syscall). 3. el ncleo recibe esa llamada mediante una funcin (system call). 4. el ncleo redirige esta llamada a los mdulos implicados que a su vez llaman a otros hasta llegar al hardware y realizar la solicitud del usuario. 5. el ncleo hace llegar a la aplicacin del usuario el resultado de su solicitud. OBJETOS COMPONENTES Es una forma ms estructurada de implementar los mdulos. Se encapsulan estructuras de datos con los procedimientos que las manejan. Componentes un refinamiento del concepto de objetos. Linux implementa una estructura por capas con mdulos. No esta implementada una estructura de objetos o componentes. ESTRUCTURA MONOLTICA O MACRONCLEO (Unix) El ncleo es un nico gran proceso.

La utilizacin de un procedimiento se llama directamente, no necesita Mensajes, por lo que es ms rpido. Actualizaciones, implican recompilar todo el ncleo. ESTRUCTURA DE LINUX

Linux mantiene una estructura monoltica, pero admite mdulos cargables. Mdulos pueden ser manejadores de dispositivos, y se cargan cuando se Necesitan. Procedimientos para trabajar con el FS 1. Cada sistema de fichero proporciona unas estructuras que contienen los Procedimientos para trabajar con el: 2. super_operations, procedimientos para trabajar con la estructura Supe bloque. 3. file_operations, procedimientos para trabajar con la estructura file. inode_operations, procedimientos para trabajar con la estructura inode. 4. address_space_operations direcciones de procedimientos que hacen otras cosas y a s ms.

5. Para un sistema de ficheros especifico, la direccin de la funcin de bsqueda real_lookup, se encuentra en la estructura inode_operations en el inode contenido en la entrada dentry del directorio para el que estamos realizando La bsqueda. 6. Esta funcin especifica para un determinado sistema de ficheros, debe leer en El disco y buscar en el directorio para este fichero que estamos buscando. PRINCIPALES ESTRUCTURAS DE DATOS UTILIZADAS

task_struct files file filp dentry

nameidata inode
Diferencias con el Sistema Operativo Windows.

Tal y como hemos visto, el sistema operativo se compone de varios elementos importantes. Linux se ha desarrollado de manera modular de modo que se pueden distinguir facilmente las diferentes partes que lo componen , la ventaja de esta estructuracin es que perimite su modificacin y mejora sin excesiva dificultad a diferencia de windows que es mas complejo y no permite modificaciones . La incorporacin de ciertos elementos en linux, como son llamadas al sistema, controladores de dispositivos u otros, es sencilla y no obliga a redisear la estructura del sistema.

De forma general los elementos que nos encontramos en el kernel de linux son los siguientes: Llamadas al sistema. Implementacin de operaciones que deben ejecutarse en modo kernel. Sistema de archivo. Entrada/Salida de dispositivos. Buffer cach. Memoria intermedia para sofisticada entradas y salidas. Controladores de dispositivos. Gestin a bajo nivel de discos, tarjetas, impresoras, etc Gestin de la red. Protocolos de comunicaciones en red. Interfaz con la mquina.Cdigo (generalmente en esamblador) de acceso a bajo nivel al hardware. Ncleo de Kernel. Gestin de procesos (creacin, duplicacin, destruccin, etc) , gestor de rdenes, seales, mdulos cargables (carga de ciertas partes del kernel cuando se requieren), gestin de memoria (gestin de la memoria fsica y la memoria virtual), etc.

En tanto una de las diferencias mas notables que hay es que en cuanto a Linux puede haber modificacines y mejoras por parte de sus usuarios ya que este no esta protegido y su estructura es sencilla y en cuanto a windows las modifcacines solo las puede hacer las empresa a la que pertenece. En cuanto a las llamadas asl sistema Linux tiene 320, Windows tiene ms de 1000 y esto es debido a que Linux tiene lo que se necesita ya que no existe mucha demanda de los desarrolladores para que esto cambie y windows con su extensa gama de llamadas al sistema lo hace un sistema mas complejo y propenso a errores.

Para el hardware el kernel de linux es mejor debido a que soporta 1024 CPUs de 32 o 64 bits frente a las 4-32 y 4-64 respectivamente de Windows. Tambin soporta en temas de memoria 64GB de RAM de 32 bits PAE o 1024GB - 8.589.934.592GB de RAM de 64 bits frente a Windows que se queda con 1GB/<4GB y hasta 128GB. Conclusin Como conclusin llegamos a que la familia de linux es una de las mas poderosas hablando en cuanto a nivel de estabilidad, capacidad y confiabilidad del sistema operativo, tambien es mas comodo por su estetica interfaz grafica y facil de usar, tiene infinidad de versiones de sistemas operativos segn las necesidades del usuario, pero como todo tiene su contra debido a que es un sistema gratuito a la mayoria de las empresas no les conviene hacer tratos con linux debido a que no tendrian muchos fines lucrativos para ellos mas sin embargo al ser un sistema libre esto es contrarrestado por la infinidad de desarrolladores que aportan cosas para este sistema y hagan que no se vea afectado por la compativilidad de plataformas en cuanto a aplicacines de paga.

Tipo :
REPORTE DE INVESTIGACIN

Clave: Fecha de Aplicacin: Asignatura :

TSO-E-1-001

28/02/2013

TALLER DE SISTEMAS OPERATIVOS

Alumnos:

Oscar Daniel Rangel Martinez Juan Bernabe del Castillo Ignacio Jimenez Flores 11070042 11070013 11070030 4

N. Control:

Semestre:

Tema de Investigacin: Estructura General del Sistema Operativo_____ Parte I. Instrucciones: De acuerdo a los criterios que se encuentran presentes en la investigacin, en la columna de cumplimiento se va a colocar la palabra si, si se encuentra presente en el reporte; o la palabra no si no se encuentra presente. Criterio Introduccin Descripcin Se describe si el sistema operativo es propietario o no y por lo menos dos cambios dentro de su propia estructura al evolucionar. Contiene una ilustracin donde se incluyan las partes que conforman la estructura del sistema operativo. Se indica las actividades que se llevan a cabo por cada parte presente en la estructura del sistema operativo. Incluye dentro de la investigacin el tipo de conexin que se tiene entre los apartados de la estructura del sistema operativo. Valor en Puntos Cumplimiento

15

Esquema de la Estructura.

15

Descripcin de Apartados.

25

Conexin entre Apartados.

10

Diferencias con Otro Sistema Operativo.

Se incluye la diferencia de actividades (refirindose exclusivamente al ncleo del sistema operativo), en comparacin con otro sistema operativo. (El sistema operativo a comparar queda a opcin del equipo de trabajo.) Se formula una conclusin del sistema operativo del que se describe su estructura.

25

Conclusin

10

Puntaje Obtenido:____________________________