Linux en la tostadora Una breve introducción al desarrollo de sistemas embebidos con GNU/Linux.

Slides:



Advertisements
Presentaciones similares
FHS: organización de directorios en Linux
Advertisements

El árbol de directorios
Distribuciones de Linux: Kali Linux DESARROLLADORES Es un sistema operativo libre, fundado y mantenido por Offencive Security cuyo líder es Matt Aharoni,
Materia: Informática I TEMA: CONCEPTOS BÁSICOS DE INFORMÁTICA PROFESOR: WENDY ALVARADO Y ESTEBAN GUAJARDO PERIODO: – AGOSTO – DICIEMBRE 2016.
“Android: Un acercamiento practico” Manuel Alejandro Moscoso Domínguez Estudiante de Ingeniería en Bioinformática Talca, 8 de octubre de 2009.
El sistema de archivos de Linux. 1. Un tratamiento consistente de la información. 2. Una estructura jerárquica. 3. Protección de los archivos. El sistema.
Sesión 1 Sistemas de Archivos. Agenda (1) Particionamiento (2) Sistemas de archivos (3) Árbol de directorios.
Introducción a Linux Jornadas Noviembre 2009 GUL – UC3M Tania Pérez.
Uso de TICs basadas en Software Libre. Objetivo Introducir al mundo del software libre Conocer proyectos y aplicaciones de software libre Realizar prácticas.
PARTICIONES EN UN DISCO DURO Diagnóstico y Mantenimiento INTE 3020 Elena López 15/11/2013.
SISTEMAS OPERATIVOS (II): WINDOWS
Bienvenidos!!! "El Software Libre y su incidencia en lo Social"
Hardware de Computador
Menú Presentación Dispositivos de Salida Que es informática
POLITECNICO INDES COROZAL
Kernel.
Servidores GNU/.
Manejo Básico de Survey Monkey
SISTEMAS OPERATIVOS: PROPIETARIOs Y LIBREs.
En la siguiente presentación veremos algunos términos que debemos conocer para iniciar la educación virtual.
Colegio de estudios científicos y tecnológicos del estado de Michoacán, plantel 16 huandacareo *Aero ADMIN* -Guillermo Reyes Ortiz -David.
TARJETAS.
Definición de redes de computadoras
Presentamos.
Sistemas Operativos : El Alma De La Pc.
Hardware, software, y periféricos
EN QUÉ CONSISTE UNA COMPUTADORA
Nombre: Adrián de la Torre López
MENU SOFWARE Y HADWARE DISPOSITIVOS DE SALIDA DISPOSITIVOS DE ENTRADA
Tarjeta Madre la tarjeta madre, es una tarjeta de circuito impreso que permite la integración de todos los componentes de una computadora. Para esto, cuenta.
¿Qué es hardware? Son todos los elementos tangibles de un sistema informático. La clasificación del Hardware es: Periféricos de entrada: Como por ejemplo.
Herramienta tareas ¿Que es internet? ¿Cómo funciona internet?
ELEMENTOS DE UN COMPUTADOR
CUESTIONARIO INFORMATICO
Componentes físicos internos
Preparado por: José Nayid Cardona Castañeda
SONIA ESPERANZA GARCIA AMAYA Tecnología en Gestión Administrativa
Direccionamiento IP Y Subredes.
QUE ES HARDWARE Por definición literal no tiene sentido (partes duras), pero si lo definimos dentro del contextos informático se refiere a todas las partes.
MEMORIAS. Alba Lus, Esther Escobar, Laura Hierro, Raquel Fdez.
¡hola! mi nombre es: Marlenne Galicia Diaz
Herramienta tarea.
Almacenamiento SAM(Storage Area Network)
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
PREGUNTAS Y RESPUESTAS BÁSICAS
Herramientas Entorno Web
Sistemas operativos Amparo Pinal y Nayla Carcamo 4 año división “B”
Particionamiento y formateado
Fundamentos de Informática Básica
Hardware de Servidores
COMPUTADORES DIGITALES
SISTEMAS OPERATIVOS. El sistema operativo es un conjunto de programas que: ■Inicializa el hardware del ordenador. ■Suministra rutinas básicas para controlar.
ESTRUCTURA DE S.OPERATIVO
CURSO PROGRAMACIÓN BÁSICA SEMANA 2
Ayudando al control y seguimiento de la diabetes
Impresión para hoteles y más...
SISTEMA OPERATIVO.
Estructura de Sistemas Operativos CAMPOS CHACALTANA, ANTHONY.
Estructura de los sistemas Operativos 1. Componentes de un sistema operativo  Administración de procesos  Administración de memoria  Subsistema de Entrada/Salida.
SOA UMG Estructura del Sistema Operativo. Componentes de un Sistema Operativo Administración de procesos Administración de memoria Subsistema de Entrada/Salida.
Introducción a los sistemas operativos en red
Componentes de una computadora
Concepto:La memoria RAM (Random Access Memory) o memoria de acceso aleatorio es un componente físico de nuestro ordenador, generalmente instalado sobre.
Adm. Sistemas Operativos Arquitectura de Plataformas y Servicios Tic.
Estructura de los SISTEMAS OPERATIVOS.
ESTRUCTURA DE LO SISTEMAS OPERATIVOS Presentado por: Jennifer.
ESTRUCTURA DE SISTEMAS OPERATIVOS MOSQUERA HERRERA CLAUDIA ANGELICA ANDROID WINDOWS APPLE LINUX.
ESTRUCTURA DE UNA PC.
Transcripción de la presentación:

Linux en la tostadora Una breve introducción al desarrollo de sistemas embebidos con GNU/Linux

Linux en la tostadora Lisandro Damián Nicanor Pérez Meyer perezmeyer usando gmail.com, cepanet.com.ar y uns.edu.ar

Linux en la tostadora – Leyendo el manual de la tostadora ¿Qué vamos a tostar hoy? ● Para quién es la charla ● Linux y los sistemas embebidos ● Definiciones básicas Conceptos de: ● Procesadores ● Boot loaders ● Kernel ● Root filesystem ● Dispositivos de almacenamiento ● Toolchains

Linux en la tostadora – Linux y los sistemas embebidos ¿Qué vamos a tostar hoy? ● Para quién es la charla ● Linux y los sistemas embebidos ● Definiciones básicas Conceptos de: ● Procesadores ● Boot loaders ● Kernel ● Root filesystem ● Dispositivos de almacenamiento ¿Porqué usar GNU/Linux? ● ¡Porque es software libre! ¿No me creen? ● Maduro y de alta performance → gracias a que es SL ● Soporta un amplio rango de aplicaciones y protocolos (¿el SO con mayor soporte existente?) → porque es SL ● Escalable: desde pequeños sistemas a supercomputadoras → porque cada cuál puede adaptarlo a gusto, porque es SL ● No se requiere el pago de regalías... ¡porque es SL! ● Una gran comunidad por detrás... la comunidad del SL ● Cada vez mas soporte de los fabricantes... porque así lo pide la comunidad

Linux en la tostadora – Linux y los sistemas embebidos ¿Y ya hay productos comerciales con GNU/Linux? Por supuesto :-) ● Nokia compró a Trolltech para utilizar Qt (la base fundacional del escritorio KDE) en sus dispositivos embebidos. ● Google creó los SSOO Chrome y Android basandose en Linux y pensando en sistemas embebidos ¿Porqué usar GNU/Linux? ● ¡Porque es software libre! ¿No me creen? ● Maduro y de alta performance → gracias a que es SL ● Soporta un amplio rango de aplicaciones y protocolos (¿el SO con mayor soporte existente?) → porque es SL ● Escalable: desde pequeños sistemas a supercomputadoras → porque cada cuál puede adaptarlo a gusto, porque es SL ● No se requiere el pago de regalías... ¡porque es SL! ● Una gran comunidad por detrás... la comunidad del SL ● Cada vez mas soporte de los fabricantes... porque así lo pide la comunidad

Linux en la tostadora – Definiciones básicas ¿Qué es un sistema embebido? Un sistema: ● Que contiene algún tipo de procesador. ● Generalmente diseñado para un propósito específico. ● No suele tener muchos recursos... ● Generalmente usa software preinstalado. ¿Y qué es Linux? ● Núcleo (kernel) del sistema operativo. ● Ocupado de hacer que las cosas anden. ● ~120 MB de código fuente... comprimido :-)

Linux en la tostadora – Definiciones básicas ¿Qué es un sistema embebido? Un sistema: ● Que contiene algún tipo de procesador ● Generalmente diseñado para un propósito específico ● No suele tener muchos recursos... ● Generalmente usa software preinstalado ¿Y qué es Linux? ● Núcleo (kernel) del sistema operativo ● Ocupado de hacer que las cosas anden ● ~120 MB de código fuente... comprimido :-) Tipos de hosts (máquinas de desarrollo) ● Linux ● Unix ● Windows Cross toolchain Herramientas de compilación que corren bajo el host pero compilan para la arquitectura del sistema embebido. RootFS Sistema de archivos principal.

Linux en la tostadora – Procesadores Tipos de procesadores ● Stand alone: requieren de chips externos para manejar cosas como los buses, la DRAM, etc. Ejemplo: procesadores de PC. ● Sistems en Chip (SoC): cuentan con gran parte de los susbistemas requeridos (manejo de memoria y buses, ethernet, USB, etc.) en el mismo integrado. Ejemplos: Broadcom MIPS (Linksys), Intel ARM (Xscale). Tipos de hosts (máquinas de desarrollo) ● Linux ● Unix ● Windows Cross toolchain Herramientas de compilación que corren bajo el host pero compilan para la arquitectura del sistema embebido.

Linux en la tostadora – El bootloader Tipos de procesadores ● Stand alone: requieren de chips externos para manejar cosas como los buses, la DRAM, etc. Ejemplo: procesadores de PC ● Sistems en Chip (SoC): cuentan con gran parte de los susbistemas requeridos (manejo de memoria y buses, ethernet, USB, etc.) en el mismo integrado. Ejemplos: Broadcom MIPS (Linksys), Intel ARM (XScale) El bootloader: iniciando el sistema ● Es el primer componente de software en ejecutarse ● Es el encargado de inicializar los periféricos como la DRAM, las cachés del procesador,... ● Y recién ahora se puede copiar a memoria y crear variables... ● Y luego cargar el kernel a memoria... e inicializarlo. Algunos bootloaders: RedBoot, U-Boot: embebidos; LILO, GRUB, loadlin, Coreboot (ex LinuxBIOS): sistemas “mas grandes”. Pero no es estricto

Linux en la tostadora – El bootloader Funcionalidades de los bootloaders Pueden cargar un kernel o un rootfs: ● De una memoria en la placa. ● De una tarjeta SD/MMC/... ● De un pendrive. ● De un servidor ftp. ● De un servidor NFS. Ésta flexibilidad nos permite modificar muy rápidamente un sistema de archivos, por ejemplo, sin necesidad de perder tiempo flasheando... y sin reducir la vida útil de la memoria. El bootloader: iniciando el sistema ● Es el primer componente de software en ejecutarse ● Es el encargado de inicializar los periféricos como la DRAM, las cachés del procesador,... ● Y recién ahora se puede copiar a memoria y crear variables... ● Y luego cargar el kernel a memoria... e inicializarlo. Algunos bootloaders: RedBoot, U-Boot: embebidos; LILO, GRUB, loadlin, Coreboot (ex LinuxBIOS): sistemas “mas grandes” Pero no es estricto

Linux en la tostadora – El kernel Funcionalidades de los bootloaders Pueden cargar un kernel o un rootfs: ● De una memoria en la placa ● De una tarjeta SD/MMC/... ● De un pendrive ● De un servidor ftp ● De un servidor NFS Ésta flexibilidad nos permite modificar muy rápidamente un sistema de archivos, por ejemplo, sin necesidad de perder tiempo flasheando... y sin reducir la vida útil de la memoria. El kernel ● Responsable de manejar el hardware... bit a bit. ● Provee la capa fundamental de abstracción para que la gran mayoría del resto de los programas sean independientes de la plataforma. ● En el caso de los sistemas embebidos, puede ser necesario parchear el kernel para obtener cierta funcionalidad (por ejemplo, dar soporte a un determinado LCD). Suele requerir leer bastante :-) Tip: ARCH=arm CROSS_COMPILE=arm-linux (Ése me llevó muuucho tiempo... por no tener de donde leer).

Linux en la tostadora – rootfs El sistema de archivos root (Rootfs) Una de las últimas tareas del kernel durante el inicio del sistema es montar el sistema de archivos. Si bien el kernel no dicta una estructura, los diversos programan cuentan con encontrar las cosas en un lugar predeterminado. Por éste motivo, es necesario mantenerse dentro de los estándares. El kernel ● Responsable de manejar el hardware... bit a bit ● Provee la capa fundamental de abstracción para que la gran mayoría del resto de los programas sean independientes de la plataforma ● En el caso de los sistemas embebidos, puede ser necesario parchear el kernel para obtener cierta funcionalidad (por ejemplo, dar soporte a un determinado LCD) Suele requerir leer bastante :-) Tip: ARCH=arm CROSS_COMPILE=arm-linux (Ése me llevó muuucho tiempo... por no tener de donde leer)

Linux en la tostadora – rootfs Algunos directorios importantes ● /bin: binarios de usuario esenciales (bash, pwd, tar,...). ● /boot: Archivos estáticos utilizados por el bootloader. ● /dev: dispositivos y archivos especiales (el “acceso al hardware”). ● /etc: archivos de configuración del sistema. ● /lib: bibliotecas esenciales, módulos del kernel. ● /media y /mnt: puntos de montaje de dispositivos removibles y fijos respectivamente. ● /proc: sistema de archivos virtual con información del kernel y procesos.

Linux en la tostadora – rootfs Algunos directorios importantes ● /bin: binarios de usuario esenciales (bash, pwd, tar,...) ● /boot: Archivos estáticos utilizados por el bootloader ● /dev: dispositivos y archivos especiales (el “acceso al hardware”) ● /etc: archivos de configuración del sistema ● /lib: bibliotecas esenciales, módulos del kernel ● /media y /mnt: puntos de montaje de dispositivos removibles y fijos respectivamente ● /proc: sistema de archivos virtual con información del kernel y procesos Algunos directorios importantes II ● /root: home de root. ● /sbin: binarios esenciales de administración del sistema (fdisk, mount, shutdown, etc.). ● /sys: sistema de archivos virtual con información del systema y control de buses, dispositivos y drivers. ● /tmp: archivos temporales. ● /usr: jerarquía secundaria, contiene gran parte de las utilidades del usuario. ● /var: archivos variables guardados por demonios (servicios) y utilidades.

Linux en la tostadora – Dispositivos de almacenamiento Algunos directorios importantes ● /bin: binarios de usuario esenciales (bash, pwd, tar,...) ● /boot: Archivos estáticos utilizados por el bootloader ● /dev: dispositivos y archivos especiales (el “acceso al hardware”) ● /etc: archivos de configuración del sistema ● /lib: bibliotecas esenciales, módulos del kernel ● /media y /mnt: puntos de montaje de dispositivos removibles y fijos respectivamente ● /proc: sistema de archivos virtual con información del kernel y procesos Los dispositivos de almacenamiento en sistemas embebidos suelen diferir mucho de sus contrapartes de escritorio. Una de las tecnologías mas importantes en éste ámbito es la tecnología de memorias de estado sólido. Las mismas suelen ser manejadas por el subsistema Memory Technology Devices MTD. Son dispositivos que no se pueden tratar directamente como de bloques o caracteres, por lo que requieren de dispositivos bajo /dev especiales... y se particionan ¡modificando código del kernel!

Linux en la tostadora – Dispositivos de almacenamiento Normalmente un dispositivo de almacenamiento se suele particionar con espacios reservados para: ● El bootloader. ● El kernel. ● El rootfs. ● Alguna mas por conveniencia inherente al dispositivo. Pero ¿cómo pasamos éstos datos a la memoria? ● El bootloader se suele programar por primera vez a través de JTAG. ● El kernel y el rootfs se pueden transmitir por JTAG (¡muy lento!), por conexión serial (mas rápido... pero puede tardar 45' para 25 MB...) o por conexión ethernet... si el bootloader lo soporta.

Linux en la tostadora – Toolchains Normalmente un dispositivo de lamacenamiento se suele particionar con espacios reservados para: ● El bootloader ● El kernel ● El rootfs ● Alguna mas por conveniencia inherente al dispositivo Pero ¿cómo pasamos éstos datos a la memoria? ● El bootloader se suele programar por primera vez a través de JTAG ● El kernel y el rootfs se pueden transmitir por JTAG (¡muy lento!), por conexión serial (mas rápido... pero puede tardar 45' para 25 MB...) o por conexión ethernet... si el bootloader lo soporta. Existen dos maneras distintas de obtener un toolchain: haciendo uno nosotros mismos o utilizando alguno pre hecho. Hacerlo nosotros mismos nos dá mucho control... pero mucho trabajo. Utilizar uno pre hecho implica confiar en otros... pero existen empresas que se dedican a ésto (por ejemplo, Montavista), y, por supuesto, proyectos comunitarios como Open Embedded y Buildroot. ¡hay que tener cuidado del vendor lock-in!

Linux en la tostadora – Referencias Si bien la web es una fuente enorme de datos, uno o dos libros nunca vienen mal :-) ● Embedded Linux Primer: a practical, real-world approach. Christopher Hallinan, Prentice Hall, ISBN-10: ● Building embedded Linux Systems, Karim Yaghmour, Jon Masters et al. O'Reilly, ISBN: Ambos libros cuentan con referencias a fuentes externas para temas particulares.

Linux en la tostadora – Preguntas ¿Preguntas?

Linux en la tostadora – Preguntas Gracias :-)

Linux en la tostadora – Copyright y demáses Si bien la web es una fuente enorme de datos, uno o dos libros nunca vienen mal :-) ● Embedded Linux Primer: a practical, real-world approach. Christopher Hallinan, Prentice Hall, ISBN-10: ● Building embedded Linux Systems, Karim Yaghmour, Jon Masters et al. O'Reilly, ISBN: Ambos libros cuentan con referencias a fuentes externas para temas particulares. La imagen de fondo de la tostadora está disponible en Y se encuentra bajo dominio público y licencia CC-BY-SA 3.0 El presente trabajo es Copyright © Lisandro Damián Nicanor Pérez Meyer y se encuentra bajo la licencia Creative Commons Share Alike (Atribución-Compartir) Argentina 2.5: El mismo puede encontrarse en