SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
GNOME - Un vistazo a su
    arquitectura
      Mauro Parra-Miranda
    mauro@masutostudios.com
Í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/Input
    Menu/Toolbar basado en acciones.
+Detalles

• GTK+ tiene soporte para distintos
  “themes”.
• GTK+ es LGPL
• GTK+ corre en Win32, DirectFB, OSX,
  Consola.
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.
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/
Masuto Studios
       Mauro Parra-Miranda
     mauro@masutostudios.com
http://masutostudios.com/ciencias09

Weitere ähnliche Inhalte

Was ist angesagt?

Akademy es2010 kde_i10n_albert_astals
Akademy es2010 kde_i10n_albert_astalsAkademy es2010 kde_i10n_albert_astals
Akademy es2010 kde_i10n_albert_astalsAkademyEs2010
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...Software Guru
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Restorando
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Modernowpargentina
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopRestorando
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualizaciónMarcelo Ochoa
 
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Vicente Gerardo Guzman Lucio
 
Internet y navegador web
Internet y navegador webInternet y navegador web
Internet y navegador webKAREMDEDIOS
 
Introduccion a kata containers
Introduccion a kata containersIntroduccion a kata containers
Introduccion a kata containersJulioMontes23
 
Buildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en PythonBuildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en PythonCodeSyntax
 
Manejo de packages en Kubernetes con Helm
Manejo de packages en Kubernetes con HelmManejo de packages en Kubernetes con Helm
Manejo de packages en Kubernetes con HelmMario IC
 

Was ist angesagt? (20)

Akademy es2010 kde_i10n_albert_astals
Akademy es2010 kde_i10n_albert_astalsAkademy es2010 kde_i10n_albert_astals
Akademy es2010 kde_i10n_albert_astals
 
Solapas principales Ver(solapa activa) Editar Gestionar present...
 Solapas principales      Ver(solapa activa)     Editar     Gestionar present... Solapas principales      Ver(solapa activa)     Editar     Gestionar present...
Solapas principales Ver(solapa activa) Editar Gestionar present...
 
Samba en Centos 7
Samba en Centos 7Samba en Centos 7
Samba en Centos 7
 
Fury - Docker Meetup
Fury - Docker MeetupFury - Docker Meetup
Fury - Docker Meetup
 
Linux Terminal Server
Linux Terminal ServerLinux Terminal Server
Linux Terminal Server
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
 
Uso de yum
Uso de yumUso de yum
Uso de yum
 
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
03 de Marzo 2015: Andrés Villarreal - Herramientas del Desarrollador Moderno
 
nerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshopnerdear.la 2016 - Docker workshop
nerdear.la 2016 - Docker workshop
 
Docker: la revolución en virtualización
Docker: la revolución en virtualizaciónDocker: la revolución en virtualización
Docker: la revolución en virtualización
 
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
Creacion y Administracion de servicios usando Docker - .Net Conf Mx 2018
 
Internet y navegador web
Internet y navegador webInternet y navegador web
Internet y navegador web
 
Introduccion a kata containers
Introduccion a kata containersIntroduccion a kata containers
Introduccion a kata containers
 
Buildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en PythonBuildout: Crear y desplegar entornos reproducibles en Python
Buildout: Crear y desplegar entornos reproducibles en Python
 
Herramientas de Back-End
Herramientas de Back-EndHerramientas de Back-End
Herramientas de Back-End
 
Mis comandos favoritos en linux parte 3
Mis comandos favoritos en linux parte 3Mis comandos favoritos en linux parte 3
Mis comandos favoritos en linux parte 3
 
Introducción a Docker
Introducción a DockerIntroducción a Docker
Introducción a Docker
 
Manejo de packages en Kubernetes con Helm
Manejo de packages en Kubernetes con HelmManejo de packages en Kubernetes con Helm
Manejo de packages en Kubernetes con Helm
 
Conceptos avanzados en docker
Conceptos avanzados en dockerConceptos avanzados en docker
Conceptos avanzados en docker
 
Pechakucha escritorio remoto
Pechakucha escritorio remotoPechakucha escritorio remoto
Pechakucha escritorio remoto
 

Andere mochten auch

Cómo colaborar en GNOME
Cómo colaborar en GNOMECómo colaborar en GNOME
Cómo colaborar en GNOMEJuanjo Marin
 
Presentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretesPresentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretesMichael Vreys
 
Como volverse un Hacker feliz de GNOME
Como volverse un Hacker feliz de GNOMEComo volverse un Hacker feliz de GNOME
Como volverse un Hacker feliz de GNOMEJuan Percy Rojas Cruz
 
Compilación del Kernel
Compilación del KernelCompilación del Kernel
Compilación del KernelJuan Sánchez
 
Introducción a compiladores
Introducción a compiladoresIntroducción a compiladores
Introducción a compiladorespilar menacho
 
Comprendiendo gnome
Comprendiendo gnomeComprendiendo gnome
Comprendiendo gnomeJuanjo Marin
 
Nucleo o kernel de Linux
Nucleo o kernel de LinuxNucleo o kernel de Linux
Nucleo o kernel de LinuxJhon TRUJILLO
 

Andere mochten auch (11)

Cómo colaborar en GNOME
Cómo colaborar en GNOMECómo colaborar en GNOME
Cómo colaborar en GNOME
 
Presentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretesPresentación computación 1_compiladores_e_interpretes
Presentación computación 1_compiladores_e_interpretes
 
Como volverse un Hacker feliz de GNOME
Como volverse un Hacker feliz de GNOMEComo volverse un Hacker feliz de GNOME
Como volverse un Hacker feliz de GNOME
 
Compilación del Kernel
Compilación del KernelCompilación del Kernel
Compilación del Kernel
 
Rep 34
Rep 34Rep 34
Rep 34
 
Introducción a compiladores
Introducción a compiladoresIntroducción a compiladores
Introducción a compiladores
 
Kernel
KernelKernel
Kernel
 
Comprendiendo gnome
Comprendiendo gnomeComprendiendo gnome
Comprendiendo gnome
 
Nucleo o kernel de Linux
Nucleo o kernel de LinuxNucleo o kernel de Linux
Nucleo o kernel de Linux
 
Gnome
GnomeGnome
Gnome
 
Compiladores teoria e implementacion
Compiladores teoria e implementacionCompiladores teoria e implementacion
Compiladores teoria e implementacion
 

Ähnlich wie Gnome - un vistazo a su arquitectura

An Evening with... Go Lang
An Evening with... Go LangAn Evening with... Go Lang
An Evening with... Go LangArkhotech
 
Cursini Linuxi 4ni.ppt
Cursini Linuxi 4ni.pptCursini Linuxi 4ni.ppt
Cursini Linuxi 4ni.pptjohan riuk
 
CursoLinux4_________________________.ppt
CursoLinux4_________________________.pptCursoLinux4_________________________.ppt
CursoLinux4_________________________.pptmapajoben
 
Ponencia Linux - Colegio ADEU
Ponencia Linux - Colegio ADEUPonencia Linux - Colegio ADEU
Ponencia Linux - Colegio ADEUBruno Espinoza
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosvecaus
 
Sistemas Operativos.
Sistemas Operativos.Sistemas Operativos.
Sistemas Operativos.DSR021992
 
Notas de la version de MKVToolNix 79.0
 Notas de la version de MKVToolNix 79.0 Notas de la version de MKVToolNix 79.0
Notas de la version de MKVToolNix 79.0PILFRUTFELIZ
 
Jhorleny cuellar
Jhorleny cuellarJhorleny cuellar
Jhorleny cuellarJhorleny
 
Jhorleny cuellar
Jhorleny cuellarJhorleny cuellar
Jhorleny cuellarJhorleny
 
Jhorleny cuellar
Jhorleny cuellarJhorleny cuellar
Jhorleny cuellarJhorleny
 
Diego loaiza cuadro conparativo entre windows, mac os y linux
Diego loaiza cuadro conparativo  entre windows, mac os y linuxDiego loaiza cuadro conparativo  entre windows, mac os y linux
Diego loaiza cuadro conparativo entre windows, mac os y linuxDiego Junior Loaiza Maldonado
 
Sistemas Operativos.
Sistemas Operativos.Sistemas Operativos.
Sistemas Operativos.DSR021992
 
Sistemas Operativos.
Sistemas Operativos.Sistemas Operativos.
Sistemas Operativos.DSR021992
 

Ähnlich wie Gnome - un vistazo a su arquitectura (20)

An Evening with... Go Lang
An Evening with... Go LangAn Evening with... Go Lang
An Evening with... Go Lang
 
Kubuntu - Aplicaciones
Kubuntu - AplicacionesKubuntu - Aplicaciones
Kubuntu - Aplicaciones
 
Yovana segundo
Yovana segundoYovana segundo
Yovana segundo
 
Cursini Linuxi 4ni.ppt
Cursini Linuxi 4ni.pptCursini Linuxi 4ni.ppt
Cursini Linuxi 4ni.ppt
 
CursoLinux4_________________________.ppt
CursoLinux4_________________________.pptCursoLinux4_________________________.ppt
CursoLinux4_________________________.ppt
 
Sistema linux
Sistema linuxSistema linux
Sistema linux
 
Presentación introducción gnu linux.odt
Presentación introducción gnu linux.odtPresentación introducción gnu linux.odt
Presentación introducción gnu linux.odt
 
Ponencia Linux - Colegio ADEU
Ponencia Linux - Colegio ADEUPonencia Linux - Colegio ADEU
Ponencia Linux - Colegio ADEU
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Sistemas Operativos.
Sistemas Operativos.Sistemas Operativos.
Sistemas Operativos.
 
Software l y p
Software l y pSoftware l y p
Software l y p
 
Entornos de escritorio más populares de gnu
Entornos de escritorio más populares de gnuEntornos de escritorio más populares de gnu
Entornos de escritorio más populares de gnu
 
Notas de la version de MKVToolNix 79.0
 Notas de la version de MKVToolNix 79.0 Notas de la version de MKVToolNix 79.0
Notas de la version de MKVToolNix 79.0
 
Jhorleny cuellar
Jhorleny cuellarJhorleny cuellar
Jhorleny cuellar
 
Jhorleny cuellar
Jhorleny cuellarJhorleny cuellar
Jhorleny cuellar
 
Jhorleny cuellar
Jhorleny cuellarJhorleny cuellar
Jhorleny cuellar
 
Diego loaiza cuadro conparativo entre windows, mac os y linux
Diego loaiza cuadro conparativo  entre windows, mac os y linuxDiego loaiza cuadro conparativo  entre windows, mac os y linux
Diego loaiza cuadro conparativo entre windows, mac os y linux
 
C y siistemas operativos
C y siistemas operativosC y siistemas operativos
C y siistemas operativos
 
Sistemas Operativos.
Sistemas Operativos.Sistemas Operativos.
Sistemas Operativos.
 
Sistemas Operativos.
Sistemas Operativos.Sistemas Operativos.
Sistemas Operativos.
 

Mehr von Mauro Parra-Miranda

Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101Mauro Parra-Miranda
 
¿Cómo crear un dream team de ciberseguridad?
¿Cómo crear un dream team de ciberseguridad?¿Cómo crear un dream team de ciberseguridad?
¿Cómo crear un dream team de ciberseguridad?Mauro Parra-Miranda
 
Startuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en españolStartuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en españolMauro Parra-Miranda
 
Usando azure para escalar tu producto
Usando azure para escalar tu productoUsando azure para escalar tu producto
Usando azure para escalar tu productoMauro Parra-Miranda
 
AWS Summit Mexico City 2018 - Usando Elastic Beanstalk
AWS Summit Mexico City 2018 - Usando Elastic BeanstalkAWS Summit Mexico City 2018 - Usando Elastic Beanstalk
AWS Summit Mexico City 2018 - Usando Elastic BeanstalkMauro Parra-Miranda
 
Del startup al negocio, the missing manual
Del startup al negocio, the missing manualDel startup al negocio, the missing manual
Del startup al negocio, the missing manualMauro Parra-Miranda
 
Cómo crear un dream team técnico - CPMX4 - 2013
Cómo crear un dream team técnico - CPMX4 - 2013Cómo crear un dream team técnico - CPMX4 - 2013
Cómo crear un dream team técnico - CPMX4 - 2013Mauro Parra-Miranda
 
Programando Windows Phone con Phonegap
Programando Windows Phone con PhonegapProgramando Windows Phone con Phonegap
Programando Windows Phone con PhonegapMauro Parra-Miranda
 
Mercado de Móviles: Una visión global
Mercado de Móviles: Una visión globalMercado de Móviles: Una visión global
Mercado de Móviles: Una visión globalMauro Parra-Miranda
 
Desarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioMauro Parra-Miranda
 
Desarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioMauro Parra-Miranda
 

Mehr von Mauro Parra-Miranda (20)

Configuraciones inseguras
Configuraciones insegurasConfiguraciones inseguras
Configuraciones inseguras
 
Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101
 
¿Cómo crear un dream team de ciberseguridad?
¿Cómo crear un dream team de ciberseguridad?¿Cómo crear un dream team de ciberseguridad?
¿Cómo crear un dream team de ciberseguridad?
 
Startuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en españolStartuplie - un ejercicio de sinceridad en español
Startuplie - un ejercicio de sinceridad en español
 
Usando azure para escalar tu producto
Usando azure para escalar tu productoUsando azure para escalar tu producto
Usando azure para escalar tu producto
 
AWS Summit Mexico City 2018 - Usando Elastic Beanstalk
AWS Summit Mexico City 2018 - Usando Elastic BeanstalkAWS Summit Mexico City 2018 - Usando Elastic Beanstalk
AWS Summit Mexico City 2018 - Usando Elastic Beanstalk
 
Fractura Sismo
Fractura SismoFractura Sismo
Fractura Sismo
 
Del startup al negocio, the missing manual
Del startup al negocio, the missing manualDel startup al negocio, the missing manual
Del startup al negocio, the missing manual
 
AppHack GDL 2013
AppHack GDL 2013AppHack GDL 2013
AppHack GDL 2013
 
Cómo crear un dream team técnico - CPMX4 - 2013
Cómo crear un dream team técnico - CPMX4 - 2013Cómo crear un dream team técnico - CPMX4 - 2013
Cómo crear un dream team técnico - CPMX4 - 2013
 
NodeJS @ ACS
NodeJS @ ACSNodeJS @ ACS
NodeJS @ ACS
 
Alloy Preview
Alloy PreviewAlloy Preview
Alloy Preview
 
Programando Windows Phone con Phonegap
Programando Windows Phone con PhonegapProgramando Windows Phone con Phonegap
Programando Windows Phone con Phonegap
 
Mercado de Móviles: Una visión global
Mercado de Móviles: Una visión globalMercado de Móviles: Una visión global
Mercado de Móviles: Una visión global
 
Economía de las Apps
Economía de las AppsEconomía de las Apps
Economía de las Apps
 
Mobileads
MobileadsMobileads
Mobileads
 
Frameworks iOS
Frameworks iOSFrameworks iOS
Frameworks iOS
 
Desarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium Studio
 
Desarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium StudioDesarrollando Apps móviles con Titanium Studio
Desarrollando Apps móviles con Titanium Studio
 
Moviles
MovilesMoviles
Moviles
 

Kürzlich hochgeladen

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 

Kürzlich hochgeladen (12)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 

Gnome - un vistazo a su arquitectura

  • 1. GNOME - Un vistazo a su arquitectura Mauro Parra-Miranda mauro@masutostudios.com
  • 2. Índice • ¿Qué es GNOME? • Componentes • Aplicaciones • Testing • Futuro • Links
  • 3. ¿Qué es GNOME? ¡NO es un habitante del bosque!
  • 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.
  • 30. 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`
  • 31. Aplicaciones de GNOME http://en.wikipedia.org/wiki/List_of_GNOME_applications http://www.gnomefiles.org/
  • 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/
  • 36. 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/
  • 37. Masuto Studios Mauro Parra-Miranda mauro@masutostudios.com http://masutostudios.com/ciencias09