Pregunta

sistema

¿Está funcionando WM protege la memoria del proceso contra los otros? Puede uno mal solicitud por escrito chocar alguna otra aplicación simplemente por error de escribir sobre la primera memoria?

¿Fue útil?

Solución

Windows Mobile, por lo menos en todas las encarnaciones actuales, es construir en Windows CE 5.0 y por lo tanto utiliza CE de 5,0 modelo de memoria (que es la misma que era en CE 3.0). El sistema operativo no hace realmente mucho para proteger la memoria del proceso, pero sí lo suficiente para general mantener procesos interfieran entre sí. No es difícil y rápido sin embargo.

procesos CE se ejecutan en "slots" de los cuales hay 32. El proceso en ejecución se cambió a la ranura cero, y es direcciones son re-basa en cero (por lo que toda la memoria en el proceso en ejecución tiene efectivamente 2 direcciones, la ranura 0 dirección y es dirección de ranura no es cero). Estas direcciones se proctected (aunque hay un simple llamada API para cruzar la Perímetro). Esto significa que la corrupción de puntero, etc. no darán un paso en otras aplicaciones, pero si desea a, usted todavía puede.

También CE tiene el concepto de memoria compartida. Todos los procesos tienen acceso a esta área y es 100% sin protección. Si su aplicación utiliza la memoria compartida (y el administrador de memoria le puede dar una dirección compartida sin ti preguntando específicamente, en función de su asignación y su tamaño). Si usted ha compartido de memoria, entonces sí, cualquier proceso puede acceder a esos datos, incluyendo la corrupción de él, y obtendrá ningún error o advertencia en cualquiera de los procesos.

Otros consejos

  sistema

¿Está funcionando WM protege la memoria del proceso contra los otros?

Sí.

  

Puede uno mal solicitud por escrito chocar alguna otra aplicación simplemente por error de escribir sobre la primera memoria?

No (pero podría hacer otras cosas como utilizar todo el espacio 'disco').

Incluso si usted es un controlador de dispositivo, para obtener permiso para escribir en la memoria que es propiedad de un proceso diferente hay una API, que se debe invocar explícitamente.

Si bien la respuesta de ChrisW es técnicamente correcto, mi experiencia de Windows Mobile es que es mucho más fácil de bloquear el dispositivo entero desde una aplicación de lo que está en el escritorio. Podría supongo que en algunas de las razones por qué este es el caso;

  • El Sytem operativo es a menudo mucho más fuertemente OEMed de escritorio de Windows, es decir la cantidad de código de bajo nivel específico fabricante puede ser muy alta, lo que conduce a errores específicos del fabricante a un nivel que puede causar malos accidentes. En muchos dispositivos es común ver una nueva versión del firmware o menos cada mes, donde las revisiones son soluciones a este tipo de errores.

  • Los recursos son escasos, y una aplicación que agota todos los recursos disponibles son capaces de causar un accidente.

  • Los mecanismos de protección y la arquitectura varían un poco. El dispositivo actualmente estoy trabajando con SH4 se basa, sobre todo mientras se ve ARM, X86 y los impares CPU MIPS ..

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top