• No results found

Applying Brain-Based Learning Theory to College Composition Courses

El término plataforma es ampliamente usado en diversas áreas de la ciencia y la técnica y, en el caso de la rama asociada del hardware, se refiere a los dispositivos físicos, o sea, al conjunto de componentes dehardwareque se utilizan como base para la ejecución de determinado software con el cual es compatible. Resulta válido mencionar que existe un caso especial de plataformas dehardware, conocida como «plataforma experimental» o de desarrollo, cuyo objetivo es facilitar el acceso y prueba a equipos reales bajo condiciones y restricciones reales. Mayormente son utilizadas para el desarrollo de investigaciones cuyo propósito final es la obtención de resultados prácticos.

Capítulo 3. XEOS, software base de sistemas embebidos Aunque existe una gran variedad de plataformas de hardware, para el desarrollo de este trabajo se emplearon dos plataformas de hardware que son usadas para el desarrollo de soluciones en el Centro de Sistemas Embebidos de la XETID, la RaspberryPI 1 Modelo B y la Odroid-X2. Estas plataformas fueron tomadas como base de prueba por ser las plataformas empleadas en la XETID y disponer delhardwarefísico para las pruebas. En las figuras 3.2 y 3.3 se pueden observar la plataforma RaspberryPI y el Odroid-X2. A continuación se describen brevemente cada una de estas plataformas.

La RaspberryPI o Pi, como también se le conoce, es una plataforma dehardware diseñada y comercializada por Raspberry Pi Foundation y fue lanzada al mercado en el 2012. Hasta el momento existen tres versiones de esta plataforma de hardware. Entre las características más notables que han hecho popular esta plataforma se puede citar el bajo consumo de energía (1.5 W como máximo para el modelo A y 3.5 W como máximo para el modelo B) y su bajo costo de producción.

La RaspberryPI ha sido soportada en varias distribuciones de GNU/Linux: Ubuntu, Debian, ArchLinux, Android; aunque la más popular ha sido Raspbian, la versión de Debian. También se han portado plataformas multimedias para su ejecución en la RaspberryPI, como es el caso del OpenELEC y XBMC.

Figura 3.2.:Plataforma dehardware RaspberryPI 1 Modelo B (SoC Broadcom BCM2835)

Las plataformas Odroid son una serie de plataformas desarrolladas por la compañía Hardkernel. Esta compañía, al igual que InSignal y Rexnos, es una empresa asociada a Samsung y pertenece a la Samsung Community Board. Se dedica a la fabricación de plataformas de hardware empleando componentes de Samsung y provee el ambiente de desarrollo de código abierto para desarrollar o modificar software en sistemas operativos de la familia GNU/Linux.

El nombre de esta serie viene de la combinación de «open» y «Android», siguiendo una filosofía de software/hardwareabierto para el desarrollo de Android. Aunque están pensadas para el desarrollo de Android, también han sido empleadas con

Capítulo 3. XEOS, software base de sistemas embebidos otros sistemas operativos de la familia GNU/Linux. Esta serie de plataformas es consideradahardwarelibre; sin embargo, existen algunos modelos que, a pesar de que los esquemas de la plataforma son libres, otras partes del diseño no lo son.

Estas plataformas comenzaron a comercializarse en el año 2009 con la primera versión llamada Odroid, a la cual le sucedieron Odroid-T, Odroid-S, Odroid-7, Odroid-A, Odroid-PC, Odroid-A4, Odroid-Q, Odroid-X, Odroid-X2, Odroid-U, Odroid-U2, Odroid-XU, Odroid-U3, Odroid-XU3 y Odroid-C1. La evolución de la tecnología y el constante mejoramiento del hardware ha hecho que esta serie de plataformas cambie con frecuencia mejorando las prestaciones de las que la preceden, quedando muchas de estas plataformas marcadas como obsoletas en el sitio oficial www.hardkernel.com, lo cual no indica que estas hayan dejado de usarse a nivel internacional.

Figura 3.3.: Plataforma dehardware Odroid-X2 (SoC Samsung Exynos4412)

Como se puede observar, las dos plataformas empleadas para el desarrollo de este trabajo proceden de fabricantes diferentes. En la Tabla 3.1 se recogen las características técnicas generales de cada una de las plataformas, las cuales son muy diferentes en cuanto a sus componentes y las prestaciones que pueden tener cada una de las plataformas.

Ambas plataformas de hardware tienen soporte en el microkernel Fiasco.OC, pero no sobre elframework de desarrollo GenodeOS, ya que la RaspberryPI tiene soporte pero solo empleando el kernel base_hw que provee GenodeOS. En las secciones posteriores se describirá cómo se le brindó soporte a estas plataformas dehardware en el framework para emplear el microkernel Fiasco.OC.

Capítulo 3. XEOS, software base de sistemas embebidos

Tabla 3.1.: Características de las plataformas dehardware empleadas

Característica RaspberryPI Odroid-X2

SoC Broadcom BCM2835 Exynos4412 Prime

Procesador ARM1176JZF-S @ 700

MHz

Quad core Cortex-A9 @ 1.7 Ghz

Arquitectura ARMv6 ARMv7

GPU Dual core VideoCore

IV Multimedia Co-

Processor

ARM Mali-400 Quad Co- re @ 440MHz

Memoria SDRAM 512 MB RAM DDR2 2GB

Soporte E/S Conector Ethernet

10/100 MB

Conector USB (quad) GPIO de 40 pines

Conector HDMI

Conector composite

RCA

Conector audio jack 3.5

mm

Puerto para cámara

(CSI-2)

Puerto para LCD (DSI)

Cable de alimentación micro USB

Conector Ethernet 10/100 Mbps

6 puertos USB 2.0 host, 1 puerto USB 2.0 OTG

GPIO de 50 pines Conector Micro HDMI

Conector audio jack E/S Puerto para cámara

(MIPI CSI)

Almacenamiento SD/MMC/SDIO SDHC/eMMC

Soporte para Real Time No Si

Soporte en Fiasco.OC Si Si

Soporte en GenodeOS Si (base_hw) No

Capítulo 3. XEOS, software base de sistemas embebidos

3.2.1.

El TCB del sistema

En la bibliografía consultada se afirma que el enfoque de microkernel reduce el tamaño del TCB del sistema sobre todo en la cantidad de LOC. Para medir realmente cuánto se reduce este tamaño se realizó una comparación del microkernel Fiasco.OC y un kernel monolítico GNU/Linux para las plataformas dehardware empleadas en el desarrollo del trabajo.

Para comparar la cantidad de LOC se compilaron ambos kernels, compilando el kernel de Linux con la menor cantidad posible de componentes y desactivando el soporte para los sistemas de archivos, el cual no se tuvo en cuenta para la comparación porque elmicrokernel Fiasco.OC no implementa estos componentes dentro del kernel. Una vez compilados, solo fue analizado el código fuente de aquellos archivos que fueron empleados en la compilación, sin incluir los archivos de cabecera.

Como se puede observar en la Figura 3.4(a) para la RaspberryPI y en la Figura 3.4(b) para la Odroid-X2, en ambos casos se reduce considerablemente el tamaño del kernel en función de las líneas de código. Para calcular la cantidad de LOC se empleó la herramienta sloccount (Wheeler, 2004) disponible en los repositorios de GNU/Linux.

(a) RaspberryPI (b) Odroid-X2

Figura 3.4.: Comparación en cuando a LOC Fiasco.OC vs. Linux

El microkernel Fiasco.OC alcanzó un total de 54315 líneas de código para la RaspberryPI y 52863 para la Odroid-X2, mientras que el kernel de Linux 158527 para la RaspberryPI y 213127 para la Odroid-X2. Como se puede observar, en ambos casos el tamaño se reduce en mucho más de la mitad, lo que ya es significativo, pues se ha comparado el kernel de Linux empleando solo los controladores de dispositivos básicos: manejador de interrupciones, terminal serial y temporizadores.

Capítulo 3. XEOS, software base de sistemas embebidos Se debe señalar que en el caso del soporte para los SoC, en Fiasco.OC este soporte está en el orden de los cientos de LOC para ambas plataformas, mientras que en el kernel de Linux está en el orden de los miles, reduciendo el tamaño casi 50 veces en la RaspberryPI y 20 en la Odroid-X2. Los resultados completos de la comparación pueden ser consultados en la Tabla A.1.

De igual forma se calculó la cantidad de memoria, omemory footprint, aproximada que emplea el kernel durante su ejecución por cada componente. Este valor fue calculado empleando el comando size disponible en las herramientas de compilación estándar. Este comando calcula el tamaño total de un archivo binario a partir del tamaño de cada una de las secciones que lo componen. En este caso se calculó a partir de los archivos objeto generados durante la compilación, con el fin de poder diferenciar los componentes del kernel.

La Figura 3.5(a) muestra los resultados obtenidos para la RaspberryPI y la Figura 3.5(b) para la Odroid-X2. Tal como se esperaba, el espacio ocupado en memoria por el kernel se reduce considerablemente.

(a) RaspberryPI (b) Odroid-X2

Figura 3.5.:Comparación en cuando al memory footprintFiasco.OC vs. Linux

El microkernel Fiasco.OC alcanzó un total de 483261 bytes para la RaspberryPI y 637437 bytespara la Odroid-X2, mientras que elkernel de Linux 2382854bytes para la RaspberryPI y 1796815bytespara la Odroid-X2. Los resultados completos de la comparación pueden ser consultados en la Tabla A.2.

Related documents