Professional Documents
Culture Documents
Evolucion Del Sistema Operativo
Evolucion Del Sistema Operativo
• Integrantes:
• Katayama romero jarumi
• Queque Sinacay jean Paul
• Perea Vásquez Isiami Wendi
Tatiana
• Fachin cruz Dayanne Nicole
• Lopez Díaz Cinthia Riley
EVOLUCIÓN DE LOS
SISTEMAS OPERATIVOS
• Usar un computador no siempre fue tan fácil. Los sistemas operativos
surgieron como una necesidad para poder utilizar máquinas muy
complejas en tiempos que se necesitaba personal muy especializado
para poder operarlas. La evolución de los sistemas operativos estuvo,
por lo tanto, muy ligada a las características y necesidades particulares
de las máquinas disponibles. Resulta difícil hablar de los sistemas
operativos sin referirse al mismo tiempo a la evolución del hardware,
pues ambos aspectos han avanzado de la mano durante gran parte de
la historia.
PREHISTORIA DE SISTEMA OPERATIVOS
• La creación de los transistores en los años 1950 revolucionó la construcción de los dispositivos
electrónicos reduciendo drásticamente las tasas de falla respecto al hardware construido con tubos de
vacío y aumentando la velocidad de respuesta. Se empezaron a construir grandes computadores
basados en transistores, conocidas como mainframes. Debido a su costo de construcción, un
computador de este tipo era solamente accesible para grandes corporaciones, gobiernos y
universidades.
• La operación de un mainframe requería la colaboración de varios actores.
Un mainframe ejecuta jobs (trabajos), que consisten en el código de un programa, o una secuencia de
programas. Los programas se ingresan mediante tarjetas perforadas y se escriben en
lenguaje assembler. En 1953, John W. Backus, de IBM, propone una alternativa para hacer más
práctica la descripción de programas en lugar de assembler y desarrolla el FORmula TRANslating
system, conocido como lenguaje FORTRAN, junto con una herramienta para hacer la traducción
hacia assembler llamada compilador. Este trabajo le otorgaría el Turing Award en 1977.
• Un programa escrito en FORTRAN sobre tarjetas perforadas es entregado como input a un lector de
tarjetas. El lector de tarjetas escribe sobre una cinta que se entrega a la máquina principal, la cual
ejecuta las instrucciones, proceso que podía tardar horas dependiendo de la complejidad del cómputo,
y escribe el resultado sobre otra cinta de salida. La cinta de salida es leída por otro dispositivo capaz
de imprimir el contenido de la cinta a un papel. En ese momento termina la ejecución del job.
IZQUIERDA: IBM1402 (CARD READER), IBM1401 (PROCESSING), IBM1403 (PRINTER). DERECHA: IBM7094
Un IBM 1620, como el que está en el DCC. Utiliza words codificados en BCD, y era capaz
de almacenar hasta 20000 digitos. No poseía ALU. Utilizaba tablas de 100 dígitos para
efectuar sumas y restas, y una tabla de 200 dígitos para multiplicaciones. La división se
efectuaba mediante subrutinas de software. Tenía un clock 1MHz, y tiempo de acceso a
memoria de 20usec.
TERCERA GENERACIÓN (1965-1980): CIRCUITOS
INTEGRADOS Y MULTIPROGRAMACIÓN
En los años 1960s, los mainframes de IBM (International Business Machines Corporation), la
compañía constructora de equipamiento computacional más importante de la época, requerían
cada uno un software y periféricos distintos para funcionar, ya que las instrucciones no eran
compatibles. Un programa hecho para un modelo debía ser reescrito ante la introducción de un
nuevo modelo de hardware. La compañía decide unificar el hardware bajo una familia llamada
System/360. Ésta fue la primera línea importante basada en la nueva tecnología de circuitos
integrados capaz de integrar grandes cantidades de pequeños transistores, lo que
proporcionaba una enorme ventaja precio/rendimiento respecto a los transistores tradicionales.
OS/360, y la multiprogramación
• La idea de tener una línea de hardware mutuamente compatible y de propósito general requería un
sistema capaz de funcionar en todos los modelos. Este sistema fue el OS/360. El software resultante
resultó enormemente grande (millones de líneas de assembler) y complejo de desarrollar, con
numerosos bugs, en tiempos en que la ingeniería de software no se desarrollaba como disciplina aún. El
director del proyecto Fred Brooks describió sus experiencias en el libro "The Mythical Man-Month", un
clásico de la ingeniería de software. Sus contribuciones a esta nueva disciplina le valieron el otorgamiento
del Turing Award en 1999.
IBM360. PRIMERA GRAN LÍNEA EN UTILIZAR CIRCUITOS INTEGRADOS
A pesar de todos sus defectos, OS/360 fue ampliamente usado, e introdujo algunas ideas clave en los sistemas
computacionales. Sistemas como el IBM 7094 eran máquinas que procesaban un trabajo simultáneamente. Si
alguna instrucción de ese trabajo requería una lectura de cinta, o alguna operación de I/O, la CPU debía esperar sin
hacer nada (idle) hasta que la operación terminase. Los trabajos científicos suelen ser intensivos en cómputo (CPU-
bound), por lo que esto no era un problema. Sin embargo las aplicaciones comerciales requerían operaciones de I/O
el 80% a 90% de las veces (I/O-bound) por lo que gran parte del tiempo la CPU se encontraba idle.
La solución fue dividir el espacio de memoria en regiones, y asignar un espacio distinto a cada job. Se introdujo un
mecanismo que permitiera que, cada vez que un job estuviese esperando una operación de I/O, el sistema
permitiera que otro job pudiese ocupar la CPU. De esta manera, si hay suficiente jobs en la memoria, sería posible
mantener a la CPU trabajando casi el 100% del tiempo. Este mecanismo fue un enorme avance que ocupamos
hasta el día de hoy, y se llama multiprogramación.
IMPLEMENTAR MULTIPROGRAMACIÓN REQUIERE QUE CADA JOB PUEDA
FUNCIONAR DE MANERA AISLADA DE LOS DEMÁS. SE AGREGÓ EN EL HARDWARE EL
MECANISMO NECESARIO PARA PROVEER ESTA PROTECCIÓN Y EVITAR QUE
UN JOB MALICIOSO PUDIESE LEER O ESCRIBIR EN MEMORIA ASIGNADA A OTRO JOB.
Ante las posibilidades que prometía el timesharing MIT, Bell Labs, y General Electric,
deciden crear un sistema que soporte cientos de usuarios. De la misma manera que
múltiples casas podían tener acceso a la red eléctrica, en este sistema múltiples usuarios
tendrían acceso a tiempo de cómputo (en la actualidad esto se llamaría "Computing Time
as a Service") con tan solo conectarse a este mainframe (una nube de cómputo). El
sistema fue bautizado como MULTICS (MULTiplexed Information and Computing Service).
• MULTICS tuvo un éxito parcial. Además de ser escrito en PL/I, un lenguaje poco popular
y con un compilador deficiente, el proyecto resultó ser sumamente ambicioso para la
época (como la máquina de Babbage) y demasiado complejo, lo que demoró el
desarrollo al punto que Bell Labs y General Electric abandonaron el proyecto. MIT
persistió y el sistema eventualmente fue terminado. Honeywell, la compañía que
continuó las operaciones de General Electric en el área de los computadores, lo adquirió
y consiguió suficientes clientes para hacerlo viable. No alcanzó mucha popularidad pero
su desarrollo tuvo una gran influencia en sus sucesores.
MULTICS. MULTIPLEXED INFORMATION AND COMPUTING SERVICE.
• En Bell Labs, 1969, Ken Thompson y Dennis Ritchie (1941-2011), dos de los científicos que
habían trabajado en MULTICS decidieron desarrollar una versión "reducida" de MULTICS para un
PDP-7 que no estaba siendo usado. Esta versión tendría un diseño mucho más simple y en sus
inicios soportaba solamente a un usuario (uni-task) en contraposición a MULTICS que era multi-
task. Este trabajo fue bautizado como UNICS por UNIplexed Information and Computing
Service como un juego de palabras respecto a MULTICS, y finalmente simplificado como
UNIX.
LA VERSIÓN ORIGINAL DE UNIX, PARA EL PDP-7 Y POSTERIORMENTE PARA EL PDP-11 ESTABA ESCRITA
EN ASSEMBLER. FUE EN ESTE SISTEMA QUE SE DECIDIÓ REESCRIBIRLO EN OTRO LENGUAJE DE MÁS ALTO
NIVEL. INICIALMENTE SE CONSIDERÓ EL LENGUAJE B, UNA VERSIÓN SIMPLIFICADA DE BPCL, OTRO
LENGUAJE YA EXISTENTE. SIN EMBARGO, B NO PODÍA APROVECHAR TODAS LAS CARACTERÍSTICAS DEL PDP-
11, Y SE UTILIZÓ OTRO LENGUAJE DESARROLLADO POR DENNIS RITCHIE: EL LENGUAJE C, CONCEBIDO COMO
UN SUCESOR DE B. EN 1972, DENNIS RITCHIE REESCRIBE UNIX EN EL LENGUAJE C. DE ESTA MANERA UNIX SE
CONVIRTIÓ EN UNO DE LOS PRIMEROS SISTEMAS OPERATIVOS MASIVOS EN SER IMPLEMENTADO EN UN
LENGUAJE DE MAYOR NIVEL QUE ASSEMBLER, Y EL DESARROLLO DE C CONTINUÓ ESTANDO ÍNTIMAMENTE
LIGADO AL KERNEL DE UNIX. THOMPSON Y RITCHIE OBTUVIERON EL TURING AWARD EN 1983.
EL CÓDIGO FUENTE DE UNIX ESTABA DISPONIBLE PÚBLICAMENTE LO QUE PERMITIÓ A
DISTINTAS INSTITUCIONES Y UNIVERSIDADES DESARROLLAR SU PROPIA VERSIÓN
PARA SUS SISTEMAS, CADA UNO INSPIRADO EN LOS MISMOS PRINCIPIOS PERO
INCOMPATIBLES ENTRE SÍ. DE ESTAS VERSIONES, DOS DE LAS MÁS IMPORTANTES QUE
PERDURARON FUERON LA VERSIÓN COMERCIAL DE AT&T LLAMADA SYSTEM V (1983), Y LA VERSIÓN DE LA
UNIVERSIDAD DE CALIFORNIA EN BERKELEY, BSD (BERKELEY SOFTWARE DISTRIBUTION, 1977).
• Componentes del sistema operativo Linux, indicando elementos en user space y en kernel space.
Arquitectura simplificada del kernel de Linux, by ScotXW Own work, CC BY-SA 4.0
EN 1992, ANDREW S. TANENBAUM PUBLICÓ UN MENSAJE EN EL NEWSGROUP COMP.OS.MINIX
CON EL SUBJECT "LINUX IS OBSOLETE", HACIENDO REFERENCIA A LA NATURALEZA MONOLÍTICA
DEL RECIENTEMENTE PUBLICADO LINUX EN CONTRAPOSICIÓN A LA ARQUITECTURA
MICROKERNEL DE MINIX. ESTE MENSAJE MARCÓ EL INICIO DE UN INTERESANTE Y CLÁSICO
DEBATE CONOCIDO COMO TANENBAUM-TORVALDS DEBATE.
• Durante los años 2005 al 2010 y previo a la consolidación de Android existieron diversos esfuerzos por
generar una plataforma opensource basada en el kernel de Linux. Nokia tuvo su intento propio con
Maemo, un kernel monolítico basado en Debian GNU/Linux y con interfaz basada en GNOME para
arquitecturas ARM. Previo a la adopción de Windows Phone, Nokia abandona Maemo y, en conjunto
con Linux Foundation e Intel crea la distribución MeeGo con la intención de servir de plataforma para
dispositivos como smartphones, tablets, smartTVs y netbooks. MeeGo nace como una mezcla de las
plataformas de Nokia (Maemo) y una que estaba desarrollando Intel (Moblin, que a su vez estaba
basado en Fedora). Sin embargo, en 2011, cuando Nokia adopta Windows Phone, abandona MeeGo.
A partir de MeeGo, Intel se une con Samsung y Linux Foundation para desarrollar Tizen. En una línea
paralela, la compañía finlandesa Jolla aprovecha el código opensource de Mer, un fork de MeeGo y
desarrolla Sailfish OS, un kernel monolítico con compatibilidad para Android mediante APIs, soporte
para ARM y x86-64, y un fuerte énfasis en multitasking.
MICROSOFT Y EL WINDOWS PHONE
Microsoft había desarrollado desde 1996 un sistema operativo embebido llamado Windows CE (actualmente
Windows Embedded Compact) diseñado para una especificación de plataformas incialmente denominado
Pocket PC. Los primeros dispositivos con Windows CE se lanzaron en 2002. Windows CE contenía un kernel
híbrido escrito en C y soportaba arquitecturas x86, ARM, MIPS y PowerPC. La serie de sistemas operativos
móviles basados en Windows CE fue conocida como Windows Mobile (incluyendo el media player Zune) y
fue desarrollado hasta 2010. Posteriormente Microsoft reimplementaría su sistema operativo móvil basado en
la línea de Windows NT, dando inicio a Windows Phone, línea que fue descontinuada en 2017 debido al poco
interés de los desarrolladores en generar aplicaciones para esta plataforma ante la dominancia de iOS y
Android.
RIM Y BLACKBERRY OS
En 2002 la compañía canadiense Research In Motion (RIM) desarrolló su propia línea de dispositivos móviles
conocidos como BlackBerry y su propio sistema operativo BlackBerry OS (RIM con el tiempo cambiaría su nombre a
BlackBerry Ltd.). BlackBerry OS era un sistema multitasking con soporte para aplicaciones mediante la plataforma
especial para dispositivos embebidos Java Micro Edition (JavaME). Incluía soporte para WAP, un stack de protocolos
de comunicación para móviles que dejó de ser adoptado cuando los dispositivos móviles fueron suficientemente
poderosos para procesar el tradicional stack TCP/IP. En 2010, BlackBerry OS fue reemplazado por BlackBerry 10, un
sistema basado en el microkernel de tiempo real (RTOS) QNX. Desde 2016, los dispositivos producidos por BlackBerry
empezaron a usar Android en lugar de BlackBerry 10, cuyo soporte ha sido anunciado al menos hasta 2019.
APPLE: EL IPHONE Y IOS
El año 2007 ocurrió la entrada de uno de los principales competidores cuando Apple presentó su
iPhone junto con su sistema operativo iOS (originalmente iPhone OS). iOS, al igual que MacOSX
se basa en el kernel híbrido XNU y el sistema operativo (UNIX-like) Darwin. Desde el año 2010,
con iOS 4, el sistema añadió soporte de APIs para multitasking por parte de aplicaciones de
usuario. Previamente el multitasking estaba restringido solo a ciertos servicios del sistema. La
disponibilidad del iOS SDK (Software Development Kit) atrajo el desarrollo de múltiples
aplicaciones nativas disponibles desde una tienda online (App Store), popularizando rápidamente
el uso del iPhone y posicionándolo como uno de los principales competidores.
ANDROID, LA ENTRADA DE GOOGLE
Meses después del lanzamiento del primer iPhone, un conjunto de compañías lideradas por Google,
incluyendo a HTC, Sony, Dell, Intel, Motorola, Samsung, LG, Nvidia, entre otros, forman la Open Handset
Alliance (OHA). Con el soporte de OHA, Google lanza en 2008 la primera versión de Android, un sistema
operativo monolítico (UNIX-like) de código abierto basado en el kernel Linux. Android inició su desarrollo bajo
la compañía Android, Inc. fundada en 2003. El año 2005 Google adquirió Android, Inc. y fue bajo su alero que
el equipo de desarrollo terminó la primera versión Android 1.0. De manera similar a App Store, Android lanzó
el Android Market (más tarde Google Play Store), y el Android SDK para el desarrollo de aplicaciones
(escritas principalmente en Java, y recientemente en Kotlin) para terceros. El soporte de OHA, integrado por
importantes actores del mercado smartphone fue clave para posicionar a Android como el sistema operativo
dominador en los dispositivos móviles desde el año 2010, con iOS como su único (y distante) competidor real.