gnome - un vistazo a su arquitectura
Post on 24-May-2015
1.000 Views
Preview:
DESCRIPTION
TRANSCRIPT
Mauro Parra-Mirandamauro@masutostudios.com
GNOME - Un vistazo a su arquitectura
Índice
• ¿Qué es GNOME?
• Componentes
• Aplicaciones
• Testing
• Futuro
• Links
¿Qué es GNOME?
¡NO es un habitante del bosque!
¿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)
¿Qué es GNOME?
• Proveé un escritorio completo libre y grátis que para GNU/Linux.
¿Qué es GNOME?
¿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++.
¿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.
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
GNOME es...
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.
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 ;-)
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.
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.
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.
+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.
+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.
+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.
+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.
+Detalles
• GDKPixBuf
• Cargar imagenes con su propio cargador.
• Manipulación de la imagen en el lado del cliente (en la memoria)
• Remplaza imlib.
+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/InputMenu/Toolbar basado en acciones.
+Detalles
• GTK+ tiene soporte para distintos “themes”.
• GTK+ es LGPL
• GTK+ corre en Win32, DirectFB, OSX, Consola.
Modelo de componentes• Bonobo
• 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.
Modelo de componentes
• ORBit
• Implementación de CORBA con mapeo de C con la specificación 2.2 de CORBA.
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.
Bibliotecas de GNOME
• GNOME Canvas
• Widget para crear objetos personalizados, con tu propias graficas, texto, etc.
• Originado por el port de Tk Canvas.
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)
Bibliotecas de GNOME
• GNOME DB
• Una arquitectura libre para accesar datos ordenados.
• libgnomedb/libgda
• GStreamer
• Framework multimedia.
• Estructura grafica de pipelines multi-thread.
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.
Ejemplo
/* A sample GNOME program*/
#include <gnome.h>int main(int argc, char *argv[ ]){GtkWidget *ghosh;gnome_init("sample", "0.1", argc, argv);ghosh = gnome_app_new("sample", "My Window");gtk_widget_show(ghosh);gtk_main();return 0;}
$ gcc myapp.c -o myapp `gnome-config --cflags --libs gnomeui`
Aplicaciones de GNOME
http://en.wikipedia.org/wiki/List_of_GNOME_applications
http://www.gnomefiles.org/
Testing GNOME
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
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/
Futuro de GNOME
Links• GNOME developer resources - http://
www.sun.com/software/star/gnome/developer/index.xml
• GNOME Architecture - http://www.slideshare.net/iolo/gnome-architecture?nocache=753
• Gnome Applications - http://en.wikipedia.org/wiki/List_of_GNOME_applications
• http://library.gnome.org/devel/gtk-tutorial/stable/
Mauro Parra-Mirandamauro@masutostudios.com
http://masutostudios.com/ciencias09
Masuto Studios
top related