GNOME es un escritorio libre y de código abierto para sistemas tipo Unix. Está compuesto por varias bibliotecas como GTK+, GLib, Pango y Bonobo que proveen elementos para desarrollar aplicaciones. Incluye aplicaciones como Nautilus, Evolution y GNOME Panel. La comunidad prueba nuevas versiones usando máquinas virtuales y reportando bugs encontrados.
4. ¿Qué es GNOME?
• GNOME - GNU Network Object Model
Environments
• Comenzó en 1997. Miguel de Icaza y
Federico Mena lo comenzaron
(estudiantes de Fac. de Ciencias, UNAM)
5. ¿Qué es GNOME?
• Proveé un escritorio completo libre y grátis
que para GNU/Linux.
7. ¿Qué es GNOME?
• ¿Por qué no usar KDE?
KDE está basado en la biblioteca QT.
Históricamente, la licencia de QT no era tan
libre como se hubiera querido.
• Escrito en C++.
8. ¿Qué es GNOME?
• GNOME esta basado en GTK.
• GTK está escrito en C.
• Con licencia LGPL - más libre, aprobada por
la GNU Software Foundation.
• GTK ya se usaba en GIMP, por lo que era
una biblioteca probada y conocida.
9. GNOME es...
• Para usuarios - un escritorio completo libre,
grátis y fácil de usar.
• Para desarrolladores - un poderoso
“framework” de desarrollo.
• Más información -
http://www.gnome.org/about/why.html
11. Componentes
• GTK+ (Gimp toolkit) - Un toolkit gráfico
basado en C, utilizado para crear la parte
visual de GNOME. http://www.gtk.org
Soporta varios lenguajes: Ada95, C++, Dylan,
Eiffel, Guile, Haskell, JavaScript, Objective C,
Objective CAML, Objective Label, Pascal,
Perl, Pike, Python y TOM. Tal vez más.
12. Componentes
• Accessibility framework - herramientas para
dotar de opciones de accesibilidad a tu
aplicación - lupa, lector de pantalla, soporte
para doble click lento.
• ORBit - implementación ligera de CORBA
Object Request Broker (ORB).
• Bonobo - Biblioteca de soporte para la
arquitectura de componentes de GNOME.
Similar a la tecnología OLE de windows ;-)
13. Componentes
• GConf - un sistema distribuido de
configuración, lo hace especialmente fácil
cuando los componentes pueden ser
incrustrados, distribuidos o ambos ;-)
• glib - una biblioteca portatil escrita en C
para crear y manipular estructuras de datos
- como listas, arboles, hash.
• gdk-pixbuf - una biblioteca de manipulación
de imagenes.
14. Componentes
• libgnomeui - biblioteca con código
relacionado con la UI (interfaz de usuario) de
GNOME
• libgnome - biblioteca de todo lo que no es
relacionado con la parte grafica de GNOME.
• gnome-print - biblioteca con las rutinas para
imprimir.
• libxml - biblioteca para manipulación de XML.
15. Componentes
• gnome-vfs - Sistema virtual para
manipulación de sistemas de archivos y
otros medios, como ftp, ssh, etc. De tal
forma que desde Nautilus puedes
conectarte a sistemas remotos por via de
ftp, samba, ssh, etc y manipularlo como si
fueran locales.
16. +Detalles
• GLib
• Tipos basicos, macros.
• Soporte para loops
• Threading, cadenas, scanner, parser para
xml, etc...
• Listas ligadas, tablas de hash, arboles, etc.
• Portable, conveniente, usable.
17. +Detalles
• Gobject
• Sistema de tipos generico
• Implementaciones fundamentales del tipo.
• Sistema de signals y notificaciones
• Sistema de parametros/valor.
• Facil de mapear. Proporcionar orientación
a objetos encima de C.
18. +Detalles
• Pango
• Sistema para manejo y graficación de
lenguajes internacionales
• ATK
• Interfaces para la accesibilidad
• GAIL es la implementación de ATK para
GTK.
19. +Detalles
• GDK - Gimp Drawing Kit
• Un envoltorio para las operaciones de
bajo nivel de dibujo, como seria Xlib, en el
caso de Xwindow
• Fácil de portar a otros sistemas de
ventanas.
20. +Detalles
• GDKPixBuf
• Cargar imagenes con su propio cargador.
• Manipulación de la imagen en el lado del
cliente (en la memoria)
• Remplaza imlib.
21. +Detalles
• GTK+ - Gimp Tool Kit
• API orientada a objetos encima de C.
• Funciona en varios lugares - Sistemas tipo
unix (X-Window), Windows, Mac,
Consola, sistemas con framebuffer.
• Multitud de widgets:
Basicos: GtkEntry, GtkButton...
Layout: GtkBox, GtkTable, etc.
Complejos: TreeView, TextView, etc.
Dialogos comunes: File/Font/Color/Input
Menu/Toolbar basado en acciones.
22. +Detalles
• GTK+ tiene soporte para distintos
“themes”.
• GTK+ es LGPL
• GTK+ corre en Win32, DirectFB, OSX,
Consola.
23. Modelo de
• Bonobo componentes
• Interfase con IDL de CORBA
• Envoltorios para C.
• Implementación con cualquier lenguaje.
• Asiste en la implementación de...
• Componentes
• Controles
• Soporte para componentes en
documentos.
24. Modelo de
componentes
• ORBit
• Implementación de CORBA con mapeo
de C con la specificación 2.2 de CORBA.
25. Bibliotecas de GNOME
• GNOME VFS
• Encapsula la funcionalidad de un
sistema de archivos de tal forma que
tienes una sola interface y varios
drivers que conectan con otros
sistemas de archivos; es decir, para ti
da lo mismo si te conectas a archivos
locales, HTTP, FTP, WebDAV, NNTP,
etc.
26. Bibliotecas de GNOME
• GNOME Canvas
• Widget para crear objetos
personalizados, con tu propias
graficas, texto, etc.
• Originado por el port de Tk Canvas.
27. Bibliotecas de GNOME
• GNOME Print
• Extensión de GNOME canvas a la
impresora.
• GConf
• Administra la configuración en una forma
de árbol (Piense en el registro de
windows)
28. Bibliotecas de GNOME
• GNOME DB
• Una arquitectura libre para accesar datos
ordenados.
• libgnomedb/libgda
• GStreamer
• Framework multimedia.
• Estructura grafica de pipelines multi-
thread.
29. Bibliotecas de GNOME
• libglade - crea la interface de usuario desde
un archivo XML, en tiempo de ejecución
(.glade)
• libxml2/libXSLT - GNOME-XML - parser de
XML, toolkit. Todo escrito en C.
• gtkhtml - visualizador de html.
33. Testing GNOME
• http://live.gnome.org/Bugsquad
• No necesitas ser experto.
• Puedes simplemente quejarte - Y levantar
un reporte de bug.
• Asistir a los dias de “caza de bugs”.
• Obtener builds calientitos -
http://live.gnome.org/BuildBrigade
34. Testing GNOME
• Para el fácil testing:
• Baja Virtualbox - http://virtualbox.org
• Busca una máquina virtual (appliance)
prehecho con la versión de GNOME que
quieres probar (use the google, luke!)
• Prueba y envia bugs, sin afectar tu
ambiente de producción.
• Usa Garnome:
http://www.gnome.org/projects/garnome/