¿ Para qué este wiki ?
Debido al desarrollo de mi tesis de grado en Ingeniería Informática (FICH-UNL-Santa Fe-Argentina), tuve la necesidad de organizar la información que a diario encuentro, leo, aprendo y por supuesto olvido, por ese simple motivo en este wiki se va almacenando lo mas ordenadamente posible conceptos teóricos, pruebas, etc.
La idea es que este sitio se vaya construyendo con los aportes de todos aquellos que sientan ganas de ayudar, de modo que en el transcurso del tiempo armemos un buen lugar donde encontrar y concentrar información de interés relacionada con sistemas embebidos mediante la utilización de GNU/Linux.
El contenido del sitio intenta brindar conceptos teóricos y prácticos necesarios para al menos "entender" de qué se trata un sistema embebido basado en GNU/Linux o en su defecto tener una idea de qué es lo que se debe aprender y a qué libros o sitios recurrir. Para comenzar, y si están un poco perdidos pueden leer lo siguiente en la misma página que es una explicación muy general, hay una sección Glosario, donde se explican brevemente los términos generalmente utilizados y que en un comienzo generan gran confusión…
¡¡¡pasen, vean… y obviamente aporten!!!
Y ahora empiezo a entender…
¿Qué es un sistema embebido? Cuando se habla de un sistema embebido se esta haciendo referencia a un dispositivo que, a diferencia de una computadora (PC) de propósito general, es de uso único. Está diseñado para realizar un conjunto específico de tareas u operaciones. Por lo general, son computadoras de una única placa o tarjeta, denominados SBC (del ingles, Single Board Computer). Estos dispositivos funcionan con un sistema operativo almacenados en memorias internas de la misma placa y en la mayoría de los casos son desarrollados por los mismos fabricantes de la SBC. Ejemplos de dispositivos que poseen sistemas embebidos son routers, switchs, firewalls, etc.
¿Qué tengo que saber o aprender? Para implementar un sistema GNU/Linux embebido es necesario comprender diferentes temas relacionados con sistemas operativos GNU/Linux, arquitecturas de hardware, compilación nativa y cruzada, estructura y funcionamiento del kernel Linux, el proceso de arranque (startup o booteo) de Linux, etc.
¿En qué consiste el proceso de implementación de un sistema GNU/Linux embebido? Para implementar un GNU/Linux embebido en un dispositivo de hardware, se debe conocer en términos generales la arquitectura del mismo, es decir, el tipo de micro-procesador que posee, la cantidad de memoria, los buses que soporta, los componentes que posee la placa, etc. Esta información es de vital importancia, ya que al preparar el sistema GNU/Linux que se ejecutará en el dispositivo, se lo debe compilar con soporte para esas características. La tarea de construir un GNU/Linux que se ejecute en este dispositivo objetivo (target) se debe realizar mediante compilación cruzada. Por esto, es imprescindible crear un entorno de compilación cruzada en una computadora de escritorio (host), bajo este entorno se realizará la compilación del kernel, del sistema de archivos y de las aplicaciones que luego serán ejecutadas en el dispositivo. Por último se debe realizar el traspaso del sistema GNU/Linux al equipo objetivo, dos posibles maneras de transferir el sistema es utilizando un medio externo como una memoria compact flash, o mediante una red, utilizando el protocolo NFS.
Palabras claves GNU/Linux, sistemas embebidos, compilación cruzada, kernel, sistema de archivos raíz.
Noticias y novedades
Mi blog: YoSobreIP - Blog relacionado con GNU/Linux y Software Libre en general.
Por favor, no olviden dejar sus comentarios y/o críticas constructivas/destructivas. emiliano [dot] lopez [at] gmail [dot] com
Hola Emiliano!
Buscando un poco por la red, sobre sistemas empotrados con linux, he caido por tu wiki.
Antes de nada te quiero felicitar por tu trabajo, y por compartirlo con todos!!
Estoy documentandome para emprender un proyecto similar al tuyo, asique espero ver actualizaciones del wiki y, en la medida de mis capacidades, ayudar en la actualizacion.
Saludos
Hola crossmax, me alegra que te sirva algo de lo que he escrito acá. Como verás lo tengo un poco olvidado, mi trabajo me ha llevado por otro lado. Sería muy interesante que te sumes al wiki y que puedas escribir tus avances, pruebas y resultados.
Quedo a tu disposición para darte un user y pass para poder modificar el wiki.
Saludos
Yo también acabo de caer por acá y te agradezco por tu wiki
posicionamiento web
Estoy retomando este tema ya que deseo desarrollar un sistema usando linux embebido y C++,
Tengo una duda: existen emuladores en los cuales se pueda probar tanto el sistema operativo
embebidoy la aplicación que deseo desarrollar?
Gracias por tu información, si tienes algún consejo en particular se agradece.
Jesus
Hola!
Creo que lo que querés preguntar es si podés emular el hardware donde correr tu SO y aplicación.
Con Qemu podés emular diferentes arquitecturas: mips, arm, etc..
Yo lo usé en su momento con mips para levantar el linux y correr aplicaciones, de modo de testear si mi entorno de compilación cruzada estaba andando bien.
¿Cuál es la mejor distribución de linux para ti?
Trabajando en www.altamira-web.com