SW libre en ciencia e ingeniería - Universidad Complutense de Madrid

Anuncio
SW libre en ciencia e ingeniería
Del software al hardware libre
Luis Piñuel Moreno
Dep. Arquitectura de Computadores y Automática
Universidad Complutense de Madrid
Terminología
• Software libre, código abierto, tipos de licencias
SW libre e ingeniería de computadores
• Diseño de computadores mediante software libre
• Extensión del concepto al hardware
Iniciativas de hardware libre
• OpenSPARC, Arduino, BeagleBoard, OpenMoko, etc.
Terminología
Definición de software libre
 Según la
es aquel SW que
garantiza 4
libertades:
Libertad 0
• Ejecutar el SW con cualquier
propósito
Libertad 1
• Estudiar y modificar el programa
Libertad 2
• Copiar el programa de manera
a ayudar al prójimo
Libertad 3
• Mejorar el programa y hacer
públicas las mejoras para
beneficio de la comunidad
Licencias y software libre
 ¿Qué es una licencia SW?
Autorización formal con carácter contractual que un
autor de un SW da a un interesado para ejercer “actos
de explotación legales”
 ¿Restricción o garantía de libertades?
 Las
licencias es el medio por el cual se garantizan las
libertades del SW
 SW libre es aquel que está sujeto a una licencia que
garantice las 4 libertades anteriores
Copyleft
 ¿Qué es?
Regla/cláusula de las licencias SW que garantiza que
las libertades que se ofrecen al usuario se preservan
 ¿Qué implica?
 El
SW se puede modificar/distribuir siempre que esté
sujeto a un licencia equivalente
 Copyleft estricto vs. relajado
 Carácter
restrictivo de la cláusula
 La versión relajada permite “enlazar” código y
distribuir el programa con una licencia distinta
Controversia SW libre/código abierto
 Software libre (Free Software)
 Puede
considerarse un
movimiento social
 Imperativo ético = garantizar la
libertad del usuario
 Código abierto (Open Source)
 Término
nacido para el
marketing del SW libre
 “Free”
es ambiguo, puede
traducirse por “libre” o “gratis”
 Se
considera una metodología
de desarrollo (modelo Bazar)
Controversia SW libre/código abierto
 Consideraciones filosóficas aparte son equivalentes
 Las
 licencias SW son las mismas
Términos equivalentes
 FOSS
(Free/Open Source SW)
 FLOSS (Free/Libre Open Source Software)
Extensión a otros ámbitos
 Otros conocimientos a compartir …
 Documentos,
publicaciones
 Imágenes, audio, multimedia
 … otras licencias
GNU Free Documentation License
 Licencias situadas en un amplio espectro
 Combinan diversos atributos:
Autoría (Attribution – by)
Uso no comercial (Non Commercial – nc)
Distribución inalterada (NonDerivativeWorks – nd)
Mantenimiento de licencia (Share-Alike – sa)
Principales licencias
Copyright
✔
Libertad0
✔
✔
✔
✔
✔
✔
✔
✔
✔
Libertad1
✔
✔
✔
✔
✔
✔
Libertad2
✔
✔
✔
✔
✔
✔
Libertad3
✔
✔
✔
✔
✔
Copyleft
STRICTO
STRICTO
RELAJADO
STRICTO
Principales licencias
Copyright
✔
Libertad0
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
✔
Libertad1
✔
✔
✔
Libertad2
✔
✔
✔
✔
FREE/OPEN
✔
✔
Libertad3
✔
✔
✔
Copyleft
STRICTO
STRICTO
RELAJADO
STRICTO
✔
✔
SW libre e ingeniería de computadores
Ingeniería de Computadores
  Área de la informática
que se situada en la
frontera del hardware
y el software
No cubre los niveles
próximos a la
tecnología
(electrónica/física)
Diseño de
circuitos
Desarrollo
de
software
Interacción
HW-SW
Desarrollo
de
firmware
Diseño a
nivel de
sistema
Desarrollo de SW
Interfaz SW-HW
 Tipo de software:
  Compiladores
 Sistemas
operativos
 Herramientas de análisis y mejora de rendimiento
 En su mayoría, es inherente al SW libre
 El
objetivo del proyecto GNU, origen del SW libre, era
crear un sistema operativo libre (GNU is not UNIX)
 SW abundante, quizás en exceso
Desarrollo de SW
 Independencia HW vs. rendimiento
 La
excesiva ligazón a un determinada plataforma es
contraria al FOSS (restringe la Libertad2)
 Sin embargo, no tener en cuenta las características del
hardware subyacente suele penalizar el rendimiento
 Importancia información HW
 Cuanta
más información se disponga, mejor código y
menor esfuerzo de desarrollo
 Problema: no siempre está disponible
Algunos ejemplos representativos
 Compiladores,
depuradores y otras
herramientas
 GNU
Compiler
Collection (GCC)
 GNU Debugger (GDB)
 Sistemas Operativos
 GNU/Linux,
OpenBSD,
OpenSolaris, Darwin,
Minix, …
Diseño de circuitos y sistemas
 Software libre escaso y poco eficiente
 Fuerte
dependencia con el HW y el proceso de
fabricación
 Escasa penetración del concepto “open”
 Herramientas CAD:
 Captura
de esquemáticos
 Simulación de circuitos
 Lenguajes de descripción hardware (HDL)
 Herramientas de síntesis
Algunos ejemplos representativos
 Conjuntos de herramientas CAD
 gEDA
 (GPL’d suite of Electronic Design Automation tools)
Lenguajes de descripción HW y simuladores
 MyHDL,
 GHDL, System-C, Icarus-Verilog, VeriWell, etc.
Herramientas de síntesis y manipulación de máscaras
 RASP
(FPGA/CPLD), Magic (ASIC), etc.
Desarrollo firmware
 ¿Qué es?
Código de bajo nivel almacenado en memoria no
volátil (ROM, Flash, etc.)
 SW libre escaso
 Fuerte
dependencia del HW
 Falta información por parte de los fabricantes
 Iniciativas más destacables:
 OpenBoot
(SUN), OpenBIOS, Coreboot, etc.
Necesidad de hardware libre
Problema: falta de información HW propietario
• Supone un freno al SW libre en este ámbito
Solución: hacer públicas las especificaciones
¿Por qué no ir más lejos?
• Compartir el hardware de un modo análogo al software
• “Open hardware”
Hardware libre/abierto
 Idea:
 Los
diseños (circuito/sistema) son documentos
 Por lo tanto, se pueden compartir mediante licencias
Creative Commons o similares
 Se trata de una tendencia muy reciente (2000-02)
aunque gana adeptos rápidamente
Iniciativas de hardware libre
Tipos de hardware
 Procesadores
 Se
comparte el código HDL
 Son necesarias herramientas propietarias para su
implementación
 Placas, Computadores, Teléfonos Móviles, Consolas
de juegos, dispositivos de electrónica de consumo
 Suelen
depender de un procesador propietario
 Se comparte el diseño del PCB, especificaciones
mecánicas, librerías, entornos de desarrollo, etc.
 Se pueden usar SW libre para su implementación
Procesadores
 OpenSparc (SUN)
UltraSparc-T2
 Procesador
SPARC de 64 bits
 Multiples cores/threads
 Servidores
 LEON (Gaisler)
 Procesador
SPARC de 32 bits
 Sistemas empotrados
 Sector aeroespacial
Prototipo LEON3-FT
Placas
 Arduino
 Pequeños
dispositivos
electrónicos
 Bajo consumo, flexible,
fácil de programar
(wiring/processing)
 Microcontrolador Atmel
AVR 8-bits
Arduino-DB
Ejemplos
Robot
Placas
 Beagleboard
BeagleBoard
 Electrónica
de consumo,
incluso computadores
 Bajo coste y consumo
energía, elevadas
prestaciones
 Procesador Texas
Instruments OMAP3530
HDTV
Computadores
 VIA OpenBook
Via mini-Note
 Ficheros
CAD
disponibles
 Procesador VIA C7
1,6GHZ
 Chipset VIA VX800
 WiFi, Webcam, etc.
 Soporte Linux y
Windows
Imagen CAD
Teléfonos móviles
 OpenMoko
 SW
libre (Linux)
 HW casi libre
 Neo FreeRunner (FIC)
 Samsung
2442 SoC
 GSM, GPRS, WiFi, USB, etc.
Neo FreeRunner
Consolas de juegos
  Sólo el firmware es libre
GP2X y GP2X Wiz
portátil y
reproductor multimedia
 Procesadores ARM9
GP2X
 Consola
 Pandora
 Consola
altas
prestaciones y PDA
 Procesador TI
OMAP3530
GP2X Wiz
Pandora
¿Qué importancia tendrá el HW libre?
Es difícil predecir
 ¿Quién adivinó que Linux, Apache, Google o la
Wikipedia serían hoy lo que son?
 La electrónica de consumo puede ser área dónde
mayor impacto tenga
 SW libre en ciencia e ingeniería
Del software al hardware libre
Luis Piñuel Moreno
Dep. Arquitectura de Computadores y Automática
Universidad Complutense de Madrid
Descargar