martes, 8 de noviembre de 2016

¿Qué es un Sistema Operativo?



Un Sistema Operativo (SO o, frecuentemente, OS —del inglés Operating System—) es el software principal o conjunto de programas de un sistema informático que gestiona los recursos de hardware y provee servicios a los programas de aplicación de software, ejecutándose en modo privilegiado respecto de los restantes (aunque puede que parte de él se ejecute en espacio de usuario).

Figura1. Interacción entre el sistema operativo con el resto de las partes.
Fuente: Wikipedia, Sistemas Operativos.

Objetivos del Sistema Operativo.


  • Ejecutar programas del usuario y evitar problemas comunes (como imprimir).
  • Hace que el ordenador sea fácil y útil de usar.
  • Utiliza el hardware del ordenador de forma eficiente.

Tipos de Sistemas Operativos.


Basados en los conceptos de Tanenbaum tenemos estos tipos de Sistemas Operativos:

Mainframe

En el extremo superior están los sistemas operativos para las mainframes, las computadoras del tama ño de un cuarto completo que aún se encuentran en los principales centros de datos corporativos. La diferencia entre estas computadoras y las personales está en su capacidad de E/S. Una mainframe con 1000 discos y millones de gigabytes de datos no es poco común

Por lo general ofrecen tres tipos de servicios: procesamiento por lotes, procesamiento de transacciones y tiempo compartido.
Un ejemplo de sistema operativo de mainframe es el OS/390, un descendiente del OS/360. Sin embargo, los sistemas operativos de mainframes están siendo reemplazados gradualmente por variantes de UNIX, como Linux.

                                                   Figura 1. Unix.




Servidores

En el siguiente nivel hacia abajo se encuentran los sistemas operativos de servidores. Se ejecutan en servidores, que son computadoras personales muy grandes, estaciones de trabajo o incluso mainframes.

Dan servicio a varios usuarios a la vez a través de una red y les permiten compartir los recursos de hardware y de software. Algunos sistemas operativos de servidores comunes son Solaris, FreeBSD, Linux y Windows Server 200x.

                                          Figura 2. Windows Server 2012


Multiprocesadores

Una manera cada vez más común de obtener poder de cómputo de las grandes ligas es conectar varias CPU en un solo sistema. Dependiendo de la exactitud con la que se conecten y de lo que se comparta, estos sistemas se conocen como computadoras en paralelo, multicomputadoras o multiprocesadores.  Muchos sistemas operativos populares (incluyendo Windows y Linux) se ejecutan en multiprocesadores.

                                                          Figura 3. Linux



Personales

Todos los sistemas operativos modernos soportan la multiprogramación, con frecuencia se inician docenas de programas al momento de arrancar el sistema. Su trabajo es proporcionar buen soporte para un solo usuario. Se utilizan ampliamente para el procesamiento de texto, las hojas de cálculo y el acceso a Internet. Algunos ejemplos comunes son Linux, FreeBSD, Windows Vista y el sistema operativo Macintosh.



                                                       Figura 4. MacOS


De Bolsillo

Llegamos a las computadoras de bolsillo (handheld). Una computadora de bolsillo o PDA (Personal Digital Assitant, Asistente personal digital) es una computadora que cabe en los bolsillos y realiza una pequeña variedad de funciones, como libreta de direcciones electrónica y bloc de notas. Casi todos ellos se basan en CPUs de 32 bits con el modo protegido.

Dos de los sistemas operativos más populares para los dispositivos de bolsillo son Symbian OS y Palm OS.

                                                     Figura 5. Symbian



Integrado

Los sistemas integrados (embedded), que también se conocen como incrustados o embebidos, operan en las computadoras que controlan dispositivos que no se consideran generalmente como computadoras, ya que no aceptan software instalado por el usuario. Algunos ejemplos comunes son los hornos microondas, las televisiones, los autos, entre otros.

Los sistemas como QNX y VxWorks son populares en este dominio.

                                                    Figura 6VxWorks




De Nodos de Sensores

Las redes de pequeños nodos sensores se están implementando para varios fines, detectar incendios en bosques, medir la temperatura y la precipitación para el pronóstico del tiempo, etc... Cada nodo sensor es una verdadera computadora, con una CPU, RAM, ROM y uno o más sensores ambientales. Ejecuta un sistema operativo pequeño pero real, por lo general manejador de eventos.

TinyOS es un sistema operativo bien conocido para un nodo sensor.


                                                    Figura 6. TinyOS





De Tiempo Real

Estos sistemas se caracterizan por tener el tiempo como un parámetro clave. Por ejemplo, en los sistemas de control de procesos industriales, las computadoras en tiempo real tienen que recolectar datos acerca del proceso de producción y utilizarlos para controlar las máquinas en la fábrica.

Un ejemplo de este tipo de sistema en tiempo real es e-Cos.

                                                    Figura 7. e-Cos.




De Tarjetas Inteligentes

Los sistemas operativos más pequeños operan en las tarjetas inteligentes, que son dispositivos del tamaño de una tarjeta de crédito que contienen un chip de CPU.  Tienen varias severas restricciones de poder de procesamiento y memoria. Algunos sistemas de este tipo pueden realizar una sola función, como pagos electrónicos. Algunas tarjetas inteligentes funcionan con Java. Lo que esto significa es que la ROM en la tarjeta inteligente contiene un intérprete para la Máquina virtual de Java (JVM).

                                                       Figura 8. Java JVM



Criterios de selección de un Sistema Operativo

Eso depende mucho de las prestaciones que necesitemos explotar un Sistema Operativo, si las funciones son empresariales, personales y depende mucho del hardware que vamos a utilizar. Hoy en día existen gran variedad de Sistemas basados en Unix, Linux y el ya conocido Windows.

Sin embargo, debemos tener en cuenta los siguientes criterios.

  • Costo, aunque hay Sistemas Operativos como Linux con cero costos, el soporte tiene una representación económica, sea por un fabricante o un consultor experto.
  • El hardware donde se instalará el Sistema Operativo, dependiendo de la arquitectura nuestro SO debe ser interpretado por un conjunto de instrucciones ya sea de 32bits o 64 o si la tecnología es CISC o RISC. Ejemplo: Mac OS de sobre hardware Power PC no se ejecutará sobre una plataforma Intel Core i7.
  • Además de la arquitectura del hardware, se debe tener en cuenta otras especificaciones como los requerimientos de espacio para almacenamiento y memoria RAM, el Sistema Operativo debe poder ejecutarse en con unos mínimos en estas especificaciones.
  • Compatibilidad de aplicaciones, debemos tener en cuenta si los programas que se ejecutaran sobre nuestro Sistema Operativo. Ejemplo: Microsoft SQL Server no se ejecutaba en Linux (hace muy poco se logró).
  • Interfaz Gráfica, el GUI (Graphic User Interface). Debe ser agradable para el usuario, en algunos entornos empresariales es de uso común el intérprete de comandos, en los hogares es frecuente interactuar con el sistema gráfico, el más común Windows.
  • Finalmente, el soporte el Sistema Operativo. Este debe contar unas garantías para utilizarlo por lo menos durante su ciclo de vida, es decir el fabricante debe garantizar soporte por lo menos durante un año a partir de la compra (en el caso de los que tienen costo) o por lo menos hasta el lanzamiento de una nueva versión del Sistema Operativo.

                                                           Figura1. Sistemas Operativos de Escritorio


Fuente: Tallersistop.Blogspot, Sistemas Operativos.





Reseña del Sistema Operativo Machintosh


El sistema operativo MC OS no fue la primera interfaz gráfica, pero si la primera con gran éxito por su accesibilidad de precio. Para aquellos años en el mercado.

Sistema 1. 1984. Creado en el año 1984 el cual tenía escritorio, ventanas, iconos, mouse, menús y scrollbars.

Sistema 2. Para el  año 1985 el sistema 2 fue notable en mejoras. Funciones nuevas el año 1985 el sistema 2 fue notable en mejoras.

Sistema 3. En 1986 en el sistema 3 el finder fue mejorado y más rápido, se introdujo el sistema de archivos de Machintosh MFS ( Machintosh File System).

Sistema 4. Fue introducido como Machintosh SE y Machintosh II en el año 1987, a este sistema se le agregó multiple soporte al monitor.

Sistema 6. En el año 1988 a este sistema se le agregaron colores.

Sistema 7. Salió al mercado para el año 1990 y fue el gran cambio del software para esta época.

MSC OS 8. En 1997 MAC OS 8 incluyó otra renovación al Finder que podía hacer más cosas al mismo tiempo.

MAC OS 9. En 1999 la opción  de tener varios usuarios en una MAC fue agregada en esta versión, permitía a los usuarios ingresar y tener sus propias configuraciones y permitia actualizaciones.

MAC OS X.  Esta basado fuertemente en las PowerPC-port de OpenStep, por eso MAC OS X hereda la memoria y procesador de Mach´s y el driver del dispositivo de la interfaz, BSD´s POSIX-UNIX; protocolo del programa que soporta y trabaja en interfaz de redes, también algunos elementos de la interfaz  de NeXT´s

MAC OS X, hoy en día este sistema operativo esta virtualmente en todas las Mac´s y fué trabajado  por una década  para poder obteber el éxito que tiene ahora,

A través de los años este sistema operativo se ha ido actualizando rápidamente, ejemplo de ellos son las siguientes actualizaciones de MAC OS X.

  • MAC OS X 10.0 "Cheetah", en el año 2001.
  • MAC OS X 10.1 "Puma", 2001.
  • MAC OS X 10.2 "Jaguar", 2002.
  • MAC OS X 10.3 "Panther", 2003.
  • MAC OS X 10.4 "Tiger", 2005.
  • MAC OS X 10.5 "Leopard", 2006.
  • MAC OS X 10.6 "Show Leopard", 2009.
  • Mac OS X 10.7 "Lion", 2011.
  • OS X 10.8 "Mountain Lion", 2012.
  • OS X 10.9 "Mavericks", 2013.
  • OS X 10.10 "Yosemite", 2014.
  • OS X 10.11 "El Capitan", 2015.

Evolución histórica de los Sistemas Operativos por Generaciones


En este blog abordaremos la historia de los Sistemas Operativos desde las funciones que se fueron incorporando, separándolo en generaciones. Creo que hay bástate documentación sobre la línea de tiempo de los Sistemas Operativos, cuando nació Unix, Windows, Linux, etc. El objetivo es tener otro enfoque. Más adelante veremos una línea de tiempo de Mac del cual soy adepto.

1940 - Generación Cero

La generación cero abarca la década de los años cuarenta y se caracteriza porque no existían los sistemas operativos, el usuario debía codificar manualmente en lenguaje máquina las instrucciones que le permitían usar los recursos de la computadora y controlar así la ejecución de sus programas.


1950 – Primera Generación

Surge el concepto de sistema operativo cuando los laboratorios de investigación de la General Motors desarrollaron el primer sistema operativo para su computadora IBM 701.
En 1955 General Motors y North American Aviation desarrollan el sistema operativo para la computadora IBM 704, básicamente lo único que hacía era comenzar la ejecución de un programa cuando terminaba el anterior; para 1957 ya se habían desarrollado, de manera particular, distintos sistemas operativos para ese modelo de computadora.

Figura 2. Una computadora IBM 704.


Fuente: Wikipedia, IBM 704.

El objetivo eliminar el tiempo perdido entre el término de un proceso y el inicio de otro, esto se logró desarrollando un sistema operativo que realizara procesos por lotes, en donde los programas se ejecutaban uno después del otro hasta finalizar el lote completo.

1960 – Segunda Generación

El elevado costo de operación de las computadoras de esos tiempos obligó a buscar formas de optimizar el tiempo de ejecución de los programas, mejorando el rendimiento de las computadoras y aumentando el número de procesos en ejecución por unidad de tiempo. Aparecen conceptos como multiprogramación y multiprocesamiento.

También surge Master Control Program (MCP) y SABRE de IBM de Burroughs diseñado para su computadora B5000. MCP fue desarrollado con lenguaje de alto nivel e incorporó muchas de las características de los sistemas actuales: multiprogramación, multiproceso, memoria virtual y capacidad de depurar el código fuente. Mientras que SABRE era un sistema de tiempo compartido con terminales remotas que podía interactuar directamente con el usuario.

Figura 3. American Airlines Sabre IBM.


Fuente: Slideshare, IBM Sabre.


1970 – Tercera Generación

Comienza con la familia de computadoras IBM/360 y el sistema operativo OS/360 que incorporaba una mayor gama de utilidades que facilitaban el uso de la computadora y se podían adquirir actualizaciones para el mismo SO.

Los sistemas operativos aumentan sus prestaciones y gestionan eficientemente los recursos del ordenador y el usuario experimenta mayor facilidad para su manejo. IBM separa los costos de hardware y software, por lo que el sistema operativo se puede adquirir en independencia del hardware.

Figura 4. IBM 360.


Fuente: Computermuseum, IBM System/360.

1980 – Cuarta Generación

Es en esta época donde el usuario experimenta una mayor facilidad para su manejo. Surgen sistemas operativos tales como: Honeywell, VMS y VM/370 de IBM y el Scope de Control Data, todos ellos disponían de multiprogramación, tiempo compartido, memorial virtual, procesos secuenciales que operan por medio de semáforos, sistema jerárquico de archivos y E/S independiente del dispositivo.

Figura 5. AppleSoft.


Fuente: Apple2History, Apple DOS.

Surge el sistema operativo UNIX, desarrollado en lenguaje de alto nivel (lenguaje C) que le otorga una alta portabilidad, desde grandes computadoras hasta computadoras personales. Tambien nacen los Sistemas Operativos para computadoras personales (de 8 y 16 bits) entre los que destacan: MS-DOS, Xenix, Apple-DOS y CP/M.

Los sistemas operativos incorporan programas de comunicaciones y evolucionan hasta adaptarse para gestionar redes de computadoras. SUN desarrolla el sistema de archivos distribuidos NFS.


1990 – Quinta Generación

Cobran importancia los entornos gráficos o GUI’s (Interfaces Gráficas de Usuario - Graphical User Interface) colocándose como las más populares la de Windows, Linux y Mac, desplazando a los sistemas operativos con interfaz en modo consola.

En esta generación se explota al máximo el concepto de multitareas para mantener trabajando al procesador con más de un proceso a la vez, es decir, el procesador puede correr parte de un proceso A y mientras se realizan operaciones de e/s de este proceso, el procesador puede ejecutar un proceso B. También se desarrollan sistemas operativos que permiten realizar procesamientos en paralelo.

Figura 6. Sistema Operativo Windows. Consola Gráfica – Línea de Comandos


Fuente: WindowsCentral, How to manage wireless networks using Command Prompt in Windows10.