viernes, 30 de marzo de 2018

GRACIAS

GRACIAS POR SU ATENCIÓN 

 Resultado de imagen para gracias

Para culminar me gustaría mencionar y darle un tributo en este blog a mi Youtuber favorito Vsauce: Michael Stevens, es un youtuber americano que hace vídeos sobre física, matemáticas, geografía, psicología y un sin fin más de otras ciencias y las usa para explicar preguntas filosóficas muy que aunque parezcan absurdas o de sentido común tienen su ciencia, les dejo una lista de reproducción de sus mejores trabajos, en la parte posterior hay una opción para colocar subtitulos al español que tienen la mayoría de sus vídeos, disfrutenlos.


LOS SISTEMAS OPERATIVOS COMO MAQUINA VIRTUAL


Todo aficionado a la tecnología en general y a la informática en particular ha oído hablar en alguna ocasión de las máquinas virtuales. Pero, ¿qué se esconde tras este concepto de apariencia futurista y qué utilidad real tiene para los usuarios?

En términos generales, una máquina virtual es un software que permite emular el funcionamiento de un ordenador dentro de otro ordenador gracias a un proceso de encapsulamiento que aísla a ambos. Algo similar al concepto de las muñecas matrioskas rusas, que permiten introducir una muñeca dentro de otra, pero manteniendo cada cual la independencia de su huésped.

¿Qué es una máquina virtual?


Una máquina virtual es un software que crea una capa independiente donde se emula el funcionamiento de un ordenador real con todos los componentes de hardware que necesita para funcionar (disco duro, memoria RAM, tarjetas de red, tarjeta gráfica, etc.) y que puede ejecutar cualquier sistema operativo o programa, tal y como lo haría un ordenador real. Toda esta emulación se encapsula en una serie de archivos que actúan como contendor desde el que se ejecuta la máquina virtual en una ventana de tu ordenador como si de un programa más se tratara y sin que nada de lo que suceda en el interior de esa ventana afecte al ordenador que la ejecuta.


Cómo crear una máquina virtual dentro de tu sistema operativo


A grandes rasgos, la única diferencia entre tu ordenador real y una máquina virtual que ejecutes en ese mismo ordenador, es que tu ordenador sí cuenta con un hardware real, mientras que la máquina virtual emula todos sus componentes de forma que no tiene por qué corresponderse con el hardware físico que tienes instalado en tu ordenador real.

De ese modo, se pueden ajustar las características del hardware para hacerlo compatible con el sistema operativo que vayas a usar en esa máquina virtual. Es decir, aunque tu hardware real no sea compatible con un determinado sistema operativo, el de una máquina virtual que se ejecute en ese ordenador sí puede serlo.






Esto facilita que, una vez creada la máquina virtual en un ordenador, puedes copiar o mover el archivo contenedor que se crea y ejecutarla en cualquier otro ordenador, aunque tenga un hardware totalmente diferente.

Este tipo de máquinas virtuales, conocidas como máquinas virtuales de sistema, son las más conocidas por la mayoría de usuarios ya que son ideales para virtualizar sistemas operativos completos, pero no el único tipo de máquinas virtuales que existe. También existen las máquinas virtuales de procesos, que son más habituales en servidores y en las que únicamente se virtualiza determinados procesos o servicios y no el sistema operativo completo.

¿Para qué sirven las máquinas virtuales?


Existen diversos usos para las máquinas virtuales, pero ya que permiten emular casi cualquier sistema operativo estándar (Windows, GNU/Linux, MacOS, Android, etc.), y dado que se ejecutan en una capa de software diferente y totalmente aislada, uno de los usos más frecuentes es el de probar diferentes sistemas operativos, programas o configuraciones con total seguridad para tu ordenador real ya que, si algo falla en la máquina virtual, este fallo no afectará en absoluto al ordenador que la ejecuta.

De ese modo, si por ejemplo, sospechas que un archivo que te han enviado pudiera estar infectado por un virus o software malicioso, puedes ejecutarlo en una máquina virtual para comprobar su fiabilidad. Si no sucede nada, podrás usarlo en tu equipo. En caso contrario, infectará solo a la máquina virtual y tu equipo se mantendrá inmune al ataque.





Otra característica de las máquinas virtuales es que no tienen “conciencia” de que son máquinas virtuales, por lo que, a todos los efectos, se comportan como ordenadores reales. Esta cualidad permite, entre otras cosas, recrear entornos de red en el que puedes conectar varias máquinas virtuales ejecutadas en el mismo ordenador y conectarlas entre sí en red, recreando la configuración que tendrían diferentes ordenadores reales.

Esto puede serte muy útil para aprender cómo funcionan las redes informáticas y ahorrarte muchos euros ya que no necesitarás tener varios ordenadores reales para probar la seguridad de tus redes.



Cómo obtener el Certificado Profesional de Seguridad en Redes


Sin dejar de lado la tecnología de redes, llegamos a una de las principales utilidades para las máquinas virtuales de procesos, de las que ya te hemos hablado antes, y es que es más que probable que, sin saberlo, estás usando máquinas virtuales a diario cada vez que usas tu almacenamiento en la nube o navegas por Internet.

Las máquinas virtuales de procesos se ejecutan en un mismo servidor para ejecutar varias instancias de la misma aplicación de forma separada. De ese modo, si una de ellas falla, no afectará al funcionamiento del resto.





Esta solución es habitual en los servicios de alojamiento web y almacenamiento en la nube en las que se optimizan los costes de los servidores ejecutando una máquina virtual para alojar los archivos de usuarios distintos. De ese modo, en lugar de necesitar un servidor para cada uno de los usuarios, todos comparten el mismo hardware dividido en varias máquinas virtuales aisladas entre sí.


Todo lo que necesitas saber sobre el alojamiento web

¿Qué ordenador necesito para ejecutar máquinas virtuales?


A pesar de que el hardware de la máquina virtual es emulado, necesita unos recursos mínimos para funcionar. Estos recursos se obtienen directamente del hardware real del ordenador que la está ejecutando.





De ese modo, si tienes un procesador de 4 núcleos y 8 GB de memoria RAM, y asignas 2 de esos núcleos y 4 GB de memoria RAM a tu máquina virtual, el rendimiento del sistema operativo “real” se verá reducido a la mitad, ya que esos recursos dejarán de estar disponibles para el ordenador y los empleará la máquina virtual mientras está en uso. Cuando apagues la máquina virtual, el “sistema operativo real” volverá a disponer automáticamente de esos recursos.

Cualquier ordenador con unas especificaciones mínimas puede ejecutar una máquina virtual y, de hecho, la mayoría de ordenadores actuales soportan este tipo de software. Vamos a ver cuáles son esos requisitos mínimos.
Procesador

El primer requisito será contar con un procesador relativamente potente, ya que como te hemos indicado, ordenador y máquina virtual comparten recursos y, además, éste debe soportar la tecnología de virtualización. En los procesadores Intel, esta función se conoce como Intel VTx, mientras que en los de AMD se aparece como AMD-v. Además, esta función deberá estar habilitada en la BIOS (o UEFI) del ordenador o no podrá ejecutarse la virtualización.



Todo lo que necesitas saber para elegir un procesador

Memoria RAM

Contar con una buena cantidad de memoria RAM te garantizará que tanto el equipo anfitrión, como la máquina virtual que se ejecuta, cuenten con suficiente memoria RAM. La cantidad de memoria RAM necesaria dependerá del sistema operativo que ejecuten tanto el ordenador, como la máquina virtual. Por ejemplo, para ejecutar una máquina virtual de Windows XP en un Windows 10, basta con 6 GB para que ambos sistemas se ejecuten de forma fluida.

En cambio, esta cantidad puede ser insuficiente si se quiere ejecutar una máquina virtual con macOS Sierra en un PC con Windows 10.

Espacio en el disco duro

Como ya te hemos comentado antes, las máquinas virtuales utilizan una serie de archivos que sirven como contenedor en el cual se ejecutan. Estos archivos suelen ocupar el mismo espacio en el disco duro que se le asigna al configurar la máquina virtual.

Es decir, que si configuras una máquina virtual para que cuente con un disco duro virtual de 20 GB, el archivo contenedor en el que se ejecutará la máquina virtual ocupara ese mismo espacio en tu disco duro. Por lo que tener suficiente espacio en tu disco duro real como para alojar estos archivos de gran tamaño será vital para el funcionamiento de la máquina virtual.




Tarjeta gráfica

También es importante contar con una tarjeta gráfica, si es dedicada mejor. Este componente es necesario ya que el sistema real deberá generar los gráficos de su propia interfaz, además de la interfaz del sistema de la máquina virtual. Esto duplica el trabajo para este componente, por lo que contar con un chip gráfico que ofrezca un buen rendimiento hará más fluido el uso en ambos sistemas operativos.
Software hipervisor

El software hipervisor es una de las piezas clave para el uso de las máquinas virtuales ya que es el encargado de configurar, crear, ejecutar y controlar el funcionamiento de la máquina virtual. Por simplificarlo un poco su función, viene a ser el intermediario entre el ordenador real y la máquina virtual.





Existen varios programas que permiten configurar y ejecutar máquinas virtuales en los principales sistemas operativos. Algunos nombres ilustres destacados en esta categoría son VirtualBox, VMware, Parallels Desktop o Qemu.

En esta lista te mostramos algunas de las mejores aplicaciones para ejecutar máquinas virtuales en tu ordenador. Algunas de ellas son software libre y gratuito. Otras, en cambio, son de pago y tendrás que comprar una licencia para usarla.
Usas máquinas virtuales a diario

Además de las máquinas virtuales que se ejecutan en los servidores de las webs y servicios de almacenamiento en la nube, usas más máquinas virtuales de las que imaginas. Sin ir más lejos, es probable que tengas una ejecutándose en tu mano en este preciso instante.

Cómo instalar OS X Mavericks dentro de Windows con VMWare



Cómo hacer un hard reset a tu móvil Android


Ya te hemos contado algunos usos habituales para las máquinas virtuales de proceso y su capacidad para ejecutar un solo proceso que se mantiene aislado del sistema operativo principal, de forma que permite al proceso ejecutarse independientemente de la plataforma en la que se ejecute.

Este tipo de máquinas virtuales permite desarrollar fácilmente aplicaciones que funcionarán en distintas plataformas. Basta con desarrollar una sola aplicación basada en un determinado framework (Java o .NET, por ejemplo), y ejecutarla en una máquina virtual de proceso para que funcione sobre cualquier sistema operativo o configuración de hardware.

Este es precisamente el principio en el que se basa la ejecución de las apps de Android.





En realidad, las apps se ejecutan dentro de una máquina virtual de Java en Android llamada Dalvik o ART (según versión de Android) que se ejecuta sobre cientos de configuraciones distintas de procesadores, tipos de memoria RAM y hardware diferente. En cambio, la app funciona de la misma forma en todos ellos sin necesidad de modificar nada en ella.
Máquinas virtuales integradas en tu sistema operativo

Android no es el único sistema operativo que cuenta con máquinas virtuales integradas. De hecho, los principales sistemas operativos de escritorio las incorporan de una forma u otra.
Windows y su compatibilidad

Windows incorpora una máquina virtual a solo un clic de distancia de tu ratón, aunque lo hace disfrazada de aplicación para solucionar problemas de compatibilidad.





Esta aplicación, activa en Windows desde Windows 7, te permite usar programas que funcionaban en anteriores versiones de Windows, pero que no funciona como debiera en la actual versión.

En realidad, no es más que una máquina virtual de procesos ejecutada con Microsoft Virtual PC, que emula el comportamiento de anteriores versiones de Windows para que una determinada aplicación funcione como lo hacía en ese sistema operativo.


Virtualiza tu Windows XP de siempre en tu nuevo ordenador
Windows en tu Mac


Desde que Apple pasó a utilizar procesadores de Intel en sus ordenadores es posible instalar Windows en ellos, aunque si quieres hacerlo tendrás que utilizar el entorno virtual que te proporciona Boot Camp.

En ese entorno virtualizado se crean los factores de compatibilidad ideales para que el sistema pueda conectar de forma optimizada con el hardware de los ordenadores de Apple, ofreciendo un gran rendimiento usando cualquiera de los dos sistemas operativos que comparten espacio en el disco duro del equipo.


Cómo instalar Windows 10 en Mac con Boot Camp

Ejecuta programas de Windows en Linux

Otro claro ejemplo de máquina virtual de procesos es la que encontramos en Wine, el software que permite utilizar programas desarrollados para Windows en un sistema GNU/Linux.


Ejecuta programas Windows en Linux con Wine 1.6.2


Gracias a Wine, puedes encapsular todos los componentes y librerías de Windows que un determinado programa necesita para funcionar, y lo ejecuta en una ventana de tu equipo como si fuera una aplicación nativa para Ubuntu, Linux Mint o cualquier otra distro de Linux.

Como puedes ver, utilizas muchas más máquinas virtuales de las que creías, pero ahora sabes exactamente qué son las máquinas virtuales, cómo funcionan y para qué sirven.

Resultado de imagen para sistemas operativos gif

SISTEMAS OPERATIVOS PREZI

Clasificación de los Sistemas Operativos





CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS


Sistemas Operativos

Es un sistema operativo aquel conjunto de programas que se permite a un usuario ejecutar una o varias tareas en la computadora. De esta forma, el sistema operativo resulta la intermediación entre el usuario y la computadora, siendo el software básicoque provee la interfaz entre todo el resto de los programas y los dispositivos de hardware (como el monitor, el teclado, los parlantes o el micrófono).
Funciones

De esta forma, las funciones que todo sistema operativo viene a cumplir son varias, pero se destaca la primera de todas que es inicializar el hardware del ordenador; luego suministrar rutinas básicas para controlar dispositivos; administrar, reorganizar e interactuar las tareas entre sí; y sobre todo mantener la integridad del sistema. Tanto las amenazas (virus) como las herramientas de prevención (antivirus) están pensadas justamente para la seguridad de los sistemas operativos.

Estructura de los S.O

En efecto, la estructura de un sistema operativo es de cinco grandes ‘capas’ o etapas, cada una de las cuales tiene una serie de funciones asociadas:
El núcleo es la herramienta que gestiona todos los procesos, siendo la encargada de lleva la cuenta de todos los activos y de planificarlos. Esto incluye la selección del tiempo del procesador que ocupará cada uno, por lo que es una etapa muy importante que debe tener mucha inteligencia.
Entrada y salida básica proporciona funciones primitivas asociadas con la gestión de la memoria secundaria, proveyendo las herramientas necesarias para la localización e interpretación de los bloques de datos en el disco duro, pero sin llegar a dar muchos detalles.
La gestión de la memoria administra la memoria RAM, asignando y liberando a los procesos de una parte de la memoria de la computadora.
El sistema de archivo proporciona las funciones que son necesarias para almacenar la información en archivos.
La última etapa es la intérprete de comando, donde se ubica la interfaz visible para el usuario. Esta se va perfeccionando y configurando de acuerdo a la comodidad de los usuarios.
Clasificación de los sistemas operativos

Existen diferentes formas de clasificar y subdividir a los sistemas operativos. A continuación se enumerarán los criterios, y luego los diferentes grupos que se forman en base a ellos:

De acuerdo al modo de administración de tareas:
  • Monotarea: Solamente puede ejecutar un en un momento dado. No puede interrumpir los procesos en acción.
  • Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Es capaz de asignar los recursos de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez.
De acuerdo al modo de administración de los usuarios:
  • Monousuario: Sólo permite ejecutar los programas de un usuario al mismo tiempo.
  • Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora.
De acuerdo a la forma de manejo de los recursos:
  • Centralizado: Si permite usar los recursos de una sola computadora.
  • Distribuido: Si permite utilizar los recursos de más de una computadora al mismo tiempo.

La historia de Windows


En el mercado se ofrecen diferentes sistemas operativos, cada uno de los cuales tiene para sí un conjunto de ventajas y desventajas. Entre todos, el más popular es el sistema Windows, que fue fundado en 1975 por Bill Gates y que introdujo la primera versión de un sistema operativo que rápidamente evolucionó y fue incorporando funciones. La primera versión se dio en 1981 con algunas pocas funciones, pero solo cuatro años más tarde el sistema se popularizó en la primera versión de Windows, la 1.0.

Desde entonces las prestaciones fueron aumentando a una velocidad exponencial, y versiones de Windows como 98, 2000 o XP fueron muy populares: la más reciente es Windows 7, lanzada en 2008 con avances notorios como el soporte para discos duros virtuales y el rendimiento mejorado en procesadores multinúcleo. Algo parecido ocurrió con el avance de otros sistemas operativos, entre los que se destaca el sistema abierto Linux.
Sistemas operativos en Internet

Claro que la definición convencional de los sistemas operativos es muy anterior a la existencia de Internet, que vino a reconfigurar toda la visión que se tiene sobre las computadoras. Es posible que los diferentes sistemas operativos cedan ante un único sistema operativo de Internet, en donde todo depende de la ‘nube’. De esta forma cambiaría en forma notoria la utilización de las computadoras porque no sería necesario bajar ni instalar ningún tipo de programa, como sucede en servidores como Orkut.

En base a la existencia de una red de Internet es que se abre una nueva clasificación de los sistemas operativos, referida al modo en el que los usuarios acceden a los servicios: los sistemas operativos de red son los que tienen la capacidad de interactuar con sistemas operativos de otras computadoras con el objeto de intercambiar información, mientras que los sistemas operativos distribuidos abarcan los servicios de los de red, pero además integran recursos en una sola máquina virtual a la que el usuario accede en forma transparente.









Evolución de los Sistemas Operativos


Evolución



La evolución de los Sistemas Operativos ha ido siempre de la mano de la evolución de las Computadoras.

Por ello es relevante recordar las generaciones de Computadores (Tanembaum, 2009):

1. Tubos al Vacío (1945-1955)






tubos vacio eniacTubos al vacío de la ENIAC

Después de los esfuerzos infructuosos de Babbage, no hubo muchos progresos en la construcción de computadoras digitales sino hasta la Segunda Guerra Mundial, que estimuló una explosión de esta actividad. El profesor John Atanasoff y su estudiante graduado Clifford Berry construyeron lo que ahora se conoce como la primera computadora digital funcional en Iowa State University. Utilizaba 300 tubos de vacío (bulbos). Aproximadamente al mismo tiempo, Konrad Zuse en Berlín construyó la computadora Z3 a partir de relevadores. En 1944, la máquina Colossus fue construida por un equipo de trabajo en Bletchley Park, Inglaterra; la Mark I, por Howard Aiken en Harvard, y la ENIAC, por William Mauchley y su estudiante graduado J. Presper Eckert en la Universidad de Pennsylvania. Algunas fueron binarias, otras utilizaron bulbos, algunas eran programables, pero todas eran muy primitivas y tardaban segundos en realizar incluso hasta el cálculo más simple. A principios de la década de 1950, la rutina

había mejorado un poco con la introducción de las tarjetas perforadas.

2. Transistores (1955-1965)

La introducción del transistor a mediados de la década de 1950 cambió radicalmente el panorama. Las computadoras se volvieron lo bastante confiables como para poder fabricarlas y venderlas a clientes dispuestos a pagar por ellas, con la expectativa de que seguirían funcionando el tiempo suficiente como para poder llevar a cabo una cantidad útil de trabajo. Por primera vez había una clara separación entre los diseñadores, constructores, operadores, programadores y el personal de mantenimiento.





IBM 1401
IBM 1401

Estas máquinas, ahora conocidas como mainframes, estaban encerradas en cuartos especiales con aire acondicionado y grupos de operadores profesionales para manejarlas. Sólo las empresas grandes, universidades o agencias gubernamentales importantes podían financiar el costo multimillonario de operar estas máquinas. Para ejecutar un trabajo (es decir, un programa o conjunto de programas), el programador primero escribía el programa en papel (en FORTRAN o en ensamblador) y después lo pasaba a tarjetas perforadas. Luego llevaba el conjunto de tarjetas al cuarto de entrada de datos y lo entregaba a uno de los operadores; después se iba a tomar un café a esperar a que los resultados estuvieran listos. Cuando la computadora terminaba el trabajo que estaba ejecutando en un momento dado, un operador iba a la impresora y arrancaba las hojas de resultados para llevarlas al cuarto de salida de datos, para que el programador pudiera recogerlas posteriormente. Entonces, el operador tomaba uno de los conjuntos de tarjetas que se habían traído del cuarto de entrada y las introducía en la máquina.





IBM 7094
IBM 7094

Si se necesitaba el compilador FORTRAN, el operador tenía que obtenerlo de un gabinete de archivos e introducirlo a la máquina. Se desperdiciaba mucho tiempo de la computadora mientras los operadores caminaban de un lado a otro del cuarto de la máquina. Dado el alto costo del equipo, no es sorprendente que las personas buscaran rápidamente formas de reducir el tiempo desperdiciado. La solución que se adoptó en forma general fue el sistema de procesamiento por lotes. La idea detrás de este concepto era recolectar una bandeja llena de trabajos en el cuarto de entrada de datos y luego pasarlos a una cinta magnética mediante el uso de una pequeña computadora relativamente económica, tal como la IBM 1401, que era muy adecuada para leer las tarjetas, copiar cintas e imprimir los resultados, pero no tan buena para los cálculos numéricos. Para llevar a cabo los cálculos numéricos se utilizaron otras máquinas mucho más costosas, como la IBM 7094.

3. Circuitos Integrados (1965-1980)






IBM 360IBM 360

La IBM 360 fue la primera línea importante de computadoras en utilizar circuitos integrados (ICs) (a pequeña escala), con lo cual se pudo ofrecer una mayor ventaja de precio/rendimiento en comparación con las máquinas de segunda generación, las cuales fueron construidas a partir de transistores individuales. Su éxito fue inmediato y la idea de una familia de computadoras compatibles pronto fue adoptada por todos los demás fabricantes importantes. Los descendientes de estas máquinas se siguen utilizando hoy día en centros de cómputo. En la actualidad se utilizan con frecuencia para manejar bases de datos enormes (por ejemplo, para sistemas de reservaciones de aerolíneas) o como servidores para sitios de World Wide Web que deben procesar miles de solicitudes por segundo. La mayor fortaleza de la idea de “una sola familia” fue al mismo tiempo su mayor debilidad. La intención era que todo el software, incluyendo al sistema operativo OS/360, funcionara en todos los modelos.Debía ejecutarse en los sistemas pequeños, que por lo general sólo reemplazaban a la 1401s, que copiaba tarjetas a cinta, y en los sistemas muy grandes, que a menudo reemplazaban a la 7094s, que realizaba predicciones del clima y otros cálculos pesados. Tenía que ser bueno en sistemas con pocos dispositivos periféricos y en sistemas con muchos. Tenía que funcionar en ambos entornos comerciales y científicos. Por encima de todo, tenía que ser eficiente para todos estos usos distintos. No había forma en que IBM (o cualquier otra) pudiera escribir una pieza de software que cumpliera con todos estos requerimientos en conflicto. El resultado fue un enorme y extraordinariamente complejo sistema operativo, tal vez de dos a tres órdenes de magnitud más grande que el FMS. Consistía en millones de líneas de lenguaje ensamblador escrito por miles de programadores, con miles de errores, los cuales requerían un flujo continuo de nuevas versiones en un intento por corregirlos. Cada nueva versión corregía algunos errores e introducía otros, por lo que probablemente el número de errores permanecía constante en el tiempo. A pesar de su enorme tamaño y sus problemas, el OS/360 y los sistemas operativos similares de tercera generación producidos por otros fabricantes de computadoras en realidad dejaban razonablemente satisfechos a la mayoría de sus clientes. También popularizaron varias técnicas clave ausentes en los sistemas operativos de segunda generación.





sistema multiprogramacion
Sistema de multiprogramación con 3 trabajos en memoria

Quizá la más importante de éstas fue la multiprogramación. En la 7094, cuando el trabajo actual se detenía para esperar a que se completara una operación con cinta u otro dispositivo de E/S, la CPU simplemente permanecía inactiva hasta terminar la operación de E/S. Con los cálculos científicos que requieren un uso intensivo de la CPU, la E/S no es frecuente, por lo que este tiempo desperdiciado no es considerable. Con el procesamiento de datos comerciales, el tiempo de espera de las operaciones de E/S puede ser a menudo de 80 a 90 por ciento del tiempo total, por lo que debía hacerse algo para evitar que la (costosa) CPU esté inactiva por mucho tiempo. La solución que surgió fue particionar la memoria en varias piezas, con un trabajo distinto en cada partición, como se muestra en la Gráfica 9. Mientras que un trabajo esperaba a que se completara una operación de E/S, otro podía estar usando la CPU. Si pudieran contenerse suficientes trabajos en memoria principal al mismo tiempo, la CPU podía estar ocupada casi 100 por ciento del tiempo. Para tener varios trabajos de forma segura en memoria a la vez, se requiere hardware especial para proteger cada trabajo y evitar que los otros se entrometan y lo malogren; el 360 y los demás sistemas de tercera generación estaban equipados con este hardware.

4. Computadores Personales (1980-actual)






intel 8080

Chip Intel 8080



Con el desarrollo de los circuitos LSI (Large Scale Integration, Integración a gran escala), que contienen miles de transistores en un centímetro cuadrado de silicio (chip), nació la era de la computadora personal. En términos de arquitectura, las computadoras personales (que al principio eran conocidas como microcomputadoras) no eran del todo distintas de las minicomputadoras de la clase PDP-11, pero en términos de precio sin duda eran distintas. Mientras que la minicomputadora hizo posible que un departamento en una compañía o universidad tuviera su propia computadora, el chip microprocesador logró que un individuo tuviera su propia computadora personal.


Cuando Intel presentó el microprocesador 8080 en 1974 (la primera CPU de 8 bits de propósito general), deseaba un sistema operativo, en parte para poder probarlo. Intel pidió a uno de sus consultores, Gary Kildall, que escribiera uno. Kildall y un amigo construyeron primero un dispositivo controlador para el disco flexible de 8 pulgadas de Shugart Associates que recién había sido sacado al mercado, y conectaron el disco flexible con el 8080, con lo cual produjeron la primera microcomputadora con un disco. Después Kildall escribió un sistema operativo basado en disco conocido como CP/M (Control Program for Microcomputers; Programa de Control para Microcomputadoras) para esta CPU. Como Intel no pensó que las microcomputadoras basadas en disco tuvieran mucho futuro, cuando Kildall pidió los derechos para CP/M, Intel le concedió su petición. Después Kildall formó una compañía llamada Digital Research para desarrollar y vender el CP/M.


En 1977, Digital Research rediseñó el CP/M para adaptarlo de manera que se pudiera ejecutar en todas las microcomputadoras que utilizaban los chips 8080, Zilog Z80 y otros. Se escribieron muchos programas de aplicación para ejecutarse en CP/M, lo cual le permitió dominar por completo el mundo de la microcomputación durante un tiempo aproximado de 5 años.





IBM PC
IBM PC

A principios de la década de 1980, IBM diseñó la IBM PC y buscó software para ejecutarlo en ella. La gente de IBM se puso en contacto con Bill Gates para obtener una licencia de uso de su intérprete de BASIC. También le preguntaron si sabía de un sistema operativo que se ejecutara en la PC. Gates sugirió a IBM que se pusiera en contacto con Digital Research, que en ese entonces era la compañía con dominio mundial en el área de sistemas operativos. Kildall rehusó a reunirse con IBM y envió a uno de sus subordinados, a lo cual se le considera sin duda la peor decisión de negocios de la historia. Para empeorar más aún las cosas, su abogado se rehusó a firmar el contrato de no divulgación de IBM sobre la PC, que no se había anunciado todavía. IBM regresó con Gates para ver si podía proveerles un sistema operativo.





logo dos
Logo MS-DOS

Cuando IBM regresó, Gates se había enterado de que un fabricante local de computadoras, Seattle Computer Products, tenía un sistema operativo adecuado conocido como DOS (Disk Operating System; Sistema Operativo en Disco). Se acercó a ellos y les ofreció comprarlo (supuestamente por 75,000 dólares), a lo cual ellos accedieron de buena manera. Después Gates ofreció a IBM un paquete con DOS/BASIC, el cual aceptó. IBM quería ciertas modificaciones, por lo que Gates contrató a la persona que escribió el DOS, Tim Paterson, como empleado de su recién creada empresa de nombre Microsoft, para que las llevara a cabo. El sistema rediseñado cambió su nombre a MS-DOS (Microsoft Disk Operating System; Sistema Operativo en Disco de Microsoft) y rápidamente llegó a dominar el mercado de la IBM PC. Un factor clave aquí fue la decisión de Gates (que en retrospectiva, fue en extremo inteligente) de vender MS-DOS a las empresas de computadoras para que lo incluyeran con su hardware, en comparación con el intento de Kildall por vender CP/M a los usuarios finales, uno a la vez (por lo menos al principio).Después de que se supo todo esto, Kildall murió en forma repentina e inesperada debido a causas que aún no han sido reveladas por completo.
mainframe unixPara cuando salió al mercado en 1983 la IBM PC/AT, sucesora de la IBM PC, con la CPU Intel 80286, MS-DOS estaba muy afianzado y CP/M daba sus últimos suspiros. Más adelante, MS-DOS se utilizó ampliamente en el 80386 y 80486. Aunque la versión inicial de MS-DOS era bastante primitiva, las versiones siguientes tenían características más avanzadas, incluyendo muchas que se tomaron de UNIX. (Microsoft estaba muy al tanto de UNIX e inclusive vendía una versión de este sistema para microcomputadora, conocida como XENIX, durante los primeros años de la compañía).CP/M, MS-DOS y otros sistemas operativos para las primeras microcomputadoras se basaban en que los usuarios escribieran los comandos mediante el teclado. Con el tiempo esto cambió debido a la investigación realizada por Doug Engelbart en el Stanford Research Institute en la década de 1960. Engelbart inventó la Interfaz Gráfica de Usuario GUI, completa con ventanas, iconos, menús y ratón. Los investigadores en Xerox PARC adoptaron estas ideas y las incorporaron en las máquinas que construyeron.





apple macintosh
Apple Macintosh

Un día, Steve Jobs, que fue co-inventor de la computadora Apple en su cochera, visitó PARC, vio una GUI y de inmediato se dio cuenta de su valor potencial, algo que la administración de Xerox no hizo. Posteriormente, Jobs emprendió el proyecto de construir una Apple con una GUI. Este proyecto culminó en Lisa, que era demasiado costosa y fracasó comercialmente. El segundo intento de Jobs, la Apple Macintosh, fue un enorme éxito, no sólo debido a que era mucho más económica que Lisa, sino también porque era amigable para el usuario (user friendly), lo cual significaba que estaba diseñada para los usuarios que no sólo no sabían nada acerca de las computadoras, sino que además no tenían ninguna intención de aprender. En el mundo creativo del diseño gráfico, la fotografía digital profesional y la producción de video digital profesional, las Macintosh son ampliamente utilizadas y sus usuarios son muy entusiastas sobre ellas. Cuando Microsoft decidió crear un sucesor para el MS-DOS estaba fuertemente influenciado por el éxito de la Macintosh. Produjo un sistema basado en GUI llamado Windows, el cual en un principio se ejecutaba encima del MS-DOS (es decir, era más como un shell que un verdadero sistema operativo). Durante cerca de 10 años, de 1985 a 1995, Windows fue sólo un entorno gráfico encima de MS-DOS. Sin embargo, a partir de 1995 se liberó una versión independiente de Windows, conocida como Windows 95, que incorporaba muchas características de los sistemas operativos y utilizaba el sistema MS-DOS subyacente sólo para iniciar y ejecutar programas de MS-DOS antiguos. En 1998, se liberó una versión ligeramente modificada de este sistema, conocida como Windows 98. Sin embargo, tanto Windows 95 como Windows 98 aún contenían una gran cantidad de lenguaje ensamblador para los procesadores Intel de 16 bits.
windows

Otro de los sistemas operativos de Microsoft es Windows NT (NT significa Nueva Tecnología), que es compatible con Windows 95 en cierto nivel, pero fue completamente rediseñado en su interior. Es un sistema completo de 32 bits. El diseñador en jefe de Windows NT fue David Cutler, quien también fue uno de los diseñadores del sistema operativo VMS de VAX, por lo que hay algunas ideas de VMS presentes en NT. De hecho, había tantas ideas de VMS presentes que el propietario de VMS (DEC) demandó a Microsoft. El caso se resolvió en la corte por una cantidad de muchos dígitos. Microsoft esperaba que la primera versión de NT acabara con MS-DOS y todas las demás versiones de Windows, ya que era un sistema muy superior, pero fracasó. No fue sino hasta Windows NT 4.0 que finalmente empezó a tener éxito, en especial en las redes corporativas. La versión 5 de Windows NT cambió su nombre a Windows 2000 a principios de 1999. Estaba destinada a ser el sucesor de Windows 98 y de Windows NT 4.0. Esto tampoco funcionó como se esperaba, por lo que Microsoft preparó otra versión de Windows 98 conocida como Windows Me (Millennium edition). En el 2001 se liberó una versión ligeramente actualizada de Windows 2000, conocida como Windows XP. Esa versión duró mucho más en el mercado (6 años), reemplazando a casi todas las versiones anteriores de Windows. Después, en enero del 2007 Microsoft liberó el sucesor para Windows XP, conocido como Windows Vista. Tenía una interfaz gráfica nueva, Aero, y muchos programas de usuarios nuevos o actualizados. Microsoft esperaba que sustituya a Windows XP por completo, pero fue un rotundo fracaso.


En el 2009, Microsoft lanzó Windows 7. A diferencia de su predecesor, Windows Vista, que introdujo a un gran número de nuevas características, Windows 7 pretendía ser una actualización incremental, enfocada a la línea de Windows, con el objetivo de ser compatible con aplicaciones y hardware que Windows Vista no era compatible. Windows 7 tiene soporte multitouch, un Windows shell rediseñado con una nueva barra de tareas, conocido como Superbar, un sistema red llamado HomeGroup, y mejoras en el rendimiento sobre todo en velocidad y en menor consumo de recursos.


En el 2012, Microsoft lanzó Windows 8. Por primera vez desde Windows 95, el botón Inicio ya no está disponible en la barra de tareas (lo cual se corrigió en la versión 8.1), aunque la pantalla de inicio está aún activa haciendo clic en la esquina inferior izquierda de la pantalla y presionando la tecla Inicio en el teclado. Presenta un Explorador de Windows rediseñado, con la famosa interfaz ribbon de Microsoft Office. Se conservan la gran mayoría de las características de su predecesor, Windows 7, con excepción de la nueva interfaz gráfica y algunos cambios menores.
El otro competidor importante en el mundo de las computadoras personales es UNIX (y todas sus variantes). UNIX es más fuerte en los servidores tanto de redes como empresariales, pero también está cada vez más presente en las computadoras de escritorio, en especial en los países que se desarrollan con rapidez, como India y China.
servidores linux

En las computadoras basadas en Pentium, Linux se está convirtiendo en una alternativa popular para Windows entre los estudiantes y cada vez más usuarios corporativos. (A lo largo de este documento se usará el término “Pentium” para denotar al Pentium I, II, III y 4, así como sus sucesores tales como el Core 2 Duo.)


El término x86 también se utiliza algunas veces para indicar el rango completo de CPU Intel partiendo desde el 8086, mientras que utilizaremos “Pentium” para indicar todas las CPU desde el Pentium I. Admitimos que este término no es perfecto, pero no hay disponible uno mejor. Uno se pregunta qué genio de mercadotecnia en Intel desperdició una marca comercial (Pentium) que la mitad del mundo conocía bien y respetaba, sustituyéndola con términos como “Core 2 duo” que muy pocas personas comprenden; ¿qué significan “2” y “duo”? Tal vez “Pentium 5” (o “Pentium 5 dual core”, etc.) eran demasiado difíciles de recordar. FreeBSD es también un derivado popular de UNIX, que se originó del proyecto BSD en Berkeley. Todas las computadoras modernas Macintosh utilizan una versión modificada de FreeBSD. UNIX también es estándar en las estaciones de trabajo operadas por chips RISC de alto rendimiento, como los que venden Hewlett-Packard y Sun Microsystems.





xwindow
Captura de pantalla de X Windows

Muchos usuarios de UNIX, en especial los programadores experimentados, prefieren una interfaz de línea de comandos a una GUI, por lo que casi todos los sistemas UNIX presentan un sistema de ventanas llamado X Window System (también conocido como X11), producido en el M.I.T. Este sistema se encarga de la administración básica de las ventanas y permite a los usuarios crear, eliminar, desplazar y cambiar el tamaño de las ventanas mediante el uso de un ratón. Con frecuencia hay disponible una GUI completa, como Gnome o KDE, para ejecutarse encima de X11, lo cual proporciona a UNIX una apariencia parecida a la Macintosh o a Microsoft Windows, para aquellos usuarios de UNIX que desean algo así.





so para red

Sistema Operativo para una red




Un interesante desarrollo que empezó a surgir a mediados de la década de 1980 es el crecimiento de las redes de computadoras personales que ejecutan sistemas operativos en red y sistemas operativos distribuidos (Tanembaum y Van Steen, 2007). En un sistema operativo en red, los usuarios están conscientes de la existencia de varias computadoras, y pueden iniciar sesión en equipos remotos y copiar archivos de un equipo a otro. Cada equipo ejecuta su propio sistema operativo local y tiene su propio usuario (o usuarios) local.


Los sistemas operativos en red no son fundamentalmente distintos de los sistemas operativos con un solo procesador. Es obvio que necesitan un dispositivo controlador de interfaz de red y cierto software de bajo nivel para controlarlo, así como programas para lograr el inicio de una sesión remota y el acceso remoto a los archivos, pero estas adiciones no cambian la estructura esencial del sistema operativo.


En contraste, un sistema operativo distribuido se presenta a sus usuarios en forma de un sistema tradicional con un procesador, aun cuando en realidad está compuesto de varios procesadores. Los usuarios no tienen que saber en dónde se están ejecutando sus programas o en dónde se encuentran sus archivos; el sistema operativo se encarga de todo esto de manera automática y eficiente.


Los verdaderos sistemas operativos distribuidos requieren algo más que sólo agregar un poco de código a un sistema operativo con un solo procesador, ya que los sistemas distribuidos y los centralizados difieren en varios puntos críticos. Por ejemplo, los sistemas distribuidos permiten con frecuencia que las aplicaciones se ejecuten en varios procesadores al mismo tiempo, lo que requiere algoritmos de planificación del procesador más complejos para poder optimizar la cantidad de paralelismo. Los retrasos de comunicación dentro de la red implican a menudo que estos (y otros) algoritmos deban ejecutarse con información incompleta, obsoleta o incluso incorrecta. Esta situación es muy distinta a la de un sistema con un solo procesador, donde el sistema operativo tiene información completa acerca del estado del sistema.


La Web no es la Red VSAUCE