Tema 15 – Sistemas operativos. Componentes. Estructura. Funciones. Tipos.

1. Introducción. 2

1.1. Relación con los ciclos impartidos en FP. 2

1.2. Introducción a los SSOO. 2

1.3. Historia de los SSOO (Conectada a la evolución hardware) 2

2. Tipos. 3

3. Estructura y Arquitectura de los SSOO. 3

3.1. Enfoque de diseño Monolítico. 3

3.2. Enfoque de diseño Micronúcleo y Cliente-Servidor 4

3.3. Estructura jerárquica o en Capas de los SSOO. 4

4. Funciones de un S.O. 4

5. Componentes de un S.O. 5

5.1. Gestor de procesos: scheduler, dispatcher 5

5.2. Administrador de Memoria. 5

5.3. Administrador de Entrada/Salida. 5

5.4. Gestor del Sistema de Archivos. 5

5.5. Interfaz para el Usuario. 6

5.6. Interfaz para la programación de aplicaciones (API) 6

6. Implementación. 6

6.1. Windows NT/2000/2003. 6

6.2. Linux. 7

6.3. Mac OS X. 7

7. Bibliografía y Personalidades Influyentes/Destacadas. 8

7.1. Bibliografía. 8

7.2. Personalidades Destacadas. 8

1. Introducción

1.1. Relación con los ciclos impartidos en FP

Este tema está directamente relacionado con los siguientes módulos y ciclos formativos de la rama de informática:

· CFGS Administración de Sistemas Informáticos: Sistemas informáticos monousuario y multiusuario (SyAI).

· CFGS Desarrollo de Aplicaciones Informáticas: Sistemas informáticos multiusuario y en red (SyAI).

· CFGM Explotación de Sistemas Informáticos: Sistemas operativos en entornos monousuario y multiusuario (SyAI).

1.2. Introducción a los SSOO

Stallings, 2001. “Un programa que controla la ejecución de los programas de aplicación y que actúa como interfaz entre el usuario de un computador y el hardware del mismo”

· Conjunto de programas de control cuya finalidad es hacer más fácil y eficiente el uso del ordenador en que se ejecutan

· Están presentes en todo tipo de sistemas electrónicos que necesiten un software de control sobre el que un usuario pueda trabajar fácilmente, desde super-ordenadores con cientos de microprocesadores (Solaris, AIX, Linux), hasta en aparatos tan comunes como agendas electrónicas (Windows Mobile o Palm OS), teléfonos móviles (Windows Mobile o Simbian OS, y como no, ordenadores personales (WXP, Linux, Mac OS X, etc.)

· Su tarea primordial es gestionar y asignar los recursos hardware a los distintos procesos en ejecución, tarea especialmente crítica cuando se el sistema permite ejecutar tareas en paralelo.

· Oculta los detalles sobre los dispositivos hardware del sistema a los usuarios y a las aplicaciones que se instalarán sobre él, proporcionando así una interfaz entre el usuario y el hardware del ordenador.

· Los SSOO modernos permiten la ejecución de varias aplicaciones alternando el uso de la CPU, y ofreciendo la sensación de una ejecución paralela. Esto beneficia la eficiencia del equipo, ya que los periféricos de E/S son mucho más lentos que la CPU, y además actualmente las CPUs apenas han de intervenir para realizar dichas operaciones (DMA).

1.3. Historia de los SSOO (Conectada a la evolución hardware)

· 1ª Generación (1940 – 1955): Ordenadores sin sistema operativo, tarjetas perforadas y al final cintas magnéticas, lenguajes máquina y algunos ensambladores.

· 2ª Generación: (1955 – 1964): Invención del transistor (ordenadores más estables y potentes). Aparecen los S.O. y los lenguajes de programación COBOL y FORTRAN. S.O. muy simples de proceso por lotes (batch) que detectan e interpretan las tarjetas de control y poco a poco van incluyendo rutinas de control de E/S.

· 3ª Generación: (1964 – 1972): Aparición de los circuitos integrados, Aparecen lenguajes de programación estructurada como BASIC, PASCAL o C. Desarrollo de sistemas operativos multiprogramados, que permite a varios procesos compartir la CPU, e introducción del concepto de memoria virtual.

· 4ª Generación: (1972 – 1981): Revolución de los microprocesadores. Aparecen los lenguajes de cuarta generación, como SQL, no procedimentales. Aparición de UNIX. Se desarrolla la multiprogramación, multitarea, procesado interactivo, memoria virtual, etc.

· 5ª Generación (1981 – )

· Revolución del PC, universalización del uso de las redes de datos (Internet).

· Aparecen los lenguajes ADA, y otros orientados a objetos (C++, SmallTalk, etc.)

· SSOO. de uso doméstico como MSDOS, sistema operativo monousuario que se difundió rápidamente por ser el elegido por IBM para sus PCs. Posteriormente aparecen los entornos gráficos de usuario (GUI) que hacen el software más “amigable” y facilitan a los usuarios a tarea de administrar su propio sistema, El más extendido en un inicio fue Windows 3.1. Posteriormente le siguieron W95, 98… hasta el XP.

· Unix por su parte no ha dejado de evolucionar y sigue dominando el terreno de los macroordenadores. Hoy en día tiene múltiples variantes como Solaris (de Sun Microsystems), AIX (de IBM), o Linux, un clon de Unix unido al proyecto GNU y con licencia GPL (Software libre) que está comiendo terreno al todopoderoso Windows en el ámbito doméstico y empresarial, y cada vez más en el de las administraciones públicas.

· Por otra parte, Se ha creado una vertiente de sistemas operativos para dispositivos móviles como Windows Mobile, Symbian OS, Palm OS, etc.

2. Tipos

· Monousuario: Cuando sólo puede trabajar un usuario con el ordenador (MSDOS, Windows 9x)

· Multiusuario: Cuando varios usuarios pueden ejecutar procesos distintos sobre la misma CPU y compartir el uso de los recursos existentes en el sistema de forma simultánea. De forma estricta, solo es multiusuario si permite compartir la CPU y la memoria de forma concurrente (Unix, Linux o W2k). En sentido habitual y comercial, se considera multiusuario al que permite el acceso de diferentes usuarios a recursos como el disco o la impresora, y no necesariamente de forma concurrente. (W9x)

· Monoprogramación: Sólo se puede ejecutar un proceso y hasta que no se termine no puede iniciarse el siguiente. Ya no existen, incluso en MSDOS se pueden cambiar las rutinas de atención a la interrupción consiguiendo cierta multitarea, aunque no expulsiva. Multiprogramación: Se pueden ejecutar varios procesos simultáneamente, compartiendo el tiempo de uso de procesador.

· Monoproceso: Solo existe un único procesador.

· Multiproceso: Existen varios procesadores (o uno con varios núcleos), y el S.O. es capaz de utilizarlos simultáneamente. También suelen soportar el multihilado (multithreading), es decir, subprocesos que comparten espacio de memoria. (Solaris y Windows 2000).

· Sistemas de Tiempo Real: Deben responder a unos requisitos temporales estrictos. El tiempo ocupado por el procesamiento y respuesta tras una entrada de datos supone un condicionante ineludible. Reservados al ámbito militar o industrial. QNX (basado en Unix, SO. de tiempo real con micronúcleo para sistemas empotrados)

· Sistemas Interactivos: El condicionamiento temporal corresponde a las expectativas de velocidad de respuesta de un usuario humano.

· Sistemas Operativos de Red: Los que permiten comunicarse con otros equipos en red y compartir recursos como el disco duro o la impresora, pero en los que el usuario siempre sabe donde está la información y donde se está ejecutando cada proceso. (w2k, Linux, etc.)

· Sistemas Operativos Distribuidos: Los que se ejecutan en varias máquinas a la vez. El usuario no tiene porqué saber donde se está ejecutando la aplicación que está usando, o donde se guarda la información, si en su disco local, o en cualquier otro remoto. (Amoeba).

3. Estructura y Arquitectura de los SSOO.

Es necesaria una estructuración interna de los SSOO que incremente su portabilidad, extensión y facilite su mantenimiento. Baste decir que W2K tiene entre 30 y 35 millones de líneas de código. El núcleo de Linux tiene cerca de 2,5 millones, pero una distribución completa supera los 55 millones (Debian 2.2). Si ésta se hubiera realizado por medios convencionales (no libres) habría costado 1900 millones de dólares según un estudio de Counting Potatoes.

Para diseñar SSOO robustos, estables y de alto rendimiento es necesario incluir ciertas características hardware que faciliten su desarrollo, tales como interrupciones, modo dual de ejecución y protección de memoria, que faciliten multiprogramación y eviten la monopolización de la CPU, el acceso no autorizado o simplemente el bloqueo total del núcleo del SO.

3.1. Enfoque de diseño Monolítico

· El sistema operativo consiste en una colección de procedimientos que pueden llamarse entre sí cada vez que sea necesario. Tienen un núcleo grande y complejo, que engloba todos los servicios del sistema.

· Tiene un rendimiento mayor que un micronúcleo. Sin embargo, cualquier cambio a realizar en cualquier servicio requiere la recompilación del núcleo y el reinicio del sistema para aplicar los nuevos cambios, además, un fallo en alguno de los servicios, puede bloquear todo el sistema.

· Hay diversas ramificaciones de este diseño, que se han ido amoldando a nuevas necesidades. P.e. el sistema de módulos ejecutables en tiempo de ejecución, que le brinda al modelo de kernel monolítico algunas de las ventajas de un micronúcleo. Dichos módulos pueden ser compilados, modificados, cargados y descargados en tiempo de ejecución, de manera similar a los servicios de un micronúcleo, pero con la diferencia de que se ejecutan en el espacio de memoria del núcleo (modo supervisor). Este es el esquema usado por GNU/Linux y varios derivados de UNIX. Lo que no se soluciona con este sistema es el hecho de que un fallo en un módulo pueda comprometer a todo el sistema.

3.2. Enfoque de diseño Micronúcleo y Cliente-Servidor

· Provee un conjunto de llamadas al sistema mínimas, para implementar servicios básicos como manejo de interrupciones, comunicación entre procesos y planificación básica, que se ejecutarán en modo supervisor. El resto de servicios (gestión de memoria, sistema de archivos, operaciones de E/S, etc.), que en general son provistos por el núcleo, se ejecutan como procesos servidores en espacio de usuario, y no tienen acceso directo al hardware. Los procesos se comunican mediante mensajes siguiendo el esquema de cliente-servidor.

· Esto mejora la tolerancia a fallos y eleva la portabilidad entre plataformas de hardware, según los defensores de esta tendencia. Sus detractores le achacan, fundamentalmente, mayor complejidad en el código, menor rendimiento, o limitaciones en diversas funciones. Algunos ejemplos son: MINIX 3.0, Amoeba y QNX.

· Lo cierto es que es difícil llevar este sistema de forma estricta a la práctica, ya que es complicado que servidores críticos como el gestor de dispositivos de E/S o el sistema gráfico se ejecuten en modo usuario, por lo que en algunos sistemas se ejecutan en modo núcleo, pero se comunican con el resto de procesos mediante mensajes. Esto es lo que hace Windows NT, que tiene un supuesto enfoque micronúcleo, pero mantiene múltiples subsistemas dentro del núcleo para mejorar el rendimiento.

3.3. Estructura jerárquica o en Capas de los SSOO

· Se trata de la conocida idea de construir sobre el hardware niveles virtuales superpuestos hasta llegar al nivel del usuario final, con el fin de disminuir la complejidad del sistema.

· También se le conoce como de anillos concéntricos, pero esto se refiere más al modelado lógico de los S.O. y al nivel de privilegio con que se ejecutan los procesos contenidos en cada capa/anillo, que a su estructura real.

· La organización sigue un esquema parecido al siguiente (en algunos sistemas cambia)

· C.0. Hardware del sistema informático: aísla de las particularidades del hardware. En Windows 2000 se le conoce como Hardware Abstraction Layer

· C.1. Planificación del uso de la CPU: establece el mecanismo de multiprogramación

· C.2. Administración de la memoria: establece un mecanismo de memoria virtual.

· C.3. Gestión de la E/S y de archivos: proporciona un acceso uniforme a los dispositivos.

· C.4. Interfaz de llamadas al sistema: proporciona una serie de llamadas al sistema.

· C.5. Programas de usuario: es donde se ejecutan los programas de usuario.

4. Funciones de un S.O

Desempeña una serie de funciones básicas para la gestión del equipo, cada una de ellas ejercida por un componente interno. Algunas de ellas son:

· Gestionar los recursos del equipo eficientemente (CPU, Disp. E/S, Memoria, Discos…).

· Brindar un interfaz al usuario, actualmente no hay SO sin una buena GUI.

· Ofrecer un interfaz de llamadas al sistema para la programación de aplicaciones.

· Ejecución de procesos.

· Gestión de errores.

· Herramientas de seguridad física (RAID, Backup…) y protección de la privacidad (autenticación, cifrado, etc.)

· Etc.

Se verá más información sobre estas funciones en el siguiente punto, en el que se detallan los componentes que las facilitan.

5. Componentes de un S.O.

5.1. Gestor de procesos: scheduler, dispatcher

· Todos los SO modernos permiten la multiprogramación. En cada instante el SO puede estar ejecutando varios programas, pero en realidad la CPU alterna entre todos ellos dando la sensación de cierto paralelismo.

· Un proceso es un programa en ejecución que contiene, además, su estado o contexto propio (CP, registros, variables, etc.). Básicamente, cada proceso puede interactuar con otros y puede estar en “ejecución”, “bloqueado” (esperando una E/S) y “listo” (esperando a la CPU), en W2K y en Linux hay algunos más pero básicamente son estos.

· Existe un Planificador (scheduler) dentro del SO, que es el que se encarga de decidir a qué proceso, de los que tienen estado listo, se le asigna la CPU. Para evitar que se monopolice la CPU, los SSOO actuales tienen un planificador “expulsivo”, cada interrupción del reloj hardware, el sistema recupera el control y decide si se debe seguir ejecutando el mismo proceso, y si le cede la CPU a otro. MSDOS/W3.11 por ejemplo, no era expulsivo.

· El Módulo de distribución (dispatcher) es el encargado de realizar los cambios de contexto necesarios cada vez que se asigna la CPU a un nuevo proceso.

· Los planificadores utilizan algoritmos para decidir que proceso es el adecuado para cederle la CPU. Existen varios tipos de algoritmos, pero lo normal es que estén basados en el algoritmo Round Robin, en el que los procesos entran a la CPU siguiendo un esquema FIFO por una cantidad de tiempo limitada denominada quantum. Tanto W2K como UNIX mezclan el sistema RR con otro basado en prioridades, que varían de forma dinámica dependiendo de ciertos parámetros como la importancia del proceso, o el tiempo que lleva esperando. Un ejemplo sencillo sería el proceso encargado de pintar el puntero en la pantalla en WXP, éste tiene una prioridad muy alta, por lo que, aunque el sistema esté prácticamente bloqueado, el puntero sigue obedeciendo al ratón.

· Los Gestores de Procesos proveen además varios servicios como la comunicación y sincronización mediante mensajes, la exclusión mutua por medio de semáforos, o los procesos ligeros (hilos) que comparten un mismo espacio de direcciones de memoria.

5.2. Administrador de Memoria

· Administrador de memoria: Su labor es la de llevar el control de qué partes de la memoria están en uso y cuáles no lo están, asignar memoria a procesos cuando la necesiten y retirárselas cuando terminen, y gestionar el intercambio entre la memoria central y el disco (swapping) cuando la memoria central no baste para contener todos los procesos.

· La memoria se suele organizar en bloques, y son estos los que se intercambian. Cuando los bloques son iguales, se les llama páginas (paginación), y cuando tienen tamaños diferentes, se denominan segmentos (segmentación). Actualmente se suelen mezclar las dos técnicas, dando como resultado segmentación paginada.

· El algoritmo de sustitución de páginas es vital para que exista un número mínimo de “fallos de página”, y por tanto intercambios entre el disco y la memoria. El óptimo es sustituir la página que más va a tardar en ser referenciada, los que en realidad se implementan son aproximaciones (FIFO, sacar la menos usada recientemente, etc.).

5.3. Administrador de Entrada/Salida

· El Administrador de E/S coordina todo el proceso de E/S y tiene como misión principal que el usuario, o las aplicaciones de usuario, no tenga que conocer los detalles de funcionamiento de cada dispositivo, y que pueda usarlos de forma eficaz y manejando un mismo interfaz.

· Incluye funciones como el manejo de errores y excepciones, control de dispositivo, captura de interrupciones, gestión de la comparición multiproceso de los dispositivos (evitando el interbloqueo) y ofrecer a los usuarios del sistema un interfaz uniforme de acceso a los dispositivos hardware (independencia de dispositivo).

5.4. Gestor del Sistema de Archivos

· En todos los sistemas informáticos es necesario un sistema de archivos en el que almacenar la información de forma persistente. Un archivo no es más que un conjunto de información con un nombre asociado para poder reverenciarlo más tarde. Normalmente el está estructurado mediante directorios o carpetas, que pueden contener archivos y otros directorios de forma jerárquica.

· El SO debe ser capaz de administrar los archivos y los directorios, fijando la estructura, el nombre, la forma de acceso, los posibles usos, la implantación y las técnicas de protección. Además debe proveer un interfaz mediante el cual un usuario pueda manejarlos.

· Los archivos se dividen en bloques antes de almacenarlos y estos pueden no guardarse de forma contigua, entre otras cosas, para permitir que los archivos puedan crecer y minimizar el desaprovechamiento del espacio. El sistema debe entonces contar con alguna manera de llevar el control de los bloques de cada archivo.

· Métodos de almacenamiento de archivos:

o Asignación enlazada: Mediante una lista enlazada, de modo que cada bloque contenga la dirección en la que está el bloque siguiente. Una variante es la FAT de MSDOS, que introduce una tabla de localización de archivos, que se mantiene en memoria, y permite de forma rápida conocer todos los bloques de cada archivo.

o Asignación indexada: Mediante nodos-i (o inodos). La dirección de los bloques se guarda en un vector de índices, pudiendo enlazar varios vectores. En Unix se usa una variante en la que el vector tiene un tamaño fijo de punteros a bloques, pero además contiene varios punteros indirectos a otros vectores, uno simple, otro doble y uno triple, creciendo así la capacidad de forma exponencial.

5.5. Interfaz para el Usuario

· Los SSOO actuales incorporan intérpretes de comandos, como la shell de Unix, que sin ser parte del SO, permiten hacer uso de muchas de sus características, tales como ejecutar aplicaciones o administrar el sistema.

· Actualmente casi no existe SO que no traiga de serie un completo entorno gráfico de usuario (GUI) más intuitivos, dinámicos y “amigables”. Todos responden al paradigma de ventanas con menús desplegables e iconos sobre los que navegar con el ratón. Microsoft, junto con Apple el precursor en esto de las “ventanas”, tiene un entorno gráfico basado en el propio núcleo del SO. En Windows Vista ha estrenado el entorno “Aero” que proporciona múltiples y vistosas animaciones en 3D. Unix/Linux por su parte utilizan el entorno gráfico X Windows (conocidas como “las equis”) independiente del núcleo y KDE o GNOME como sistema de ventanas.

5.6. Interfaz para la programación de aplicaciones (API)

· En el caso de los SSOO las APIs proporcionan las llamadas al sistema necesarias para que las aplicaciones puedan ejecutarlas sin necesidad de conocer los detalles internos del SO, además de permitir al SO gestionar todo el proceso de ejecución, y comprobar que se tienen los privilegios necesarios.

· API Win32: Define los servicios ofrecidos por los sistemas operativos W9x, WNT/2k/XP. No es un estándar y es totalmente diferente a POSIX. Todos los recursos del sistema se tratan como objetos. Define múltiples servicios y funciones bastante complejas y con multitud de parámetros que la mayoría de las veces no se utilizan. Microsoft creo posteriormente librerías como las MFCs, que son en realidad funciones intermedias más sencillas, y más cercanas a las necesidades de los programadores. En Windows Vista se ha introducido WinFX, destinada a reemplazar Win32.

· POSIX: Es un estándar internacional desarrollado por el IEEE que define una interfaz de llamadas al sistema para sistemas operativos, basado en el sistema operativo Unix. Se desarrolló con el propósito de conseguir la portabilidad de las aplicaciones en cuanto al código fuente. Es ampliamente utilizado y está disponible en todas las versiones de Unix/Linux, y Windows NT/2000.

6. Implementación

6.1. Windows NT/2000/2003

· WNT fue desarrollado por Microsoft para superar las carencias de la vieja arquitectura de MSDOS y Windows de 16 bits, y como primera propuesta seria de sistema operativo multiusuario. A partir de éste se evolucionó a W2000 y posteriormente a W2003. La estructura inicial de WNT se basaba en una capa de abstracción del hardware (HAL) sobre la que se asentaba un micronúcleo y sobre este, varios subsistemas que también se ejecutaban en modo protegido. Por encima de esta capa, y ya en modo usuario, se ejecutan otros subsistemas como Win32, Posix, o Logon, responsable de los inicios de sesión. Dada esta estructura, inicialmente se consideraba a WNT con un enfoque “micronúcleo sobrecargado”. Después ha ido evolucionando hacia un enfoque más monolítico. Por ejemplo, el subsistema gráfico, se ha incluido dentro del núcleo por razones de eficacia. Hoy en día ya es considerado monolítico.

· Para hacer el sistema transportable, además de la HAL, se escribe casi todo el código en C y C++, muy poco en ensamblador.

· Se incluye un sistema de archivos tolerante a fallos NTFS.

· Permite la programación de aplicaciones en múltiples lenguajes como C,C++, C#, Visual Basic o Java. El IDE por excelencia es Visual Studio, aunque hay muchos otros como Borland o JDeveloper.

· Existen versiones Windows para múltiples plataformas, ejemplos son la versión Home, profesional o Server, que incluye múltiples servidores de DNS, DHCP, Directorio, etc. Otra vertiente de Windows es W. Mobile para PDAs, móviles, y hasta automóviles.

· La última versión de Windows es Vista, que incorpora un nuevo interfaz “Aero” y otras novedades como la ejecución controlada de procesos en modo administrador. Ahora, los usuarios no trabajan de modo predefinido con privilegios de administrador, sino que el sistema pide una confirmación cada vez que se va a ejecutar algún proceso que requiera privilegios de administrador, algo copiado del mundo Unix. Además se ha mejorado la seguridad incluyendo herramientas antispyware, y se han añadido nuevas funciones multimedia.

6.2. Linux

· GNU/Linux es un sistema operativo clónico de Unix que surgió en 1992 cuando el finlandés Linus Torvalds se propuso crear un núcleo de un sistema operativo tipo Unix a partir del SO. Minix, creado por Andrew S. Tannenbaum con fines académicos. Decidió unirse el proyecto GNU encabezado por Richard Stallman, y que pretendía construir un SO completamente libre. Desde entonces, y gracias a la liberalización del código fuente, y la libertad para modificarlo o copiarlo (licencia GPL), miles de programadores en todo el mundo han participado activamente en el desarrollo de este sistema operativo y de múltiples aplicaciones para el mismo.

· Existen múltiples distribuciones, unas gratuitas y descargables por Internet y otras no (la libertad de copia incluye la libertad de poder copiarlo a un cd y venderlo en GPLv2). Cada distribución incluye el núcleo del sistema operativo, herramientas librerías del proyecto GNU y otros, y múltiples aplicaciones (libres o no) como entornos gráficos, paquetes de instalación y administración, paquetes ofimáticos o servidores Web. Molinux, Ubuntu, Mandriva, Suse, etc. Inicialmente programado para x86, ha sido portado para múltiples plataformas como procesadores SPARC, PowerPC, y hasta en consolas PS2.

· Linux tiene un núcleo monolítico híbrido, los controladores de dispositivos y las extensiones del núcleo se ejecutan en espacio privilegiado con acceso directo al hardware, pero a diferencia de los sistemas monolíticos tradicionales, los controladores se pueden cargar y descargar de forma dinámica mediante módulos.

· Soporta la multiprogramación, multiusuario, multiproceso, y básicamente es un SO de red.

· Dentro del segmento de supercomputadoras, la 5ª más grande de Europa, denominada MareNostrum, fue desarrollada por IBM y está basada en un cluster Linux. Se encuentra alojada en Barcelona y es gestionada por la UPC.

· Tiene capacidad para compilar C,C++, Java y ADA entre otros, soporta el interfaz POSIX y existen varios IDEs: Adjunta, Kdevelop, Eclipse y NetBeans IDE.

· Soporta la mayoría de sistemas de archivos, incluso NTFS, y tiene el suyo propio ext3. Trabaja sobre una capa de abstracción del sistema de archivos llamada VirtualFS

6.3. Mac OS X

· Mac OS X es el actual sistema operativo de la familia de ordenadores Macintosh. Es un SO. de la familia UNIX, pero con un enfoque micronúcleo y con un sistema de ventanas propio denominado Aqua, en vez del tradicional X11 de Unix.

· Han liberado el código fuente, sin embargo las capas superiores como el sistema gráfico, son de código cerrado.

· Posee avanzadas aplicaciones de procesamiento de imágenes, vídeo y audio, con las que consigue un rendimiento muy alto.

· Tradicionalmente solo estaba disponible para PowerPC, pero desde 2005 también está disponible para equipos con procesadores Intel.

7. Bibliografía y Personalidades Influyentes/Destacadas

7.1. Bibliografía

· Tanenbaum, A. S.: “Sistemas operativos modernos”. 2ª Ed. Prentice Hall. 2003.

· Stallings, W.: “Sistemas operativos”. 5ª Ed. Prentice Hall.2005.

· Carretero, Jesús:”Sistemas operativos. Una visión aplicada”. McGraw Hill. 2001.

· http://es.tldp.org Documentación libre en español de Linux/Unix

· http://msdn.microsoft.com Centro de desarrollo de Microsoft.

· http://www.tutorialparaprofesores.com Documentación de Microsoft para profesores.

· http://technet.microsoft.com Documentación tecnológica de Microsoft

7.2. Personalidades Destacadas

· Bill Gates: Cofundador de Microsoft, consiguió que IBM incluyera MSDOS en sus PCs y le pagara por cada ordenador que equipara el SO. Desde entonces Microsoft no ha parado de crecer.

· Linus Torvalds: Ingeniero informático finlandés, iniciador y desarrollador del núcleo (kernel) de Linux a partir del S.O. MINIX. Adoptó la licencia GPL permitiendo así su modificación, redistribución, copia y uso ilimitado.

· Richard Stallman: Creador, entre otros, de gcc y emacs para Linux. Fundador del proyecto GNU y máximo representante del movimiento del “software libre”.

· Andrew S. Tanenbaum: Director del Departamento de Sistemas en una universidad de Ámsterdam, es conocido por ser el creador de los sistemas operativos MINIX 3.0, con arquitectura micronúcleo y capaz de ejecutar programas UNIX, y Amoeba, sistema operativo completamente distribuido, creados con fines académicos, así como por escribir varios libros sobre sistemas operativos y redes de computadoras, muy valorados por los académicos de medio mundo.

Publicado: marzo 24, 2019 por Laura Gonzalez

Etiquetas: tema 15 informatica