Sistemas Embebidos
Sistemas Embebidos
Sistemas Embebidos
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.