Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

CARATULA

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 33

UNIVERSIDAD NACIONAL

PEDRO RUIZ GALLO

FACULTAD DE INGENIERA CIVIL, DE SISTEMAS Y ARQUITECTURA

ESCUELA PROFESIONAL DE INGENIERA DE SISTEMAS

SISTEMAS OPERATIVOS

ALUMNO:

Balczar Blas Josu Alfredo

CURSO:

Taller de Computacin e Informtica Bsica

DOCENTE:

Olavarra Paz Jess

Lambayeque, septiembre del 2017.


Qu es un sistema operativo?

El sistema operativo es el principal programa que se ejecuta en toda computadora de

propsito general. Los hay de todo tipo, desde muy simples hasta terriblemente

complejos, y entre ms casos de uso hay para el cmputo en la vida diaria, ms variedad

habr en ellos. A lo largo del presente texto, no se hace referencia al sistema operativo

como lo ve o usa el usuario final, o como lo vende la mercadotecnia el ambiente

grfico, los programas que se ejecutan en ste, los lenguajes de programacin en los

cuales estn desarrollados y en que ms fcilmente se puede desarrollar para ellos, e

incluso el conjunto bsico de funciones que las bibliotecas base ofrecen son

principalmente clientes del sistema operativo se ejecutan sobre l, y ofrecen sus

interfaces a los usuarios (incluidos, claro, los desarrolladores). Las diferencias en el uso

son slo cuando mucho consecuencias del diseo de un sistema operativo. Ms an,

con el mismo sistema operativo como pueden constatarlo comparando dos

distribuciones de Linux, o incluso la forma de trabajo de dos usuarios en la misma

computadora es posible tener entornos operativos completamente dismiles.

Por qu estudiar los sistemas operativos?

La importancia de estudiar este tema radica no slo en comprender los mecanismos que

emplean los sistemas operativos para cumplir sus tareas sino en entenderlos para evitar

los errores ms comunes al programar, que pueden resultar desde un rendimiento

deficiente hasta prdida de informacin. Como desarrolladores, comprender el

funcionamiento bsico de los sistemas operativos y las principales alternativas que

ofrecen en muchos de sus puntos, o saber disear algoritmos y procesos que se ajusten

mejor al sistema operativo en que vayan a ejecutarse, puede resultar en una diferencia
cualitativa decisiva en el producto final. Parte de las tareas diarias de los administradores

de sistemas incluye enfrentarse a situaciones de bajo rendimiento, de conflictos entre

aplicaciones, demoras en la ejecucin, y otras similares. Para ello, resulta fundamental

comprender lo que ocurre tras bambalinas. Los sistemas de archivos resultan un rea de

especial inters para administradores de sistemas: cmo comparar las virtudes y

desventajas de tantos sistemas existentes, por qu puede resultar conveniente mezclar

distintos sistemas en el mismo servidor, cmo evitar la corrupcin o prdida de

informacin? Lo que, es ms, cmo recuperar informacin de un disco daado? En el

rea de la seguridad informtica, la relacin resulta obvia. Desde el punto de vista del

atacante, si le interesa localizar vulnerabilidades que permitan elevar su nivel de

privilegios, cmo podra lograrlo sin comprender cmo se engranan los diversos

componentes de un sistema? La cantidad de tareas que debe cubrir un sistema operativo

es tremenda, y se vern ejemplos de sitios donde dicho atacante puede enfocar sus

energas. Del mismo modo, para quien busca defender un sistema (o una red), resulta

fundamental comprender cules son los vectores de ataque ms comunes y

nuevamente la relacin entre los componentes involucrados para poder remediar o,

mejor an, prevenir dichos ataques. Y claro est, puede verse al mundo en general, fuera

del entorno del cmputo, como una serie de modelos interactuantes. Muchos de los

mtodos y algoritmos que se abordan en esta obra pueden emplearse fuera del entorno

del cmputo; una vez comprendidos los problemas de concurrencia, de competencia por

recursos, o de proteccin y separacin que han sido resueltos en el campo de los sistemas

operativos, estas soluciones pueden ser extrapoladas a otros campos. El camino por

delante es largo, y puede resultar interesante y divertido.


Funciones y objetivos del sistema operativo

El sistema operativo es el nico programa que interacta directamente con el hardware de

la computadora. Sus funciones primarias son: Abstraccin Los programas no deben tener

que preocuparse de los detalles de acceso a hardware, o de la configuracin particular de

una computadora. El sistema operativo se encarga de proporcionar una serie de

abstracciones para que los programadores puedan enfocarse en resolver las necesidades

particulares de sus usuarios. Un ejemplo de tales abstracciones es que la informacin est

organizada en archivos y directorios (en uno o muchos dispositivos de almacenamiento).

Administracin de recursos Un sistema de cmputo puede tener a su disposicin una gran

cantidad de recursos (memoria, espacio de almacenamiento, tiempo de procesamiento,

etc.), y los diferentes procesos que se ejecuten en l compiten por ellos. Al gestionar toda

la asignacin de recursos, el sistema operativo puede implementar polticas que los

asignen de forma efectiva y acorde a las necesidades establecidas para dicho sistema.

Aislamiento En un sistema multiusuario y multitarea cada proceso y cada usuario no

tendr que preocuparse por otros que estn usando el mismo sistema Idealmente, su

experiencia ser la misma que si el sistema estuviera exclusivamente dedicado a su

atencin (aunque fuera un sistema menos poderoso). Para implementar correctamente las

funciones de aislamiento hace falta que el sistema operativo utilice hardware especfico

para dicha proteccin.

Evolucin de los sistemas operativos

No se puede comenzar a abordar el tema de los sistemas operativos sin revisar

brevemente su desarrollo histrico. Esto no slo permitir comprender por qu fueron

apareciendo determinadas caractersticas y patrones de diseo que se siguen empleando


dcadas ms tarde, sino (como resulta particularmente bien ejemplificado en el discurso

de recepcin del premio Turing de Fernando Corbat, Acerca de la construccin de

sistemas que fallarn, (Corbat 2007)), adecuar un sistema a un entorno cambiante, por

mejor diseado que ste estuviera, lleva casi inevitablemente a abrir espacios de

comportamiento no previsto el espacio ms propicio para que florezcan los fallos.

Conocer los factores que motivaron a los distintos desarrollos puede ayudar a prever y

prevenir problemas.

Proceso por lotes (batch processing)

Los antecedentes a lo que hoy se conoce como sistema operativo pueden encontrarse en

la automatizacin inicial del procesamiento de diferentes programas, surgida en los

primeros centros de cmputo: cuando en los aos cincuenta aparecieron los dispositivos

perforadores/lectores de tarjetas de papel, el tiempo que una computadora estaba

improductiva esperando a que estuviera lista una tarea (como se designaba a una

ejecucin de cada determinado programa) para poder ejecutarla disminuy fuertemente

ya que los programadores entregaban su lote de tarjetas perforadas (en ingls, batches) a

los operadores, quienes las alimentaban a los dispositivos lectores, que lo cargaban en

memoria en un tiempo razonable, iniciaban y monitoreaban la ejecucin, y producan los

resultados. En esta primera poca en que las computadoras se especializaban en tareas de

clculo intensivo y los dispositivos que interactuaban con medios externos eran

prcticamente desconocidos, el papel del sistema monitor o de control era bsicamente

asistir al operador en la carga de los programas y las bibliotecas requeridas, la

notificacin de resultados y la contabilidad de recursos empleados para su cobro. Los

sistemas monitores se fueron sofisticando al implementar protecciones que evitaran la


corrupcin de otros trabajos (por ejemplo, lanzar errneamente la instruccin leer

siguiente tarjeta causara que el siguiente trabajo encolado perdiera sus primeros

caracteres, corrompindolo e impidiendo su ejecucin), o que entraran en un ciclo

infinito, estableciendo alarmas (timers) que interrumpiran la ejecucin de un proceso si

ste duraba ms all del tiempo estipulado. Estos monitores implicaban la modificacin

del hardware para considerar dichas caractersticas de seguridad y ah se puede hablar

ya de la caracterstica bsica de gestin de recursos que identifica a los sistemas

operativos. Cabe aadir que el tiempo de carga y puesta a punto de una tarea segua

representando una parte importante del tiempo que la computadora dedicaba al

procesamiento: un lector de cintas rpido procesaba del orden de cientos de caracteres

por minuto, y a pesar de la lentitud relativa de las computadoras de los aos cincuenta

ante los estndares de hoy (se mediran por miles de instrucciones por segundo, KHz, en

vez de miles de millones como se hace hoy, GHz), esperar cinco o diez minutos con el

sistema completamente detenido por la carga de un programa moderadamente extenso

resulta a todas luces un desperdicio.

Sistemas en lotes con dispositivos de carga (spool)

Una mejora natural a este ltimo punto fue la invencin del spool: un mecanismo de

entrada/salida que permita que una computadora de propsito especfico, mucho ms

econmica y limitada, leyera las tarjetas y las fuera convirtiendo a cinta magntica, un

medio mucho ms rpido, tenindola lista para que la computadora central la cargara

cuando terminara con el trabajo anterior. Del mismo modo, la computadora central

guardaba sus resultados en cinta para que equipos especializados la leyeran e

imprimieran para el usuario solicitante. La palabra spool (bobina) se tom como


acrnimo inverso hacia Simultaneous Peripherial Operations On-Line, operacin

simultnea de perifricos en lnea.

Sistemas multiprogramados

A lo largo de su ejecucin, un programa normalmente pasa por etapas con muy distintas

caractersticas: durante un ciclo fuertemente dedicado al clculo numrico, el sistema

opera limitado por el CPU (CPU-bound), mientras que al leer o escribir resultados a

medios externos (incluso mediante spools) el lmite es impuesto por los dispositivos, esto

es, opera limitado por entrada-salida (I-O bound). La programacin multitareas o los

sistemas multiprogramados buscaban maximizar el tiempo de uso efectivo del procesador

ejecutando varios procesos al mismo tiempo. El hardware requerido cambi fuertemente.

Si bien se esperaba que cada usuario fuera responsable con el uso de recursos, result

necesario que apareciera la infraestructura de proteccin de recursos: un proceso no debe

sobrescribir el espacio de memoria de otro (ni el cdigo, ni los datos), mucho menos el

espacio del monitor. Esta proteccin se encuentra en la Unidad de Manejo de Memoria

(MMU), presente en todas las computadoras de uso genrico desde los aos noventa.

Ciertos dispositivos requieren bloqueo para ofrecer acceso exclusivo/nico: cintas e

impresoras, por ejemplo, son de acceso estrictamente secuencial, y si dos usuarios

intentaran usarlas al mismo tiempo, el resultado para ambos se corrompera. Para estos

dispositivos, el sistema debe implementar otros spools y mecanismos de bloqueo.

Sistemas de tiempo compartido

El modo de interactuar con las computadoras se modific drsticamente durante los aos

sesenta, al extenderse la multitarea para convertirse en sistemas interactivos y

multiusuarios, en buena medida diferenciados de los anteriores por la aparicin de las


terminales (primero teletipos seriales, posteriormente equipos con una pantalla completa

como se conocen hasta hoy). En primer trmino, la tarea de programacin y depuracin

del cdigo se simplific fuertemente al poder hacer el programador directamente cambios

y someter el programa a la ejecucin inmediata. En segundo trmino, la computadora

nunca ms estara simplemente esperando a que est listo un programa: mientras un

programador editaba o compilaba su programa, la computadora segua calculando lo que

otros procesos requirieran. Un cambio fundamental entre el modelo de

multiprogramacin y de tiempo compartido es el tipo de control sobre la multitarea (se

ver en detalle en el captulo 3). Multitarea cooperativa o no apropiativa (Cooperative

multitasking). La implementaron los sistemas multiprogramados: cada proceso tena

control del CPU hasta que ste haca una llamada al sistema (o indicara su disposicin a

cooperar por medio de la llamada yield: ceder el paso). Un clculo largo no era

interrumpido por el sistema operativo, en consecuencia, un error de programador poda

congelar la computadora completa. Multitarea preventiva o apropiativa (Preemptive

multitasking). En los sistemas de tiempo compartido, el reloj del sistema interrumpe

peridicamente a los diversos procesos, transfiriendo forzosamente el control

nuevamente al sistema operativo. ste puede entonces elegir otro proceso para continuar

la ejecucin. Adems, fueron naciendo de forma natural y paulatina las abstracciones que

se conocen hoy en da, como los conceptos de archivos y directorios, y el c- digo

necesario para emplearlos iba siendo enviado a las bibliotecas de sistema y, cada vez ms

(por su centralidad) hacia el ncleo mismo del, ahora s, sistema operativo. Un cambio

importante entre los sistemas multiprogramados y de tiempo compartido es que la

velocidad del cambio entre una tarea y otra es mucho ms rpido: si bien en un sistema
multiprogramados un cambio de contexto poda producirse slo cuando la tarea cambiaba

de un modo de ejecucin a otro, en un sistema interactivo, para dar la ilusin de uso

exclusivo de la computadora, el hardware emita peridicamente al sistema operativo

interrupciones (seales) que le indicaban que cambie el proceso activo (como ahora se le

denomina a una instancia de un programa en ejecucin). Diferentes tipos de proceso

pueden tener distinto nivel de importancia ya sea porque son ms relevantes para el

funcionamiento de la computadora misma (procesos de sistema), porque tienen mayor

carga de interactividad (por la experiencia del usuario) o por diversas categoras de

usuarios (sistemas con contabilidad por tipo de atencin). Esto requiere la

implementacin de diversas prioridades para cada uno de stos.

Y del lado de las computadoras personales

Si bien la discusin hasta este momento asume una computadora central con operadores

dedicados y mltiples usuarios, en la dcada de los setenta comenzaron a aparecer las

computadoras personales, sistemas en un inicio verdaderamente reducidos en

prestaciones y a un nivel de precios que los ponan al alcance, primero, de los aficionados

entusiastas y, posteriormente, de cualquiera.

Primeros sistemas para entusiastas

Las primeras computadoras personales eran distribuidas sin sistemas operativos o

lenguajes de programacin; la interfaz primaria para programarlas era mediante llaves

(switches), y para recibir sus resultados, se utilizaban bancos de LEDs. Claro est, esto

requera conocimientos especializados, y las computadoras personales eran an vistas

slo como juguetes caros.


La microcomputadora Altair 8800, primera computadora personal con distribucin masiva, a la venta a
partir de 1975.

La revolucin de los 8 bits

La verdadera revolucin apareci cuando poco tiempo ms tarde, comenzaron a venderse

computadoras personales con salida de video (tpicamente por medio de una televisin) y

entrada por un teclado. Estas computadoras popularizaron el lenguaje BASIC, diseado para

usuarios novatos en los sesenta, y para permitir a los usuarios gestionar sus recursos

(unidades de cinta, pantalla posicionable, unidades de disco, impresoras, modem, etc.)

llevaban un software mnimo de sistema nuevamente, un proto-sistema operativo.

La Commodore Pet 2001, en el mercado desde 1977, una de las primeras con intrprete de BASIC
La computadora para fines serios: la familia PC

Al aparecer las computadoras personales serias, orientadas a la oficina ms que al

hobby, a principios de los ochenta (particularmente representadas por la IBM PC, 1981),

sus sistemas operativos se comenzaron a diferenciar de los equipos previos al separar el

entorno de desarrollo en algn lenguaje de programacin del entorno de ejecucin. El

papel principal del sistema operativo ante el usuario era administrar los archivos de las

diversas aplicaciones mediante una sencilla interfaz de lnea de comando, y lanzar las

aplicaciones que el usuario seleccionaba. La PC de IBM fue la primera arquitectura de

computadoras personales en desarrollar una amplia familia de clones, computadoras

compatibles diseadas para trabajar con el mismo sistema operativo, y que eventualmente

capturaron casi 100% del mercado. Prcticamente todas las computadoras de escritorio y

porttiles en el mercado hoy derivan de la arquitectura de la IBM PC.

La computadora IBM PC modelo 5150 (1981), iniciadora de la arquitectura predominantemente

en uso hasta el da de hoy

Ante las aplicaciones, el sistema operativo (PC-DOS, en las versiones distribuidas

directamente por IBM, o el que se populariz ms, MS-DOS, en los clones) ofreca la ya
conocida serie de interfaces y abstracciones para administrar los archivos y la

entrada/salida a travs de sus puertos. Cabe destacar que, particularmente en sus primeros

aos, muchos programas se ejecutaban directamente sobre el hardware, arrancando desde

el BIOS y sin emplear el sistema operativo.

El impacto del entorno grfico (WIMP)

Hacia mediados de los ochenta comenzaron a aparecer computadoras con interfaces

usuario grficas (Graphical User Interfaces, textscguis) basadas en el paradigma WIMP

(Windows, Icons, Menus, Pointer; Ventanas, Iconos, Menes, Apuntador), que permitan

la interaccin con varios programas al mismo tiempo. Esto no necesariamente significa

que sean sistemas multitarea: por ejemplo, la primera interfaz de MacOS permita ver

varias ventanas abiertas simultneamente, pero slo el proceso activo se ejecutaba. Esto

comenz, sin embargo, a plantear inevitablemente las necesidades de concurrencia a los

programadores. Los programas ya no tenan acceso directo

Apple Macintosh (1984), populariz la interfaz usuaria grfica (GUI)


a la pantalla para manipular a su antojo, sino que a una abstraccin (la ventana) que poda

variar sus medidas, y que requera que toda la salida fuera estrictamente mediante las

llamadas a bibliotecas de primitivas grficas que comenzaron a verse como parte integral del

sistema operativo. Adems, los problemas de proteccin y separacin entre procesos

concurrentes comenzaron a hacerse evidentes: los programadores tenan ahora que

programar con la conciencia de que compartiran recursos, con el limitante (que no tenan en

las mquinas profesionales) de no contar con hardware especializado para esta proteccin.

Los procesadores en uso comercial en los ochenta no manejaban anillos o niveles de

ejecucin ni unidad de administracin de memoria (MMU), por lo que un programa fallado

o daino poda corromper la operacin completa del equipo. Y si bien los entornos que ms

xito tuvieron (Apple MacOS y Microsoft Windows) no implementaban multitarea real, s

hubo desde el principio sistemas como la Commodore Amiga o la Atari ST que hacan un

multitasking apropiativo verdadero. Naturalmente, ante el uso comn de un entorno de

ventanas, los programas que se ejecutaban sin requerir de la carga del sistema operativo

cayeron lentamente en el olvido.

Convergencia de los dos grandes mercados

Conforme fueron apareciendo los CPU con caractersticas suficientes en el mercado para

ofrecer la proteccin y aislamiento necesario (particularmente,


: Commodore Amiga 500 (1987), la computadora ms popular de la familia Amiga, con amplias
capacidades multimedia y multitarea apropiativa; una verdadera maravilla para su momento

Intel 80386 y Motorola 68030), la brecha de funcionalidad entre las computadoras personales

y las estaciones de trabajo y mainframes se fue cerrando. Hacia principios de los 1990, la

mayor parte de las computadoras de arquitecturas alternativas fueron cediendo a las

presiones del mercado, y hacia mediados de la dcada slo quedaban dos arquitecturas

principales: la derivada de IBM y la derivada de la Apple Macintosh. Los sistemas

operativos primarios para ambas plataformas fueron respondiendo a las nuevas

caractersticas del hardware: en las IBM, la presencia de Microsoft Windows (originalmente

un entorno operativo desde su primera edicin en 1985, evolucionando hacia un sistema

operativo completo ejecutando sobre una base de MS-DOS en 1995) se fue haciendo

prevalente hasta ser la norma. Windows pas de ser un sistema meramente de aplicaciones

propias y que operaba nicamente por reemplazo de aplicacin activa a ser un sistema de

multitarea cooperativa y, finalmente un sistema que requera proteccin en hardware

(80386) e implementaba multitarea apropiativa. A partir del 2003, el ncleo de Windows en

ms amplio uso fue reemplazado por un desarrollo hecho de inicio como un sistema

operativo completo y ya no como un programa bajo MS-DOS: el ncleo de nueva tecnologa

(Windows NT), que, sin romper compatibilidad con los APIs histricos de Windows, ofreci

mucho mayor estabilidad. Por el lado de Apple, la evolucin fue muy en paralelo: ante un
sistema ya agotado y obsoleto, el MacOS 9, en 2001 anunci una nueva versin de su

sistema operativo que fue en realidad un relanzamiento completo: MacOS X es un sistema

basado en un ncleo Unix BSD, sobre el microkernel Mach. Y otro importante jugador que

entr en escena durante los aos noventa fue el software libre, por medio de varias

implementaciones distintas de sistemas tipo Unix, principalmente, Linux y los *BSD

(FreeBSD, NetBSD, OpenBSD). Estos sistemas implementaron, colaborativamente y bajo

un esquema de desarrollo geogrficamente distribuido, software compatible tanto con las PC

como con el que se ejecutaba en las estaciones de trabajo a gran escala, con alta

confiabilidad, y cerrando por fin la divergencia del rbol del desarrollo de la computacin en

fierros grandes y fierros chicos. Al da de hoy, la arquitectura derivada de Intel (y la PC) es

el claro ganador de este proceso de 35 aos, habiendo conquistado casi la totalidad de los

casos de uso, incluso las mquinas Apple. Hoy en da, la arquitectura Intel ejecuta desde

subporttiles hasta supercomputadoras y centros de datos; el sistema operativo especfico

vara segn el uso, yendo mayoritariamente hacia Windows, con los diferentes Unixes

concentrados en los equipos servidores. En el frente de los dispositivos embebidos (las

computadoras ms pequeas, desde microcontroladores hasta telfonos y tabletas), la norma

es la arquitectura ARM, tambin bajo versiones especficas de sistemas operativos Unix y

Windows (en ese orden).

Dispositivos mviles

En los ltimos aos, buena parte del desarrollo en el mundo del cmputo se ha volcado hacia

el modelo de cmputo representado, genricamente, por los dispositivos mviles. Dado el

inters que estas plataformas han despertado, se torna necesario abordar el tema, aunque sea

ms para anotar similitudes que diferencias con el resto de los equipos de cmputo. Para
hacer esto, sin embargo, es necesario primero abordar la definicin: en qu consiste un

dispositivo mvil, cules son los lmites de su definicin, qu fronteras se le pueden

definir? Es difcil encontrar lmites claros y duros para lo que este concepto abarca; en el

transcurso de esta seccin se abordan las caractersticas de las computadoras diseadas no

slo en el nivel del hardware, sino de interfaz usuario, para que su propietario las cargue

consigo y las convierta en un asistente para sus actividades cotidianas, para la organizacin

de su vida diaria. Partiendo de esta definicin se tiene que un telfono inteligente ser

tratado como dispositivo mvil, pero una computadora porttil no, puesto que su interfaz es

la misma de una computadora estndar. Claro, esta definicin indudablemente rpida e

imperfecta deja una gran rea gris, y permite cierta ambigedad. Por ejemplo, las ms

recientes versiones de algunos entornos de usuario (notablemente, la interfaz primaria de

Windows 8, o los entornos GNOME y Unity de Linux) buscan unificar la experiencia,

incorporando conceptos del multitouch a los escritorios y acercando los casos de uso.

Tmense, pues, estos lineamientos como meramente indicativos.

Resea histrica

Tener una plataforma de cmputo mvil ha sido uno de los anhelos ms reiterados del

cmputo; ya en 1975, antes de la aparicin de todos los sistemas reseados en la seccin 1.4

(a excepcin de la Altair 8800) IBM lanz al mercado su primera computadora porttil: La

IBM 5100, de 25 Kg de peso y con una pantalla de 5 pulgadas (equivalente a un telfono

celular grande del da de hoy). Esta computadora tuvo un xito muy limitado en buena

medida por su precio: 9 000 dlares en su configuracin ms bsica la dejaban claramente

fuera del alcance del mercado de los entusiastas de la poca, y la incomodidad de su

pequea pantalla llev al entorno corporativo a preferir seguir usando las minicomputadoras
con terminales estndar para la poca. Este mercado tambin vio una importante

convergencia, en este caso desde abajo: la miniaturizacin vivida en la dcada de los setenta

fue, a fin de cuentas, iniciada por el CPU Intel 4004, diseado expresamente para las

calculadoras Busicom. Durante esa poca nacieron las calculadoras porttiles. stas

comenzaron implementando nicamente las operaciones aritmticas bsicas, pero con el

paso del tiempo aparecieron las calculadoras cientficas, incluyendo operaciones

trigonomtricas. En 1974, Hewlett-Packard lanz al mercado la HP-65 la primera

calculadora de bolsillo plenamente programable. Para 1984, ya ante la franca popularizacin

de las aplicaciones ofimticas, la empresa britnica Psion lanz la Psion Organiser, que se

anunciaba como la primera computadora de bolsillo prctica del mundo: era vendida con

reloj, calculadora, una base de datos sencilla, y cartuchos de expansin con aplicaciones

ejemplo (ciencia, matemticas y finanzas), adems de un entorno de programacin para que

el usuario desarrollara sus propias aplicaciones.

Psion Organiser, anunciada como la primera computadora de bolsillo prctica del mundo en 1984. En la
imagen, un dispositivo de su segunda generacin
El hardware del Organiser original era, claro est, muy limitado. Con slo 4 KB de ROM y 2

KB de memoria no inclua un sistema operativo, y el lenguaje de programacin disponible al

usuario era meramente un ensamblador. No tener un sistema operativo significa que, en vez

de hacer las llamadas al sistema necesarias para realizar transferencias (como se ver en la

secc. 2.7 y en el cap. 7), el programador tena que avanzar y transferir byte por byte. Dos

aos ms tarde, la segunda generacin del Organiser sali al mercado con un sistema

operativo monotarea y mucho mayor espacio de almacenamiento. Varias generaciones ms

tarde, este sistema operativo es el que hacia 1998 se convirti en Symbian, que fuera el

dominante del mercado de celulares durante la mayor parte de la dcada del 2000.

Sharp ZQ-770, diseo bajo uno de los formatos de PDA (Asistente Personal Digital) ms popularizados de
la dcada de los noventa

Siguiendo los pasos del Organiser, muchas otras empresas fueron creando pequeos equipos

con aproximadamente la misma funcionalidad bsica (lista de contactos, notas y agenda) e

interfaz usuario, definiendo el trmino de Asistente Digital Personal (Personal Digital

Assistant, PDA). Hubo diferentes hitos durante la dcada de los noventa, aunque destaca

particularmente la plataforma Palm. Esta fue la primera plataforma con xito al incorporar

una interfaz usuaria tctil con escritura basada en reconocimiento de la letra (que era trazada
por medio de una pluma especial, o stylus, en la pantalla). El siguiente paso natural fue unir

la funcionalidad del cada vez ms popular telfono celular con la del PDA. Ya desde 1996

se comercializaron equipos ofreciendo la funcionalidad integrada, y el trmino Smartphone

(telfono inteligente) se emple por primera vez en 1998. Como se ver en la seccin 1.5.2,

el reto de mantener la sealizacin estable signific que muchos de estos telfonos

resultaban en una suerte de Frankenstein, con dos personalidades claramente diferenciadas.

En el ao 2007, Apple present su hoy icnico iPhone. Desde un punto de vista tcnico, la

principal innovacin de este equipo fue una nueva interfaz grfica denominada multitouch

(multitoque), que permite al usuario interactuar directamente con sus dedos (por medio de

toques combinados o gestos y ya no requiriendo de un stylus) e incluso de la inclinacin del

dispositivo. Y si bien el telfono mismo no represent un salto en las capacidades del

hardware, Apple logr disear una interfaz innovadora como ya lo haba hecho en 1984

con la Macintosh que se convirti rpidamente en estndar para todo un mercado. Hasta

este punto, prcticamente la totalidad de dispositivos en el segmento reconocido como mvil

eran reconocibles por su tamao: casi todos los disposi-

El iPhone, de Apple, introdujo la primera interfaz usuario multitouch y deton la popularidad de los
telfonos inteligentes y con ello, del cmputo mvil
tivos mencionados en esta seccin estn hechos para caber en el bolsillo de una camisa. Sin

embargo, a este segmento deben agregarse las tabletas. La historia de su desarrollo y

adopcin se parecen a la aqu presentada respecto a la interfaz de los telfonos inteligentes

(e incluso, llevada ms al extremo): Es posible encontrar antecedentes desde

1915,numerosas descripciones literarias en la ciencia ficcin a lo largo del siglo XX, y

varias implementaciones funcionales desde inicios de la dcada de los noventa. Sin

embargo, las tabletas parecieron por largos aos estar destinadas a nunca conquistar al

mercado, hasta el ao 2010, en que Apple lanz un equipo con la misma interfaz de su

iPhone, pero del tamao de una computadora porttil estndar. Todos los sistemas

disponibles hoy en da, claro est, tienen muchsima mayor complejidad que la del Psion

Organizer, y hay varias familias de sistemas operativos de uso frecuente; se describirn a

continuacin, y muy a grandes rasgos, slo algunos de los sistemas en uso. En la presente

seccin se enumeran nicamente con su informacin general, y en la siguiente se mencionan

algunas de sus caractersticas tcnicas. iOS

El sistema operativo de Apple, y diseado exclusivamente para el hardware producido por

dicha compaa. Fue el primero en implementar la interfaz usuaria multitouch y, en buena

medida, se puede ver como el responsable de la explosin y universalizacin en el uso de

dispositivos mviles. Al igual que el sistema operativo que emplean para sus equipos de

escritorio, MacOS X, iOS est basado en el ncleo Darwin, derivado de FreeBSD, un

sistema libre tipo Unix.

Android
Diseado por la compaa Google, basa la mayor parte de su operacin en software libre (un

ncleo Linux, mquina virtual Java, y muchas de las bibliotecas de sistema comunes en

sistemas Linux), agregando una capa de servicios propietarios. La estrategia de Google ha

sido inversa a la de Apple: en vez de fabricar sus propios dispositivos, otorga licencias para

el uso de este sistema operativo a prcticamente todos los fabricantes de hardware, con lo

que la amplia mayora de los modelos de telfonos inteligentes y tabletas corren sobre

Android.

Windows Phone

Microsoft ofrece una versin de su sistema operativo, compatible en API con el Windows de

escritorio, pero compilado para procesador ARM. Este sistema operativo no ha logrado

conquistar gran popularidad, en claro contraste con su dominacin en el cmputo tradicional

de escritorio; el principal fabricante que vende equipos con Windows Phone es Nokia (que,

despus de haber sido la compaa lder en telefona, fue adquirida por Microsoft mismo).

Symbian

Si bien este sistema operativo ya est declarado como oficialmente muerto, su efecto en el

desarrollo temprano del segmento fue fundamental, y no puede ser ignorado. Symbian fue la

plataforma principal para Nokia en su poca de gloria, as como para muchos otros fabricantes. Casi

todas las empresas que antiguamente operaban con Symbian han mudado su oferta a sistemas

Android.

Firefox OS

La fundacin Mozilla, responsable del navegador Firefox (y heredera del histrico Netscape) est

intentando entrar al mercado mbil con este sistema, basado (al igual que Android) en el ncleo de
Linux, pero orientado a ofrecer una interfaz de programacin siguiendo completamente los

estndares y lenguajes para uso en la Web. Esta plataforma hace una apuesta mucho ms agresiva

que las dems a un esquema de conexin permanente a la red de datos.

Caractersticas diferenciadoras

Resultar claro, a partir de los sistemas recin presentados, as como la gran mayora de los sistemas

operativos empleados para dispositivos mviles, que la diferenciacin entre el segmento mvil y el

cmputo tradicional no est en el sistema operativo mismo, sino en capas superiores. Sin embargo,

la diferencia va mucho ms all de un cambio en la interfaz usuaria; las caractersticas de estos

dispositivos indudablemente determinan cuestiones de fondo. A continuacin, se exponen algunas

de las caractersticas ms notorias.

Almacenamiento en estado slido

La primera caracterstica notoria al manipular un telfono o una tableta es que ya no se hace con la

nocin de fragilidad que siempre acompa al cmputo: los discos duros son dispositivos de

altsima precisin mecnica, y un pequeo golpe puede significar su avera absoluta y definitiva. Los

dispositivos mviles operan con almacenamiento en estado slido, esto es, en componentes

electrnicos sin partes mviles. La evolucin y las caractersticas del almacenamiento en estado

slido sern cubiertas en la seccin C.1.2. Al estar principalmente orientados a este medio de

almacenamiento, en l- neas generales, los sistemas operativos mviles no emplean memoria

virtual, tema que ser cubierto en la seccin 5.5. No pueden, por tanto, mantener en ejecucin

programas que excedan del espacio real de memoria con que cuente el sistema y esto conlleva

importantes consideraciones de diseo.

Multitarea, pero monocontexto


La forma de uso de las computadoras dio un salto cualitativo, tanto en el mundo corporativo

hacia la dcada de los sesenta como en el personal hacia inicios de los noventa, con la

introduccin de sistemas con capacidades multitarea. Los usuarios se han acostumbrado a

que sus equipos hagan muchas cosas (aparentemente) al mismo tiempo, y es ya una

expectativa comn el poder tener abierta una cantidad arbitraria, a veces incluso excesiva, de

programas en ejecucin, al grado de que prcticamente los usuarios promedio del cmputo

reconocen perfectamente la hiperpaginacin por sus sntomas. La popularizacin del

cmputo mvil llev, sin embargo, a una fuerte reduccin en las expectativas de multitarea.

Esto principalmente por dos razones; la primera es que, al carecer los dispositivos mviles

de memoria virtual, la memoria disponible se vuelve nuevamente un bien escaso, y el

sistema operativo se ve obligado a limitar al nmero de procesos interactivos en ejecucin.

Esta distincin tambin puede explicarse por el modelo de uso de estos dispositivos:

comparadas con las pantallas de equipos de escritorio, donde las pantallas ms

frecuentemente utilizadas son de 17 pulgadas, los telfonos van en general de las 3.5 a las 5

pulgadas. Una interfaz usuaria diseada para un tipo de pantalla no puede resultar

satisfactoria en el otro. Las interfaces usuarias empleadas por los sistemas mviles

abandonan el modelo de interaccin WIMP, as como la metfora del escritorio, para volver

a la de un slo programa visible en todo momento. Al buscar satisfacer las necesidades de

un mercado mucho ms amplio y mucho menos versado en los detalles del cmputo, todas

estas interfaces conllevan importantes simplificaciones. Una de las ms notorias es que los

usuarios ya no solicitan la finalizacin de un programa: los programas van siendo lanzados

(y utilizados uno por uno), y si caben en memoria son mantenidos abiertos para evitar las

demoras de volver a inicializar. El sistema define polticas por medio de las cuales estos programas

sern finalizados y evacuados de la memoria al llegar a determinados umbrales.


Consumo elctrico

Una de las reas en que ms visible ha sido el desarrollo cualitativo durante los ltimos aos

es la optimizacin del consumo elctrico de los equipos de cmputo. Y si bien no puede

negarse la importancia del ahorro elctrico en las oficinas y centros de datos, donde el

trabajo diario cada vez depende ms del cmputo, tampoco puede ignorarse la importancia

de popularizacin de las computadoras porttiles. Y agregando algunos patrones particulares

a estos dispositivos, la popularizacin del cmputo mvil ha llevado a una verdadera

revolucin en este aspecto. El ahorro del consumo elctrico tiene dos principales vertientes:

por un lado, el desarrollo de hardware ms eficiente energticamente, con independencia del

modo en que opere y, por el otro, la creacin de mecanismos por medio de los cuales un

equipo de cmputo pueda detectar cambios en el patrn de actividad (o el operador pueda

indicarle un cambio en la respuesta esperada), y ste reaccione reduciendo su demanda (lo

cual tpicamente se obtiene reduciendo la velocidad de ciertos componentes del equipo). El

primer esquema de ahorro de energa con amplio soporte, tanto por parte de hardware de

diversos fabricantes, como de prcticamente todos los sistemas operativos ampliamente

utilizado, fue APM (Advanced Power Management, Gestin Avanzada de la Energa).

Pasado cierto tiempo, fue reemplazado por ACPI (Advanced Configuration and Power

Interface, Interfaz Avanzada de Configuracin y Energa); la principal diferencia entre

ambas es que, mientras que bajo APM los diferentes niveles de energa se implementaban en

el firmware de la computadora o cada uno de sus dispositivos, en ACPI la responsabilidad

recae en el sistema operativo; esto brinda mucho mayor flexibilidad a la implementacin, a

cambio de una mayor complejidad para los desarrolladores. Pero la verdadera diferencia en

el tema que esta seccin aborda es la frecuencia de los cambios de estado: un servidor o
computadora de escritorio tiene slo un evento constante (el ajuste de frecuencia del

procesador dependiendo de la carga, potencialmente hasta decenas de veces por segundo);

una computadora porttil debe adoptar diferentes perfiles dependiendo de si est conectada a

la red elctrica u operando por batera, o si tiene la tapa (pantalla) abierta o cerrada. Los

usuarios de computadoras porttiles tpicamente buscan trabajar conectados a la red elctrica

tanto como sea posible, dado que es vox populi que esto mejorar la vida til de su batera.

Y si bien estos cambios de entorno se presentan (y guardan una innegable complejidad), su

ocurrencia es muy baja. En el cmputo mvil, los eventos son muchos y muy distintos. En

primer lugar, los dispositivos mviles operan bajo una filosofa de siempre encendido: A

pesar de que el usuario no est atento a su dispositivo, ste tiene que estar encendido y al

pendiente del entorno algunos ejemplos casi obvios:

En caso de entrar una llamada telefnica, tiene que responder inmediatamente

alertando al usuario. La interfaz usuaria del telfono puede parecer apagada, pero su

lgica (y en particular su sealizacin a las distintas redes a las que est conectado) se

mantiene activa.

El equipo tiene que estar siempre alerta a las condiciones cambiantes de red (tanto

telefnica como de datos), midiendo la seal de las antenas celulares ms cercanas;

mantenerse asociado a una antena remota requiere ms energa que a una cercana.

Dado que estos equipos estn diseados para moverse junto con el usuario,

convirtindose en un asistente o una extensin para sus actividades diarias, optimizan

su funcionamiento para operar como norma desde su batera, no conectados a la red

elctrica. Valga en este caso la comparacin: un telfono que brinde menos de un da

de operacin autnoma sera sin duda evaluado como extremadamente incmodo e


imprctico, en tanto una computadora porttil se considera muy eficiente si permite la

operacin autnoma por seis horas.

El ahorro de energa que permite estos patrones de uso no slo se debe al hardware cada vez

ms eficiente que emplean los dispositivos mviles, sino que a una programacin de las

aplicaciones en que los desarrolladores explcitamente buscan patrones eficientes, fcil

suspensin, y minimizando la necesidad de despertar al hardware. desactivar determinada

funcionalidad si est ya en niveles crticos de carga. Con respecto a la red, debe poder

aprovechar las conexiones fugaces mientras el usuario se desplaza, iniciando eventos como

el de sincronizacin. Y encargndose de detener (tan limpiamente como sea posible) los

procesos que van dejando de responder. Por ltimo, claro, la interfaz usuaria: los

dispositivos mviles no tienen una orientacin # nica natural, como s la tienen las

computadoras. Las interfaces usuarias deben pensarse para que se puedan reconfigurar

gilmente ante la rotacin de la pantalla.

El jardn amurallado

Una consecuencia indirecta (y no tcnica) del nacimiento de las plataformas mviles es la

popularizacin de un modelo de distribucin de software conocido como jardn amurallado

o, lo que es lo mismo, una plataforma cerrada. Partiendo de que los telfonos inteligentes, en

un primer momento, y las tabletas y dispositivos similares posteriormente, buscan satisfacer

un mercado mucho mayor al de los entusiastas del cmputo, Apple anunci en julio del 2008

(un ao despus del lanzamiento del iPhone) su tienda de aplicaciones o app store. La

peculiaridad de sta con relacin al modelo de cmputo que ha imperado histricamente es

que, si bien cualquier desarrollador puede crear una aplicacin y enviarla, Apple se reserva
el derecho de aprobarla, o eliminarla en cualquier momento. Esto es, este modelo le permite

erigirse en juez, determinando qu puede o no ejecutar un usuario. Este mismo modelo fue

adoptado por Google para su sistema Android, en un principio bajo el nombre Mercado

Android, y desde el 2012 como Google Play. Microsoft hizo lo propio con su Windows

Phone Store. Este modelo de autorizacin y distribucin de software, sin embargo, rompe

con lo que Jonathan Zittrain (2008) define como la generatividad de los equipos de cmputo

y de la red en general. Para ampliar el debate en este sentido, el libro de Zittrain se ha vuelto

referencia obligada, y est disponible completo en lnea.

Seguridad informtica

No puede perderse de vista la importancia de la seguridad informtica. Puede verse el efecto

de este concepto en prcticamente todos los componentes que conforman a un sistema

operativo. Para no ir ms lejos, las funciones principales cruzan necesariamente por criterios

de seguridad. Algunas consideraciones podran ser, por ejemplo:

Abstraccin: El sistema operativo debe asegurarse no slo de proveer las abstracciones

necesarias, sino tambin de que ninguno de sus usuarios pueda evadir dichas abstracciones.

Por ejemplo, el que un usuario tenga derecho a modificar un archivo que est alojado en

determinada unidad de disco, no debe poder escribir directamente al disco; su acceso debe

estar limitado a la interfaz que el sistema le ofrece.

Administracin de recursos: Si el sistema operativo defini determinada poltica de

asignacin de recursos, debe evitar que el usuario exceda las asignaciones aceptables, sea en

el curso de su uso normal, o incluso ante patrones de uso oportunista Esto es, conociendo
los mecanismos y polticas, un usuario no debe poder lograr que el sistema le permite el uso

por encima de lo definido.

Aislamiento: Si el sistema operativo ofrece separacin entre los datos, procesos y recursos

de sus distintos usuarios, ninguno de ellos debe accidental o intencionalmente tener

acceso a la informacin que otro haya marcado como privada. Adems, retomando el inciso

anterior, ninguno de los usuarios debe poder lograr que, por sus acciones, el sistema penalice

a otros ms all de lo que la poltica de asignacin de recursos estipule.

Claro est, estos tres incisos son presentados nicamente como ejemplo; a lo largo de la obra

se presentarn varios casos relacionados con los distintos temas que se abordan.

Naturalmente, todo problema que se plantee relativo a la seguridad informtica puede ser

abordado (por lo menos) desde dos puntos de vista antagonistas: el de la proteccin, que

busca definir y proteger los aspectos en que intervenga la seguridad para un problema dado,

y el del ataque, que busca las debilidades o vulnerabilidades en determinada implementacin

de un esquema de seguridad que permitan, a quien las conozca, violar los lmites que el

administrador del sistema busca imponerle. Y claro, si bien el tipo de anlisis para estos

puntos de vista es muy distinto, comprender ambos resulta no nicamente legtimo sino

necesario para una formacin profesional completa. Todas las reas que aborda la presente

obra tienen aspectos que pueden analizarse desde la seguridad informtica, y ms que

dedicar un captulo en particular a este tema, la apuesta es por abordar la seguridad de forma

transversal.

Cdigo malicioso
Los sistemas operativos, al igual que todo programa de cmputo, presentan imperfecciones,

errores u omisiones, tanto en su diseo como en su implementacin. El cdigo malicioso

(tambin conocido como malware) consiste en programas diseados para aprovechar dichas

vulnerabilidades para adquirir privilegios de ejecucin o acceso a datos que de otro modo no

habran logrado. Si la vulnerabilidad que aprovecha el cdigo malicioso es resultado de un

error en la implementacin, el desarrollador del sistema operativo tpicamente podr

corregirla y poner esta correccin (coloquialmente denominada parche) a disposicin de los

usuarios; en los sistemas operativos modernos, la instalacin de estas correcciones se efecta

de forma automatizada. Por otro lado, si la vulnerabilidad es consecuencia de una debilidad

en el diseo, su correccin puede ser mucho ms compleja, incluso puede ser imposible de

resolver. Cabe mencionar que una gran cantidad de cdigo malicioso ataca a una capa

particularmente dbil de todo sistema de cmputo: al usuario. Un aspecto frecuente (y de

muy difcil solucin) de estos programas es que engaan al usuario presentndose como

cdigo legtimo, y si ste reacciona como el cdigo malicioso busca, le permitir la

ejecucin en el sistema con sus privilegios. El cdigo malicioso tiende a agruparse y

clasificarse de acuerdo a su comportamiento, particularmente de cara al usuario: virus,

gusanos, caballos de troya, exploits, y muchos ms. Sin embargo, y dado que sus diferencias

radican particularmente en sus mltiples comportamientos ante el usuario o como programa

en ejecucin (y se comportan en lneas generales del mismo modo ante el sistema

operativo).

Organizacin de los sistemas operativos

La complejidad del tema de los sistemas operativos requiere que se haga de una forma

modular. En este texto no se busca ensear cmo se usa un determinado sistema operativo,
ni siquiera comparar el uso de uno con otro (fuera de hacerlo con fines de explicar diferentes

implementaciones). En el nivel que se estudiar, un sistema operativo es ms bien un gran

programa, que ejecuta otros programas y les provee un conjunto de interfaces para que

puedan aprovechar los recursos de cmputo. Hay dos formas primarias de organizacin

interna del sistema operativo: los sistemas monolticos y los sistemas microkernel. Y si bien

no se puede marcar una lnea clara a rajatabla que indique en qu clasificacin cae cada

sistema, no es difcil encontrar lneas bases.

Monolticos La mayor parte de los sistemas operativos histricamente han sido monolticos:

esto significa que hay un slo proceso privilegiado (justamente el sistema operativo) que

opera en modo supervisor, y dentro del cual se encuentran todas las rutinas para las diversas

tareas que realiza el sistema operativo.


Esquematizacin de los componentes en un sistema monoltico.

Microkernel El ncleo del sistema operativo se mantiene en el mnimo posible de

funcionalidad, descargando en procesos especiales sin privilegios las tareas que

implementan el acceso a dispositivos y las diversas polticas de uso del sistema.

Esquematizacin de los componentes en un sistema microkernel.

La principal ventaja de disear un sistema siguiendo un esquema monoltico es la

simplificacin de una gran cantidad de mecanismos de comunicacin, que lleva a una mayor

velocidad de ejecucin (al requerir menos cambios de contexto para cualquier operacin

realizada). Adems, al manejarse la comunicacin directa como paso de estructuras en

memoria, el mayor acoplamiento permite ms flexibilidad al adecuarse para nuevos


requisitos (al no tener que modificar no slo al ncleo y a los procesos especiales, sino

tambin la interfaz pblica entre ellos). Por otro lado, los sistemas microkernel siguen

esquemas lgicos ms limpios, permiten implementaciones ms elegantes y facilitan la

comprensin por separado de cada una de sus piezas. Pueden auto-repararse con mayor

facilidad, dado que en caso de fallar uno de los componentes (por ms que parezca ser de

muy bajo nivel), el ncleo puede reiniciarlo o incluso reemplazarlo.

Sistemas con concepciones hbridas No se puede hablar de concepciones nicas ni de verdades

absolutas. A lo largo del libro se vern ejemplos de concepciones hbridas en este sentido: sistemas

que son mayormente monolticos pero que manejan algunos procesos que pareceran centrales

mediante de procesos de nivel usuario como los microkernel (por ejemplo, los sistemas de archivos

en espacio de usuario, FUSE, en Linux).

Esquematizacin de los componentes en un sistema hbrido.


Bibliografa
Cobo, P. M. (1999). Sistemas operativos: teora y practica . Madrid: Diaz de Santos.

Prez, J. C. (2007). Sistmas operativos: una vision aplicada . New York: McGraw-Hill.

Tanenbaum, A. S. (2003). Sistemas Operativos Modernos. Mexico: Pearson Educacion de Mexico, S.A de
C.V.

También podría gustarte