2010-02-05 11 views

Respuesta

23

Si quiere decir desde el principio: sin duda sería posible. Pero requiere una gran cantidad de recursos humanos :-). Los fabricantes de teléfonos móviles a menudo tienen cientos de programadores, y sin embargo, el SW suele estar lleno de errores :-).

simplificar las cosas se podría decir que a menudo hay dos módulos SW en un teléfono móvil:

  • La "interfaz de usuario del sistema operativo", que se encarga de entrada de la pantalla, el sonido y el usuario.
  • El "sistema operativo de banda base" que maneja la comunicación hacia la red móvil.

El sistema operativo de la interfaz de usuario podría ser, por ejemplo, Linux o algo más simple. Un kernel de Linux simple puede ejecutarse fácilmente en casi cualquier teléfono móvil moderno.

La segunda parte es el sistema operativo de banda base. Esta parte generalmente requiere propiedades en tiempo real para poder manejar la comunicación con la red móvil ya que el tiempo debe ser preciso cuando se envían datos en "intervalos de tiempo" específicos.

Solo hay un inconveniente: debe encontrar un "teléfono móvil de hardware abierto" donde instalar el sistema operativo. Los operadores de telecomunicaciones a menudo requieren medidas de seguridad rigurosas en los teléfonos de hoy, por lo que es muy difícil programar su propio sistema operativo en un teléfono en el mercado. También necesitaría acceso a los esquemas de placa de circuito, detalles de chip, etc., lo que no sucederá :-).

Una idea podría ser OpenMoko, que es un "proyecto de teléfono abierto": http://wiki.openmoko.org/wiki/Main_Page o el proyecto de Google Android.

Además, la CPU: s utilizado en los teléfonos de hoy en día, tales como TI OMAP, a menudo están disponibles a través de tarjetas de desarrollo tales como http://www.igep-platform.com/index.php?option=com_content&view=article&id=46&Itemid=55

La cosa aquí es que la junta no contiene un chip de banda para manejar la comunicación hacia la red móvil.

Editar: Acerca de la construcción y ejecución de SW para teléfonos móviles. Lo que sucede en la puesta en marcha de un teléfono móvil depende de la plataforma de hardware, obviamente, pero algo como esto podría suceder (esto también es cierto para la mayoría de los sistemas embebidos):

  1. ASIC (que contiene la CPU) se pone en marcha, se reinicia y comienza a ejecutar una llamada correa de arranque (codificada en el ASIC).
  2. La correa de arranque intenta configurar los chips de flash conectados al ASIC.
  3. La correa de arranque carga el SW del flash en la SRAM del chip (RAM integrada en el silicio ASIC).
  4. El SW en SRAM configura la SDRAM (timings et c) y carga el "OS" (o cualquier SW que desee) en la SDRAM desde el flash.
  5. El SW en SRAM establece el puntero de instrucción interna en la CPU en la SDRAM y, por lo tanto, el núcleo de la CPU del ASIC comienza a ejecutarse en la SDRAM.
  6. El SW en la SDRAM ("The OS") configura temporizadores, interrupciones, administración de memoria o lo que sea necesario.
  7. El SW podría ser lo que sea, un bucle for ilimitado, un sistema operativo completo, o simplemente un SW que tira de algunos LED's altos o bajos.

Si el ASIC tuviera un flash NOR, podría ejecutarse directamente sin cargar primero el SW en la SDRAM.

El sistema operativo en la SDRAM podría ser un kernel Linux de vanilla. Lo único que necesitaría el kernel de Linux son algunos bloques de información, como el tamaño de la memoria, la ubicación física de esa memoria, etc. (una forma es usar una lista de ATAG). Por supuesto, también necesitaría conocer algunas de las partes internas del ASIC, esto se agregaría al kernel de Linux. Pero la mayoría de los chips en el mercado hoy existen en el kernel de Linux. Nokia, por ejemplo, ha aportado una gran cantidad de código a la adaptación TI OMAP3430 y esto se puede ver en el código fuente del kernel en sí (arch/directorio o similar). No estoy seguro de qué teléfonos de Nokia utilizan este chip, pero probablemente sean los teléfonos Linux y Symbian de gama alta.

Dar una respuesta más detallada que la anterior requeriría unas pocas páginas, por lo que su mejor opción sería utilizar las respuestas que obtuvo en SO e intentar usarlas para obtener más información de otra parte.

Buena suerte :-)

4

Creo que sería difícil por sí mismo, y sin información detallada sobre los dispositivos en los que espera ejecutarlo. Pero si aún desea probar ...

Symbian have just open sourced todo su sistema operativo móvil. Ese podría ser un buen lugar para comenzar.

4

Android es también de código abierto, si no está buscando comenzar desde cero. De lo contrario, deberá encontrar documentación para la arquitectura de su teléfono. ¿Tienes un teléfono en particular en mente?

1

Esperemos que esto es más y menos Phantom amenaza fantasma (badoom-Tish) pero esta persona está escribiendo su propio sistema operativo para móviles y es posible encontrar la página web interesante.

Cuestiones relacionadas