TEMA 26 : CONCEPTO Y EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS. LOAS SISTEMAS UNIX Y LINUX. MICROSOFT WINDOWS. SISTEMAS ANDROID

INTRODUCCIÓN

COMPONENTES DEL SISTEMA OPERATIVO

CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS

EVOLUCIÓN Y TENDENCIAS DE LOS SISTEMAS OPERATIVOS

UNIX Y LINUX

MICROSOFT WINDOWS

SISTEMAS ANDROID

El Sistema Operativo es el software más importante de un ordenador. Controla todos los recursos físicos del mismo y ofrece las bases y servicios sobre los que se ejecutan el resto de aplicaciones software

Funcionalidades

Desde el punto de vista del usuario :presenta una máquina virtual o ampliada más fácil de programar y manejar que el hardware asociado. Permite la creación de programas, su ejecución, acceso a los dispositivos E/S, acceso al sistema de ficheros y a la red si estuviera integrado en ella

Desde el punto de vista de la máquina :se presenta como un administrador de recursos cuya función es controlar todos los elementos que forman un computador. Resuelve los conflictos que se generan por el uso concurrente de los recursos por parte de programas y usuarios

El Sistema Operativo crea la capa de abstracción entre los desarrolladores de aplicaciones de la complejidad de comunicarse directamente con los componentes hardware

Conceptos que incorpora un S.O.

Proceso :programa en ejecución por parte del S.O. que lleva asociada información acerca de su estado y recursos asignados

Administración de memoria :el S.O. asigna memoria a los procesos que se ejecutan, gestionando y administrando su uso.

Entrada / Salida :el S.O. administra los dispositivos físicos asociados a un ordenador para obtener entradas y salidas de información, a través del subsistema de E/S.

Archivos :el S.O. maneja el concepto de sistema de archivos, para organizar el almacenamiento de información, siendo el archivo la unidad básica de almacenamiento

Seguridad :el S.O. controla que usuarios y procesos accedan únicamente a la información para la que están autorizados

Administrador de procesos :encargado de crear y eliminar procesos, suspender y reanudar su ejecución y proporcionar mecanismos de sincronización, comunicación y manejo de bloqueos

Administrador de memoria principal :controla las zonas de memoria utilizadas y quién las utiliza. Decide qué procesos se cargarán en memoria, asigna y recupera espacio no necesitado

Administrador de sistema de E/S :encargado de gestionar los dispositivos de hardware específico y presentar un interfaz general común para interactuar con los diferentes manejadores

Administrador de archivos :encargado de la gestión del espacio de almacenamiento en disco. Lleva los procesos de creación y borrado de archivos, establecimiento de la correspondencia entre archivos y almacenamiento secundario, gestión de directorios y gestión de copias de seguridad

Sistema de protección :encargado de controlar el acceso a los recursos, garantiza su acceso con la debida autorización y evita accesos no permitidos

Sistema de comunicación:encargado de gestionar los acceso a la red, facilitando la conexión , y el acceso a los recursos compartidos y otras redes de comunicaciones

Según el entorno hardware en el que se ejecutan

Sistemas operativos de mainframe :grandes ordenadores ubicados en CPD acondicionados para ellos. Son propietarios con gran capacidad de E/S(IBM OS/369-390)

Sistemas operativos de servidor :dan servicio a múltiples usuarios a través de una red, permitiéndoles compartir recursos hardware y software., y dar servicios como impresión, archivo o web. (UNIX, Windows Server, Linux)

Según su estructura

Según sus servicios

Según la forma en que ofrecen los servicios

Sistemas operativos multiprocesador :aumentan la potencia de proceso mediante la interconexión de varias CPU en un solo sistema. ordenadores paralelos, en grid.. Son variaciones de los SO de servidor , con funciones especiales para comunicación y conectividad.

Sistemas operativos de PC :se encargan de presentar una buena interfaz a un sólo usuario físico. (Windows, Mac OSX , Linux)

Sistemas operativos de tiempo real :para sistemas de control de procesos industriales donde el manejo del tiempo es crítico (VxWorks, QNX, FreeRTOS)

Sistemas operativos integrados :para controlar diversos dispositivos electrónicos o pequeños electrodomésticos. Basados en Linux.

Sistemas operativos móviles :controlan un dispositivo móvil, (Tablet, Smartphone..) Más simples que los SO tradicionales y orientados al uso táctil, la conectividad inalámbrica, formatos multimedia y la interfaz de usuario

Sistemas operativos de tarjetas inteligentes :para dipsositivos tipo tarjeta de crédito que contienen un chip UCP. Pueden realizar una o varias funciones. (JAVA card y MULTOS)

Estructura monolítica

Estructura jerárquica

Máquina virtual

Por el nº de usuarios

Por el nº de tareas

Por el nº de procesadores

Monousuario

Multiusuario

Monotarea

Multitarea

Uniprocesador

Multiprocesador

De Red

Distribuidos

Primera generación (1945-55): tubos de vacío y tableros enchufables: no existe el concepto de sistema operativo. El programador/operador interactúa directamente con el hardware desde una consola. Programas en código máquina y control de funciones mediante paneles enchufables (tarjetas perforadas después)

Segunda generación (1956-65) : transistores y sistemas de lotes :se crean compiladores, ensambladores, bibliotecas de funciones de E/S. Unidades de cinta , impresoras de líneas. Planificación de trabajos (jobs) manual. Colas de trabajo gestionadas por un monitor. Se usa un lenguaje de control de trabajos (JCL)

Tercera generación (1966-80) : circuitos integrados y multiprogramación :Se cargan varios programas en memoria y se alterna su ejecución, apoyándose en interrupciones de E/S y controladores de memoria. Aparecen sistemas de tiempo compartido (procesador)

Cuarta generación (1980-actualidad) : ordenadores personales: aparecen los circuitos LSI (integración a gran escala) , aumenta la potencia de cálculo, disminuyendo el tamaño de los equipos. Se abaratan los precios. Los SO se hacen más interactivos y amables con el usuario. Redes de ordenadores personales que ejecutan SO en red o distribuidos.

Tendencias de los SO en la actualidad: ligada a la evolución de los equipos. Paso de sistemas de 32 a 64 bits. CPUs con múltiples nucleos. Procesamiento simétrico o en paralelo. Irrupción de los dispositivos móviles (SO móviles optimizados para estos sistemas)

Introducción: Unix es un SO desarrollado a finales de los 60 en los Laboratorios Bell. Es de tiempo compartido, miltitarea y multiusuario, diseñado y programado habitualmente en C para ser fácilmente portable

Estandarización de UNIX: debido a las múltiples versiones de UNIX, se comenzaron a publicar estándares para que todas las versiones fueran compatibles (SVID, BSD).

Historia de GNU/Linux: es un clon de un sistema operativo tipo Unix, creado en 1991 por Linus Torvalds, inspirado en Minix, aunque el solo creó el kernel inicial. Compiladores, shells y herramientas se aportaron por el proyecto GNU de la Free Software Foundation

Principios de diseño de UNIX

Principios de diseño de Linux

Resumen funcionamiento y arquitectura

Cada programa o herramienta cumple una única finalidad, pero lo hace bien

Las herramientas han de poder combinarse entre ellas

Se debe usar formato textual para la entrada y salida de programas, para asegurar su legibilidad y compatibilidad con los datos

Son compatibles con las especificaciones POSIX que define una interfaz estándar del sistema operativo y el entorno

Bajo los auspicios de la IEEE, se creó el proyecto POSIX (Portable Operating System) , para producir un estándar (1003.1) que define un conjunto de procedimientos de biblioteca que debe proporcionar todo sistema UNIX que cumpla con la norma

IBM, DEC y HP lanzaron su propia versión de UNIX llamada OSF/1 (Open Software Foundation)

Cumple estándars IEEE

Sistema de ventanas X11

Interfaz amigable MOTIF

Definiciones para computo y administración distribuida (DCE y DME)

ATT y Sun Microsystems entre otros, forman UNIX International y sacan su propia versión

COn el tiempo la colaboración de desarrolladores al proyecto hizo que aparecieran distribuciones que facilitan la instalación del sistema y sus herramientas (Debian, Red Hat, Ubuntu, Gentoo)

Interactivo :acepta órdenes, las ejecuta y espera más órdenes

Multiusuario :puede ser usado por más de una persona simultáneamente

Multitarea :puede realizar a la vez varios procesos

Seguro :existe protección de acceso a los recursos basado en usuarios y grupos

Multiplataforma :portabilidad de las aplicaciones a nivel de código fuente. Soporta múltiples arquitecturas de procesadores

Adopta los principios de Unix al ser una especie de clon.

Es software libre bajo licencia GPL. Garantiza la libertad de uso, estudio, distribución y mejora

Ideal para programadores, proporcionando gran variedad de compiladores, entornos de desarrollo, librerías, escritorios, gestores de ventanas...

Muy enfocado a redes y comunicaciones, incluyendo el acceso a Internet. Sistema líder en el mercado de servidores de Internet. Google, Amazon, Facebook ,Linkedin, tienen granjas de servidores con Linux adaptados.

Multiplataforma en cuanto a hardware :se adapta a todo tipo de máquinas (de móviles a mainframes). Kernel portable a más de 20 arquitecturas diferentes

Es un S.O. de propósito general : está basado en miles de paquetes de software libre , agrupados en distribuciones

3 interfaces :el shell, la biblioteca de C y las llamadas al sistema en sí

Shell :permite a los usuarios teclear comandos para que se ejecuten. Las entradas y salidas pueden redirigirse.

Biblioteca de C :contiene las llamadas al sistema y otras ampliadas

Interfaz de llamadas al sistema :ligera , funciona con unas 100 llamadas, cada una de las cuales hace lo que se necesita y no más

Proceso :se implementa una estructura en árbol de procesos, con ramas formadas por subprocesos. Se administra mediante la tabla de procesos y la estructura de usuario. La primera en memoria y la segunda puede paginarse en disco. Se aplica un algoritmo basado en prioridades que favorece a los procesos interactivos.

Modelo de memoria :consiste en tres segmentos por proceso : texto, datos y pila. Se administra por paginación. El mapa central lleva el control del estado de cada página, con un demonio que emplea un algoritmo de reloj para que siempre haya suficientes páginas libres

Sistema de E/S :se emplean archivos especiales, cada uno con un número de dispositivo principal y un número de dispositivo secundario. Se utiliza un algoritmo LRU para administrar la caché.

Sistema de archivos :es jerárquico, con archivos y directorios. Los discos se montan en un solo árbol de directorios que contiene una raiz única. Internamente cada archivo usa 3 tablas, la de descriptores de archivo, la de descripción de archivo abierto y la de nodos-i que contiene la información administrativa del archivo, así como su ubicación de sus bloques.Los permisos se basan en controlar el acceso de lectura, escritura y ejecución para el dueño, grupo y resto de usuarios.

Sistema Operativo que se ejecuta en ordenadores personales de particulares y negocios y en servidores empresariales

El 90% de los equipos de escritorio montan este SO y un tercio de los servidores se distribuyen con Windows Server

Historia

MS-DOS:

Windows basado en MS-DOS

Windows basado en NT

Resumen funcionamiento y arquitectura

Buscar información sobre windows 10 y windows server

Introducción

Historia

Arquitectura

Características y especificaciones

Sistema operativo basado en el núcleo de Linux. Diseñado específicamente para dispositivos móviles con pantalla táctil

Android fue adquirida por Google en 2005.

La versión básica es conocida como Android Opern Source Proyect (AOSP). Libre con licencia Apache que puede ser usada y adaptada por cualquier fabricante de dispositivos móviles en todos sus productos

Desde su adquisición por Google, se han lanzado más de una decena de nuevas versiones con un éxito creciente.

Está presente en más dela mitad de los dispositivos móviles táctiles.

Aplicaciones ;las aplicaciones base incluyen un cliente de correo electrónico, programa de SMS, calendario, mapas, navegador, contactos..y otros. Todas ellas en Java

Marco de trabajo :los desarrolladores tienen acceso completo a las mismas APIs del framework usadas para la aplicaciones base. Arquitectura diseñada para simplificar la reutilización de componentes, mediante la publicación de capacidades y su uso por otras aplicaciones

Bibliotecas : conjunto de bibliotecas de C/C++ usadas por varios componentes del sistema. Bilbiotecas de medios, de gráficos, SQLite, SYstem C Library

Runtime de Android: set de bibliotecas base que proporcionan la mayor parte de las funciones disponibles en las bibliotecas base de Java. Cada aplicación de Android corre su propio proceso, con su propia instancia de máquina virtual Dalvik.

Nucleo Linux: Android depende de Linux para los servicios base del sistema, como seguridad, gestión de memoria, gestión de procesos, pila de red, y modelo de controladores. También actúa como una capa de abstracción entre el hardware y el resto de la pila de software

Almacenamiento :SQLite, base de datos liviana para propósito de almacenamiento de datos

Conectividad :GSM/EDGE, UMTS, Bluetooth, WI-FI, LTE, NFC, WIMAX....

Navegador web :basado en el motor de renderizado de código abierto WebKit, emparejado con el motor JavaScript V8 de Chrome.

Soporte de Java :No hay máquina virtual Java. Se compila en un ejecutable Dalvik y se ejecuta en la máquina virtual Dalvik.

Soporte multimedia : MP4, WV, JPEG, PNG, GIF, MPEG-4

Soporte para streaming :

Soporte para hardware adicional :cámara de fotos, video, pantalla táctil, GPS, sensores de proximidad, sensores de luz, termómetro...

Entorno de desarollo :con emulador de dispositivos, herramientas de depuraciónd e memoria, análisis de rendimiento del software. Android Studio

Google Play :catálogo de aplicaciones gratuitas o de pago que pueden ser descargadas e instaladas en dispositivos Android

Videollamada : a través de Hangouts

Multirarea

Características basadas en voz

Tethering :permite al teléfono ser usado como punto de acceso alámbrico o inalámbrico

Versiones

Android 1.0(2008)

Android 1.1 (2009)

Android 1.5 Cup Cake (2009)

Android 2.3 Gingerbread (2010)

Android 1.6 Donut (2009)

Android 2.0 Eclair (2009)

Android 2.2 Froyo (2010)

Android 3.0 Honeycomb (2011)

Android 4.0 Ice Cream Sandwich (2011)

Android 4.1 Jellybeam (2012)

Android 4.4 Kitkat (2012)

Android 5.0 Lollypop (2014)

Android 6.0 Marshmallow (2015)

Android 7.0 Nougat (2016)

Android 8.0 Oreo (?)