Anda di halaman 1dari 77

TRABAJO DE COMPILACIN BIBLIOGRFICA SISTEMAS

OPERATIVOS
Carlos Duvan Lp! Monsalv "#$%&"
Gr'an Alonso Tru()llo Fran*o +#$%%&
Jos Dan)l Pr! Ro,r)-u!
Prsn.a,o a / Carlos 0rn1n G2'!
SISTEMAS OPERATIVOS
3NIVERSIDAD NACIONAL
MANI4ALES
&##+
1
5NDICE
A6 In.ro,u**)n77777777777777777766 8
B6 0)s.or)a777777777777777777777 %
C6 Ds*r)p*)n , los S)s.'as Opra.)vos777777 "
D6 S)s.'as Opra.)vos E'99),os77777777766 "
S)s.'as Opra.)vos CE77777777777776 ::
:6 S)s.'a Opra.)vo ;)n,o<s CE
i. Presentacin 14
ii. Estructura y Componentes del sistema 16
iii. Plataformas sobre las que trabaja. 21
iv. nstalacin.. 22
v. !estin de procesos y del procesador.. 24
vi. !estin de memoria. 26
vii. !estin de memoria au"iliar #1
viii. !estin de entrada y salida. ##
i". !estin de comunicaciones y se$uridad.. #4
". %oporte a tiempo real #&
"i. 'n(lisis comparativo con )inu" y *indo+s ,P. #-
"ii. .tros aspectos... 4/
&6 S)s.'as Opra.)vos E'99),os
i. Presentacin 01
ii. Estructura y Componentes del sistema 02
iii. Plataformas sobre las que trabaja. 0/
iv. nstalacin.. 61
2
v. !estin de procesos y del procesador.. 6#
vi. !estin de memoria. 66
vii. !estin de memoria au"iliar 6/
viii. !estin de entrada y salida. &1
i". !estin de comunicaciones y se$uridad.. &1
". %oporte a tiempo real &2
"i. 'n(lisis comparativo con )inu" y *indo+s ,P. &0
"ii. .tros aspectos... &6
3
A6 INTROD3CCIN
Por los dispositivos a los que va enfocado2 y las funcionalidades de estos2 no
se trata de %istemas .perativos comunes donde se e"i$en unos requisitos
t3cnicos m4nimos y a partir de a542 pod4amos tener un equipo con mejores o
peores prestaciones2 pero siempre con las mismas funcionalidades. 6a que
todos los dispositivos tienen una arquitectura de 5ard+are id3ntica.
7esde el punto de vista de 5ard+are como de soft+are2 pues al$unos servir(n
para controlar un 5orno de microondas o un cepillo de dientes. 8ientras que
otros2 ser(n pr(cticamente ordenadores personales2 pero de reducidas
prestaciones y con una interfa9 simplificada. )os 5allaremos con pantallas de
todos los tama:os y colores2 e incluso t(ctiles2 al$unos con botones2 otros con
teclados2 al$unos se tendr(n que poder atar a una mu:eca y otros deber(n
viajar por el espacio.
Por estos y otros motivos que iremos viendo a lo lar$o de este documento
veremos los sistemas operativos con una arquitectura modular y una $ran
compatibilidad con el 5ard+are que 5ay en el mercado. 'l$o que consi$ue
$racias al sistema de drivers ofrecido2 as4 como sus capacidades
multiprocesador y soporte para 64bits. Con un n;cleo muy robusto y potente2
sobretodo administrando la memoria y manejando los procesos e 5ilos de
ejecucin utili9ando prioridades2 para as4 poder trabajar en tiempo real2 un
requisito que para al$unos dispositivos empotrados es completamente
indispensable2 como por ejemplo un sistema de frenado autom(tico para un
automvil.
Por otro lado2 los sistemas operativos al trabajar sobre dispositivos mviles que
normalmente se alimentar(n por bater4a2 deber( administrar bien la ener$4a
para ofrecer una buena autonom4a a la ve9 que proporciona una buena
conectividad y una correcta administracin de redes.
Por eso es muy importante facilitar el desarrollo tanto del propio sistema
operativo como de las aplicaciones de este2 o al menos esto parece pensar la
$ente de 8icrosoft2 que ofrece facilidades nunca vistas con este objetivo.
4
B6 0ISTORIA
' finales de los 41<s el uso de computadoras estaba restrin$ido a aquellas
empresas o instituciones que pod4an pa$ar su alto precio2 y no e"ist4an los
sistemas operativos. En su lu$ar2 el pro$ramador deb4a tener un conocimiento y
contacto profundo con el 5ard+are2 y en el infortunado caso de que su
pro$rama fallara2 deb4a e"aminar los valores de los re$istros y paneles de luces
indicadoras del estado de la computadora para determinar la causa del fallo y
poder corre$ir su pro$rama2 adem(s de enfrentarse nuevamente a los
procedimientos de apartar tiempo del sistema y poner a punto los
compiladores2 li$adores2 etc= para volver a correr su pro$rama2 es decir2
enfrentaba el problema del procesamiento serial > serial processin$ ?.
)a importancia de los sistemas operativos nace 5istricamente desde los 01<s2
cuando se 5i9o evidente que el operar una computadora por medio de tableros
enc5ufables en la primera $eneracin y lue$o por medio del trabajo en lote en
la se$unda $eneracin se pod4a mejorar notoriamente2 pues el operador
reali9aba siempre una secuencia de pasos repetitivos2 lo cual es una de las
caracter4sticas contempladas en la definicin de lo que es un pro$rama. Es
decir2 se comen9 a ver que las tareas mismas del operador pod4an plasmarse
en un pro$rama2 el cual a trav3s del tiempo y por su enorme complejidad se le
llam @%istema .perativo@. 's42 tenemos entre los primeros sistemas operativos
al Aortran 8onitor %ystem > A8% ? e B%6%.
Posteriormente2 en la tercera $eneracin de computadoras nace uno de los
primeros sistemas operativos con la filosof4a de administrar una familia de
computadorasC el .%D#61 de B8. Aue este un proyecto tan novedoso y
ambicioso que enfrent por primera ve9 una serie de problemas conflictivos
debido a que anteriormente las computadoras eran creadas para dos
propsitos en $eneralC el comercial y el cient4fico. 's42 al tratar de crear un solo
sistema operativo para computadoras que pod4an dedicarse a un propsito2 al
otro o ambos2 puso en evidencia la problem(tica del trabajo en equipos de
an(lisis2 dise:o e implantacin de sistemas $randes. El resultado fue un
sistema del cual uno de sus mismos dise:adores patenti9 su opinin en la
portada de un libroC una 5orda de bestias pre5istricas atascadas en un foso de
brea.
5
%ur$e tambi3n en la tercera $eneracin de computadoras el concepto de la
multipro$ramacin2 porque debido al alto costo de las computadoras era
necesario idear un esquema de trabajo que mantuviese a la unidad central de
procesamiento m(s tiempo ocupada2 as4 como el encolado >spoolin$ ? de
trabajos para su lectura 5acia los lu$ares libres de memoria o la escritura de
resultados. %in embar$o2 se puede afirmar que los sistemas durante la tercera
$eneracin si$uieron siendo b(sicamente sistemas de lote.
En la cuarta $eneracin la electrnica avan9a 5acia la inte$racin a $ran
escala2 pudiendo crear circuitos con miles de transistores en un cent4metro
cuadrado de silicn y ya es posible 5ablar de las computadoras personales y
las estaciones de trabajo. %ur$en los conceptos de interfaces ami$ables
intentando as4 atraer al p;blico en $eneral al uso de las computadoras como
5erramientas cotidianas. %e 5acen populares el 8%E7.% y FG, en estas
m(quinas. Hambi3n es com;n encontrar clones de computadoras personales y
una multitud de empresas peque:as ensambl(ndolas por todo el mundo.
Para mediados de los -1<s2 comien9a el au$e de las redes de computadoras y
la necesidad de sistemas operativos en red y sistemas operativos distribuidos.
)a red mundial nternet se va 5aciendo accesible a toda clase de instituciones y
se comien9an a dar muc5as soluciones > y problemas ? al querer 5acer convivir
recursos residentes en computadoras con sistemas operativos diferentes. Para
los /1<s el paradi$ma de la pro$ramacin orientada a objetos cobra au$e2 as4
como el manejo de objetos desde los sistemas operativos. )as aplicaciones
intentan crearse para ser ejecutadas en una plataforma espec4fica y poder ver
sus resultados en la pantalla o monitor de otra diferente >por ejemplo2 ejecutar
una simulacin en una m(quina con FG, y ver los resultados en otra con 7.%
?. )os niveles de interaccin se van 5aciendo cada ve9 m(s profundos.
En los ;ltimos 11 a:os el mundo de las comunicaciones 5a cambiado
dr(sticamente. ' partir del a:o 1//# con el sur$imiento de la ***2 una buena
parte de la poblacin del mundo tuvo acceso a una red de datos $lobal que
durante muc5o tiempo fue de uso e"clusivo de la comunidad acad3mica
universitaria y del departamento de defensa de los Estados Fnidos de 'm3rica.
Este acercamiento masivo 5acia esta red de redes conocida como nternet2
trajo consi$o muc5as ventajas2 la mas importante de estas es sin duda la
posibilidad de ac5icar las distancias. )a *orld *ide *eb2 permiti a los
usuarios de la red acceder de manera simple a una $ran cantidad de
informacin e incluso de una manera sencilla colocar la propia informacin al
alcance de todos los dem(s usuarios. El nave$ado se volvi una 5erramienta
de uso cotidiano en el 5o$ar.
6
Con el tiempo nternet permiti reali9ar tareas que 5ace 11 a:os demandar4an
d4as u 5oras en unos pocos minutos y dio ori$en a nuevas ideas. )a posibilidad
de actuar a distancia usando a nternet como medio para poder reali9ar
operaciones de control o mantenimiento tambi3n empe9 a cobrar vi$encia. 6
es sobre esto lo que versa una parte importante de este trabajo2 que toma
como punto de partida la posibilidad y el
alcance de usar a nternet como un medio de f(cil acceso para permitir el
control y el mantenimiento de dispositivos electrnicos. Por ejemplo usando un
simple nave$ador se puede tener un panorama completo y en tiempo real del
estado de una planta industrial2 una finca o el sistema de se$uridad de una
vivienda2 y esto puede ser controlado desde cualquier parte del mundo que
ten$a una cone"in a nternet disponible.
)os sistemas embebidos se encuentran disponibles a cada comento de nuestra
vida. El 5orno microondas2 el auto2 el ascensor2 el equipo de audio2 el avin son
controlados por computadoras que normalmente no poseen una pantalla2 un
teclado o disco r4$ido2 y no responden a lo que com;nmente denominamos PC.
7
C 6Ds*r)p*)n , los S)s.'as Opra.)vos
D6 S)s.'as opra.)vos '99),os
%e entiende por sistemas embebidos a una combinacin de 5ard+are y
soft+are de computadora2 sumado tal ve9 a al$unas pie9as mec(nicas o de
otro tipo2 dise:ado para tener una funcin espec4fica.
%e refieren a los dispositivos2 instrumentos o las $randes estructuras de
in$enier4a D sistemas que son capaces de tratar una o varias tareas
preestablecidas. El equipo de control todo es construido o en @incrustados@ en
el dispositivo.
Hel3fonos mviles y asistentes di$itales personales >P7'? son ejemplos de
dispositivos con sistemas embebidos. 'mbos reali9an un determinado n;mero
de tareas que son controladas por una computadora incorporada en el sistema.
%istemas de $u4a inercial utili9ado para la nave$acin a3rea o como parte del
paquete de la orientacin de los misiles y bombas inteli$entes2 son ejemplos de
instrumentos con sistemas embebidos. Fn sistema de control de tr(fico >que
controla a distancia los sem(foros2 sin necesidad de intervencin 5umana? es
un ejemplo de una $ran estructura con una in$enier4a de sistemas embebidos.
En verdad2 la l4nea entre @incrustados@ los sistemas y los sistemas de propsito
$eneral >que puede o no contener un sistema embebido? se est( convirtiendo
en borrosa a medida que la tecnolo$4a avan9a.
Cara*.r=s.)*as , los S)s.'as E'99),os
)a principal caracter4stica de un sistema embebido es que se supone que
manejar unas simples tareas2 a pesar de los pasos involucrados en la
manipulacin o el cumplimiento de esa tarea puede ser tan complejo como
cualquier pro$rama de ordenador. Fn controlador de videojue$o2 por ejemplo2
se puede decir que tienen tareas simples E y car$ar el jue$o permiten al ju$ador
controlar a trav3s de comandos introducidos a trav3s del auricular. En verdad2
sin embar$o2 un jue$o >los jue$os m(s recientes2 especialmente construido
para la ,Ebo" o P%#? pasa por una serie de medidas y acciones que requieren
la mayor cantidad de poder de procesamiento como un equipo.
8
Entre las caracter4sticas de los modernos sistemas embebidos son
nterfaces de Fsuario
%istemas simples que se derivan de Auncionalidad limitada
Plataformas de CPF con microprocesadores o microcontroladores
Pla.a>or'as
L)nu?
)inu" para los dispositivos embebidos comen9 con el soporte del Iernel y el
compilador para los microprocesadores m(s populares de #2 bitsC "-62 'J82
Po+erPC2 8P% y %K. 6 lue$o continu con la aparicin de diferentes
distribuciones de )inu" con soporte para caracter4sticas espec4ficas de los
sistemas embebidos. !racias a la disponibilidad del cdi$o fuente2 a la
ausencia de LroyaltiesM y al soporte de los micros y tecnolo$4as modernas2 )inu"
est( actualmente atacando de forma fero9 el mercado de los JH.%.
;)n,o<s CE6
'unque 8icrosoft 5a mantenido a los fabricantes de sistemas operativos
alternativos a *indo+s contra la pared en lo que se refiere a equipos de
sobremesa2 su posicin en la batalla por la supremac4a en el terreno de los
sistemas operativos para dispositivos que no fueran PC era vulnerable.
7e a54 que 8icrosoft da un paso m(s en este sector2 lan9ando la versin para
dispositivos embebidos. Esta decisin parece ir en consonancia con las
predicciones que apuntan a una pro$resiva inclusin de microprocesadores en
casi cualquier tipo de aparatos >fri$or4ficos2 coc5es2 etc?. 'dem(s2 con esta
iniciativa 8icrosoft 5ace frente a la competencia sur$ida por parte2 por ejemplo2
de )inu" que2 se$;n muc5os analistas2 permite reducir costes2 ya que no car$a
el precio de los royalties.
Hambi3n e"iste la opcin de utili9ar un sistema propietario como los
desarrollados por la compa:4a *ind Jiver %ystems cuyo punto fuerte es su
$ran capacidad para trabajar en tiempo real2 su alta resistencia a fallos y la
posibilidad de procesar comandos de forma inmediata. %er4a el caso2 por
ejemplo2 de aparatos m3dicos que deben ser muy fiables y r(pidos.
Dos
El 7.% est( estrec5amente li$ado al pro$resivo desarrollo de los
microprocesadores de arquitectura "-6 de ntel. 6 es que es un sistema
operativo que 5ay que conocer porque si$ue estando en vi$or $racias a su
9
estabilidad. NOu3 por qu3 es tan estableP Pues porque se desarrollaba en
paralelo con la tecnolo$4a de ntel e B8 y porque es un sistema operativo muy
simple2 monousuario y monotarea. En otras palabras2 7.% slo ejecuta un
pro$rama cada ve9. Es obvio2 que para un ordenador personal el 7.% resulta
bastante in;til. Pero Ny para un dispositivo electrnicoP
Java
)a tecnolo$4a Qava es cada ve9 m(s utili9ada en sistemas embebidos
avan9ados2 debido a sus capacidades in5erentes de soporte de red2
optimi9acin de dispositivos y procesado de datos. )a mayor4a de las
caracter4sticas de la plataforma Qava %E pueden ser a5ora empleadas para el
desarrollo embebido2 $racias a la capacidad cada ve9 mayor del nuevo
5ard+are disponible en el mercado
10
S)s.'as opra.)vos CE
*indo+s CE es un inte$rante de la familia *indo+s que tiene un objetivo
especial2 proveer un moderno sistema operativo de plataforma cru9ada2
multi5ilado y de tama:o peque:o.
Cuando se 5abla de tama:o2 se refiere a la cantidad de memoria y de
almacenamiento necesario para alber$ar al sistema.
8ientras se desarrollaba *indo+s CE se le dio el nombre de Pe$asus y junto a
3l se estaba dise:ando un nuevo dispositivo que lo tendr4a m(s tarde como
sistema operativo. ' este dispositivo se le llam Kand5eld PC >KPC? o PC de
bolsillo
Es un sistema operacional vi$oroso2 en tiempo real2 para el desarrollo ($il de
dispositivos de ultima $eneracin conectados2 inteli$entes y compactos. Rste
incluye el soft+are necesario para crear dispositivos basados en el *indo+s
CE2 adicionando un conjunto completo de 5erramientas de desarrollo para la
construccin de productos de dise:o sofisticados2 con aplicaciones poderosas
para rodar en el 5ard+are m(s actual.
Cara*.r=s.)*as
*indo+s CE es un ejemplo t4pico de sistema operativo orientado a
computadores empotrados y aplicaciones de tiempo real. En SSEETR son
especialmente interesantes caracter4sticasC
%e 5a portado a m(s de 161 modelos de microcontroladores de #2 y
64 bits. Estos modelos est(n entre los m(s avan9ados y con mejores
prestaciones entre los procesadores para %%EEHJ. *indo+s CE da
un soporte bastante completo a las caracter4sticas m(s avan9adas
que encontramos en computadores empotrados2 tanto de los
procesadores como de otros elementos 5ard+areC control avan9ado
de alimentacin2 multitarea2 manejo de memoria virtual2 discos de
estado slido2 dispositivos multimedia2 cone"iones inal(mbricas2 etc.
11
%e 5a portado a m(s de 161 modelos de microcontroladores de #2 y
64 bits. Estos modelos est(n entre los m(s avan9ados y con mejores
prestaciones entre los procesadores para %%EEHJ. *indo+s CE da
un soporte bastante completo a las caracter4sticas m(s avan9adas
que encontramos en computadores empotrados2 tanto de los
procesadores como de otros elementos 5ard+areC control avan9ado
de alimentacin2 multitarea2 manejo de memoria virtual2 discos de
estado slido2 dispositivos multimedia2 cone"iones inal(mbricas2 etc.
Es muy modular. 7isponemos de m(s de 211 componentes que
permiten ajustar los servicios que da el sistema operativo al 5ard+are
de la plataforma >memoria disponible2 tipo de memoria2 dispositivos
de entradaDsalida2 etc.? y a las necesidades de las aplicaciones.
)a 'P de *indo+s CE est( pensada para facilitar la portabilidad con
los sistemas operativos *indo+s para %%P!. En teor4a2 es
compatible con la 'P +in#2C las llamadas a sistema operativo desde
una aplicacin se 5ar4an de la misma forma2 independientemente del
sistema operativo que estemos usando
Pla.a>or'a ;)n,o<s CE6
Hodo SOTR impone unos requerimientos m4nimos sobre el 5ard+are donde
ejecuta. )os m(s importantes son el tipo de procesador y la cantidad de
memoria.
*indo+s CE soporta m(s de 161 modelos de procesadores2 pertenecientes a 0
tipos de arquitecturas distintasC 'J82 8P%2 Po+erPC2 %K y "-6 >modo
prote$ido?. Fna lista completa y actuali9ada puede encontrarse en [WCELP].
%on procesadores con una serie de caracter4sticas esenciales para este %.C
Pueden ejecutar cdi$o de #2 bits >es decir2 son capaces de manejar
datos y direcciones de #2 bits de forma efectiva?
Hienen soporte de multitarea.
Hienen unidad de manejo de memoria >88F?. )os puntos anteriores son
comunes a pr(cticamente todos los de #2 bits >y al$unos de 16?. %in
embar$o2 no es tan 5abitual encontrar 88F en un microcontrolador.
*indo+s CE no puede ejecuta en microcontroladores sin 888 pues usa
memoria virtual pa$inada.
)a cantidad de memoria necesaria para almacenar el sistema operativo
depende de los mdulos y funciones que necesite la plataforma. )a versin
m4nima del %.2 que incluye el Iernel y sistema de fic5eros >servicios que
12
veremos en la si$uiente seccin?2 ocupa unos 211 SB si se compila para un
"-6 en versin Jelease >411 SB en versin 7ebu$?. Fna confi$uracin con el
m("imo n;mero de mdulos puede lle$ar casi a los #1 8B en una compilacin
en modo debu$ para procesadores de la familia 8P%
S)s.'as Opra.)vos T)'po Ral
Fn sistema operativo de tiempo real es un sistema operativo que 5a sido
desarrollado para aplicaciones de tiempo real. Como tal2 se le e"i$e correccin
en sus respuestas bajo ciertas restricciones de tiempo. %i no las respeta2 se
dir( que el sistema 5a fallado. Para $aranti9ar el comportamiento correcto en el
tiempo requerido se necesita que el sistema sea predecible >determinista?.
Cara*.r=s.)*as
Fsado t4picamente para aplicaciones inte$radas2 normalmente tiene las
si$uientes caracter4sticasC
Go utili9a muc5a memoria
Cualquier evento en el soporte f4sico puede 5acer que se ejecute una
tarea
8ultiEarquitectura >puertos de cdi$o para otro tipo de FCP?
8uc5os tienen tiempos de respuesta predecibles para eventos
electrnicos
Procedimiento concurrente
nterfa9 5ard+are
Hiempo de reaccin antes de los eventos
'rquitectura distribuida
Bases de datos
13
SISTEMA OPERATIVO ;INDO;S CE
Prsn.a*)n6
*indo+s CE es el sistema operativo de 8icrosoft incrustado modular de tiempo
real para dispositivos mviles de #2Ebits inteli$entes y conectados. *indo+s
CE combina la compatibilidad y los pin$ a servicios de aplicacin avan9ados de
*indo+s con soporte para m;ltiples arquitecturas de CPF y opciones incluidas
de comunicacin y redes para proporcionar una fundacin abierta para crear
una variedad de productos. *indo+s CE impulsa a los dispositivos electrnicos
del cliente2 terminales *eb2 dispositivos de acceso a nternet2 controladores
industriales especiali9ados2 computadoras de bolsillo2 dispositivos de
comunicacin incrustados e incluso consolas de video jue$os como fue en el
caso de la %e$a 7reamcast >1//& E 2111? con procesador %K4 de 12- Bits que
ya con un sistema operativo propio2 inclu4a compatibilidad con los Iits para
desarrollo de soft+are de *indo+s CE.
Esta plataforma modular permite a los desarrolladores crear soft+are para que
la nueva $eneracin de dispositivos mviles de #2Ebits se inte$re con *indo+s
e nternet.
*indo+s CE no es un subconjunto de *indo+s ,P2 o de *indo+s GH2 sino
que fue desarrollado a base de nuevas arquitecturas y una nueva plataforma
de desarrollo. 'un as4 mantiene cierta cone"in con sus 5ermanos. *indo+s
CE tiene sus propias 'Ps para desarrollo2 y necesita sus propios drivers para
el 5ard+are con el cual va a interactuar. *indo+s CE no es un sinnimo de
*indo+s ,P en forma peque:a2 incrustada o modular.
*indo+s CE tambi3n 5a permitido la creacin de un sistema denominado
'utoPC 2 que consiste en un PC empotrado en un automvil y que va ubicado
donde normalmente va una radio. 7e esta manera permite controlar la radio2 el
reproductor de C7 y revisar el correo electrnico. *indo+s CE tambi3n permite
la creacin de aplicaciones en tiempo real.
14
)a ;ltima versin del *indo+s CE actualmente es *indo+s 8obile 6.12
Fp$rade de *indo+s 8obile 6.12 sucesor de *indo+s 8obile 0.12 y sirve tanto
para PocIet PC >P7'? como para %martP5one.
Cabe destacar que este sistema operativo es el @n)*o producto de 8icrosoft
que se distribuye junto con el cdi$o fuente2 y usa una licencia llamada %5ared
%ource2 as4 pues permite al usuario final modificar el cdi$o fuente sin notificar
al propietario.
Qusto cuando los pro$ramadores se estaban acostumbrando a *indo+s /" y
*indo+s GH2 8icrosoft 5a a$re$ado un nuevo 5ermanoC *indo+s CE. %in
embar$o este nuevo inte$rante de la familia *indo+s tiene un objetivo
especial.
En los ;ltimos a:os se 5a visto que *indo+s /0 y *indo+s /- se dedican a
entre$ar compatibilidad con las aplicaciones y 5ard+are e"istentes2 mientras
intentan entre$ar nuevas caracter4sticas como la multitarea.
El objetivo de *indo+s GH es convertirse a lar$o pla9o en el mejor sistema
operativo de empresa. %in embar$o2 *indo+s CE tiene otro objetivoC proveer
un moderno sistema operativo de plataforma cru9ada2 multi5ilado y de tama:o
peque:o. Esta ;ltima caracter4stica es la principal diferencia con *indo+s /0 y
*indo+s GH. Cuando se 5abla de tama:o2 se refiere a la cantidad de memoria
y de almacenamiento necesario para alber$ar al sistema operativo.
8ientras se desarrollaba *indo+s CE se le dio el nombre de Pe$asus y junto a
3l se estaba dise:ando un nuevo dispositivo2 que tendr4a m(s tarde a *indo+s
CE como sistema operativo. ' este nuevo dispositivo se le llam Kand5eld PC
>KPC? o PC de bolsillo. Es as4 como el KPC ser4a la primera de muc5as
plataformas en aceptar el uso de *indo+s CE. )a anterior fi$ura muestra un
KPC.
*indo+s CE tambi3n funciona con otros dispositivos denominados PalmEsi9e
PC o @PC del porte de la palma@2 que son m(s peque:os que los KPC y que
carecen de teclado2 reempla9ado por un reconocimiento de un sistema de tacto
y un panel de entrada que aparece en pantalla.
)os dispositivos para *indo+s CE se sirven de bater4as para poder durar 21
5oras con uso continuo o una semana si el uso es discontinuo. Como una re$la
$eneral se puede decir que las m(quinas *indo+s CE tiene bater4as con vida
m(s corta.
' diferencia de *indo+s /" o GH2 el sistema operativo *indo+s CE no tiene
que ser reiniciado cada ve9 que el usuario lo desea utili9ar. 7e 5ec5o2 se
pueden confi$urar las m(quinas para que se reemprendan instant(neamente a
15
la respuesta al input del usuario2 y el sistema vuelve al estado justo antes de
apa$arse.
El sistema operativo no viene en discos2 ni en C7EJ.8 sino que lo
encontraremos en una peque:a tarjeta que se inserta en un KPC o en un
PalmEsi9e PC.
Es.ru*.ura A Co'ponn.s ,l s)s.'a

*indo+s CE es un sistema operativo modular compuesto de varios elementos
soft+are. Estos elementos son interfaces compatibles con *in#2 y estas
interfaces permiten que cada uno de los elementos soft+are puedan inte$rarse
entre s4. Cada elemento comprende varios componentes de nivel m(s bajo y
los dise:adores del sistema tienen la posibilidad de incluir o e"cluir estos
componentes de nivel m(s bajo se$;n sus necesidades.
Es posible que un desarrollador e"cluya mdulos como F%EJ y !72
obteniendo as4 un *indo+s CE sin interfa9 de usuario. Esta caracter4stica
permite a5ora2 que *indo+s CE funcione en sistemas empotrados >Embedded
%ystems? en los cuales todo es controlado mediante memoria J.8 y no 5ay
interfa9 de usuario2 ya que por lo $eneral los sistemas empotrados son
automati9aciones donde no 5ay intervencin 5umana.
*indo+s CE debido a su tama:o2 es ideal para reali9ar trabajo en tiempo real=
permite llevar la 'P *in#2 a sistemas automati9ados de tiempo real.
Comen9ando por el fondo2 los principales elementos que conforman el sistema
operativo sonC
E )a capa de abstraccin .E8 denominada .') >.E8 'bstraction
)ayer?2 que incluye la administracin de poder2 los drivers de dispositivos
y los servicios de las tarjeta de PC >PC Card?=
E E) Sernel de *indo+s CE2 F%EJ2 !72 sistemas de arc5ivos y bases
de datos.
E )os protocolos de comunicaciones J7' y HCPDP=
E )as distintas 'Ps=
E )a conectividad remota2 nternet E"plorer para *indo+s CE
16
E El s5ell.
OAL A A,')n)s.ra*)n , Po,r6
El .') permite a los dise:adores adaptarse a su plataforma 5ard+are y
proveer funciones de administracin de poder espec4ficas. *indo+s CE no
requiere un estructura de interrupciones o una proyeccin de memoria
est(ndar. En cambio2 los dise:adores escriben peque:as rutinas de servicio de
interrupciones en la capa .') de *indo+s CE que permiten que el sistema
operativo se ejecute un cualquier confi$uracin de 5ard+are. )a administracin
de poder incluye la caracter4sticas @encendido instant(neo@ permitiendo que los
dispositivos *indo+s CE sean apa$ado y lue$o encendidos instant(neamente
si el dispositivo tiene J'8 no vol(til >respaldada con bater4as?.
Dr)vrs A Srv)*)os , PC Car,6
)os dispositivos de *indo+s CE pueden contener dos tipos de drivers de
dispositivos como drivers incorporados para el 5ard+are que est( siempre
presente en dispositivo como el teclado en un KPC2 y drivers instalables en
tiempo de ejecucin para perif3ricos que pueden a$re$arse. *indo+s CE 1.11
directamente soporta varios tipos de dispositivos2 tales como teclados2 mouse2
paneles de tacto2 puertos seriales2 mdems2 pantallas2 slots de PC Card2
procesadores de audio2 parlantes2 puertos paralelos2 disco 'H' o unidades de
@flas5 card@. )os dise:adores pueden f(cilmente a$re$ar nuevos tipos de
dispositivos.
Para todos los drivers de dispositivos soportados2 *indo+s CE tiene un
conjunto bien definido de 77 o 7evice 7river nterfaces >nterfaces del 7river
del 7ispositivo? para los cuales los dise:adores escriben. )os drivers de
dispositivos corren como procesos normales en el sistema2 con acceso a todos
los servicios del sistema operativo. Esto permite que las rutinas de servicio de
interrupcin que t4picamente @despiertan@ a los drivers de dispositivos sean
simples y r(pidosC el 5ilo del driver 5ace la mayor4a del trabajo.
*indo+s CE provee un subconjunto de servicios de PC Card y de %ocIets de
*indo+s. Permitiendo que PC Cards tales como tarjetas de mdems
inal(mbricos o tarjetas de flas5 memory sean utili9ados.
17
Brnl6
El Sernel de *indo+s CE fue escrito espec4ficamente para dispositivos @no
PC@.
mplementa el modelo de proceso2 5ilo y memoria virtual de *in#2. 'l i$ual que
*indo+s GH y *indo+s /"2 presenta un sistema multitarea con desalojo
basado en prioridad2 tambi3n provee una rica variedad de primitivas de
sincroni9acin2 incluyendo sem(foros2 mute" y eventos.
El Sernel de *indo+s soporta la ejecucin de pro$ramas en J.8 o J'8.
Hambi3n implementa pa$inacin bajo demanda para las aplicaciones que se
almacenan comprimidas yDo se almacenan en un medio que soporta ejecucin
en el lu$ar >como lo es para J'8 o J.8?. El Iernel tiene una rutina de bajo
nivel de servicios de interrupcin y baja latencia de 5ilo >a los 5ilos se les puede
asi$nar la CPF y 5ace cambio de conte"to en menos de 111 microse$undos en
un KPC a ## 859?. Esto permite que *indo+s CE sea utili9ado en muc5os
tipos de sistemas de tiempo real.
3SER A GDI6
)os componentes de F%EJ y !7 de *indo+s CE proveen la funcionalidad
b(sica para la interfa9 de usuario2 si la 5ay. En *indo+s CE 1.112 una pantalla
de escala de $rises es soportada por !7. F%EJ de *indo+s CE e"porta las
mismas caracter4sticas de interfa9 de usuario de *in#2 presentes en la versin
F%EJ de *indo+s GHD/". )as principales caracter4sticas sonC administracin
de eventos2 controles de interfa9 de usuario2 cajas de di(lo$o2 comunicacin
entre procesos2 entre otras. %e incluye soporte para FGC.7E.
Al'a*Cn , O9(.os6
)os componentes de 'lmac3n de .bjetos de *indo+s CE proveen
almacenamiento persistente para aplicaciones y datos. )os datos persistentes
est(n usualmente contenidos en memoria no vol(til2 tales como J'8
respaldada por bater4as o flas5 memory. Cuando se utili9a J'8 que tambi3n
se usa para las aplicaciones que se ejecutan2 el dise:ador puede ajustar la
cantidad de J'8 utili9ada por el 'lmac3n de .bjetos >los usuarios tambi3n
pueden reali9ar esto?. El 'lmac3n de .bjeto est( compuesto de tres clases de
18
componentesC sistemas de arc5ivos2 el re$istro y bases de datos. En *indo+s
CE 1.112 e"isten tres tipos de sistemas de arc5ivosC un sistema de arc5ivos
basado en J.82 un sistema de arc5ivos basado en J'82 y un sistema de
arc5ivo A'H para las unidades de disco.
)a funcionalidad de bases de datos de *indo+s CE no tienen un corolario
como en *indo+s GH o *indo+s /0. )a base de datos provee almac3n2
acceso y ordenamiento de objeto. %e utili9 inicialmente en el KPC para cosas
como libro de direccin y apuntes. Fna caracter4stica clave de las bases de
datos2 el sistema de arc5ivos y el re$istro es que ellos est(n prote$idos contra
un @reset@ imprevisto. %i ocurre un @reset@ durante una escritura al almac3n de
objeto2 *indo+s CE ase$ura que el almac3n no estar( corrupto2 ya sea
completando la operacin cuando el sistema se reinicie o retrocediendo al
;ltimo estado estable conocido antes de la interrupcin.
TCPDIPE PPPE A IrDA6
)os protocolos de comunicaciones de *indo+s CE 1.11 proveen conectividad
a los PCs de escritorio *indo+s2 nternet2 y a otros dispositivos *indo+s CE.
)a pila de protocolo de comunicaciones para las cone"iones es el protocolo
est(ndar de nternet2 HCPDP2 acompa:ado de PPP. HCPDP y PPP se utili9an
cuando se aplica la caracter4stica @Cone"in 7irecta mediante Cable@ entre
PCs *indo+s2 as4 como tambi3n a5ora se utili9a para comunicar un
dispositivo *indo+s CE con nternet a trav3s de un mdem o una )'G.
*indo+s CE tambi3n incluye un est(ndar infrarrojo >J7'2?.
APIs6
*indo+s CE e"porta un subconjunto de *in#2 'P. 7entro de este
subconjunto se incluyen sobre 011 de las m(s utili9adas 'P#s de *in#2.
'plicaciones como PocIet *ord y PocIet E"cel 5an sido escritas con este
subconjunto.
Qunto con los protocolos de comunicaciones2 *indo+s CE provee varias de las
'Ps familiares para comunicaciones de *indo+s2 incluyendo *indo+s
%ocIets2 H'P4 y Fnimodem.
Con*.)v),a, R'o.a
Para posibilitar aplicaciones de conectividad2 *indo+s CE e"porta J'P o
Jemote 'ccess 'P >'P de 'cceso Jemoto? a un PC con *indo+s a trav3s de
%ocIets. El PC a su ve9 importa esa 'P y puede manipular al dispositivo KPC.
Fna aplicacin en un PC2 como el E"plorador de KPC2 utili9a J'P para
manipular el almac3n de objeto del dispositivo *indo+s
CE. )os arc5ivos puede mover 5acia y desde el dispositivo *indo+s CE2 las
bases de datos pueden actuali9arse2 el re$istro puede ser modificado y
revisado a trav3s de la cone"in.
19
8ediante la utili9acin de H'P2 esta cone"in puede reali9arse remotamente a
trav3s de una l4nea telefnica.
In.rn. E?plorr para ;)n,o<s CE
)a conectividad a nternet es un mdulo de *indo+s CE. 'unque est(
destinado paradispositivos con pantalla2 los componentes de nternet E"plorer
pueden utili9arse para conse$uir informacin a trav3s de nternet a;n sin la
nave$acin de las p($inas de ***2 no es un requerimiento.
SFll6
*indo+s CE 1."" viene con la ya familiar interficie de *indo+s2 como lo
muestra la anterior fi$ura.
Pero2 muc5os sistemas empotrados >embedded? que utili9an *indo+s CE no
tendr(n este s5ell2 o qui9(s no tendr(n nin$;n s5ell >o ni siquiera pantalla?. %in
embar$o2 para aquellos sistemas que necesitan una @looI@ *indo+s2 el s5ell de
*indo+s CE provee una e"periencia similar a la de *indo+s GH 4.1 y
*indo+s /". *indo+s CE est( disponible en una variedad de idiomas.
RGur)')n.os , 0ar,<ar para ;)n,o<s CE :6?
Como m4nimo *indo+s CE debe tener un procesador2 memoria y un reloj de
tiempo real. Jealmente no se necesita t3cnicamente nada m(s2 pero
obviamente un n;mero importante de otros dispositivos tendr( un n;mero de
perif3ricos. )os procesadores soportados2 son el GEC 4111 8P%2 P5illips #/11
8P% y el KH'CK %K#.
)a memoria necesaria para *indo+s CE es totalmente dependiente de los
componentes que el dise:ador del sistema seleccion. Por ejemplo2 un sistema
de bajo nivel que slo utili9a el Iernel2 la pila de comunicaciones requiere
menos de la mitad de un me$abyte de J.8 y 206 SB de J'8. )os
componentes en un *indo+s CE de un KPC2 con todos los componentes de
*indo+s CE activos toma 2 8B de J.82 y al arranque ya consume
012 SB de J'8. Pero cuando se a$re$an *ord y E"cel y resto de las
aplicaciones se requieren 4 8B de J.8 y 2 8B de J'82 con un 1 8B
destinado al almacenamiento de datos.
20
Pla.a>or'as
Hodo SOTR impone unos requerimientos m4nimos sobre el 5ard+are donde
ejecuta. )os m(s importantes son el tipo de procesador y la cantidad de
memoria.
*indo+s CE soporta m(s de 161 modelos de procesadores2 pertenecientes a 0
tipos de arquitecturas distintasC 'J82 8P%2 Po+erPC2 %K y "-6 >modo
prote$ido?. Fna lista completa y actuali9ada puede encontrarse en [WCELP].
%on procesadores con una serie de caracter4sticas esenciales para este %.C
Pueden ejecutar cdi$o de #2 bits >es decir2 son capaces de manejar
datos y direcciones de #2 bits de forma efectiva?
Hienen soporte de multitarea.
Hienen unidad de manejo de memoria >88F?. )os puntos anteriores son
comunes a pr(cticamente todos los de #2 bits >y al$unos de 16?. %in
embar$o2 no es tan 5abitual encontrar 88F en un microcontrolador.
*indo+s CE no puede ejecuta en microcontroladores sin 888 pues usa
memoria virtual pa$inada.
)a cantidad de memoria necesaria para almacenar el sistema operativo
depende de los mdulos y funciones que necesite la plataforma. )a versin
m4nima del %.2 que incluye el Iernel y sistema de fic5eros >servicios que
veremos en la si$uiente seccin?2 ocupa unos 211 SB si se compila para un
"-6 en versin Jelease >411 SB en versin 7ebu$?. Fna confi$uracin con el
m("imo n;mero de mdulos puede lle$ar casi a los #1 8B en una compilacin
en modo debu$ para procesadores de la familia 8P%
21
Ins.ala*)n6
)a $ran variedad de 5ard+are sobre el que funcionar( *indo+s CE requiere de
al$o m(s que los drivers que incluye2 que no son pocos2 junto con interfaces
espec4ficos para flujos de datos y drivers de muestra como base para los
desarrolladores. Por lo que *indo+s CE 6.1 adem(s acepta tanto drivers por
capas > 877 y P77? como monol4ticos.
877 si$nifica Model evice river. Estos drivers2 se basan en modelos2 pues
contienen un cdi$o que es com;n para todos los drivers de un determinado
tipo. )laman a funciones P77 para acceder al 5ard+are2 conect(ndose a la
capa P77 para definir las funciones 77%! que el 877 espera llamar de la
capa P77. )os 877 tambi3n proporciona al %. las funciones 77 > evice
river "nterface# $ pueden conectarse con m;ltiples P77s sin requerir
cambios en la mayor4a de los casos2 pues en caso de no ser as4 tendr4amos
problemas para mi$rarlos a futuras versiones. )os 877s pueden contener
cualquier %H.
P77 si$nifica Platform ependent river% El cdi$o es espec4fico para una
plataforma concreta. 's4 que dependiendo de la plataforma de 5ard+are2
deber(n ser modificados. Est(n espec4ficamente dise:ados para trabajar con
implementaciones de los 877s. 'l contrario que los drivers monol4ticos
e"ponen las funciones 77% que llama el 877.
)os 7rivers monol4ticos son una combinacin de 877 y P77 en un solo driver.
'5ora que ya sabemos cmo es cada tipo de driver debemos aprender a
utili9arlos convenientemente. Fsando drivers por capas slo tendremos que
modificar el P772 pero un driver por capas a:ade sobrecar$a a las llamadas
del sistema2 porque los 877 tienen que reali9ar llamadas a los P77. Por su
lado2 drivers monol4ticos optimi9an el rendimiento2 ya que al estar todos
en uno no se tienen que reali9ar llamadas entre ellos. 's4 que2 adem(s de ser
m(s simples2 tambi3n son m(s eficientes. Pero como contrapartida los drivers
monol4ticos son m(s dif4ciles de mi$rar a futuras versiones de *indo+s CE2
porqu3 este sistema operativo utili9a en su mayor parte drivers divididos en
877 y P77. En todo caso ya sea usando drivers monol4ticos o por capas
podemos basar la implementacin en el cdi$o fuente de los drivers de
22
muestra que se incluyen en *indo+s CE que en al$una ocasin nos a5orrar(
un buen trabajo.
El 7evice 8ana$er2 5ace el papel de director de orquestra2 es el componente
responsable de manipular los drivers de dispositivos y sus interfaces2
decidiendo en todo momento qu3 drivers car$ar y utili9ando el re$istro del %.
para encontrarlos. El 7evice 8ana$er de *indo+s CE tiene la misma
confi$uracin b(sica que el de *indo+s de escritorio2 pero con un espacio
muc5o m(s limitado que debe tenerse muy en cuenta a la 5ora de a:adir
entradas.
T Dv*or/ funcionalidad del n;cleo de 7evice 7rivers.
T Ior'/ Proporciona la funcionalidad de entradaDsalida y por lo tanto es un
componente obli$atorio que no nos podemos a5orrar.
T P')> A nop')>/ Proporciona la interfa9 para los puntos de entrada de los
7))s
'dem(s del 7evice mana$er tambi3n car$an drivers el Ale %ystem y el !*E%.
Ainalmente2 si no 5emos tenido suficiente con los drivers e"puestos 5asta
a5ora2 tambi3n e"iste el &ser Mode river que nos permite car$ar un driver
intermedio en modo usuario. Estos drivers no pueden acceder directamente al
5ard+are pero pueden dar m(s estabilidad en al$unos tipos de driver. 'dem(s2
5ay un reflector en el Sernel que permite que un driver en modo usuario trabaje
como si fuera en modo Sernel. En la fi$ura 1& tenemos un peque:o esquema
del funcionamiento de los drivers en *indo+s CE 6.1.
23
Gs.)n , pro*sos A ,l pro*sa,or
*indo+s CE2 soporta una $ran variedad de procesadores para ser
implementado en el m("imo n;mero de dispositivos que pueda 5aber2 5aya o
5abr( en el mercadoC soporta 'J82 ,-62 Po+erPC2 8P%2 ,scale y Jenesas
%uperK2en el a:o 2112 representaban un total del 60U de las ventas de
procesadores a nivel mundial.
Hambi3n debemos tener en cuenta que es normal encontrarnos con
dispositivos empotrados que disponen de m(s de un procesador y que adem(s
no suelen ser i$uales2 al contrario de lo que pasa con los PCs2 donde es
frecuente el uso de multiprocesador >o multin;cleo?2 pero donde siempre son
copias id3nticas los unos de los otros.
El sistema de $estin de procesos e 5ilos de ejecucin de *indo+s CE 2 es
ori$inario de *indo+s GH. 's4 que su principal caracter4stica es la de permitir a
un proceso2 la ejecucin de m(s de un 5ilo de ejecucin al mismo tiempo2
a5orrando as4 memoria del sistema. 'fortunadamente no todo es de los
tiempos de *indo+s GH de *indo+s CE2 proporciona 2 !B de memoria virtual
por proceso2 5asta un m("imo de #2111 procesos y un n;mero m("imo de
5ilos de ejecucin2 que depender( de la memoria f4sica instalada en el sistema.
Para controlar estos estados y ofrecer el preciado tiempo de respuesta acotado
que nos permite decir que *indo+s CE es un sistema operativo 'ard Real
Time% *indo+s CE tiene una pro$ramacin preemtiva para los procesos e
5ilos de ejecucin que permite Vju$arW con 206 niveles de prioridad2 que van del
1 al 200 y donde el 1 es el m(s prioritario y se ejecutar( 5asta terminar por
completo. El resto de niveles2 implicaran a los procesos tener que competir
para ser ejecutados2 ya que cada prioridad por encima de 1 tiene asi$nado un
tiempo de ejecucin limitado y variable de entre 1ms i 111ms2 y en caso de
empate entre prioridades2 se desempata aleatoriamente a favor de uno de los
procesos.
)as prioridades del 1 al /6 est(n reservadas para drivers en tiempo real alto2
muy e"i$entes. 7el /& al 102 para los drivers por defecto de dispositivos
24
basados en *indo+s CE. 7el 10# al 24& para drivers en tiempo real bajo >poco
e"i$entes ?. 6 del 24- al 200 para prioridades que no requieran tiempo real. En
la fi$ura 1# podemos ver un ejemplo donde tenemos # 5ilos de ejecucinC
t5read 1 prioridad 1 y t5read 2 y # misma prioridad y se puede ver el
comportamiento del sistema ante este escenario.
%e$uramente2 m(s de uno se 5aya percatado que por muc5os niveles de
prioridad y tiempos de ejecucin variables que implemente *indo+s CE 2 se
puede dar el caso2 que un 5ilo de ejecucin con menor prioridad2 bloquee un
recurso que necesita uno de mayor prioridad2 de forma que se invertir4a la
prioridad asi$nada a estos 5ilos ori$inalmente. Para solucionar este problema2
*indo+s CE permite al 5ilo de ejecucin con menor prioridad2 5eredar la
prioridad del de mayor prioridad 5asta que libere el recurso bloqueado.
'dem(s2 el pro$ramador de 5ilos de ejecucin2 puede cambiar su
pro$ramacin para adaptar el resto de 5ilos de ejecucin al nuevo escenario
resultante y as4 evitar nunca indeseable inversin de prioridad.
Para que la comunicacin entre procesos sea tan completa como lo es la
$estin de prioridades2 *indo+s CE soporta tanto el modelo de memoria
compartida como el de paso por mensajes2 pudi3ndose compartir pilas en la
memoria entre varios procesos. Hambi3n 5ay mapeo de los arc5ivos en
memoria y se pueden usar punteros para acceder directamente a ella.
*indo+s CE utili9a 8%8O >8icrosoft 8essa$e Ouein$? para las
comunicaciones entre diferentes servicios2 que es un componente de *indo+s
que permite enviar y recibir mensajes entre aplicaciones o servicios. 6 por si
5ay que poner un poco de orden2 para la $estin de interrupciones el Sernel
dispone del "nterrupt Service 'andler >%K? que es el encar$ado de decidir que
%J llamar en cada momento. El uso de
"nterrups Service Routine >%J? junto con los "nterrup Service T(read >%H?
permite administrar las tareas de forma ptima y acotar la latencia de las
interrupciones
7onde el %J manipula las tareas b(sicas de interrupcin iniciando las %H y
esperando de nuevo nuevas %J independientemente de la %H llamada.
25
Gs.)n , ''or)a
)a arquitectura de memoria de *indo+s CE consta de J'8 y J.8. El J.8
contiene el n;cleo del sistema y un conjunto de aplicaciones2 como e"plorador2
calculadora etc.
El sistema siempre comprime los arc5ivos en la memoria J'82 $eneralmente
con una ra9n 2 a1.
*indo+s CE en un sistema basado en la J.8 de las tiendas de todo el
sistema operativo2 as4 como las aplicaciones que vienen con el sistema. %i el
pro$rama mdulo no est( comprimido2 los pro$ramas basados en J.8 se
ejecutan en el lu$ar. %i la J.8 basado en el mdulo se comprime2 se
descomprime y lue$o pa$inado en la J'8. Hodos lectura D escritura de datos
se 5a car$ado en la memoria J'8. 7e compresin en la J.8 es controlado
por el .E8. Ejecucin de pro$ramas directamente desde J.8 $uarda el
pro$rama de J'8 y reduce el tiempo necesario para iniciar una aplicacin2
porque el pro$rama no tiene que ser copiado en la memoria J'8 antes de que
sea lan9ado. Pro$ramas que est(n en J.82 pero no fi$uran en el objeto o en
un almac3n de memoria flas5 de almacenamiento de la tarjeta no se ejecutan
en el lu$ar2 son pa$inado en la J'8 y lue$o ejecutados. 7ependiendo de la
.E8 y las opciones en un controlador espec4fico basado en *indo+s CE
plataforma2 este mdulo puede ser pa$inado en la demanda2 una p($ina puede
ser llevado en un momento en2 o de todo el mdulo se puede car$ar en J.8 a
la ve9.
)a memoria J'8 en un dispositivo *indo+s CE2 se divide en dos (reasC el
almac3n de objetos y la memoria del pro$rama. El objeto se parece a un
almac3n permanente2 virtual del disco J'8. 7atos en el almac3n de objetos
se mantiene cuando el sistema est( suspendido2 y dispositivos de copia de
26
se$uridad suele tener un suministro de ener$4a para la memoria J'82 para
preservar los datos si la principal fuente de alimentacin se interrumpe
temporalmente. Cuando se reanud la operacin del sistema busca un objeto
creado previamente almacenar en la memoria J'8 y si uno lo utili9a se
encuentra.
El resto de la J'8 se dedica a la memoria del pro$rama. )a memoria del
pro$rama funciona como la memoria J'8 en las tiendas personales
computersit pilas y pilas para las aplicaciones que se est3n ejecutando.
Efica9 con la versin #.12 el tama:o m("imo de la memoria J'8 del sistema
de arc5ivos es de 206 8B2 con un tama:o m("imo de #2 8B para un solo
arc5ivo. En las versiones anteriores de *indo+s CE2 el l4mite de la memoria
J'8 y un ;nico sistema de arc5ivo es de 16 8B. Hambi3n efica9 con la
versin #.12 el n;mero m("imo de objetos en la tienda de objetos se 5a
aumentado de 60.0#6 a apro"imadamente 4.111.111.
El l4mite entre el objeto y el pro$rama de almacenar la memoria J'8 es mvil.
El usuario puede mover la l4nea divisoria entre el objeto y el pro$rama de
almac3n de memoria J'8 utili9ando el %istema de Control Panel de si la
plataforma ofrece esta opcin. *indo+s CE en al$unas plataformas basadas
en el sistema2 bajo condiciones de baja memoria2 el usuario puede pedir
permiso para tomar al$;n objeto almacenar memoria J'8 para su uso como
pro$rama de J'8 para satisfacer una solicitud de la memoria J'8 de
necesidades.
27
El 'ar*a,o HCEH Mo,lo , ''or)a
's42 mientras que la memoria est( todav4a dividida en n;cleo de 2 !B y 2 !B
de espacio en espacio de usuario
En CE 2 cada proceso se da de 1 !B de memoria virtual por s4 mismo. Esto se
puede 5acer2 porque todo el proceso de 1 !B de espacio de memoria se
enciende cuando los procesos de cambio. 7ado que los procesos ya no
comparten el espacio de usuario con los dem(s2 el n;mero m("imo de
procesos en ejecucin ya no est( limitado por el n;mero de franjas 5orarias
proceso puede meter en el espacio de usuario. %i bien la comerciali9acin CE
5abla de la posibilidad de ejecutar m(s de #2.111 procesos2 la verdadero l4mite
es establecido por la memoria f4sica disponible. )a cantidad de memoria f4sica
que tiene que ser asi$nados a cada proceso en ejecucin causar( que queda
sin memoria muc5o antes de lle$ar a #2I procesos. Pero2 vamos a decir el
nuevo modelo de n;cleo y memoria ya no es el factor limitante cuando se trata
de procesos que se est(n ejecutando.
Espa*)o , usuar)o
'5ora2 ec5emos un vista9o m(s de cerca la forma en que la memoria virtual
est( dividido en CE.
Comen9ando en la parte inferior2 5asta lle$ar a la marca de 1 !B2 se encuentra
el espacio de proceso mencionado anteriormente. En la marca de 1 !B2 nos
encontramos con 012 8b para el uso de dllC s2 y por encima2 tenemos 2068b
de memoria J'8 respaldado arc5ivos mapeados. En la parte superior2
tenemos 2008b de un sistema compartido montn2 dejando a 1 8b de
proteccin unmapped espacio entre el espacio de usuario y el espacio del
n;cleo.
'5ora2 el proceso de 1 !B de espacio en el mapa el proceso de datos y cdi$o
ejecutable2 su m(quina virtual de las asi$naciones y cualquier arc5ivo de copia
de arc5ivos de memoria asi$nada. 7ll en el (rea2 la dllC s tendr(n la misma
carto$raf4a a trav3s de procesos para la optimi9acin ra9ones. 8ientras que el
cdi$o compartido a trav3s de las p($inas son los procesos2 los datos que las
28
p($inas en este (mbito ser(n ;nicas p($inas f4sicas para cada proceso. )a dllC
s est(n car$adas desde la parte inferior y crecer2 a diferencia de la pila de
estilo2 de arriba 5acia abajo de car$a utili9ados en CE 0 y anteriores.
)a copia de la memoria J'8 asi$nada arc5ivo se asi$na la 9ona en un lu$ar
fijo en el espacio de usuario. Esto se 5ace por ra9ones de compatibilidad 5acia
atr(sE. Por ;ltimo2 el sistema compartido montn es un (rea donde .%
componentes y procesos pueden intercambiar datos de manera se$ura. %i
bien .% componentes tienen permisos de lectura y escritura a esta (rea2 los
procesos que ejecutan en el espacio de usuario se puede dar slo lecturaE2 o
acceso de lectura y escritura.
Espa*)o ,l Irnl
El modelo de memoria para el n;cleo espacial tambi3n 5a cambiadoC
%i bien parece bastante familiarElas dos 9onas de 012 8b de cac5eEcac5e y un
acceso a la memoria f4sica no 5an cambiado2 y la trampa2 el espacio es todav4a
all4 en la parte superior de la pila2 5ay al$unos cambios importantes que debe
se se:al. En primer lu$ar 5ay a5ora una 9ona de 12-8b de espacio para el
n;cleo ,P 7))C s directamente por encima de la marca de 1 !B2 y por encima
de 12-8b que est( reservado para uso de los objetos de la tienda.
nmediatamente por encima de este2 5ay dos ranuras de 2068b de memoria
virtual del n;cleo.
'5ora2 Nqu3 son ,P dllC s y la tienda de objetos del n;cleo 5aciendo en el
espacioP Bueno2 8% din<t parada con slo cambiar el modelo de memoria
virtual2 que tambi3n 5an revisado el sistema operativo tra9ado= en CE2 la
mayor4a de los conductores2 el sistema de arc5ivos2 y se ejecuta en el n;cleo
$+es espacioX 7i$o la mayor4a de los conductores2 porque en realidad todav4a
se puede optar por ejecutar los conductores en el espacio de usuario. Kay un
par de ra9ones para el traslado de los tres servidores en el n;cleo. Fna de las
ra9ones es para minimi9ar $astos $enerales que participan en este proceso
entre llamadas. %i se est( ejecutando en el espacio del n;cleo2 5ay menos
proceso de intercambio para 5acer frente a si funcion en el espacio de
usuario. Yeremos m(s de cerca la estructura y el nuevo n;cleo os dise:o en
otro art4culo.
29
Pun.ro n la *las)>)*a*)n CE $
7e 1 !B de memoria virtual para cada proceso y 0128b de dlls no es
ciertamente una mala cosa2 pero el abandono de la ranura de la arquitectura
implica tambi3n una mayor sobrecar$a en determinadas operaciones. %i bien
el cambio y en el proceso @mapa de memoria virtual puede parecer bastante
recursos como tarea para el n;cleo2 este interruptor es en realidad una
operacin bastante simple. )a verdadera pena de rendimiento se produce
cuando las necesidades de datos para tener acceso a m(s de proceso de las
fronteras.
7i$amos que usted desea pasar un puntero a una cantidad de datos a un
servicio de su aplicacin. El servicio se ejecuta en otro proceso en el espacio
de usuario. %i se pasa un puntero a un servicio en CE 2 el n;cleo comprueba
autom(ticamente que el llamado proceso de los permisos a la memoria
se:alado y2 a continuacin2 remaps el puntero a la convocatoria del proceso de
ranura. Esto es realmente 5acer con al$unos triviales aritm3tica sobre el
puntero2 ya que todos los procesos que son accesibles en el espacio de
usuario en todo momento en CE .
En CE sin embar$o2 las cosas se vuelve m(s complicado porque los procesos
se despla9an dentro y fuera del espacio de usuario por el n;cleo. %lo se
est(n ejecutando actualmente el proceso de la memoria es asi$nada en el
espacio de usuario.
Considere el servicio de ejemplo anterior2 pero aplicado a la CE . En este caso2
el puntero pasa al servicio slo es v(lido cuando el proceso que pas en
realidad es el puntero de ejecucin y2 por tanto2 se car$a en el espacio de
usuario. Han pronto como se enciende otro proceso2 el puntero se convierte en
inv(lido. Para manejar esto2 la CE del n;cleo implementa un mecanismo
denominado clasificacin. Cuando clasificacin2 el n;cleo realmente puede
necesitar mapa parte de la memoria en el proceso que llama en el espacio de
memoria del proceso de servidor. Entonces2 porque 5ay trabajos de averi$uar
cmo mars5all un puntero2 que tiene un impacto en el rendimiento. Pero2 ese
es el precio que pa$a por tener 1 !B de espacio de proceso y el apoyo a un
n;mero pr(cticamente ilimitado de procesos.
Si bien muchas de las cosas es difcil automticamente manejado po el n!cleo" ha#
situaciones en $ue lo $ue tiene $ue hace usted mismo la clasificaci%n&
30
Gs.)n , ''or)a au?)l)ar6
8emoria jue$a un papel vital en el desarrollo de aplicaciones. !eneralmente
los pro$ramadores tienden a pasar por alto este (mbito debido a la enorme
capacidad de memoria del d4a de 5oy PCs de escritorio. 7ispositivos de
*indo+s CE en $eneral2 tendr( muc5o menos J'8 que un PC de escritorio.
'dem(s2 no tienen unidades de disco u otros dispositivos de almacenamiento
masivo. 7esarrolladores de aplicaciones2 por lo tanto2 siempre debe tener en
cuenta esta limitacin2 mientras que el desarrollo de aplicaciones para
*indo+s CE.
*indo+s CE dispositivos tienen $eneralmente una memoria J'8 y J.8 de
una seccin. J.8 contiene toda la informacin decidida por los .E82 que
incluye el sistema operativo y las aplicaciones de otro tipo de apoyo como
PocIet *ord2 PocIet E"cel2 etc que viene inte$rado con el sistema operativo.
J'8 5a llamado otras dos divisiones del Pro$rama 8emoria Z
'lmacenamiento de memoria >la tienda de objetos?. )a memoria del pro$rama
se utili9a principalmente para la ejecucin de las solicitudes2 $eneralmente
almacena los montones y montones de una aplicacin. )a memoria del
pro$rama podr4a ser comparado con la J'8 en los PCs de todas las
aplicaciones que $eneralmente se car$an para su ejecucin. )a ;nica
e"cepcin aqu4 >*indo+s CE? es que los pro$ramas basados en J.8 se
ejecutan en el lu$ar sin ser car$ado en la seccin de J'8 >memoria de
pro$rama? el consi$uiente a5orro de valioso espacio de memoria J'8 y2 al
mismo tiempo2 la aceleracin de la velocidad de ejecucin tambi3n. 7e
memoria de almacenamiento es equivalente a la disco J'8 >tambi3n conocida
como J'8? que se utili9a $eneralmente como una simulacin de disco duro.
El ;nico inconveniente es la persistencia con que2 en el caso de nuestro K D P2
C y P D PC de copia de se$uridad son proporcionados por las pilas creando as4
una ilusin de almacenamiento permanente. Por otra parte2 unidades de
memoria J'8 en nuestro PC de escritorio no son persistentes2 ya que los
datos que obran en su poder por lo $eneral pierde si no 5ay poder. ncluso en
el modo suspendido de dispositivos de *indo+s CE2 los datos de memoria de
almacenamiento son persistentes debido a la disponibilidad de bater4as de
respaldo. El mismo es el caso durante el dispositivo de restablecimiento
demasiado. 7urante el restablecimiento2 en su caso copia anterior del objeto
tienda est( disponible $eneralmente es utili9ado por los dispositivos de
*indo+s CE a fin de evitar cualquier p3rdida de datos. )a memoria de
almacenamiento de objetos o de la tienda es el lu$ar para el titular del sistema
de arc5ivos de *indo+s CE2 y el Je$istro de Bases de 7atos. Hodos estos
objetos tienen sus respectivos 'P para acceder a ellos. Hodos estos son casi
completo de las 'P a e"cepcin de la ausencia de al$unas caracter4sticas.
Estos incluyen la falta de funciones que2 de forma directa vol;menes de
referencia en el caso de sistema de fic5eros2 la falta de atributos de se$uridad
con las funciones que corresponden a la %ecretar4a y la falta de las
caracter4sticas encontradas en las bases de datos de 5oy en d4a. )a base de
datos es ;nico para la 'P de *indo+s CE y se utili9a principalmente para el
almacenamiento de datos simples2 como listas de direcciones o las carpetas de
correo. )a cantidad de memoria destinada a la memoria del pro$rama y el
31
objeto es almacenar manualmente ajustable por el usuario del dispositivo.
Hodas las aplicaciones que desarrollamos en $eneral son almacenados en el
objeto de almacenar y car$ar en la memoria del pro$rama durante la ejecucin.
En lo que respecta a la aplicacin se refiere al desarrollo de *indo+s CE
proporciona casi toda la memoria de $estin de funciones de *in#2. %u apoyo
incluye la asi$nacin de memoria virtual2 locales y montones separados y
tambi3n los arc5ivos de la memoria asi$nada. *indo+s CE apoya el pa$inado
de memoria virtual del sistema de $estin tal como se encuentra en el otro
*in#2s. En virtud de este sistema se asi$na cada una de las p($inas2 ya sea
1124 bytes o 41/6 bytes2 tal como se decidi por los fabricantes. Hoda la plana
de 4 !B de espacio de direcciones de *indo+s CE se divide entre los
diferentes tipos de memoria con m(s de la mitad est(n ocupados por la
memoria virtual >espacio de direcciones virtuales?. Esto es m(s se$re$ada en
## franjas 5orarias con #28B dedicados a cada una de las solicitudes
individuales. )as diferentes aplicaciones est(n prote$idas de interferir unos
con otros mediante la alteracin p($ina protecciones. Fna ilustracin $r(fica
de la arquitectura de memoria de *indo+s CE se ofrece a continuacin.
.tra cosa interesante acerca de *indo+s CE de apoyo para la memoria virtual
es su capacidad para admitir esta funcin incluso con la ausencia de
dispositivos de almacenamiento secundario como los discos duros en los
dispositivos basados en *indo+s CE. En nuestro tradicional PC de escritorio
con otros *in#2s2 los discos duros $eneralmente se utili9an durante el
intercambio de p($inas de la memoria secundaria a la primaria de la memoria.
*indo+s CE2 pero con todos estos dispositivos de intercambio tiene lu$ar en el
(rea de memoria J'8 con lo que se asemeja a nuestra 3poca anti$ua tradicin
J'8. Por lo tanto el uso efica9 de un tipo de memoria con su correspondiente
funcin de $estin de memoria ayuda a evitar situaciones de baja memoria.
En *indo+s CE 2 e"isten tres tipos de sistemas de arc5ivosC un sistema de
arc5ivos basado en J.82 un sistema de arc5ivos basado en J'82 y un
sistema de arc5ivo A'H para las unidades de disco.
)a funcionalidad de bases de datos de *indo+s CE no tienen un corolario en
*indo+s GH o *indo+s /0. )a base de datos provee almac3n2 acceso y
ordenamiento de objeto. %e utili9 inicialmente en el KPC para cosas como
libro de direccin y apuntes. Fna caracter4stica clave de las bases de datos es
el sistema de arc5ivos y el re$istro en que ellos est(n prote$idos contra un
@reset@ imprevisto >como uno causado por una interrupcin de poder en
sistemas como un KPC que tienen una bater4a de respaldo?. %i ocurre un
@reset@ durante una escritura al almac3n de objeto2 *indo+s CE ase$ura que el
almac3n no estar( corrupto2 ya sea completando la operacin cuando el
sistema se reinicie o retrocediendo al ;ltimo estado estable conocido antes de
la interrupcin.
32
Gs.)n , n.ra,a A sal),a
En $eneral2 los dispositivos empotrados son dispositivos peque:os de
capacidades limitadas2 por lo que es 5abitual encontrarnos con que se tienen
que comunicar2 adem(s de con el dispositivo al que van empotrados2 a al$;n
servidor o en el caso de dispositivos de uso personal2 a nternet para
sincroni9ar con las aplicaciones de escritorio y comunicarse con un PC de
sobremesa.
*indo+s CE 6.1 incluye una suite completa del protocolo HCPDP para
$aranti9ar la comunicacin con nternet y redes in5al(mbricas2 junto con los
pro$ramas 5abituales para su administracin y $estin como son pin$2 ipconfi$2
netstat2 tracert2 pin$ route2 ipv6?. Paralelamente podemos establecer
comunicaciones a trav3s de J2 de muy corto alcan9e. . incluso conectar con
redes toIen rin$ aparte de Et5ernet. 'dem(s2 ofrece soporte para las 'Ps
*insocI >las aplicaciones acceden a la pila HCPDP a trav3s de esta 'P? 2
*innet > manipula todas las comunicaciones entre las aplicaciones y
*in%ocI?2 GetBios >interfa9 para acceder a servicios de red? y *inKHHP
> interfa9 de alto nivel para el protocolo 5ttp 1.1?. Ainalmente como interfaces
f4sicas disponemos de red2 AJ2 puerto serie y puerto J.
En cuanto a servicios2 dispone de cliente 7KCP y 7G%. 6 ofrece 7G% e"tended
*Oueryin$ and update2 que nos permite mantener actuali9ado el nombre de
nuestro dispositivo en un servidor 7G%.
Hambi3n soporta 7ialEup con J'% >Jemote 'ccess service? y PPP > point to
point protocol?. Puede conectar con una impresora de red e incluye un a$ente
%G8P para su $estin remota y monitori9acin. 6 por supuesto soporte para
*'G. En la fi$ura 21 podemos ver la arquitectura de red y HCPDP de *indo+s
CE 6.1 con una cmoda separacin por capas que nos permite ver de qu3
forma establece las comunicaciones el sistema operativo.
33
Gs.)n , *o'un)*a*)ons A s-ur),a,
*indo+s CE soporta una amplia variedad de dispositivos y protocolos de
comunicaciones. 7esde los m(s simples2 como funciones para manejar un
puerto serie2 5asta protocolos de red complejos como HCPDP.
%on mdulos opcionales. %e incluyen en el sistema operativo en funcin del
5ard+are de comunicaciones disponible en la plataforma y las necesidades de
conectividad de las aplicaciones.
)as 5erramientas de desarrollo de *indo+s CE comunican con la plataforma
tar$et mediante un pro$rama en el 5ost llamado platform mana$er2 El platform
mana$er permite seleccionar el tar$et con el que comunicaremos y se encar$a
de todas las tareas necesarias para conectar2 enviar y recibir datos2 y ejecutar
en la m(quina remota los pro$ramas que interact;an con las 5erramientas de
desarrollo2 como puede ser2 por ejemplo2 el a$ente de depuracin en el tar$et.
P8 implementa el nivel de aplicacin en las comunicaciones 5ostEtar$et. Por
debajo de 3l2 puede usar uno de tres protocolos de transporteC
'ctive%ync. Est( muy e"tendido en P7's2 pues lo utili9a 'ctive%ync2 el
pro$rama de cone"in entre P7' y PC
1[/\
. Hambi3n es el que usaremos en
las plataformas de pr(cticas.
HCPDP. Hambi3n muy e"tendido2 tiene la ventaja de que no necesita
interfase $r(fico
2[11\
2 por lo que puede usarse en dispositivos sin pantalla
>5eadless?.
SH) >Sernel ndependent Hransport )ayer? es el protocolo m(s sencillo de
todos2 por lo que se suele usar cuando no e"isten los protocolos anteriores.
Estos protocolos $estionan las operaciones de cone"in y transmisin de datos
entre 5ost y tar$et2 por lo que al menos uno de ellos debe estar inte$rado en el
sistema operativo de la plataforma.

*indo+s Embedded CE 6.1 proporciona las mismas 5erramientas de la
comunicacin como en las versiones anteriores de *indo+s CE. Estas
5erramientas incluyen la memoria J'8 respaldado mapeados arc5ivos punto a
punto las colas de mensajes2 y los viejos cl(sicos2 como el mensaje
*8]C.P67'H'.
1
2
34
NOu3 no est( disponible en *indo+s Embedded CE es la @ranura@ de
comunicacin trucos. E"isten al$unas aplicaciones que utili9an la 'P
8apCallerHoProcess y %etProcPermissions para poder leer y escribir de
memoria a trav3s de l4mites proceso. Estas dos 'P2 junto con al$unas otras
funciones que dependen de la ranura de modelo2 ya no son pertinentes.
8ientras que se e"portan desde Coredll.dll de compatibilidad2 el no tiene
nin$;n efecto en *indo+s Embedded CE . Fna solucin para las aplicaciones
que utili9an %etProcPermissions es utili9ar JeadProcess8emory y
*riteProcess8emory2 que se apoya en CE .
.tro cambio en *indo+s Embedded CE es que las aplicaciones pueden
copiar ya no se ocupa de un proceso a otro. CE utili9a manejar tablas
separadas para cada proceso2 a fin de manejar los valores son independientes
para cada proceso. Para evitar este problema2 las aplicaciones deben utili9ar
el 'P para 7uplicateKandle clonar un asa para su uso en otro proceso.
En $eneral2 bien escrito aplicaciones para *indo+s CE >bien escrito2 lo que
si$nifica que no use trucos basados en la ranura? funcionar( sin modificaciones
en *indo+s Embedded CE 6.1. Para ase$urarse de que su aplicacin se
ejecutar(2 puede utili9ar una 5erramienta de las pruebas de compatibilidad que
se entre$ar( en el *indo+s Embedded CE Platform Builder.
S-ur),a,
Fna caracter4stica est(ndar de *indo+s CE desde 2212 5a sido el @mdulo de
confian9a@ m3todo de la se$uridad. En este sistema2 los mdulos >E,Es y
7))? se comprueba durante el proceso de car$a. El .E8 cdi$o puede
entonces optar por la car$a del sistema2 ya sea en el mdulo @de confian9a@ o
@no confiable@ modo. %i el mdulo se ejecuta en @modo de confian9a@2 puede
llamar a cualquier 'P en el sistema. Cdi$o de mdulos que son @no
confiable@ no se puede llamar a un peque:o conjunto de 'P y el sistema de
cr4tica no puede establecer cualquier 5ilo a una prioridad superior a la octava
de la prioridad m(s baja. 'dem(s2 el .E8 puede decir al sistema de no car$ar
un mdulo.
35
*indo+s CE 0.1 y antes tambi3n tiene un modo especial cuando el sistema
funciona todo el cdi$o en modo Iernel2 en ve9 de ejecutar el Iernel en modo
de n;cleo y el resto del sistema en modo de usuario. )a ventaja de correr en
@modo Iernel todos@ es el rendimiento con la desventaja de ser de se$uridad2
ya que el cdi$o del n;cleo y espacio de memoria sea accesible a todas las
aplicaciones.
*indo+s Embedded CE elimina con tanto @todos en modo de n;cleo@ y el
modelo de confian9a de la se$uridad. Hodos modo Iernel no es necesario
porque la mayor4a de las $anancias de rendimiento @todo modo Iernel@ son
adquiridas por el nuevo n;cleo de la arquitectura. El modelo de confian9a va
en previsin de la posibilidad de portar el escritorio de la )ista de control de
acceso >'C)? de se$uridad a una futura versin de *indo+s CE. Para
*indo+s Embedded CE 6.12 no 5ay modelo de confian9a2 ni tampoco e"iste la
se$uridad de 'C).
36
Sopor. a .)'po ral
)as aplicaciones en tiempo real son cada ve9 m(s importante para un n;mero
de se$mentos de ne$ocio. %iemens Corporation2 un ju$ador en el ne$ocio
electrnico y la tecnolo$4a2 evalu el 8icrosoft *indo+s CE para su sistema
operativo en tiempo real de las capacidades. 7iversas propiedades de este
sistema operativo2 como su base de capacidades multimedia2 su interfa9
$r(fica opcional de apoyo2 y la disponibilidad de 8icrosoft *in#2 interfa9 de
pro$ramacin de aplicaciones2 la convierten en una eleccin natural para
aplicaciones embebidas en %iemens. %in embar$o2 su comportamiento en
tiempo real todav4a debe ser evaluada para determinar su utilidad para el d4a
de 5oy las e"i$entes aplicaciones
37
An1l)s)s *o'para.)vo *on L)nu?
En el Protocolo de nternet versin 6 >Pv6? !rupo de nvesti$acin2 con sede
en el 7epartamento de Computacin de la Fniversidad de )ancaster2 Jeino
Fnido2 estamos dispuestos a seleccionar como plataforma de investi$acin que
el producto est3 m(s estrec5amente alineados a nuestras necesidades. El
$rupo 5a utili9ado con 3"ito tanto el )inu" y plataformas de escritorio de
*indo+s en el pasado2 y si$ue a abra9ar estas plataformas y otros como la
base para la investi$acin. %in embar$o2 *indo+s CE 5a sido adoptada por
una proporcin cada ve9 mayor del $rupo de investi$acin ya que nuestro
principal plataforma de investi$acin.
Kay muc5as maneras en las que )inu" y sistemas operativos *indo+s CE
sobresalir2 pero tampoco es perfecto. En este art4culo2 tratamos de e"plicar
cmo los puntos fuertes y d3biles de ambas plataformas 5an influido en
nuestros investi$adores.
El !rupo de nvesti$acin de Pv6 tiene una fuerte base de investi$acin en
sistemas mviles. Con el fin de consolidar nuestra posicin2 estamos
destinados a pasar de escritorio basado en aplicaciones y 5acia los sistemas
embebidos y mviles.
'plicaciones que muestran el abanico de tecnolo$4as de bajo nivel en el que
tenemos la e"periencia son muc5o m(s impresionante si se puede demostrar
en los dispositivos mviles. En nuestro caso2 la naturale9a de las tecnolo$4as
de demostrada por nuestras aplicaciones 5acen que sea necesario para la
reduccin de la plataforma de apoyo a arquitecturas de 5ard+are y las ;ltimas
tecnolo$4as inal(mbricas. )a disponibilidad y compatibilidad de 5ard+are2 junto
con el apoyo2 tanto de soft+are como de recursos 5umanos2 si$ue siendo un
factor muy importante en nuestra eleccin.
En este punto2 debemos establecer los par(metros para esta discusin.
Estamos interesados principalmente en las comunicaciones mviles y sistemas
incorporados en nuestra investi$acin. Es2 raro ver )inu" fuera del dominio de
las m(quinas de escritorio y servidor. %in embar$o2 )inu" puede ser instalado
en los sistemas inte$rados proporcionan la arquitectura de 5ard+are est(
abierto a la comunidad de desarrollo >por ejemplo2 una cabe9a de PC?. Es
muc5o m(s raro encontrar )inu" en un dispositivo mvil como un P7'2 porque
es a menudo este 5ard+are dise:ado espec4ficamente para su sistema
operativo2 y la creacin de un nuevo dispositivo de 5ard+are requiere una
cierta cantidad de incentivo comercial. Es importante destacar que en este
art4culo estamos comparando *indo+s CE con mviles y embebidos
encarnaciones de )inu". Es justo decir que esos sabores de )inu" no
comparten todas las ventajas de las variedades de escritorio.
38
Fna de las mayores debilidades de *indo+s CE es que slo admite un
conjunto limitado de dise:os de 5ard+are. %i bien la lista de 5ard+are
compatible actualmente es cada ve9 mayor2 iteraciones anteriores del sistema
operativo nos obli$ a seleccionar nuestro 5ard+are de una lista corta. )os
dispositivos perif3ricos y no admite m(s sacarlo de la caja est(n apoyados slo
por el fabricante. Estar a la merced de los fabricantes de controladores
adecuados para una determinada versin del sistema operativo si$nifica que un
nuevo driver a menudo ten4a que ser tratado en la pr"ima $ran actuali9acin2 y
que suelen encontrar mayores de 5ard+are ya no se apoya. Creemos que una
arquitectura abierta para dispositivos empotrados2 )inu" que 5an sobresalido
en esta situacin. )a $ran comunidad de desarrolladores se 5an producido2 sin
duda2 los conductores de apoyo a los pocos dispositivos y perif3ricos que no se
apoya fuera de la caja.
%in embar$o2 la mayor4a de dispositivos de *indo+s CE se basan en
arquitecturas de 5ard+are dise:ado espec4ficamente para *indo+s CE y
al$unos de los peoresElos dispositivos de apoyo comercial sufren de la falta de
controladores. Por el contrario2 son muy pocos los dispositivos mviles 5an
sido dise:ados espec4ficamente para )inu". 'dem(s2 la comunidad de fuente
abierta no puede apoyar la mayor4a de los conductores para los dispositivos
mviles debido a su arquitectura cerrada. Fna versin de )inu" se 5a puesto a
disposicin de la $eneracin anterior de Compaq iP'O. %in embar$o2 esto slo
fue posible porque Compaq cooperado en la produccin de una capa de
abstraccin de 5ard+are para )inu". En caso de que los dispositivos mviles
se refiere2 los usuarios de )inu" est(n tan a merced de los fabricantes de
apoyo como los usuarios de *indo+s CE.
Para arquitecturas abiertas2 es evidente que la disponibilidad de controladores
de cdi$o abierto da una clara ventaja para los desarrolladores de )inu". )a
e"tensa biblioteca de esos conductores proporciona una base slida a partir de
la cual los desarrolladores pueden crear controladores personali9ados
conductores. *indo+s CE proporciona un n;mero de referencia de los
conductores2 que son lo suficientemente $enerales como finalidad cubrir una
amplia variedad de 5ard+are2 sin embar$o los controladores para 5ard+are
espec4fico son $eneralmente de cdi$o cerrado2 lo que dificulta la aplicacin de
simples modificaciones. Por ejemplo2 utili9ando *indo+s CE2 5emos querido
modificar el comportamiento de un conductor de una popular marca de tarjeta
de -12211. %in embar$o2 la ausencia de un interfa9 est(ndar en la versin de
*indo+s CE que se utili9an y la falta de cdi$o fuente para el conductor nos
impidi descubrir la propiedad de la interfa9 que es necesario.
En el pasado2 )inu" y *indo+s CE 5an tenido la reputacin de estar detr(s de
la van$uardia en lo que respecta al apoyo a los ;ltimos avances tecnol$icos.
En el caso de )inu"2 los proveedores de 5ard+are2 se liberar4an los
controladores de *indo+s con su 5ard+are2 soporte de )inu"2 pero
inevitablemente se retrase varios meses 5asta que el fabricante o un tercero
producido conductores. 7el mismo modo2 *indo+s CE es frecuentemente
pasado por alto en favor de apoyar a sus 5ermanos m(s famosos de escritorio.
En ambos casos2 la situacin est( mejorando r(pidamente. )os fabricantes y
vendedores de fuera de los componentes de )inu" a5ora a tomar en serio y el
39
desarrollo de )inu" y los controladores de *indo+s de forma paralela en la
$ran mayor4a de los casos2 y las ;ltimas versiones de *indo+s CE apoyo
muc5as nuevas tecnolo$4as.
Hras la breve inspeccin2 )inu" parece tener la ventaja en el apoyo a las
nuevas tecnolo$4as2 sobre la base de que las distribuciones de )inu" se liberan
con mayor frecuencia que las versiones de *indo+s CE. %in embar$o2
teniendo en cuenta las versiones que ofrece como parte de los pro$ramas beta
de *indo+s CE2 )inu" y *indo+s CE son bastante a;n. Fna complicacin
adicional que se refiere a los dispositivos mviles es el tiempo necesario para
llevar a las empresas a crear reales fuera de la plataforma de referencia de
dispositivos de versiones de los sistemas operativos. En el momento de la
escritura2 la ;ltima versin de *indo+s CE se ejecuta en un dispositivo con el
comercial PocIet PC #.1 es factor de forma2 pero la versin actual de *indo+s
CE es de 422. %in embar$o2 5ay m(s actuali9ada disponible en los dispositivos
de otros factores de forma. Esta es tal ve9 menos de un problema para los
usuarios de )inu"2 porque la tecnolo$4a y el conocimiento e"iste en la
comunidad de fuente abierta en la memoria flas5 actual arquitectura abierta con
los dispositivos actuales versiones del Iernel de )inu".
%i bien una autoEinstalacin de )inu" para el 5ard+are de una PC de bolsillo
e"istentes quita la dependencia de una sola empresa para las actuali9aciones2
se nos asusta el 5ec5o de que la falta de un claro l4der de desarrollo nos podr4a
dejar sin informacin sobre la disponibilidad de actuali9aciones y la intencin de
desarrollo de controladores y aplicaciones espec4ficas. 'dem(s2 el n;mero de
dispositivos basado en *indo+s CE supera a5ora las basadas en )inu"2 por lo
tanto2 optar por *indo+s CE nos 5a permitido diversificar el ries$o de apoyar el
sistema operativo. %i un fabricante de 5ard+are para *indo+s CE dej de
apoyar2 el sistema operativo todav4a ser4a ;til2 ya que ser4a la prestacin de
apoyo de otros fabricantes.
Con el cdi$o fuente est( libremente disponible para )inu"2 y las recientes
medidas tomadas por 8icrosoft para abrir la fuente de *indo+s CE a las
universidades2 nunca 5emos tenido una mayor libertad para trabajar con ambas
plataformas. En )ancaster2 tenemos una serie de proyectos de investi$acin y
las ideas que slo ser4a posible si modificamos la plataforma de investi$acin a
ampliar las capacidades del sistema operativo. En este sentido2 creemos que
5ace de *indo+s CE para la plataforma superior.
El cdi$o fuente disponible para el Iernel de )inu" y paquetes2 es decir2 por
re$la $eneral2 dif4ciles de reco$er y editar. Es bastante poco comentados2 en
todo caso2 y la edicin del cdi$o fuente del n;cleo de nivel se ve complicada
por tener que aprender un 'P en el espacio de usuario familiari9ado llamadas.
7ic5o esto2 los comentarios en el cdi$o fuente se complementan con los
documentos K.*H. y similares $u4as y libros2 mientras que 5ay pocas $u4as
disponibles para *indo+s CE. En el pasado2 sin embar$o2 5emos encontrado
que )inu" K.*H.s tienden a referirse al cdi$o que se muc5as versiones de
la fec5a.
40
El tama:o de la base de cdi$o de )inu" tambi3n es desalentadora. Por el
contrario2 la base de cdi$o fuente de *indo+s CE es peque:o. ' pesar de la
creciente a un ritmo impresionante de versin a versin2 en $eneral es muy
bien comentado y or$ani9ado de manera que es posible encontrar r(pidamente
el cdi$o en el que tenemos un inter3s sin poseer $randes conocimientos de la
estructura del cdi$o. )as deficiencias de *indo+s CE en el soporte de
5ard+are de trabajo como una ventaja2 porque el resultado es limitar el tama:o
de la fuente base. ' nivel de sistema de cdi$o en *indo+s CE puede utili9ar
el mismo 'P de cdi$o de aplicacin2 por lo que la curva de aprendi9aje para
modificar la fuente superficial.
En )ancaster2 nos consideramos un pionero en la adopcin de nuevas
tecnolo$4as para ense:ar a nuestros estudiantes. Auimos los primeros
adoptantes de Qava2 C ^ y 8icrosoft. GEH. Hodos nuestros estudiantes est(n
actualmente ense:an a utili9ar 8icrosoft 'P y entornos. 7ado que la mayor4a
de los nuevos investi$adores son contratados de post$rado de nuestro
pro$rama de pre$rado2 creemos que es una ventaja considerable que nuestros
estudiantes pueden mi$rar al uso de *indo+s CE con relativa facilidad a partir
de la 'P de *in#2. Como una adicin a este ar$umento2 los de nuestros
investi$adores que provienen de un fondo de )inu" son li$eramente
perjudicados por ello.
En cuanto a los recursos de pro$ramacin de aplicaciones2 creemos que )inu"
y *indo+s CE son bien presentado y apoyado. )a cultura de cdi$o abierto de
desarrolladores de )inu" crea un superior de recursos de los diversos ejemplos
de cdi$o2 mientras que el relativamente inmaduros comunidad de desarrollo
de *indo+s CE es menos diversa. %in embar$o2 ambas plataformas sufren el
problema de que tienden a permitir que los desarrolladores de cdi$o a ser
obsoletos y no se puede confiar en que si$a apoyando y mantener cdi$o.
)inu" en particular2 sufre de cdi$o le$ado y no como consecuencia de la
madure9 de su desarrollo. Go obstante2 5emos tenido problemas similares
para obtener apoyo cdi$o de *indo+s CE.
Fna de las ventajas de formar parte de la universidad de ori$en compartida
pro$rama para *indo+s CE es que nos da acceso a un punto central de
contacto para cualquier problema que pueda tener. %in embar$o2 5emos
encontrado en el pasado que el pro$rama puede ser un obst(culo para
nuestras actividades ya que no fueron capaces de compartir nuestro cdi$o
con otras universidades. Kasta cierto punto2 ya no estamos en esta situacin2 y
aunque no podemos tener una pol4tica de puertas abiertas para el cdi$o de
al$unos de nuestros proyectos2 creemos que esto puede incluso beneficiar a la
comunidad de desarrollo a lar$o pla9o mediante el fomento de activos
participacin en el pro$rama fuente compartida.
Es dif4cil para nosotros2 para comparar las caracter4sticas y las bibliotecas a
disposicin de nuestros )inu" y los desarrolladores de *indo+s CE2 ya que
cada tiene su propia plataforma para ofrecer. Por ejemplo2 *indo+s CE tiene
m(s apoyo a la madure9. GEH2 lo que nos permite crear port(tiles m(s
investi$acin implementaciones y2 m(s importante a;n2 la r(pida de prototipos
de nuestra tecnolo$4a. Este apoyo es proporcionado por *indo+s CE en la
41
forma de. GEH Compact Arame+orI2 lo que a;n nos impresiona con el $rado
en que se las arre$la para ocultar las 5abituales preocupaciones y limitaciones
de desarrollo para sistemas embebidos y mviles. %in embar$o2 )inu" tiene
una mayor madure9 modelo de se$uridad y proporciona sandbo"in$ nativos de
los procesos2 lo cual es dif4cil de lo$rar2 utili9ando *indo+s CE.
Es cierto que )inu" tiene m(s caracter4sticas y las bibliotecas de *indo+s CE2
debido a su biblioteca de fuente abierta de soft+are. Esta rique9a de
caracter4sticas con frecuencia reduce el tiempo de desarrollo de al$unos tipos
de aplicacin. %in embar$o2 nin$una cantidad y caracter4sticas de las
bibliotecas pueden 5acer para un sistema operativo que no fue dise:ado para
operar en sistemas con recursos limitados. )a mayor4a de los de cdi$o
abierto cat(lo$o 5ace nin$;n esfuer9o especial para controlar el uso de
memoria y simplemente supone $randes cantidades de memoria virtual.
*indo+s CE fue dise:ado con las limitaciones en mente. Proporciona una
serie de caracter4sticas que 5acen trivial la tarea de crear li$ero y de peque:o
tama:o implementaciones.
)a funcin de desarrollo de *indo+s CE que inicialmente atrajo nuestra
atencin2 y que nos alienta a se$uir utili9ando *indo+s CE como principal
plataforma de investi$acin2 es el conjunto de 5erramientas disponibles.
*indo+s CE aplicaciones se desarrollan utili9ando e8bedded Yisual C y
Platform Builder. Este ;ltimo es capa9 de construir una amplia $ama de
aplicaciones2 controladores y componentes b(sicos. 'mbos entornos
dispositivo inte$rado >7E? son similares2 e inte$rar la inestimable edicin2 la
construccin2 y 5erramientas de depuracin que reducen el tiempo que $astan
en desarrollo. )os puntos fuertes de los 7Es son las 5erramientas de
depuracin. )a interfa9 es intuitiva y poderosa. 'dem(s de estas 5erramientas2
de Yisual %tudio. GEH se puede utili9ar para desarrollar aplicaciones para la
plataforma. GEH.
Hambi3n nos sentimos alentados por los planes de 8icrosoft para liberar una
versin de Yisual %tudio que unifica el escritorio de *indo+s y el desarrollo
incorporados en un ;nico 7E. El 5ec5o de que e"ista una norma medio
ambiente apoyados por el $rupo de productos del sistema operativo si$nifica
que el potencial de la 7E es m("ima. Por el contrario2 no e"iste nin$una
norma 7E para el desarrollo de )inu"2 y ciertamente nin$uno de los 7Es no
oficial que es tan poderosa como Platform Builder. En cambio2 nos
encontramos con que tendemos a confiar en s4 sola coleccin de compiladores
de !GF para el desarrollo de )inu" y las otras 5erramientas disponibles2 tales
como Proyecto !GF 7ebu$$er2 tienden a no utili9ados.
%in embar$o2 5emos encontrado que 5ay una situacin de desventaja a tener
un ;nico 7E de desarrollo2 y es que se convierte en el ;nico punto de fallo. En
m(s de una ocasin cuando se utili9an versiones anteriores de Platform
Builder2 5emos encontrado errores que nos impidieron avan9ar en nuestro
trabajo. Es cierto que al$unas de estas personas se 5an debido a nuestra
participacin en el pro$rama beta2 pero si otros instrumentos se 5an disponible2
42
5abr4a sido capa9 de proceder. )a diversidad de 5erramientas disponibles para
)inu" si$nifica que no se 5an llevado a cabo por los errores en uno.
En resumen2 que tenemos y se$uir utili9ando )inu" y *indo+s CE como
plataformas de investi$acin. %in embar$o2 la mayor4a de nuestros
investi$adores a esco$er el uso de *indo+s CE. 'unque *indo+s CE es
deficiente en equipo y ayuda al conductor2 su 5erramienta de apoyo es
ejemplar y que sobresale en muc5as otras (reas. )inu" y *indo+s CE de
desarrollo comunidades sufren problemas similares2 pero ofrecen diferentes
ventajas. )inu" tiene la ventaja de la diversidad y la disponibilidad del cdi$o
fuente2 pero para *indo+s CE tiene un muc5o mejor or$ani9ado y comentado
compartida paquete fuente disponible. En equidad a los defensores en todo el
mundo de )inu"2 )inu" nunca fue construida como un sistema operativo de
apoyo a los dispositivos mviles con recursos muy limitados. Creemos que el
5ec5o de que *indo+s CE fue construido desde cero para este propsito
espec4fico2 )inu" no puede competir con *indo+s CE en el conte"to de
dispositivos mviles2 y tal ve9 mayores amena9as provienen de otros
competidores en el mismo mercado.
43
An1l)s)s *o'para.)vo *on ;)n,o<s JP6
8icrosoft buques incorporados dos sistemas operativosC *indo+s CE y
*indo+s ,P Embedded2 ambos dise:ados para su uso en sistemas
embebidos. 's4 que2 Ncmo determinar cu(l puede ser apropiada para su
dispositivoP
En una inspeccin inicial2 *indo+s CE y *indo+s ,P Embedded pueden
parecer similares2 ya que ambos componentes son los sistemas operativos2
dos interfaces de pro$ramacin de e"poner similares >*in#22 8AC2 'H)2 y el
apoyo a la. GEH?2 y ambos e"ponen similares tecnolo$4as de sistema
operativo 2 que incluyen el apoyo para la creacin de redes2 nave$adores2
reproductores multimedia2 etc. )a eleccin del sistema operativo se vuelve
m(s f(cil2 sin embar$o2 cuando usted comprende el dise:o de objetivos de
cada sistema operativo.
*indo+s CE se 5a dise:ado para ser de peque:o tama:o2 componentes2
sistema operativo de tiempo real que se ejecuta en m;ltiples arquitecturas de
procesador. *indo+s ,P Embedded2 por otra parte2 puede considerarse una
versin de los componentes de *indo+s ,P Professional con el %ervice PacI
2 adicionales incorporados a 5abilitar caracter4sticas. Yamos a e"aminar
al$unas de las caracter4sticas de ambos sistemas operativos.
6a sabemos que *indo+s ,P Embedded es una versin de los componentes
de *indo+s ,P Professional %ervice PacI 22 el sistema operativo 5a sido
des$losado en cada uno de los componentes casi 12.1112 alrededor de /.111
los controladores de dispositivo2 sistema operativo y #.111 tecnolo$4as. Fsted
tiene la 5abilidad de seleccionar y ele$ir e"actamente qu3 controladores2
servicios y aplicaciones est(n incluidas en su ;ltimo sistema operativo
embebido de ima$en. %i2 por ejemplo2 no necesita un Jeproductor de *indo+s
8edia2 el Bloc de notas2 o nternet E"plorer y2 a continuacin2 no es necesario
incluir estas caracter4sticas en su ima$en del sistema operativo. Hener la
capacidad de reco$er cada uno de los componentes reduce el tama:o del
sistema operativo2 y2 por supuesto2 tambi3n reduce la superficie de ataque de
cdi$o malicioso. 8ientras estamos en este asunto2 *indo+s ,P Embedded
%ervice PacI 2 tiene todas las actuali9aciones de se$uridad se encuentran en
el %P2 de *indo+s ,P. Esto incluye tener todos los puertos en un sistema
cerrado por defecto >e"cepto KHHP?. Fn sistema de construccin puede2 por
supuesto2 decidir la apertura de los puertos que se necesitan en su dispositivo.
Fn promedio en el sistema operativo ,P Embedded construir es del orden de
unos 41 8B. Esta escala2 en funcin de qu3 sistema operativo componentes y
tecnolo$4as que incluyen en su ima$en final.
Fna de las ventajas de la utili9acin de *indo+s ,P Embedded en un sistema
embebido es la velocidad de desarrollo. *indo+s ,P EmbeddedEse ejecutan
44
en sistemas basados en un procesador "-6 y la arquitectura de 5ard+are de
PC2 que se entienden muy bien. Esto si$nifica que cualquier *indo+s 2111 o
*indo+s ,P controlador de dispositivo o aplicacin puede ejecutarse en
*indo+s ,P Embedded sin modificacin. El *indo+s ,P Embedded como
sistema operativo de los buques una serie de preEconstruido de escritorio
compatibles con componentes binarios2 lo que $aranti9a la aplicacin y de
compatibilidad de controladores.
El t4pico ciclo de desarrollo de un dispositivo de *indo+s ,P Embedded es a la
primera instant(nea del 5ard+are subyacente mediante una 5erramienta
llamada 8eta del anali9ador2 que $enera un arc5ivo ,8) que define todos los
componentes de 5ard+are se encuentran en su dispositivo de destino. El
arc5ivo ,8) puede lue$o ser importados en la 5erramienta de dise:o de
componentes y se $uarda como un componente personali9ado que define el
5ard+are del dispositivo. Componente de la 5erramienta de dise:o tambi3n
puede importar. 'rc5ivos GA2 que 5ace f(cil para $enerar componentes de
*indo+s 2111 o *indo+s ,P Controladores de dispositivos. Por ;ltimo2 la
5erramienta de dise:o de componentes tambi3n se puede utili9ar para crear
componentes personali9ados2 tal ve9 la definicin de un componente de la
costumbre o la aplicacin de s5ell. El componente define los arc5ivos2 la
confi$uracin del Je$istro2 y el sistema operativo de las dependencias para el
componente. Fna ve9 que se definen los componentes2 pueden ser
controlados en el componente de *indo+s ,P Embedded y lue$o la base de
datos utili9ada en un dise:o embebido.
El si$uiente paso en el desarrollo de su *indo+s ,P Embedded ima$en del
sistema operativo es usar la 5erramienta de dise:o 8eta. Esta 5erramienta
muestra todas las sistema operativo *indo+s ,P y los controladores y las
tecnolo$4as de la 5abilitacin Caracter4sticas Embedded >que se discutir( en
breve?. Fn desarrollador de sistemas2 simplemente selecciona los
componentes que necesita y los a:ade a un proyecto de trabajo. Esto puede
incluir la definicin de componentes de 5ard+are creado por el 'nali9ador de
8eta2 al$unas plantillas de dise:o que definen un punto de partida para una
serie de cate$or4as de dispositivos2 incluidos los basados en *indo+s Herminal
>H5in Client?2 punto de venta de dispositivos2 %et Hop Bo"2 etc2 y usted tambi3n
tiene la capacidad para tirar de cada uno de los componentes del cat(lo$o de
contenido para a:adir a su proyecto. El objetivo de dise:o 5erramienta se
ejecutar( un an(lisis de la dependencia en su proyecto de trabajo en tiempo
para $aranti9ar que todas las caracter4sticas del sistema operativo se incluyen
en la ;ltima ima$en del sistema operativo. Fn ejemplo de esto ser4a la eleccin
de un desarrollador de. GEH Arame+orI para su dise:o2 a$re$ando su. GEH y2
a continuacin2 la construccin de la ima$en del sistema operativo E el sistema
de dise:o no tiene por qu3 conocer o comprender las dependencias de. GEH
Arame+orI para construir una ima$en del sistema operativo.
45
6a 5emos mencionado que *indo+s ,P Embedded con al$unos buques
Embedded caracter4sticas espec4ficas2 incluyendo la capacidad de arranque y
ejecutar *indo+s ,P Embedded desde un C7EJ.82 o para arrancar desde los
medios de comunicacin Alas5. En ambos casos2 un desarrollador que desea
para el tratamiento de los medios de comunicacin como de slo lectura2 ya
que slo es compatible con flas5 a un n;mero limitado de escrituras2 y un C7E
J.82 en este arranque de medio ambiente2 tambi3n de slo lectura. Barcos
de *indo+s ,P Embedded con una refor9ada Escribir Ailtro componente que
intercepta el sistema operativo y la aplicacin escribir instrucciones2 y2 en ve9
de escrito a los medios de comunicacin de arranque2 escribe en una cac53 en
memoria en lu$ar. Esto si$nifica que en el poder 5acia abajo2 los medios de
comunicacin no puede ser da:ada2 y el dispositivo siempre arranca en un
estado bueno conocido E a:adir a este apoyo para la reanudacin de la
5ibernacin de un arc5ivo varias veces2 y usted tiene un slido entorno de
arranque que proporciona la electrnica de consumo a nivel en el momento del
arranque.
's4 que Ncmo comparar *indo+s ,P Embedded con *indo+s CEP *indo+s
CE se 5a dise:ado como una peque:a 5uella2 duro en tiempo real2 sistema
operativo embebido que se ejecuta en m;ltiples arquitecturas de procesador2
que incluye arquitecturas "-62 8P%2 'J82 y %K4. Fn n;cleo de slo construir
es de apro"imadamente 211Ib2 y por supuesto el sistema operativo en funcin
de las escalas de los componentes que incluyen en su dise:o. Fna
confi$uracin t4pica pasarela residencial que soporta -12.11aDbD$2 la
administracin remota a trav3s de una interfa9 basada en la +eb2 y la
se$uridad ser4a de menos de 4 8B de tama:o. Fna *eb totalmente
confi$urado Pad ima$en que incluye nave$ador +eb2 8edia Player2 .ffice
televidentes2 el apoyo a la. GEH Compact Arame+orI2 y el E"plorador de
*indo+s %5ell podr4a estar m(s cerca de 1-8B de tama:o.
Kay una serie de diferencias fundamentales entre *indo+s CE y *indo+s ,P
Embedded. En primer lu$ar2 *indo+s CE es una de #2 bits2 Fnicode sistema
operativo que no es compatible con 8%E7.% o *indo+s #." aplicaciones.
'simismo2 la arquitectura de *indo+s CE es diferente de su primo de
escritorio. En el escritorio que usted esperaba encontrar tres principales
componentes del sistema operativoC Sernel#22 !7#22 y Fser#2. Gin$uno de
estos componentes e"isten en *indo+s CE. %us 5omlo$os puede
considerarse Coredll >Sernel#2?2 y !*E%2 $r(ficos de ventanas y el
subsistema de eventos >se puede pensar en esta como una combinacin de
!7#2 y Fser#2?2 lo que si$nifica que incluso simples aplicaciones de escritorio
no funciona en *indo+s CE . Como m4nimo2 las aplicaciones de escritorio
tendr4a que ser recompilado para que se ejecute en un dispositivo *indo+s
CE2 no slo por las diferencias de arquitectura2 sino tambi3n porque el
46
dispositivo *indo+s CE es m(s que probable que se ejecuta en un procesador
de noE"-6.
Fsted puede pensar que *indo+s CE se limita a correr slo en mano2 bater4as
de dispositivos tales como los dispositivos *indo+s 8obile. %i bien es cierto
que este es qui9(s el m(s visible de env4o dispositivo basado en *indo+s CE2
*indo+s CE y que tiene un $ran poder de $estin de 5istoria2 que ciertamente
no es el caso. Fsted puede encontrar ejecutando *indo+s CE en los sistemas
de control industriales2 dispositivos de control m3dico2 los robots2 venta al por
menor de punto de venta de dispositivos2 y muc5as otras cate$or4as de
sistemas embebidos. *indo+s CE se 5a dise:ado para ser un duro en tiempo
real2 sistema operativo embebido interrumpir el apoyo a las latencias en la subE
serie de die9 microse$undos. Esto es m(s que suficiente para muc5os en
tiempo real dise:os incorporados.
*indo+s CE se entre$a con un conjunto de 5erramientas que pueden
utili9arse para confi$urar2 construir y depurar una ima$en del sistema operativo
embebido. Kerramienta de creacin de la Plataforma es2 en muc5os aspectos
similar a la de *indo+s ,P Embedded 8eta 7ise:ador 5erramienta. Fn
promotor tiene la capacidad para utili9ar una Plataforma *i9ard >similar a la de
*indo+s ,P Embedded plantillas de dise:o? para confi$urar la confi$uracin
inicial del sistema operativo2 y puede a$re$ar o quitar caracter4sticas de dise:o
del sistema operativo. Platform Builder tambi3n contiene soporte para sistema
operativo caracter4stica dependencias. Por ejemplo2 a:adiendo el. GEH
Compact Arame+orI para un dise:o tambi3n a$re$ar soporte para el sistema
operativo tecnolo$4as.
Gormalmente encontrar *indo+s CE ejecuta en el 5ard+are personali9ado
donde el dise:ador busca reducir la factura de los materiales mediante la
reduccin del tama:o de la ima$en del sistema operativo2 la potencia del
procesador2 y el apoyo perif3ricos2 pero al mismo tiempo incluir el apoyo a la
tecnolo$4as m(s recientes del sistema operativo. Este proceso a menudo
requiere que *indo+s CE es @portado@ a los nuevos2 la costumbre de
5ard+are. Para ayudar en este proceso de portabilidad2 *indo+s CE buques
con millones de l4neas de cdi$o fuente2 lo que da la capacidad de e"aminar la
forma en que funciona en *indo+s CE2 y tal ve9 modificar el comportamiento
de la fuente. Aacilitar el acceso a la fuente tambi3n ayuda con el proceso de
portabilidad.
Fna ve9 que el sistema operativo *indo+s CE se construye la ima$en2 5ay
una serie de 5erramientas que pueden ser utili9ados para probar o depurar el
sistema operativo *indo+s CE de ima$en2 incluyendo el cdi$o fuente
depuradores2 monitores de rendimiento y 5erramientas de perfiles.
47
Kemos e"aminado brevemente al$unos de los aspectos t3cnicos de *indo+s
CE y *indo+s ,P Embedded2 pero ciertamente no termina a54. 8icrosoft
ofrece versiones de evaluacin de *indo+s CE y *indo+s ,P Embedded
como descar$as $ratuitas en 5ttpCDD+++.+indo+sembeddedIit.com de licencias
del sistema operativo no cortar las im($enes en realidad 5asta que se
empe9ar(n a distribuir los dispositivos2 y 8icrosoft tambi3n apoya los sistemas
operativos incrustados durante die9 a:osX Oui9(s es el momento de empe9ar
la evaluacin de *indo+s CE o *indo+s ,P Embedded para su pr"ima
incorporados dise:o.
48
O.ros asp*.os
Srv)*)os op*)onals/ In.r>as , usuar)oDsFll6
En el soporte de interfase de usuario tambi3n encontramos una amplia
variedad de mdulos opcionales2 que refleja perfectamente la variedad
e"istente en los computadores empotrados.
Kay que tener en cuenta que la interfase de usuario y el s5ell pueden ser dos
mdulos distintos2 pues tienen papeles diferentes desde el punto de vista de las
aplicaciones.
)a interfase de usuario permite interaccionar entre usuario y aplicacin.
El s5ell se encar$a de la interaccin entre usuario y sistema operativo.

)as opciones m(s usadas se pueden a$rupar dependiendo de si la plataforma


dispone o no de pantallaC
%olo en plataformas con pantalla.
o Consola de comandos. 8aneja una pantalla alfanum3rica y un
teclado. El s5ell que implementa es equivalente al C87.E,E de
*indo+s 2111D,P >simplificado?. Es la ;nica opcin si tenemos
una pantalla alfanum3rica2 aunque tambi3n se puede usar en
pantallas $r(ficas.
o Interfases basadas en ventanas >!FC !rap5ic Fser nterface?.
8aneja una pantalla $r(fica como dispositivo de salida. Kay m(s
variedad en los dispositivos de entradaC teclado2 ratn2 pantalla
t(ctil2 pulsadores2 etc. El s5ell m(s 5abitual es el equivalente al
E,P).JEJ.E,E de *indo+s 2111D,P. Kay muc5os tipos de !F
en *indo+s CE2 dependiendo de la complejidad que se quiera
implementarC desde el manejo de ventanas b(sico 5asta soporte
para multimedia y jue$os >7irect,?.
o En plataformas sin pantalla. Estos mdulos tambi3n pueden usarse si
tenemos pantalla.
o API para manejar leds y pulsadores. Es el nivel m(s sencillo2
aunque con frecuencia las aplicaciones optan por manejar
directamente estos elementos.
o Consola de comandos por cone"in serie. %i redireccionamos la
consola a uno de los puertos serie de la plataforma se puede usar
la consola de comandos con un emulador de terminal conectado al
puerto
49
o nterfase de usuario basado en *eb >Web-based user interfase?.
Es un s5ell implementado mediante p($inas *EB en la m(quina
tar$et.
50
SISTEMAS OPERATIVOS EMBEBIDOS
PRESENTACIN
%e entiende por sistemas embebidos a una combinacin de 5ard+are y
soft+are de computadora2 sumado tal ve9 a al$unas pie9as mec(nicas o de
otro tipo2 dise:ado para tener una funcin espec4fica. Es com;n el uso de estos
dispositivos pero pocos se dan cuenta que 5ay un procesador y un pro$rama
ejecut(ndose que les permite funcionar. Esto ofrece un contraste con la
computadora personal2 que si bien tambi3n esta formada por una combinacin
de 5ard+are y soft+are mas al$unas pie9as mec(nicas >discos r4$idos2 por
ejemplo?. %in embar$o la computadora personal no es dise:ada para un uso
especifico. %i no que es posible darle muc5os usos diferentes. 8uc5as veces
un sistema embebido es un componente de un sistema muc5o mas $rande2
como por ejemplo los sistemas de frenos o el sistema de inyeccin de
combustible2 en automviles actuales son sistemas embebidos. Esta
combinacin de soft+are y 5ard+are puede ser reempla9ada en muc5os casos
porun circuito inte$rado que realice la misma tarea. Pero una de las ventajas de
los sistemas embebidos es su fle"ibilidad. 6a que a la 5ora de reali9ar al$una
modificacin resulta muc5o mas sencillo modificar una l4neas de cdi$o al
soft+are del sistema embebido que reempla9ar todo el circuito inte$rado.
Fn uso muy com;n de los sistemas embebidos es en los sistemas de tiempo
real 2entendi3ndose por sistemas en tiempo real a aquellos sistemas en los que
el control del tiempo es vital para el correcto funcionamiento. )os sistemas en
tiempo real necesitan reali9ar ciertas operaciones o c(lculos en un limite de
tiempo. 7onde ese limite de tiempo tiempo resulta crucial. Fn ejemplo claro de
un sistema de tiempo real es el control de trafico a3reo.
51
ESTR3CT3RA K COMPONENTES DEL SISTEMA
Es.ru*.ura
)as principales caracter4sticas de un sistema embebido son el bajo costo y
consumo de potencia. 7ado que muc5os sistemas embebidos son concebidos
para ser producido sen miles o millones de unidades2 el costo por unidad es un
aspecto importante a tener en cuenta en la etapa de dise:o. $eneralmente2 los
sistemas embebidos emplean procesadores muy b(sicos2 relativamente lentos
y memorias peque:as para minimi9ar los costos. En estos sistemas la
velocidad no solo est( dada por la velocidad del reloj del procesador2 sino que
el total la arquitectura se simplifica con el fin de reducir costos. Gormalmente2
un sistema embebido emplea perif3ricos controlados por interfases seriales
sincrnicas2 las cuales son muc5as veces m(s lentas que los perif3ricos
empleados en un PC. Como se mostr anteriormente2 un sistema embebido
debe enfrentar fuertes restricciones de recursos2 por tanto normalmente deber(
5acer uso de sistemas operativos especiales2 denominados de tiempo real
>JH.% Jeal time operatin$ system?.)os sistemas embebidos deber(n
reaccionar a est4mulos provenientes del ambiente2 respondiendo con fuertes
restricciones de tiempo en muc5os casos2 por lo tanto2 un sistema se dice que
trabaja en tiempo real si la informacin despu3s de la adquisicin y tratamiento
es todav4a vi$ente. Es decir2 que en el caso de una informacin que lle$a de
forma peridica2 los tiempos de adquisicin y tratamiento deben ser inferiores al
per4odo de actuali9acin de dic5a informacin. Fn sistema embebido puede o
no ser de tiempo de real dependiendo de los requerimientos espec4ficos de la
aplicacin que se quiere implementar.
)os pro$ramas en estos sistemas se ejecutan minimi9ando los tiempos
muertos y enfrentando fuertes limitaciones de 5ard+are2 ya que usualmente no
tienen discos duros2 ni teclados o monitores2 una memoria flas5 reempla9a los
discos y al$unos botones y una pantalla )C7 normalmente reempla9an los
dispositivos de interfa9. El soft+are que controla un dispositivo de 5ard+are2
por ejemplo n una memoria J.82 Alas5 o un circuito inte$rado se conoce
como Airm+are. H4picamente la pro$ramacin en estos dispositivos se reali9a
en len$uaje ensamblador o en len$uaje C2 actualmente se 5an desarrollado
al$unas m(quinas virtuales y otros compiladores que permiten el dise:o de
pro$ramas m(s complejos. 'dem(s se puede encontrar depuradores2
simuladores2 ases de datos2 !Fs2 metodolo$4as entre otras 5erramientas para
el dise:oy pro$ramacin de este tipo de sistemas.
52
Co'ponn.s , un s)s.'a '99),o
Fn sistema embebido en principio estar4a formando por un microprocesador y
un soft+are que se ejecute sobre este. %in embar$o este soft+are necesitara
sin duda un lu$ar donde poder $uardarse para lue$o ser ejecutado por el
procesador. Esto podr4a tomar la forma de memoria J'8 o J.82 Hodo sistema
embebido necesitara en al$una medida una cierta cantidad de memoria2 la cual
puede incluso encontrarse dentro del mismo c5ip del procesador. 'dem(s de
esto normalmente un sistema embebido contara con una serie de salidas y
entradas necesarias para comunicarse con el mundo e"terior. 7ebido a que las
tareas reali9adas por sistemas embebidos son de relativa sencille92 los
procesadores com;nmente usados cuentan con re$istros de - o 16 bits. En su
memoria solo reside el pro$rama destinado a $obernar una aplicacin
determinada. %us l4neas de entradaDsalida soportan el cone"ionado de los
sensores y actuadotes del dispositivo a controlar y todos los recursos
complementarios disponibles tiene como ;nica finalidad atender a sus
requerimientos. Estas son las ;nicas caracter4sticas que tienen en com;n los
sistemas embebidos2 todo lo dem(s ser( totalmente diferente para cada
sistema embebido en particular debido a la inmensa diversidad de aplicaciones
disponibles.
ArGu).*.ura 91s)*a '1s 'pla,a
M)*ropro*sa,or
Es el encar$ado de reali9ar las operaciones de c(lculo principales del sistema.
Ejecuta cdi$o para reali9ar una determinada tarea y diri$e el funcionamiento
de los dem(s elementos que le rodean2 a modo de director de una orquesta.
M'or)a
En ella se encuentra almacenado el cdi$o de los pro$ramas que el sistema
puede ejecutar as4 como los datos. %u caracter4stica principal es que debe
tener un acceso de lectura y escritura lo m(s r(pido posible para que el
microprocesador no pierda tiempo en tareas que no son meramente de c(lculo.
'l ser vol(til el sistema requiere de un soporte donde se almacenen los datos
incluso sin disponer de alimentacin o ener$4a.
Ca*FC
8emoria m(s r(pida que la principal en la que se almacenan los datos y el
cdi$o accedido ;ltimamente. 7ado que el sistema reali9a microtareas2 muc5as
veces repetitivas2 la cac53 5ace a5orrar tiempo ya que no 5ar( falta ir a
memoria principal si el
dato o la instruccin ya se encuentra en la cac53. 7ado su alto precio tiene un
tama:o muy inferior >- _ 012 SB? con respecto a la principal >- _ 206 8B?
53
D)s*o ,uro
En 3l la informacin no es vol(til y adem(s puede conse$uir capacidades muy
elevadas. ' diferencia de la memoria que es de estado slido 3ste suele ser
ma$n3tico. Pero su e"cesivo tama:o a veces lo 5ace inviable para PCs
embebidos2 con lo que se requieren soluciones como discos de estado slido.
E"isten en el mercado varias soluciones de esta clase >7isI.nC5ip2
CompactAlas52 7E Alas5 7rive2 etc.? con capacidades suficientes para la
mayor4a de sistemas embebidos >desde 2 5asta mas de 1 !B?. El controlador
del disco duro de PCs est(ndar cumple con el est(ndar 7E y es un c5ip m(s
de la placa madre.
D)s*o >l?)9l
%u funcin es la de un disco duro pero con discos con capacidades muc5o m(s
peque:as y la ventaja de su portabilidad. %iempre se encuentra en un PC
est(ndar pero no as4 en un PC embebido. 11
BIOSLROM
B.% >Basic nput Z .utput %ystem2 sistema b(sico de entrada y salida? es
cdi$o que es necesario para iniciali9ar el ordenador y para poner en
comunicacin los distintos elementos de la placa madre. )a J.8 >Jead .nly
8emory2 memoria de slo lectura no vol(til? es un c5ip donde se encuentra el
cdi$o B.%.
CMOSLRAM
Es un c5ip de memoria de lectura y escritura alimentado con una pila donde se
almacena el tipo y ubicacin de los dispositivos conectados a la placa madre
>disco duro2 puertos de entrada y salida2 etc.?. 'dem(s contiene un reloj en
permanente funcionamiento que ofrece al sistema la fec5a y la 5ora.
CF)p S.
C5ip que se encar$a de controlar las interrupciones diri$idas al
microprocesador2 el acceso directo a memoria >78'? y al bus %'2 adem(s de
ofrecer tempori9adores2 etc. Es frecuente encontrar la C8.%EJ'8 y el reloj de
tiempo real en el interior del C5ip %et.
54
PLATAFORMAS
L)nu? n s)s.'as '99),os
)inu" est( presente en muc5as partes. Oui9( a;n no5aya $anado la batalla en
los ordenadores personales2 pero definitivamente es el n;mer uno en el (rea
de los sistemas embebidos. %in saberlo2 nos rodean miles de dispositivos que
funcionan con )inu" 'l contrario de lo que pueda parecer2 Embedded )inu" no
es una versin reducida de )inu". El calificativo `embebido a realmente 5ace
referencia a la funcionalidad de la aplicacin2 no a la funcionalidad de )inu".)a
fiabilidad de )inu" es consecuencia directa de esta filosof4a que lleva impl4cita
la aportacin altruista de miles de pro$ramadores de todo el mundo
observando el cdi$o2 mejor(ndolo2 cambi(ndolo y prob(ndolo en miles de
confi$uraciones posibles del sistema. )inu" para los dispositivos embebidos
comen9 con el soporte del Iernel y el compilador para los microprocesadores
m(s populares de #2 bitsC "-62 'J82 Po+erPC2 8P% y %K. 6 lue$o continu
con la aparicin de diferentes distribuciones de )inu" con soporte para
caracter4sticas espec4ficas de los sistemas embebidos. !racias a la
disponibilidad del cdi$o fuente2 a la ausencia de LroyaltiesM y al soporte de los
micros y tecnolo$4as modernas2 )inu" est( actualmente atacando de forma
fero9 el mercado de los JH.%. 1# Fno de los cambios fundamentales en )inu"
es la inclusin del proyecto uClinu" en el Iernel principal. El proyecto uClinu"
>que puede pronunciarse como @uEc3Elinu"@ [en in$l3s @youEseeE)inu"@\2 aunque
en ri$or debe escribirse con la letra $rie$a @mu@? si$nifica )inu" para
8icrocontroladores. Esta variante de )inu" 5a sido un pila fundamental para su
aceptacin en el mercado embebido2 y su inclusin en la versin oficial deber4a
aumentar a;n m(s el desarrollo en este campo. 'l contrario que las variantes
de )inu" a las que estamos acostumbrados2 en los sistemas embebidos no
tenemos todas las capacidades del Iernel2 debido a limitaciones de 5ard+are.
)a principal diferencia en estas variantes es la ausencia de 88F >memory
mana$ement unit o @unidad de $estin de memoria@ E lo que 5ace que un
sistema operativo pueda trabajar en modo prote$ido? inte$rada en el
procesador. 'unque suelen ser sistemas )inu" multitarea2 no tienen proteccin
de memoria ni otras caracter4sticas asociadas. >%in proteccin de memoria2 es
posible que un proceso aventurero lea los datos de otros
procesos2 o incluso que los 5a$a col$arse.? Esto reduce su utilidad en un
sistema multiusuario2 pero los 5ace ideales para una a$enda electrnica >P7'?
de bajo coste o un dispositivo dedicado. Es dif4cil e"a$erar la importancia de
este cambio de arquitectura en )inu" 2.6C 5asta el momento2 todas las
versiones se$u4an afectadas >por m(s remotamente que fuera? por las
limitaciones in5erentes al trabajo inicial de )inus en su ntel -1#-6. Kay varias
l4neas nuevas de procesadores embebidos con soporte en )inu" 2.62
incluyendo la serie Kitac5i K-D#112 el procesador GEC v-012 y la l4nea de
procesadores embebidos m6-I dise:ada por 8otorola. Rstos ;ltimos son los
m(s familiares para el usuario corriente de )inu"2 ya que est(n en el cora9n
de las a$endas Palm Pilot desde el principio >la Palm 1111?. .tros modelos2
con nombres tan su$erentes como 7ra$onBall o ColdAire2 son utili9ados en
55
sistemas y placas de evaluacin fabricadas por 8otorola2 )ineo2 'rcturus2 y
otras empresas. Por des$racia2 la v2.6 todav4a no permite usar otros
procesadores m6-I m(s anti$uos sin 88F >como los procesadores 6-111
utili9ados en los primeros 8acintos5?2 pero es bastante probable que surjan
proyectos amateur para incluir 3stos sistemas y otros parecidos. 'unque no
sea parte de la inclusin de uClinu" >al disponer de 88F?2 esta nueva revisin
puede usarse tambi3n en los procesadores de '"is Communications2 la serie
EHJ', CJ% >Code Jeduced nstruction %et2 o @Conjunto Jeducido de
nstrucciones de Cdi$o@?. >Kay que se:alar que la inclusin de este
procesador lle$ durante el ciclo de mantenimiento del Iernel 2.4 EE bastante
despu3s de que saliera la versin 2.4.1.? Es un procesador embebido usado
sobre todo en equipamiento de redes. El Iernel no incluye todav4a soporte para
variantes sin 88F2 pero varios proyectos e"ternos est(n ya trabajando en ello.
'dem(s de soporte para 5ard+are2 5ay tambi3n mejoras importantes
resultantes de la inte$racin de sistemas embebidos en el Iernel principal.
8ientras que la mayor4a de ellas no son visibles2 la robuste9 $eneral del
sistema operativo se ve mejorada por cambios como la capacidad de construir
un sistema completo sin soporte de s+ap.
;)n,o<s JP para s)s.'as '99),os
'unque 8icrosoft 5a mantenido a los fabricantes de sistemas operativos
alternativos a *indo+s contra la pared en lo que se refiere a equipos de
sobremesa2 su posicin en la batalla por la supremac4a en el terreno de los
sistemas operativos para dispositivos que no fueran PC era vulnerable. 7e a54
que 8icrosoft da un paso m(s en este sector2 lan9ando la versin para
dispositivos embebidos en la Conferencia para desarrolladores de este tipo de
sistemas que se celebra en )as Ye$as. Esta decisin parece ir en consonancia
con las predicciones que apuntan a una pro$resiva inclusin de
microprocesadores en casi cualquier tipo de aparatos >fri$or4ficos2 coc5es2 etc?.
'dem(s2 con esta iniciativa 8icrosoft 5ace frente a la competencia sur$ida por
parte2 por ejemplo2 de )inu" que2 se$;n muc5os analistas2 permite reducir
costes2 ya que no car$a el precio de los royalties. Hambi3n e"iste la opcin de
utili9ar un sistema propietario como los desarrollados por la compa:4a *ind
Jiver %ystems cuyo punto fuerte es su $ran capacidad para trabajar en tiempo
real2 su alta resistencia a fallos y la posibilidad de procesar comandos de forma
inmediata. %er4a el caso2 por ejemplo2 de aparatos m3dicos que deben ser muy
fiables y r(pidos.
56
DOS n s)s.'as '99),os
'l ritmo que marc5a la inform(tica2 cualquiera dir4a que el 7.% es un sistema
operativo antiqu4simo2 ya superado en $ran medida por otros sistemas
operativos de escritorio como *indo+s y )inu" y2 en cierta forma2
pr(cticamente olvidado. Como si fuera al$o de otro mundo. %in embar$o2 5ace
tan slo die9 a:os casi cualquier ordenador funcionaba con este sistema.
El 7.% est( estrec5amente li$ado al pro$resivo desarrollo de los
microprocesadores de arquitectura "-6 de ntel. 6 es que es un sistema
operativo que 5ay que conocer porque si$ue estando en vi$or $racias a su
estabilidad. NOu3 por qu3 es tan estableP Pues porque se desarrollaba en
paralelo con la tecnolo$4a de ntel e B8 y porque es un sistema operativo muy
simple2 monousuario y monotarea. En otras palabras2 7.% slo ejecuta un
pro$rama cada ve9. Es obvio2 que para un ordenador personal el 7.% resulta
bastante in;til. Pero Ny para un dispositivo electrnicoP )a mayor4a de ellos
slo tienen que reali9ar una tarea de forma repetitiva... 'dem(s de su reducido
tama:o y de los escasos recursos que necesita2 por ejemplo J.8E7.% posee
al$unas caracter4sticas que marcan la diferencia de forma si$nificativaC J,E
>Jelocatable E"ecutable?C En 7.%2 los pro$ramas se car$an en J'8 antes de
proceder a su ejecucin. )a tecnolo$4a J,E permite convertir un pro$rama
est(ndar en un pro$rama que se puede ejecutar directamente desde J.8.
J.8E7.% BF)7 FtilityC Permite a:adir y quitar caracter4sticas al sistema
operativo2 reduciendo as4 el tama:o final del Iernel. Car$a din(mica de drivers
de dispositivoC J.8E7.%H8 tiene la capacidad de detectar el 5ard+are y
car$ar drivers de dispositivo de forma din(mica2 lo que le permite
autoconfi$urarse se$;n el entorno. Entre otros aparatos2 este sistema operativo
podemos encontrarlo enC
T C(maras di$itales
T 7ispositivos de captura de datos
T Cajeros autom(ticos
T 7ispositivos !P%
57
Java para s)s.'as '99),os
%un 8icrosystems2 nc.2 creadora y m("ima defensora de la tecnolo$4a Qava2
amplia su oferta para el mercado de desarrollo embebido con el lan9amiento de
dos nuevas ediciones de Qava Platform %tandard Edition >Qava %E?. %e trata de
una versin @5eadless@ con un tama:o reducido que emplea menos de 2# 8b
de espacio de almacenamiento2 y de una versin para usuarios de Po+erPC.
)a tecnolo$4a Qava es cada ve9 m(s utili9ada en sistemas embebidos
avan9ados2 debido a sus capacidades in5erentes de soporte de red2
optimi9acin de dispositivos y procesado de datos. )a mayor4a de las
caracter4sticas de la plataforma Qava %E pueden ser a5ora empleadas para el
desarrollo embebido2 $racias a la capacidad cada ve9 mayor del nuevo
5ard+are disponible en el mercado. )a versin @5eadless@ >sin soporte $r(fico?
de Qava %E requiere slo 2# 8b de espacio de almacenamiento y es ideal para
desarrolladores de soft+are para dispositivos embebidos que quieran
aprovec5ar las slidas capacidades de red y procesamiento2 y el rendimiento
de la tecnolo$4a Qava. Por su parte2 la plataforma para Po+erPC es una versin
estable de Qava %E dise:ada espec4ficamente para el procesador Po+erPC2
que actualmente est( muy e"tendido entre desarrolladores de dispositivos
embebidos a $ran escala >no tel3fonos mviles?. Kay dos tendencias
conver$entes en el mercado de dispositivos actualesC una es que la potencia y
capacidad de escalar del procesador _se$;n dicta la ley de 8ooreE 5ace
posible la aparicin de plataformas m(s peque:as y m(s potentes para su uso
en dispositivos embebidos= y la otra es que m(s y m(s dispositivos se est(n
conectando a nternet todos los d4as. Esto si$nifica que el mercado de
dispositivos embebidos est( evolucionando r(pidamente y qui9( est(
convirti3ndose en el principal entorno inform(tico para este si$lo@2 afirma Qos3
8anuel Estrada2 arquitecto Qava en %un Qava %E ofrece a los desarrolladores
de dispositivos embebidos la capacidad para desple$ar aplicaciones en
m;ltiples plataformas 5ard+are2 y cuenta con caracter4sticas como $en3ricos2
plantillas y compiladores que no est(n disponibles en nin$;n otro len$uaje de
pro$ramacin. Qava Gative nterface >QG? proporciona a los desarrolladores la
capacidad de acceder a sus librer4as de cdi$o CDCbb directamente2 sin
necesidad de reescribir cdi$o. 'dem(s2 los desarrolladores pueden acceder a
un amplio abanico de cdi$o libre y de fuente abierta2 as4 como participar junto
a otros desarrolladores de soft+are Qava en proyectos en comunidad como
GetBeans2 Homcat2 'pac5e2 7erby y muc5os otros. Es importante se:alar que
las nuevas versiones de Qava %E no restan valor a la plataforma Qava Platform
8icro Edition >Qava 8E?. )a tecnolo$4a Qava 8E si$ue siendo una plataforma
est(ndar de primera l4nea para el desarrollo embebido tradicional en
dispositivos con poca memoria y potencia de procesador >tales como tel3fonos
mviles2 P7's2 procesadores embebidos en peque:as impresoras2 copiadoras2
etc.?. Paralelamente a las dos nuevas versiones de Qava %E2 %un tambi3n 5a
anunciado un nuevo servicio de ajuste y pruebas para optimi9ar el rendimiento
de la plataforma Qava %E en desplie$ues embebidos
58
Ins.ala*)n
El proceso a $randes ras$os consiste enC
1. %aber la arquitectura 5ard+are del dispositivo.
2. Confi$urar el Iernel incluyendo los controladores para esos dispositivos
y eliminando todo lo que no nos sirva.
#. Crear el script de confi$uracin y ejecucin de la aplicacin embebida.
4. Confi$urar y compilar la busybo" incluyendo la aplicacin y el script.
0. Compilar el Iernel
6. Prueba de ejecucin
Cono*)n,o la arGu).*.ura
Para $enerar el Iernel correcto es necesario conocer lo m(s posible la
arquitectura subyacente. %i disponemos del manual o datas5eet del dispositivo
podemos determinar los controladores necesarios. %i este no es nuestro caso2
podemos arrancar con una distribucin linu" live >Ej. Fbuntu? y determinar que
controladores son los necesarios anali9ando los mdulos car$ados y el (rbol
de fic5eros $enerados bajo Dsys.
Con>)-ura*)n ,l Brnl
6a conocemos nuestro 5ard+are. '5ora necesitamos confi$urar correctamente
el Iernel para que ten$a una 5uella peque:a pero con toda la funcionalidad
requerida.
1. %eleccionar la arquitectura @m(s cercanaDcompatible@ a la nuestra >Ej.
PentiumE42 Pentium 2 etc?
2. 7es5abilitamos @Enable loadable modules support@2 pues queremos
inscrutar los controladores dentro de la ima$en y no depender de
mdulos e"ternos.
#. %eleccionar el modo apropiativo. Nnuestro soft+are interactua muc5o
con el usuarioP %i ese el caso necesitamos poca latencia2 lue$o
seleccionamos el modo 'propiativo @Preemption 8odelEcPreemptible
Sernel. %i por el contrario nuestro sistema procesa transacciones a
modo de servidor es conveniente usar @Go force preemption@. Por
defecto el Iernel usa el termino medio2 Yoluntary Preemption.
4. Jeloj. %i nuesta aplicacin necesita tempori9acin de alta precisin
deberemos de activar el Ki$5 Jesolution Himer >si nuestro 5ard+are
tambi3n es capa9?.
0. 7ispositivos de bloque. 'ctivar unicamente los controladores
%'H'DP'H'D7E de nuestro dispositivos.
6& F%B. Es 5abitual 5abilitar el uso de F%B 2.1 y la clase F%B K7 para
poder usar teclados2 ratones2 etc. 7e5abilitamos todo lo demas.
59
&. %istema de arc5ivos. %eleccionamos el sistema de arc5ivos que
necesitemos >recomendable sistema de arc5ivos con Qourlin$2 ej. e"t# o
reiserfs?. En sistemas con poco disco suele usarse a menudo el QAA%2
como sistemas de arc5ivos para memorias flas5.
-. Yideo4)inu". Gormalmente se des5abilita.
/. %ound. Nnecesitamos sonidoP
7espu3s de seleccionar los controladores que necesitamos estariamos listos
para $enerar una ima$en del Iernel @normal@. En nuestro caso nos interes
construir un Iernel que despu3s de iniciali9arse no monte un sistema de
arc5ivos dentro de un disco duro >procedimiento normal?2 sino que monte un
sistema de arc5ivos temporal que va comprimido y embebido dentro de la
propia ima$en del Iernel.
Para lo$rar esto debemos especificar un fic5ero especial que sirve de $u4a para
$enerar este sistema de arc5ivos. 'nalicemos el ejemplo que muestra la ayuda
de usrD$en]init]cpio.
Apl)*a*)n '99),a
El objetivo de $enerar este Iernel es poder correr nuestra aplicacin en un
sistema embebido. 7ebemos procurar $enerar nuestra aplicacin teniendo muy
en cuenta la arquitectura subyacente y aprovec5ando todo su potencial. Es
recomendable si procede2 $enerar un ejecutable est(tico e incluir 5erramientas
de depuracin remota o dia$nsticos >ejecucin2 estado temperatura2 car$a de
trabajo2 lo$s2 etc?.
Compilado pues2 lo a$re$amos a la lista de construccin de ima$en la ima$en
con la correspondiente entrada @file@. El fic5ero init invocar( nuestra aplicacin
al final de la confi$uracin.
Co'p)la*)n ,l Irnl6
Con los deberes 5ec5os2 ya podemos construir la ima$en del Iernel de forma
5abitual >@maIe@? o se$;n nuestros requisitos >compilacin cru9ada?. %i todo 5a
ido bien2 obtendremos nuestra ima$en de Iernel lista para ser implantada en
nuestro sistema embebido.
60
GESTIN DE PROCESOS K DEL PROCESADOR
Fn microprocesador es una implementacin en forma de circuito inte$rado >C?
de la Fnidad Central de Proceso CPF de un ordenador. Arecuentemente nos
referimos a un microprocesador como simplemente VCPFW2 y la parte de un
sistema que contiene al microprocesador se denomina subsistema de CPF.
)os microprocesadores var4an en consumo de potencia2 complejidad y coste.
)os 5ay de unos pocos miles de transistores y con coste inferior a 2 euros >en
produccin masiva? 5asta de m(s de cinco millones de transistores que
cuestan m(s de 611 euros.
)os subsistemas de entradaDsalida y memoria pueden ser combinados con un
subsistema de CPF para formar un ordenador o sistema inte$rado completo.
Estos subsistemas se interconectan mediante los buses de sistema >formados
a su ve9 por el bus de control2 el bus de direcciones y el bus de datos?.
El subsistema de entrada acepta datos del e"terior para ser procesados
mientras que el subsistema de salida transfiere los resultados 5acia el e"terior.
)o m(s 5abitual es que 5aya varios subsistemas de entrada y varios de salida.
' estos subsistemas se les reconoce 5abitualmente como perif3ricos de ED%.
El subsistema de memoria almacena las instrucciones que controlan el
funcionamiento del sistema. Estas instrucciones comprenden el pro$rama que
ejecuta el sistema. )a memoria tambi3n almacena varios tipos de datosC datos
de entrada que a;n no 5an sido procesados2 resultados intermedios del
procesado y resultados finales en espera de salida al e"terior.
Es importante darse cuenta de que los subsistemas estructuran a un sistema
se$;n funcionalidades. )a subdivisin f4sica de un sistema2 en t3rminos de
circuitos inte$rados o placas de circuito impreso >PCB? puede y es
normalmente diferente. Fn solo circuito inte$rado >C ? puede proporcionar
m;ltiples funciones2 tales como memoria y entradaDsalida.
Fn micro controlador >8CF? es un C que incluye una CPF2 memoria y circuitos
de ED%. Entre los subsistemas de ED% que incluyen los micro controladores se
encuentran los tempori9adores2 los convertidores anal$ico a di$ital >'7C? y
di$ital a anal$ico >7'C? y los canales de comunicaciones serie. Estos
subsistemas de ED% se suelen optimi9ar para aplicaciones espec4ficas >por
ejemplo audio2 video2 procesos industriales2 comunicaciones2 etc.?.
61
Kay que se:alar que las l4neas reales de distincin entre microprocesador2
micro controlador y microcomputador en un solo c5ip est(n difusas2 y se
denominan en ocasiones de manera indistinta unos y otros.
En $eneral2 un %E consiste en un sistema con microprocesador cuyo 5ard+are
y soft+are est(n espec4ficamente dise:ados y optimi9ados para resolver un
problema concreto eficientemente. Gormalmente un %E interact;a
continuamente con el entorno para vi$ilar o controlar al$;n proceso mediante
una serie de sensores. %u 5ard+are se dise:a normalmente a nivel de c5ips2 o
de intercone"in de PCB2 buscando la m4nima circuiter4a y el menor tama:o
para una aplicacin particular. .tra alternativa consiste en el dise:o a nivel de
PCB consistente en el ensamblado de placas con microprocesadores
comerciales
62
GESTIN DE MEMORIA
)a memoria es uno de los principales recursos de la computadora2 la cual debe
de administrarse con muc5o cuidado. 'unque actualmente la mayor4a de los
sistemas de cmputo cuentan con una alta capacidad de memoria2 de i$ual
manera las aplicaciones actuales tienen tambi3n altos requerimientos de
memoria2 lo que si$ue $enerando escase9 de memoria en los sistemas
multitarea yDo multiusuario.
)a parte del sistema operativo que administra la memoria se llama
administrador de memoria y su labor consiste en llevar un re$istro de las partes
de memoria que se est3n utili9ando y aquellas que no2 con el fin de asi$nar
espacio en memoria a los procesos cuando 3stos la necesiten y liber(ndola
cuando terminen2 as4 como administrar el intercambio entre la memoria
principal y el disco en los casos en los que la memoria principal no le pueda dar
capacidad a todos los procesos que tienen necesidad de ella.
)os sistemas de administracin de memoria se pueden clasificar en dos tiposC
los que despla9an los procesos de la memoria principal al disco y viceversa
durante la ejecucin y los que no.
El propsito principal de una computadora es el de ejecutar pro$ramas2 estos
pro$ramas2 junto con la informacin que accesan deben de estar en la memoria
principal >al menos parcialmente? durante la ejecucin.
Para optimi9ar el uso del CPF y de la memoria2 el sistema operativo debe de
tener varios procesos a la ve9 en la memoria principal2 para lo cual dispone de
varias opciones de administracin tanto del procesador como de la memoria.
)a seleccin de uno de ellos depende principalmente del dise:o del 5ard+are
para el sistema. ' continuacin se observar(n los puntos correspondientes a la
administracin de la memoria.
M'or)a ral
)a memoria real o principal es en donde son ejecutados los pro$ramas y
procesos de una computadora y es el espacio real que e"iste en memoria para
que se ejecuten los procesos. Por lo $eneral esta memoria es de mayor costo
que la memoria secundaria2 pero el acceso a la informacin contenida en ella
es de m(s r(pido acceso. %olo la memoria cac5e es m(s r(pida que la
principal2 pero su costo es a su ve9 mayor.
63
Mono pro-ra'a*)n s)n )n.r*a'9)o o pa-)na*)n
Cuando solo se tiene un proceso que ocupe la memoria a la ve92 el esquema
de la administracin de la memoria es el m(s sencillo que 5ay. %in embar$o2
3ste m3todo ya no tiene aplicacin en la actualidad2 ya que era visto en las
computadoras con sistemas operativos de un solo usuario y una sola tarea. El
usuario introduc4a su disco a la computadora >por lo $eneral2 la m(quina no
contaba con disco duro? y ejecutaba su aplicacin2 la cual acaparaba toda la
m(quina.
Mul.)pro-ra'a*)n A uso , ''or)a
Esta or$ani9acin facilita la pro$ramacin de una aplicacin al dividirla en dos o
m(s procesos. 'dem(s ofrece la capacidad de tener m(s de un proceso a la
ve9 en memoria as4 puede ofrecer servicios a varios usuarios a la ve9.
El esquema de multipro$ramacin incrementa el aprovec5amiento del CPF2
dado que a diferencia de la mono pro$ramacin en donde solo un proceso
reside en memoria a la ve9 limitando el uso del procesador a las llamadas que
requiera dic5o proceso2 desperdiciando un promedio del -1U del tiempo del
procesador. En cambio la multipro$ramacin2 al tener varios procesos en la
memoria principal y dividi3ndose el tiempo de uso del procesador2 lo$ra reducir
dr(sticamente el desperdicio del procesador.
Mul.)pro-ra'a*)n *on par.)*)ons >)(as
Para poder implementar la multipro$ramacin2 se puede 5acer uso de
particiones fijas o variables en la memoria. En el caso de las particiones fijas2 la
memoria se puede or$ani9ar dividi3ndose en diversas partes2 las cuales
pueden variar en tama:o. Esta particin la puede 5acer el usuario en forma
manual2 al iniciar una sesin con la m(quina.
Fna ve9 implementada la particin2 5ay dos maneras de asi$nar los procesos a
ella. )a primera es mediante el uso de una cola ;nica >fi$ura 2a? que asi$na los
procesos a los espacios disponibles de la memoria conforme se vayan
desocupando. El tama:o del 5ueco de memoria disponible es usado para
locali9ar en la cola el primer proceso que quepa en 3l. .tra forma de
asi$nacin es buscar en la cola el proceso de tama:o mayor que se ajuste al
5ueco2 sin embar$o 5ay que tomar en cuenta que tal m3todo discrimina a los
procesos m(s peque:os. 7ic5o problema podr4a tener solucin si se asi$na
una particin peque:a en la memoria al momento de 5acer la particin inicial2 el
cual ser4a e"clusivo para procesos peque:os.
Esta idea nos lleva a la implementacin de otro m3todo para particiones fijas2
que es el uso de diferentes colas independientes >fi$ura 2b? e"clusivas para
cierto ran$o en el tama:o de los procesos. 7e esta manera al lle$ar un
proceso2 3ste ser4a asi$nado a la cola de tama:o m(s peque:o que la pueda
aceptar. )a desventaja en esta or$ani9acin es que si una de las colas tiene
64
una lar$a lista de procesos en espera2 mientras otra cola esta vac4a2 el sector
de memoria asi$nado para ese tama:o de procesos estar4a desperdici(ndose.
Mul.)pro-ra'a*)n *on par.)*)ons var)a9ls
Este esquema fue ori$inalmente usado por el sistema operativo B8 .%D#61
>llamado 8AH?2 el cual ya no est( en uso.
El sistema operativo lleva una tabla indicando cu(les partes de la memoria
est(n disponibles y cu(les est(n ocupadas. nicialmente2 toda la memoria est(
disponible para los procesos de usuario y es considerado como un $ran bloque
o 5ueco ;nico de memoria. Cuando lle$a un proceso que necesita memoria2
buscamos un 5ueco lo suficientemente $rande para el proceso. %i encontramos
uno2 se asi$na ;nicamente el espacio requerido2 manteniendo el resto
disponible para futuros procesos que requieran de espacio.
Consideremos el ejemplo de la fi$ura #2 en donde se cuenta un espacio
reservado para el sistema operativo en la memoria baja de 411S y un espacio
disponible para procesos de usuario de 2161S2 siendo un total de memoria del
sistema de 2061S. 7ada la secuencia de procesos de la fi$ura y usando un
al$oritmo de )irst Come * )irst Served >)C)S? se puede asi$nar de inmediato
memoria a los procesos P
1
2 P
2
y P
#
2 creando el mapa de memoria de la fi$ura
4>a? en el cual queda un 5ueco de 261S que ya no puede ser utili9ado por el
si$uiente proceso dado que no es suficiente para abarcarlo.
65
GESTIN DE MEMORIA A3JILIAR
La ''or)a au?)l)ar >llamada tambi3n memoria f4sica o memoria e"terna? que
almacena informacin a lar$o pla9o2 incluso despu3s de apa$ar el equipo. )a
memoria au"iliar corresponde a los dispositivos ma$n3ticos de almacenamiento
como por ejemplo el disco duro2 dispositivos pticos de almacenamiento como los
C7EJ.8 y 7Y7EJ.82 y a las memorias de slo lectura.
SISTEMA DE ARC0IVOS M4FSN6
dA%2 es el sistema de arc5ivos din(mico del sistema operativo %olaris. Con 16
millones de millones m(s de capacidad que los sistemas de arc5ivos 64Ebit
e"istentes2 dA% virtualmente es el ;nico sistema de arc5ivos con capacidad de
almacenamiento pr(cticamente ilimitada2 lo que 5ace de %olaris el mejor de la
industria para el almacenamiento de datos.
Este sistema de arc5ivo ofreceC
A,')n)s.ra*)n sn*)lla/
dA% automati9a y consolida complicados conceptos de almacenamiento2 con lo
que se reduce la sobrecar$a administrativa en un -1 por ciento.
In.-r),a, , ,a.os/
dA% prote$e todos los datos con sumas de comprobacin de 64 bits que
detectan y corri$en el da:o de datos silenciosos.
Es*ala9)l),a,/
dA%2 el primer sistema de arc5ivos de 12- bits2 ofrece una capacidad de
16.111 millones de veces superior a la de los sistemas de #2 64Ebits.
Rn,)')n.o/
El modelo transaccional elimina la mayor parte de las restricciones
tradicionales sobre la orden de emisin de ED%2 con lo que se consi$uen
incre4bles mejoras en el rendimiento.
'l tiempo que simplifica en $ran medida el trabajo de los administradores del
sistema2 dA% ayuda a incrementar los beneficios econmicos de una
or$ani9acin. Como dA% est( dise:ado sobre conjuntos de almacenamiento
virtual >a diferencia de los sistemas de arc5ivos tradicionales que requieren un
administrador de vol;menes?2 la creacin y eliminacin de sistemas de arc5ivos
resultan muc5o menos complicadas. dA% act;a para las aplicaciones como un
sistema de arc5ivos P.%, est(ndar2 no se requiere cone"in mediante
puertos. Pero para los administradores2 presenta un modelo de
almacenamiento por conjuntos que eliminan el anti$uo concepto de vol;menes2
as4 como todos los problemas relacionados con la administracin de
particiones2 el abastecimiento y el tama:o del sistema de arc5ivos. 7el
conjunto de almacenamiento com;n de dA% se pueden e"traer miles >incluso
millones? de sistemas de arc5ivos y cada uno de ellos consume ;nicamente la
66
cantidad de espacio que necesita. El anc5o de banda de ED% combinado de
todos los dispositivos de ese conjunto de almacenamiento est( siempre
disponible para cada sistema de arc5ivos.
7os de los objetivos de la creacin del sistema de arc5ivos dA% consisten en
des5acerse de numerosos conceptos de administracin complicados y
automati9ar muc5as tareas administrativas comunes.
Por ejemplo2 la creacin de un conjunto de almacenamiento2 el incremento de
un conjunto y la adicin o eliminacin de un sistema de arc5ivos se pueden
reali9ar con un ;nico comando sencillo2 en lu$ar del proceso de varios pasos
>format2 ne+fs2 editDetcDvfstab etc.? 5abitual en los sistemas de arc5ivos y
administradores de vol;menes tradicionales.
.bservemos el si$uiente casoC para crear un conjunto2 crear tres sistemas de
arc5ivos y2 a continuacin2 incrementar el conjunto >0 pasos l$icos? se
requieren 0 comandos sencillos de dA%2 frente a los 2- pasos necesarios con
un sistema de arc5ivos y administrador de vol;menes tradicionales.
'dem(s2 estos comandos son de tiempo constante y se completan en unos
se$undos2 mientras que con frecuencia se requieren 5oras para confi$urar los
sistemas de arc5ivos y vol;menes tradicionales. En el caso mencionado
anteriormente2 dA% reduce el tiempo necesario para completar estas tareas de
41 minutos a menos de 11 se$undos.
)a interfa9 de la l4nea de comandos de dA% simplifica dr(sticamente la
administracin. %e orienta a las tareas2 por lo que los administradores pueden
e"presar las tareas que desean llevar a cabo en lu$ar de tener que memori9ar
o buscar comandos cr4pticos.
)os datos se pueden da:ar de diferentes modos2 como por ejemplo un error de
sistema o una interrupcin del suministro el3ctrico inesperada2 pero con dA% se
elimina este temor por lo desconocido. dA% impide el da:o a los datos ya que
mantiene la co5erencia de los mismos en todo momento. Hodas las
operaciones son transaccionales. 7e este modo2 no slo se mantiene la
co5erencia sino tambi3n se eliminan todas las restricciones sobre la orden de
ED% y se permite que el conjunto de los cambios se realice correctamente o se
produ9ca un error.
Hodas las operaciones utili9an asimismo la t3cnica de copia por escritura >copyE
onE+rite?. )os datos en directo nunca se sobrescriben. dA% escribe los datos en
un nuevo bloque antes de cambiar los punteros de datos y confirmar la
escritura. )a t3cnica de copia por escritura ofrece varias ventajasC
67
e Estado en disco siempre v(lido.
e Copias de se$uridad co5erente y fiable.
e Capacidad de des5acer datos 5asta un punto en el tiempo conocido.
)os administradores ya no tendr(n que ejecutar laboriosos procedimientos de
recuperacin2 como por ejemplo fscI2 incluso si el sistema se cierra de un
modo indebido.
'simismo2 dA% es un sistema de arc5ivos que reali9a sumas de comprobacin
de 64 bits de un e"tremo a otro en todos los datos para evitar el da:o de datos
silencioso. Cuando se leen datos2 se verifica la suma de comprobacin con el
fin de $aranti9ar que se devuelven los datos que escribi la aplicacin.
dA% puede llevar a cabo la recuperacin de datos autom(tica en una
confi$uracin reflejada o J'7. Cuando una copia se da:a2 dA% lo detecta
mediante la suma de comprobacin y utili9a otra copia para repararla.
68
GESTION DE ENTRADA K SALIDA
Fna de las principales funciones del sistema operativo es la $estin de los
recursos de la computadora y2 en concreto2 de los dispositivos perif3ricos. El
$estor de EntradaD%alida debe controlar el funcionamiento de todos los
dispositivos de EntradaD%alida para alcan9ar los si$uientes objetivosC
Aacilitar el manejo de los dispositivos perif3ricos. Para ello ofrecer una
interfa9 sencilla2 uniforme y f(cil de utili9ar entre los dispositivos2 y
$estionar los errores que se pueden producir en el acceso a los mismos.
.frecer mecanismos de proteccin que impidan a los usuarios acceder
sin control a los dispositivos perif3ricos.
El sistema de entradaDsalida en el sistema operativo %olaris se divide en dos
sistemas complementariosC l s.ru*.ura,o por 9loGus A l s.ru*.ura,o
por *ara*.rs. El primero se usa para manejar cintas y discos ma$n3ticos2 y
emplea bloques de tama:o fijo para leer o escribir. El se$undo se utili9a para
atender a las terminales2 l4neas de comunicacin.
Cada dispositivo se estructura internamente mediante descriptores llamados
n;mero mayor2 n;mero menor y clase >de bloque o de caracteres?. Para cada
clase 5ay un conjunto de entradas2 en una tabla2 que aporta a los manejadores
de los dispositivos. El n;mero mayor se usa para asi$nar manejador2
correspondiente a una familia de dispositivos= la menor pasa al manejador
como un ar$umento2 y 3ste lo emplea para tener acceso a uno de varios
dispositivos f4sicos semejantes.
)as rutinas que el sistema emplea para ejecutar operaciones de ED% est(n
dise:adas para eliminar las diferencias entre los dispositivos y los tipos de
acceso. Go e"iste distincin entre acceso aleatorio y secuencial2 ni 5ay un
tama:o de re$istro l$ico impuesto por el sistema.
El sistema mantiene una lista de (reas de almacenamiento temporal >buffers?2
asi$nadas a los dispositivos de bloques. El Sernel usa estos buffers con el
objeto de reducir el tr(fico de ED%. Cuando un pro$rama solicita una
transferencia2 se busca primero en los buffers internos para ver si el bloque que
se requiere ya se encuentra en la memoria principal >como resultado de una
operacin de lectura anterior?. %i es as42 entonces no ser( necesario reali9ar la
operacin f4sica de entrada o salida.
69
GESTIN DE COM3NICACIONES K SEG3RIDAD
E"iste un sinn;mero de sistemas embebidos que se pueden conectar a
diferentes tipos de redes o nternet para mejorar sus caracter4sticas y
desempe:o2 actualmente cuentan con elementos de 5ard+are embebido2
permitiendo que desde artefactos electrodom3sticos 5asta $randes equipos
industriales puedan ser $obernados de forma remota por medio de cone"iones
a nternet y puedan ser inclusive controlados por medio de tel3fonos celulares
empleando una combinacin de las tecnolo$4as actuales. Es de esta forma2 por
ejemplo2 como se pueden cambiar los valores de setpoint de re$uladores de
temperatura y encender o apa$ar los electrodom3sticos de una casa2 5aciendo
una simple llamada telefnica o accediendo a un sitio *eb.
Estas caracter4sticas representan una nueva escala de ries$os2 ya que no solo
es la inte$ridad de la informacin la que se ve comprometida con estos
sistemas2 sino al incluir diferentes actores que pueden ser $obernados por un
atacante2 se pueden $enerar estra$os muc5o mas $raves que la p3rdida de
informacin o el cese de un servicio2 como sucede normalmente en los
incidentes de se$uridad. Cambiar la temperatura de un recinto puede ser vital
para al$unas personas en 3pocas de invierno o verano. El ataque combinado a
varios de estos elementos puede causar sobrecar$as a las centrales de
ener$4a si se reali9a el encendido simult(neo de m;ltiples elementos en las
5oras pico de consumo. 'dicionalmente se puede reali9ar monitoreo del estado
de dic5os elementos y de esta forma se puede determinar los 5orarios en que
una vivienda se encuentra vac4a 5aci3ndola vulnerable a robos y dem(s
ataques f4sicos Por ra9ones de costos2 muc5os de estos sistemas emplean
procesadores sencillos2 en los cuales los aspectos de se$uridad son rele$ados
a un se$undo plano.
E"iste un compromiso entre el costo y la se$uridad que se puede lo$rar con
estos sistemas ya que un poco mas de dinero2 invertido en la adicin de al$;n
tipo de se$uridad puede representar $ran diferencia para las compa:4as que
ensamblan millones de unidades al a:o2 afectando la competitividad de dic5as
empresas2 pero en contraste con los incidentes de se$uridad de los sistemas
de informacin convencionales2 recuperar informacin o reestablecer un
servicio puede requerir ciertos esfuer9os e inversin2 pero revertir una muerte o
una lesin f4sica es imposible. En la medida en quelas funciones de los
dispositivos de 5ard+are embebido se vuelven mas complicadas2 las
5erramientas para trabajar con estos se deben mejorar.
' menudo la forma para reali9ar mantenimiento y dia$nstico de estos
dispositivos de 5ard+are es conectarlos a una red local o una terminal de
pro$ramacin2 lo cual puede $enerar ries$os adicionales debidos a in$resos no
autori9ados a la confi$uracin y lectura del estado e 5istorial de dia$nsticos
del equipo. E"isten diferentes m3todos de solucionar estos problemas2
principalmente controlar el acceso a los equipos es clave. Estas soluciones
70
pueden ser en al$unos casos sencillas2 y combina diferentes niveles de
se$uridad2 pero pueden traer consi$o al$unos problemasC
T Fna de las soluciones consiste en la utili9acin de un esquema de
contrase:as con el objeto de tener una barrera de primer nivel a los in$resos
no autori9ados. %in embar$o2 5oy en d4a se lo$ra muy poco con solo este tipo
de proteccin dado que las contrase:as usualmente viajan por las redes en
forma de te"to no codificado. Hener diferentes
contrase:as para cada equipo tambi3n puede ser fuente de problemas2 debido
a que los usuarios normalmente deben escribirlas2 compartirlas con otros
usuarios e incluso incluirlas en scripts para in$reso autom(tico2 lo cual elimina
la proteccin de acceso accidental.
T E"isten diferentes tipos de protocolos orientados a $enerar se$uridad en
dispositivos simples como el %G8P %imple Get+orI 8ana$ement Protocol2 el
cual fue dise:ado para obtener datos y pro$ramar dispositivos simples y es
usado normalmente para monitorear nodos conectados a la red. E"isten otros
protocolos como %%K2 %%)2 P%EC2 e SE entre otros2 los cuales proporcionan
un medio m(s se$uro para establecer comunicacin con este tipo de
dispositivos.
T E"isten otros m3todos mas sofisticados2 como el %istema de autenticacin
Serberos desarrollado por el 8H el cual se basa en tres principios de
se$uridad a saber2 autenticacin2 autori9acin2 y sistema de cuentas de
usuario. Este es un sistema de autenticacin de propsito $eneral2 en el cual
los usuarios demuestran su identidad para acceder a cada servicio y el sistema
decide si el usuario tiene acceso o no a dic5o servicio. ' medida que los
dispositivos electrnicos2 desde un P7' 5asta un router2 pasando por tel3fonos
celulares y tarjetas inteli$entes avan9an tecnol$icamente2 tambi3n avan9a la
complejidad de los ataques a los que estos se enfrentan El punto de la
se$uridad en estos dispositivos es lo que m(s frena la adopcin de dic5as
tecnolo$4as para pr(cticas de comercio electrnico2 se$;n los resultados de
encuestas recientes que revela que el 4&U de las personas que tienen
dispositivos mviles no se animan a este tipo de pr(cticas por temores
concernientes a la se$uridad de sus transacciones %iempre que se va a
anali9ar problemas de se$uridad en inform(tica se debe tener la
confidencialidad2 inte$ridad2 disponibilidad2 autenticacin2 rastreabilidad y noE
repudio. Es por esto que en el mundo de los dispositivos mviles y P7'fs
e"iste una variedad de protocolos y est(ndares como el *EP del EEE
Est(ndar -12.112 el *H)% del *'P y el %%) que sirven para prote$erlos desde
un punto de vista funcional2 pero cuando se trata de sistemas embebidos debe
tenerse tambi3n en cuenta al$unos aspectos cr4ticos como
T 8uc5os sistemas embebidos no tienen la suficiente capacidad de
procesamiento para las e"i$encias de se$uridad.
T )os dispositivos que operan con bater4as como los celulares y P7'Ms no
tienen la suficiente autonom4a de funcionamiento ni los suficientes recursos de
memoria para implementar medidas de se$uridad.
71
T )os diferentes tipos de ataques que pueden sufrir estos dispositivos como los
ataques por soft+are y los ataques f4sicos entre otros2 5acen que los sistemas
ten$an que ser dise:ados de manera que a;n cuando al$uien ten$a acceso a
ellos f4sica o l$icamente si$an siendo se$uros. Podr4a ase$urarse entonces
que la encriptacin de los datos no es suficiente por varios motivos2 entre ellos
el alto costo de procesamiento de los al$oritmos de encriptacin y el 5ec5o de
que los protocolos pueden no ser efectivos en los sistemas embebidos2 por
ejemplo en un dispositivo que reciba aplicaciones desarrolladas por terceros2
cada tercero tendr4a que conocer ya sea el al$oritmo o las llaves con las cuales
se reali9a la encriptacin 'l$unas soluciones pueden serC fire+alls2 detectores
de intrusos2 aplicaciones en cripto$raf4a2 antivirus2 administracin de memoria y
dump memory.
72
SOPORTE A TIEMPO REAL
Fn sistema embebido complejo puede utili9ar un sistema operativo como apoyo
para la ejecucin de sus pro$ramas2 sobre todo cuando se requiere la
ejecucin simult(nea de los mismos. Cuando se utili9a un sistema operativo lo
m(s probable es que se ten$a que tratar de un sistema operativo de tiempo
real >JH.%?2
Fn sistema operativo de tiempo real >%.HJ o JH.% EReal Time Operatin+
S$stem en in$l3s?2 es un sistema operativo que 5a sido desarrollado para
aplicaciones de tiempo real. Como tal2 se le e"i$e correccin en sus respuestas
bajo ciertas restricciones de tiempo. %i no las respeta2 se dir( que el sistema 5a
fallado. Para $aranti9ar el comportamiento correcto en el tiempo requerido se
necesita que el sistema sea predecible >determinista?.
Cara*.r=s.)*as Gnrals
Fsado t4picamente para aplicaciones inte$radas2 normalmente tiene las
si$uientes caracter4sticasC
Go utili9a muc5a memoria
Cualquier evento en el soporte f4sico puede 5acer que se ejecute una
tarea
8ultiEarquitectura >puertos de cdi$o para otro tipo de FCP?
8uc5os tienen tiempos de respuesta predecibles para eventos
electrnicos

En la actualidad 5ay un debate sobre qu3 es tiempo real. 8uc5os sistemas


operativos de tiempo real tienen un pro$ramador y dise:os de controladores
que minimi9an los periodos en los que las interrupciones est(n des5abilitadas2
un n;mero llamado a veces duracin de interrupcin. 8uc5os incluyen tambi3n
formas especiales de $estin de memoria que limitan la posibilidad de
fra$mentacin de la memoria y ase$uran un l4mite superior m4nimo para los
tiempos de asi$nacin y retirada de la memoria.
Fn ejemplo temprano de sistema operativo en tiempo real a $ran escala fue el
denominado `pro$rama de controla desarrollado por 'merican 'irlines e B8
para el sistema de reservas %abre.
73
D)sOo
Kay dos dise:os b(sicosC
Fn sistema operativo $uiado por eventos slo cambia de tarea cuando
un evento necesita el servicio.
Fn dise:o de comparticin de tiempo cambia de tareas por
interrupciones del reloj y por eventos.
El dise:o de comparticin de tiempo $asta m(s tiempo de la FCP en cambios
de tarea innecesarios. %in embar$o2 da una mejor ilusin de multitarea.
Gormalmente se utili9a un sistema de prioridades fijas.
74
An1l)s)s *o'para.)vo *on L)nu? A ;)n,o<s JP
)a comparacin de 8icrosoft *indo+s y el sistema operativo de )inu" es un
tema com;n de la discusin entre sus usuarios. *indo+s es el sistema
operativo m(s importante bajo una licencia propietaria de soft+are2 mientras
que )inu" es el sistema operativo m(s importante bajo una licencia libre de
soft+are. %in embar$o2 la mayor4a de los sitios de distribuciones de )inu"
tambi3n disponen de componentes propietarios >tales como los controladores
compilados de blob binario2 que proveen los fabricantes de 5ard+are para su
instalacin normal?
)os dos sistemas operativos compiten por el usuario b(sico en el mercado de
las computadoras personales as4 como el mercado de los servidores2 y se
utili9an en a$encias del $obierno2 escuelas2 oficinas2 5o$ares2 servidores de
intranet y de internet2 supercomputadoras y sistemas inte$rados.
*indo+s domina el mercado de las computadoras personales y de escritorio
>/1U? y de servidores >66U?
En la cuota de renta de servidor del mercado 4 >en el cuarto trimestre de 211&?
*indo+s lo$r #62#U y )inu" lo$r 122&U.
En noviembre de 211&2 )inu" era el sistema operativo del -0U de las
supercomputadoras m(s poderosas >comparado con el 122U de *indo+s.En
febrero de 211-2 cinco de las die9 empresas m(s confiables proveedoras de
internet usaban )inu"2 mientras que slo dos usaban *indo+s.
)inu" y *indo+s var4an en filosof4a2 costo2 facilidad de uso2 fle"ibilidad y
estabilidad2 aunque ambas buscan mejorar en sus (reas d3biles. )as
comparaciones de los dos tienden a reflejar los or4$enes2 la base 5istrica del
usuario y el modelo de distribucin de cada una. H4picamente2 al$unas (reas
mayores de debilidades percibidas re$ularmente citados 5an incluido el valor
pr(ctico @outEofEbo"@ pobre del escritorio de )inu" para el mercado popular y la
estabilidad pobre de sistema para *indo+s. 'mbos son (reas del desarrollo
r(pido en ambos campos.
)os defensores de soft+are libre discuten que la fuer9a clave de )inu" es que
respeta lo que ellos consideran para ser las libertades esenciales de usuariosC
la libertad de correrlo2 Para estudiar y cambiarlo2 y para redistribuir copias con
o sin cambios.
OTROS ASPECTOS
Apl)*a*)ons , un s)s.'a '99),o
75
)os lu$ares donde se pueden encontrar los sistemas empotrados son
numerosos y de varias naturale9as. ' continuacin se e"ponen varios ejemplos
para ilustrar las posibilidades de los mismosC
En una f(brica2 para controlar un proceso de montaje o produccin. Fna
m(quina que se encar$ue de una determinada tarea 5oy en d4a contiene
numerosos circuitos electrnicos y el3ctricos para el control de motores2
5ornos2 etc. que deben ser $obernados por un procesador2 el cual ofrece
un interfa9 persona _ m(quina para ser diri$ido por un operario e
informarle al mismo de la marc5a del proceso.
Puntos de servicio o venta >P.%2 Point .f %ervice?. )as cajas donde se
pa$a la compra en un supermercado son cada ve9 m(s completas2
inte$rando teclados num3ricos2 lectores de cdi$os de barras mediante
l(ser2 lectores de tarjetas bancarias de banda ma$n3tica o c5ip2 pantalla
alfanum3rica de cristal l4quido2 etc. El sistema empotrado en este caso
requiere numerosos conectores de entrada y salida y unas
caracter4sticas robustas para la operacin continuada.
Puntos de informacin al ciudadano. En oficinas de turismo2 $randes
almacenes2 bibliotecas2 etc. e"isten equipos con una pantalla t(ctil
donde se puede pulsar sobre la misma y ele$ir la consulta a reali9ar2
obteniendo una respuesta personali9ada en un entorno $r(fico ami$able.
7ecodificadores y setEtop bo"es para la recepcin de televisin. Cada
ve9 e"iste un mayor n;mero de operadores de televisin que
aprovec5ando las tecnolo$4as v4a sat3lite y de red de cable ofrecen un
servicio de televisin de pa$o diferenciado del convencional. En primer
lu$ar env4an la se:al en formato di$ital 8PE!E2 con lo que es necesario
un procesado para decodificarla y mandarla al televisor. 'dem(s viaja
cifrada para evitar que la reciban en claro usuarios sin contrato2 lo que
requiere descifrarla en casa del abonado. Hambi3n ofrecen un servicio
de televisin interactiva o +ebEHY que necesita de un soft+are
espec4fico para mostrar p($inas +eb y con ello un sistema basado en
procesador con salida de se:al de televisin.
%istemas radar de aviones. El procesado de la se:al recibida o reflejada
del sistema radar embarcado en un avin requiere alta potencia de
c(lculo adem(s de ocupar poco espacio2 pesar poco y soportar
condiciones e"tremas de funcionamiento >temperatura2 presin
atmosf3rica2 vibraciones2 etc.?.
Equipos de medicina en 5ospitales y ambulancias FY _ mvil.
8(quinas de revelado autom(tico de fotos.
Cajeros autom(ticos.
Pasarelas >!ate+ays? nternetE)'G.
6 un sin fin de posibilidades a;n por descubrir o en estado embrionario
como son las neveras inteli$entes que controlen su suministro v4a
nternet2 PC de bolsillo2 etc.
BIBLIOGRAFIA
+++.fortunecity.comDsIyscraperDfatbitD61&D+inceD+ince.5tml
76
WWW%docencia%ac%upc%edu,EPSC,PSE,documentos,Traba-os,.rc(ivo,
Traba-o/Windows/CE/0%pdf
+++.atc.us.esDasi$naturasDastrDHsDH#]ntroduccion*CE.5tm
es%1i2ipedia%or+,1i2i,Sistema/inte+rado
+++.rede+eb.comD]t"tD642D4-.pdf
es%1i2iboo2s%or+,1i2i,%Arquitectura/de/Sistemas_de_iempo/!eal
77

Anda mungkin juga menyukai