Vous êtes sur la page 1sur 22

2012 UNAD Nombre: Lucero del Carmen Muoz Loera Matrcula: AL10528227 Cuatrimestre 4 Materia: programacin de sistemas operativos

facilitadora: margarita mrquez tirso

[Actividad 2. Arquitectura del diseo del Sistema Operativo Linux]

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

INSTRUCCIONES: Esta actividad tiene como propsito que distingas cmo est estructurada la arquitectura del sistema operativo Linux. 1. Investiga sobre la arquitectura del sistema operativo Linux, principios del diseo, paradigmas y llamadas al sistema. 2. Con base en la investigacin, realiza elabora un archivo de texto que contenga los temas mencionados pero con enfoque en Linux.

1|Page

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

INTRODUCCIN: El sistema operativo Linux fue desarrollado en 1991 por Linus Torvalds. Linux se basa en el sistema Minix que a su vez est basado en el sistema UNIX. El sistema operativo Minix es una versin bsica y reducida de UNIX creada para uso universitario sin tener que pagar licencias. A partir de est primera versin de Linux el sistema ha sido modificado por miles de programadores de todo el mundo bajo la coordinacin de su creador Linux Torvalds. Su interfaz grfica ha mejorado en los ltimos aos, logrando que sea tan fcil de usar como en los sistemas Windows. En los sistemas operativos Linux el usuario va poder elegir a la hora de instalar el sistema entre varias interfaces grficas que cuentan con prestaciones similares, entre las que destacan KDE y Gnome. La principal caracterstica de Linux es que su software no es propiedad de ninguna persona o empresa, es software libre. Al ser software libre, el cdigo fuente es accesible para que cualquiera pueda estudiarlo y modificarlo. La licencia de Linux no restringe el derecho de venta, por lo que diversas empresas de software comercial distribuyen versiones de Linux. Este sistema operativo dependiendo de su versin, se utiliza tanto en supercomputadoras y servidores como en computadoras personales.
2|Page

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

Las diferentes variantes del sistema operativo Linux se denominan distribuciones. Las principales caractersticas de Linux son: -Es multiusuario y multitarea. -Es compatible con Unix. -Proporciona una interfaz de lnea de comandos y una interfaz grfica. -Es software libre (free software). -Existen distintas distribuciones entre las que destacan Red Hat, Suse, Debian y Ubuntu. DESARROLLO: SERVIDORES DE INTERFACES GRFICOS Para que UNIX/Linux pueda presentar al usuario una interfaz grfica, incorporando un sistema de ventanas, un escritorio y un conjunto de aplicaciones que se ejecutan sobre l, requiere de un software que posibilite acceder a los recursos hardware de la mquina (dispositivos de entrada como ratn y teclado, de salida como el monitor,
3|Page

tarjeta

grfica)

poder

configurarlos

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

adecuadamente para que sea posible. El software se encarga de realizar so se denomina X Window (que n tienen nada que ver con el sistema operativo de Microsoft). Fue desarrollado inicialmente por DEC, IBM, y el MIT (proyecto Athena) lanzndose en 1994 y hoy es prcticamente un estndar en los sistemas UNIX/Linux con su versin 11. Su funcin es bsicamente ofrecer un soporte no slo de acceso y uso del hardware sino tambin de una configuracin grfica de ventanas sobre las que puedan ejecutarse las aplicaciones, proporcionando los mecanismos necesarios para poder abrirlas, minimizarlas, cerrarlas, redimensionarlas, y cambiar el aspecto de las mismas. Para gestionar este sistema se recurre a un paquete de software que recibe el nombre de gestor de ventanas, de manera que es a travs de este gestor como se cambian los aspectos relacionados con la configuracin de las ventanas de la interfaz grfica. En la actualidad la versin 11 va pro la revisin 6, comnmente denominadas X11R6, X Window es una interfaz grfica comercial, sin embargo, en Linux se dispone de una implementacin gratuita denominada X.org que tambin se ha convertido en un estndar en estas distribuciones. Aunque hay otros servidores comerciales de X Window para Linux. Lo cierto es que X.org quizs sea el ms utilizado.

4|Page

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

X Window, y por lo tanto X.org, se ha diseado basndose en el modelo cliente/servidor, de forma que el servidor se encarga de mostrar grficamente las peticiones recibidas por los diferentes clientes, como puedan ser las herramientas de dibujo de grficos, los editores de texto grfico, y en general, cualquier aplicacin que requiera dibujar en la interfaz grfica. Es ms estas aplicaciones pueden estar ejecutndose en la propia mquina o en otras distribuidas por la red. Entre esos clientes tambin se encuentra tambin el gestor de ventanas, que es quien proporciona el marco dentro del cual se ejecutan las aplicaciones grficas. Los entornos de escritorio como Gnome y KDE tambin necesitan su gestor de ventanas. Antes de instalar un sistema X Window en UNIX/Linux es preciso conocer el hardware disponible en la mquina qu requerimientos precisa el sistema de interfaz grfica que se va a instalar, as como el uso que se le pretende dar. GNOME: El proyecto Gnome (GNU Network Object Model Environment), es creado por los mexicanos Miguel de la Icaza y Federico Mena en agosto de 1997. Ellos tenan como fin crear un entorno de escritorio completamente libre que funcione en un sistema operativo libre,
5|Page

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

como es el de Linux. ste entorno de escritorio ha tenido como objetivo principal presentarle al usuario un escritorio fcil de usar y una gama de aplicaciones intuitivas. La primera versin importante de Gnome fue publicada en marzo de 1999. Componentes de Gnome: Gnome est compuesto por muchas utilidades, aplicaciones y herramientas. stas se pueden catalogar, segn sus funciones, de la siguiente manera: Programas base: Los programas base son aquellos programas que se encargan de gestionar la interaccin entre aplicaciones, brindando una plataforma base para que los programas puedan funcionar entre s. Algunas de los programas base sirven de contenedores a otras aplicaciones. Otras se encargan de la gestin de las ventanas que aparecen en su pantalla o le permiten navegar entre los objetos de su carpeta personal. Estos programas base son el navegador de archivos, el controlador del escritorio y gestor de ventanas. -Paneles: los paneles son barras que contienen lanzadores y mini aplicaciones, como los mens del sistema, o la papelera de reciclaje. -Lanzadores: Son accesos directos o enlaces a aplicaciones instaladas en el sistema. Un enlace es un atajo que permite al usuario
6|Page

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

ejecutar rpidamente una aplicacin, sin verse en la necesidad de buscarla entre los directorios y carpetas del sistema. -Miniaplicaciones: Son pequeas aplicaciones interactivas, que residen dentro de los paneles. -Aplicaciones de GNOME. Son programas adicionales que le brindan alguna utilidad al usuario las aplicaciones de Gnome se diferencian del resto de las aplicaciones instaladas en el sistema, en que stas usan la biblioteca de funciones de Gnome y por ende pueden ser gestionadas por el controlador de sesiones. KDE: El proyecto KDE (K Desktop Environment) es lanzado en agosto de 1996 por el alemn Matthias Eltrich. KDE es un entorno grfico contemporneo para computadoras que corren sistemas operativos tipo Unix como Linux. KDE busca llenar la necesidad de un escritorio familiar e intuitivo, similar a los escritorios de MacOS o Windows. La primera versin estable fue publicada el 12 de julio de 1998. Xfce: (X Free Cholesterol Environment) es un entorno de escritorio ligero para sistemas operativos tipo Unix. Su creador, Oliver Fourdan,
7|Page

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

desarrollo este entorno de escritorio que tiene como meta ser rpido y ligero en el consumo de recursos del sistema, manteniendo siempre la esttica visual y la facilidad de uso. Las primeras versiones aparecieron en 1997. En el rea de la computacin, especficamente en el rea del diseo de interfaces de usuario, las metforas tienen un papel importante ya que se usan con frecuencia para disear aplicaciones que le oculten al usuario final la complejidad del manejo del sistema: el usuario comn no debe ni quiere saber los caminos intrincados de los bits y bytes que deambulan en el computador. Una interfaz basada en metforas es un conjunto de elementos visuales, acciones y procedimientos que explotan el conocimiento especfico que tienen los usuarios de elementos de otros dominios. El usuario tiene conocimientos previos basados en su experiencia con el mundo fsico; stos le van a ayudar a comprender la interfaz de usuario. Este proceso se logra a travs de las analogas, dndole al individuo conocimiento instantneo sobre cmo interactuar con la interfaz de usuario. Linux es un sistema multitarea, que ello implica que todos los programas que se estn utilizando en un determinado momento se ejecutarn, siendo el sistema operativo el que distribuye el tiempo de
8|Page

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

ejecucin para cada uno de ellos. Otra caracterstica importante es la de multiusuario, quiere decir que varios usuarios podrn utilizar el mismo sistema ala vez. El Sistema Linux se puede instalar en multitud de plataformas convirtindolo en multiplataforma. Otra caracterstica destacable del sistema Linux es su estabilidad y seguridad que depende bsicamente de su propia naturaleza ya que su entorno grfico no est integrado en el propio ncleo y es proporcionado por el servidor grfico que puede desconectarse sin afectar al funcionamiento del sistema en s. PARADIGMAS DE LINUX El cdigo abierto proporciona a los usuarios la libertad de utilizacin de un programa informtico para cualquier tarea, adems de poder modificarlo y mejorarlo para que otros usuarios se beneficien de ventajas como ser gratis o bajo costo, estabilidad, al no estar sujeto a la premura del mercado, seguridad, por ser la comunidad de usuarios y desarrolladores los que pueden detectar cualquier fallo y corregirlo de inmediato; adems dada la gran variedad de usuarios y desarrolladores se har asequible en una gran cantidad de lenguas. Cada paradigma tiene sus ventajas y desventajas, y dependiendo de la clase de problema a resolver, uno de ellos puede ser ms adecuado que otro. La programacin imperativa (tambin conocida como
9|Page

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

programacin secuencial) es un paradigma de programacin que describe la programacin en trminos del estado del programa y sentencias que cambian dicho estado. Se desarrolla de forma ordenada, cada lnea de cdigo se ejecuta una por una. Algunos lenguajes que se utilizan para este tipo de programacin son Ensamblador, Fortran, Cobol y Basic, entre otros. Otro paradigma de programacin comn es la programacin orientada a eventos, en la que tanto la estructura como la ejecucin de los programas van determinados por los sucesos que ocurran en el sistema, definidos por el usuario o que ellos mismos provoquen. Se deben definir los eventos que manejarn el programa y las acciones que se realizarn al producirse cada uno de ellos, lo que se conoce como el administrador de evento. Al comenzar la ejecucin del programa se llevarn a cabo las inicializaciones y dems cdigo inicial y a continuacin el programa quedar a la espera de alguna accin del usuario o del sistema, es decir, de un evento. El mejor ejemplo de este tipo de sistema es Visual Basic. Actualmente, el paradigma de programacin ms usado debido a mltiples ventajas respecto a los dems, es la programacin orientada a objetos o POO (OOP segn sus siglas en ingls). Donde el elemento fundamental es el objeto, ya que se basa en la idea natural de la existencia de un mundo lleno de objetos, entre los cuales se definen sus interacciones para llevar a cabo una tarea. Su uso se populariz a principios de la dcada de los
10 | P a g e

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

aos 1990. Entre sus principales caractersticas estn la herencia, abstraccin, polimorfismo y encapsulamiento; y sus ventajas claves son la reusabilidad y extensibilidad. Hay una variedad de lenguajes y libreras de programacin para Linux, as que este documento solamente cubre los lenguajes ms comunes y los conjuntos de herramientas para la construccin de interfaces grficas de usuario del momento. LENGUAJES PRINCIPALES PERL: es un lenguaje de programacin diseado por Larry Wall en 1987. Perl toma caractersticas del lenguaje C, del lenguaje interpretado bourne shell (sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programacin. Python: Es un lenguaje de programacin de alto nivel cuya filosofa hace hincapi en una sintaxis muy limpia y que favorezca un cdigo legible. Se trata de un lenguaje de programacin multiparadigma ya que soporta orientacin a objetos, programacin imperativa y, en menor medida, programacin funcional. TCL: Se utiliza principalmente para el desarrollo rpido de prototipos, aplicaciones "script", interfaces grficas y pruebas.

11 | P a g e

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

PHP: Es un lenguaje de programacin interpretado, diseado originalmente para la creacin de pginas web dinmicas. Java: Es un lenguaje de programacin orientado a objetos, desarrollado por Sun Microsystems en 1995. El lenguaje en s mismo toma mucha de su sintaxis de C, Cobol y Visual Basic, pero tiene un modelo de objetos ms simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulacin directa de punteros o memoria. Lisp: Es una familia de lenguajes de programacin de computadora de tipo multiparadigma con una larga historia y una sintaxis completamente entre parntesis. Fortran: es un lenguaje de programacin alto nivel de propsito general, procedimental e imperativo, que est especialmente adaptado al clculo numrico y a la computacin cientfica. C: Se trata de un lenguaje dbilmente tipificado de medio nivel pero con muchas caractersticas de bajo nivel. Dispone de las estructuras tpicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar cdigo en ensamblador con cdigo C o acceder directamente a memoria o dispositivos perifricos.
12 | P a g e

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

C++: La intencin de su creacin fue el extender al exitoso lenguaje de programacin C con mecanismos que permitan la manipulacin de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje hbrido. Programacin del Shell: Los shell son tambin unos entornos de programacin importantes. El conocimiento de los shell es importante para quien trabaje con Linux regularmente, y ms aun para los administradores de sistemas. Hay similitudes entre la programacin del shell y los scripts -a menudo consiguen los mismos propsitos y tenemos la oportunidad de elegir entre los shell nativos o un lenguaje de scripts. Entre los ms populares estn los shell: bash, tcsh, csh, ksh y zsh. Puede obtener informacin acerca de su shell con man comando, man bash por ejemplo. Otros lenguajes dignos de mencin: AWK, SED, Smalltalk, Eiffel, ADA, Prolog, assembler, Objective C, Logo, Pascal (p2c converter). Hay muchos programas para programadores libres y algunos gratuitos: 1.- Gambas: Es un Programa libre, puede usarse en escritorio KDE, o en escritorio Gnome. Es ideal para empezar a programar. 2.- Varios programas libres de tercera generacin para programar en muchsimos lenguajes, entre ellos C, C++, etc.
13 | P a g e

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

-Glade: Se usa en Gnome. -Anjuta: Se usa en Gnome. -KDEvelop: Se usa en KDE (no es libre, es gratuito). - Eclipse: Usa java, C, C++, etc. Linux trabaja con escritorios grficos similares al de Windows XP, entre ellos Gnome y KDE, puedes acceder a la consola (terminal) desde el escritorio grfico. Gambas: Actualmente la manera ms sencilla para programar es con la programacin visual (Gambas, visual Basic, etc.), considerada de cuarta generacin porque con pocos conocimientos puedes crear programas, aunque tiene algunas desventajas respecto a los programas de tercera generacin. Gambas es un programa que usa su propio lenguaje (lenguaje gambas), es similar al conocido ms Visual Basic. Puedes crear proyectos grficos con ventanas o de terminal para trabajar desde consola. Se instala desde synaptics (debes tener internet, o el DVD de Ubuntu). Para crear una programa basta con abrir un formulario desde la ventana proyecto. El formulario es la ventana que se abre al ejecutar el programa, donde van los botones, texto, etc. Se pueden agregar algunas herramientas desde la ventana herramienta, y tambin puedes agregar algo de cdigo (ventana de modulo o clase). Puedes ejecutar

14 | P a g e

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

tu programa antes de crearlo (en la ventana proyecto vas al men proyecto, y luego presionas ejecutar. Con gambas, no puedes crear un .exe (se ejecuta desde consola, escribes ./nombredelprograma.gambas), comprimido como .tar.gz, empaquetado para algunas distribuciones de Linux, como Mandriva, deban, etc. Anjuta: Se usa en escritorio Gnome, lo instalas desde synaptic (lo buscas en la lista, dos click y listo). Glade: Lo usas desde Gnome e instalas desde synaptics. KDEvelop: Este programa solo est disponible para el escritorio KDE, se instala con solo dos click desde adept y puedes programar en muchos lenguajes. Eclipse SDK: Es un completsimo entorno de desarrollo integrado para Java y ms. Eclipse es una potente y completa plataforma de programacin, desarrollo y compilacin de elementos tan variados como sitios web, programas en C++ o aplicaciones Java. Se trata de un entorno de desarrollo integrado (IDE) en el que encontrars todas las herramientas y funciones necesarias para tu trabajo, recogidas adems en una atractiva interfaz que lo hace fcil y atractivo de usar. Cuentas con un editor de texto donde puedes ver el contenido del fichero en el que ests trabajando, una lista de
15 | P a g e

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

tareas, y otros mdulos similares. Si bien las funciones de Eclipse son ms bien de carcter general, las caractersticas del programa se pueden ampliar y mejorar mediante el uso de plug-ins. LLAMADAS AL SISTEMA. Muchas de las caractersticas como las llamadas del sistema, programas, bibliotecas, algoritmos y estructuras de datos internas de Linux son muy parecidas a las de UNIX. Las llamadas del sistema de Linux son copias exactas de las llamadas correspondientes en POSIX, BSD o System V. El estndar POSIX 1003.2 especifica la sintaxis y semntica de poco menos de 100 de estos programas, que pertenecen sobre todo a la categora de comandos para manipular archivos y directorios, filtros, herramientas para crear programas como editores y compiladores, procesamiento de texto, administracin del sistema, diversos etc. Lo que se busca al estandarizarlos es que cualquier pueda escribir scripts de Shell que utilicen estos programas y funcionen en todos los sistemas UNIX. Claro que, adems de estos programas utilitarios estndar, hay muchos programas de aplicacin, como navegadores WEB, visores de imgenes, etc.

16 | P a g e

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

17 | P a g e

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

La creacin de procesos en UNIX es sencilla. La llamada al sistema fork (bifurcarse) crea una copia exacta del proceso original. El proceso que se bifurc se denomina proceso padre, el nuevo es el proceso hijo. Tanto el padre como el hijo tienen su propia imagen de memoria privada. Si el padre cambia despus cualquiera de sus variables, el hijo no vera los cambios y viceversa. Veamos las llamadas del sistema UNIX que se ocupan de la administracin de procesos, indispensable entenderlos para fork.

18 | P a g e

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

Est es la nica forma de crear un nuevo proceso en sistemas UNIX. Fork crea un duplicado exacto del proceso original, incluidos todos los descriptores del archivo, registros y dems. Despus de la bifurcacin o divisin, el proceso original y la copia (el padre y el hijo) siguen cada cual su camino. La llamada fork devuelve un valor, que es 0 en el hijo e igual al PID del hijo en el padre. Con base en el PID devuelto los dos procesos pueden saber cul es el padre y cul el hijo. En casi todos los casos, despus de la divisin, el hijo tendr que ejecutar cdigo distinto al que ejecuta el padre. Para esperar a que el hijo termine, el padre ejecuta una llamada al sistema, waitpid, que tan slo espera hasta que el hijo termina. Waitpid tiene 3 parmetros. El primero permite al invocador esperar a que termine un hijo especfico, el segundo parmetro es la direccin de una variable a la que se asignar el estado de salida del hijo (terminacin normal o anormal, y valor de salida). El tercero determina si el invocador se bloquea o regresa si ningn hijo ha terminado. En el caso de Shell, el proceso hijo debe ejecutar el comando tecleado por el usuario. Esto lo hace utilizando la llamada al sistema exec, que causa que toda su imagen de ncleos sea sustituida por el archivo nombrado en su primer parmetro. Exec tiene 3 parmetros: el nombre del archivo a ejecutar, un apuntador al arreglo de
19 | P a g e

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

argumentos y un apuntador al arreglo de entorno. Es un poco complicado ya que exec es la llamada ms compleja del sistema. Las dems son mucho ms sencillas como exit, que deben usar los procesos al terminar de ejecutarse, est slo tiene un parmetro, el estado al salir que se devuelve al padre en la variable status de la llamada al sistema waitpid. Si un proceso termina con exit y su padre no ha comenzado a esperarlo, el proceso entrar en una especie de animacin suspendida llamada estado zombi. Cuando por fin el padre espere al proceso hijo este terminar. Varias llamadas al sistema tienen que ver con seales, y se usan de diversas maneras. Por ejemplo, si un usuario ordena sin querer a un editor de texto que muestre todo el contenido de un archivo muy largo y luego se da cuenta de su error, necesita alguna forma de interrumpirlo. La opcin normal es que el usuario oprima alguna tecla especial (por ejemplo, SUPR o CTRL+C), que enva una seal al editor. El editor atrapa la seal y detiene la exhibicin.

20 | P a g e

[ACTIVIDAD 2. ARQUITECTURA DEL DISEO DEL SISTEMA OPERATIVO LINUX]

Julio 3, 2012

BIBLIOGRAFA: Silberschatz, Abraham (2006) Fundamentos de Sistemas Operativos. 7ma. Edicin. Espaa: Mc. Graw Hill. Stallings, W. (2005) Sistemas Operativos Modernos: Aspectos Internos y principios de diseo. Mxico: Pearson, Prentice Hall Tanenbaum, A (2003) Sistemas Operativos Modernos. Mexico: Pearson Educacin.

21 | P a g e

Vous aimerez peut-être aussi