GNOME Architecture - OSUOSLftp.osuosl.org/.../media/GnomeArchitecture.pdf ·  · 2003-12-08GNOME...

44
2003년 12월 8일 월요일 #1 GNOME KOREA @ http://gnome.or.kr GNOME Architecture GNOME Architecture Dongsu Jang <[email protected]>

Transcript of GNOME Architecture - OSUOSLftp.osuosl.org/.../media/GnomeArchitecture.pdf ·  · 2003-12-08GNOME...

2003년 12월 8일 월요일 #1GNOME KOREA @ http://gnome.or.kr

GNOME ArchitectureGNOME Architecture

Dongsu Jang <[email protected]>

2003년 12월 8일 월요일 #2GNOME KOREA @ http://gnome.or.kr

ContentsContents

ProloguePrologue- About GNOME- About GNOME

Libraries & ToolsLibraries & Tools- Developer's Perspective- Developer's Perspective

ApplicationsApplications- User's Perpective- User's Perpective

EpilogueEpilogue- Past, Present and Future- Past, Present and Future

2003년 12월 8일 월요일 #3GNOME KOREA @ http://gnome.or.kr

ProloguePrologue

About GNOMEAbout GNOME

2003년 12월 8일 월요일 #4GNOME KOREA @ http://gnome.or.kr

GNOME is...GNOME is...

GNU Network Object Model EnvironmentsYahoo! says:

gnome [nóum] n. 신령 , 꼬마 도깨비 , 난쟁이 (dwarf)

2003년 12월 8일 월요일 #5GNOME KOREA @ http://gnome.or.kr

Why GNOME?Why GNOME?

Started in Aug 1997by Miguel de Icazato provide a Free desktop for the GNU/Linux operating system.

Why not KDE?based on Trolltech's QT (license issues)written in C++

Why GTK+?written in CLGPLalready used by The GIMP, a popular Free software project.

2003년 12월 8일 월요일 #6GNOME KOREA @ http://gnome.or.kr

GNOME provides...GNOME provides...

for Users:a complete, free and easy-to-use "Desktop Environment"

for Developers:a powerful application "Development Framework"

http://www.gnome.org/about/

2003년 12월 8일 월요일 #7GNOME KOREA @ http://gnome.or.kr

ApplicationsApplications

GNOMEGNOMEApplicationsApplications

GNOMEGNOMELibrariesLibraries

GNOME at a glance...GNOME at a glance...

XLibXLib

GTK+GTK+

GDKGDK

GLibGLibCORBACORBA

BonoboBonobo

2003년 12월 8일 월요일 #8GNOME KOREA @ http://gnome.or.kr

Libraries & ToolsLibraries & Tools

Developer's PerspectiveDeveloper's Perspective

2003년 12월 8일 월요일 #9GNOME KOREA @ http://gnome.or.kr

GLib & GObjectGLib & GObject

GLibfundamentals: basic types and macroscore application support: event looputilities: thread, string, scanner, xml parser...data types: linked list, hash table, tree ...

➔ Pleasant, Convenient and PortableGObject

generic type systemfundamental type implementationssignal system & notification mechanismparameter/value system

➔ Easy to Map (into Other Languages) Object Oriented Framework for C

2003년 12월 8일 월요일 #10GNOME KOREA @ http://gnome.or.kr

PangoPango

Pango (Παν 語 )Greek "Pan"(All) + Japanese "Go"(Language)the layout and rendering framework of internationalized text

2003년 12월 8일 월요일 #11GNOME KOREA @ http://gnome.or.kr

ATKATK

ATK : Accessability ToolKita Set of interfaces for accessibilityGAIL is an implementation of ATK for GTK+

Links to LibraryRPC/IPC

GTK+/GNOMEApplication

GTK+with GAIL

ATK <-> AT-SPIBridge

Mozilla

AccessibilityBroker

AT Client

Java AccessibilityFramework

JavaApplication

ATK

AT-SPI

AT-SPI

AT-SPI

2003년 12월 8일 월요일 #12GNOME KOREA @ http://gnome.or.kr

GDK & GdkPixbufGDK & GdkPixbuf

GDK : GIMP Drawing Kita wrapper around the low-level functions for accessing the underlying windowing functions(Xlib in the case of the X-Window)easy to port into other windowing systems

GdkPixbufimage loading with custom loaderclient-side(in memory) image manipulationreplaces imlib

2003년 12월 8일 월요일 #13GNOME KOREA @ http://gnome.or.kr

GTK+GTK+

GTK+ : GIMP ToolKitC-based Object Oriented API

works on many Unix-like platforms(X-Window), Windows, Framebuffer devices, and Console ...

Rich Widget Setbasic widgets: GtkEntry, GtkButton, ...layout managers: GtkBox, GtkTablecomplex widgets: TreeView, TextViewcommon dialogs: File/Font/Color/Inputaction-based Menu/Toolbar

Themeable Look & FeelSupports XIM and Cutom Input Method

we have “nabi” & “imhangul” ;DLGPL

2003년 12월 8일 월요일 #14GNOME KOREA @ http://gnome.or.kr

GTK+ on Win32GTK+ on Win32

2003년 12월 8일 월요일 #15GNOME KOREA @ http://gnome.or.kr

GTK+ on DirectFBGTK+ on DirectFB

2003년 12월 8일 월요일 #16GNOME KOREA @ http://gnome.or.kr

GTK+ on OSXGTK+ on OSX

2003년 12월 8일 월요일 #17GNOME KOREA @ http://gnome.or.kr

GTK+ on ConsoleGTK+ on Console

2003년 12월 8일 월요일 #18GNOME KOREA @ http://gnome.or.kr

Component ModelComponent Model

Bonobothe Component Model of the GNOMEprovides:

interfaces with CORBA IDLwrappers with Cimplementation with any language

assists in the Implementation of:ComponentsControlsCompound Document Support

ORBita CORBA implementation with a C mapping of the CORBA 2.2 specification

2003년 12월 8일 월요일 #19GNOME KOREA @ http://gnome.or.kr

GNOME Libraries [1]GNOME Libraries [1]

GNOME VFSmakes accessing various kinds of file systems transparent to the user and developerlocal files, HTTP, FTP, WebDAV, NNTP ...

GNOME Canvaswidget to create custom displays using stock items such as circles, lines, text, ...originated from a port of the Tk canvas

GNOME Printextends GNOME Canvas widget to printing devices

2003년 12월 8일 월요일 #20GNOME KOREA @ http://gnome.or.kr

GNOME Libraries [2]GNOME Libraries [2]

GConfmanages application configuration data in a tree structurereplaces gnome-config

GNOME DBa free unified data access architecturelibgnomedb / libgda

GStreamermultimedia frameworkgraph structure of multi-threaded pipelinesintelligent plugin architecture

2003년 12월 8일 월요일 #21GNOME KOREA @ http://gnome.or.kr

GNOME Libraries [3]GNOME Libraries [3]

libgladebuilds the interface from an XML file (.glade) at runtime

libXml2 / libXSLTaka GNOME-XMLfull featured XML C parser and toolkit

gtkhtml3simple HTML view/edit widget

libcroco, librsvg, and so on...

2003년 12월 8일 월요일 #22GNOME KOREA @ http://gnome.or.kr

Language BindingsLanguage Bindings

Language Binding Homepage

Ada GtkAda

C++ Gnomemm/gtkmm

C++ Inti

C# GTK#/Mono

Java Java-GNOME

Objective-Caml LablGTK

Perl gtk2-perl

Python PyGnome/PyGTK

Ruby Ruby-GNOME2

Scheme Guile-gtk/Guilt-gobject

TCL Gnocl

http://libre.act-europe.fr/GtkAda/

http://www.gtkmm.org/

http://inti.sourceforge.net/http://gtk-sharp.sourceforge.net/http://go-mono.com/

http://gtk-sharp.sourceforge.net/

http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/lablgtk.html

http://gtk2-perl.sourceforge.net/

http://www.daa.com.au/~james/pygtk/

http://ruby-gnome2.sourceforge.jp/

http://www.gnu.org/software/guile-gtk/

http://www.dr-baum.net/gnocl/

2003년 12월 8일 월요일 #23GNOME KOREA @ http://gnome.or.kr

Developer ToolsDeveloper Tools

GNU Build Toolsautoconf, automake, libtool ...

Glade GUI BuilderWYSIWYG GUI Designer & Code Generator

DevHelpMSDN style API document browserhttp://lidn.sf.net/

2003년 12월 8일 월요일 #24GNOME KOREA @ http://gnome.or.kr

Developer ToolsDeveloper Tools

AnjutaFull Featured IDE for GNOME/GTK+ Application Development

2003년 12월 8일 월요일 #25GNOME KOREA @ http://gnome.or.kr

Developer Tools [3]Developer Tools [3]

Scafoldaka Anjuta2Light-weight and (more) GNOME-compliant fork of Anjuta

GOB: GObject Buildergenerates GObject-based .c/.h files from Java-like .gob source fileeverybody loves screenshot ;)

2003년 12월 8일 월요일 #26GNOME KOREA @ http://gnome.or.kr

ApplicationsApplications

User's PerspectiveUser's Perspective

2003년 12월 8일 월요일 #27GNOME KOREA @ http://gnome.or.kr

GNOME DesktopGNOME DesktopCore Applications [1]Core Applications [1]

gnome-panel – launcher & applet dockcontrol-center – user preferencesnautilus - desktop & file managergnome-session – session managergdm – display managermetacity – window managerbug-buddy - bug reporting tooleog – image & image collection viewerepiphany – web browserfile-roller - archive managergcalctool - desktop calculator

2003년 12월 8일 월요일 #28GNOME KOREA @ http://gnome.or.kr

GNOME DesktopGNOME DesktopCore Applications [2]Core Applications [2]

gedit - syntax highlight text editorgnome-terminal - muti-tabbed terminalggv - postscript viewergnome-meeting - H.323 teleconferencinggnome-networkgnome-system-monitorgnome system toolsgpdf - PDF viewergucharmap - unicode character maprhythmbox – iTunes-style music manageryelp - help(info, man) browser

2003년 12월 8일 월요일 #29GNOME KOREA @ http://gnome.or.kr

GNOME DesktopGNOME DesktopCore Applications [3]Core Applications [3]

zenity - display dialogs from scriptsgnome-appletsgnome-gamesNautilus Viewer Components:

nautilus-medianautilus-cd-burnergtksourceviewfontilus

Accessibility Toolsgnopernicus - screen readergok - dynamic on-screen keyboard

2003년 12월 8일 월요일 #30GNOME KOREA @ http://gnome.or.kr

GNOME Fifth Toe [1]GNOME Fifth Toe [1]

Stable, Maintained, and Conform to GNOME HIGDevelopment

ghex - binary editorgob - GObject buildermeld - visual diff & merge toolmemprof - memory profiling and leak detectionregexxer - multi-file search & replace tool

Entertainmentgcompris - education game suitegtetrinet - tetrinet client

2003년 12월 8일 월요일 #31GNOME KOREA @ http://gnome.or.kr

GNOME Fifth Toe [2]GNOME Fifth Toe [2]

Internetgnomeicu - ICQ clientbalsa - email clientdrivel - LiveJournal Clientgaim - multi-protocol IM clientgaleon - web browsergURLChecker - web links checkerheartbeat - server & service monitorpan - usenet news readerticker - stock tickertsclient - rdesktop/vnc frontendxchat - IRC client

2003년 12월 8일 월요일 #32GNOME KOREA @ http://gnome.or.kr

GNOME Fifth Toe [3]GNOME Fifth Toe [3]

Video/Soundcamorama - webcam applicationgnomeradio - FM-radio tunergthumb - an image viewer and browser utstreamtuner - a stream directory browsertotem - movie player

Misc.gdeskcal - skinnable desktop calendargchord - guitar chord & scale databasegswitchit - xkb toolkitseahorse - gnupg frontendseti-applet - panel applet for seti@home

2003년 12월 8일 월요일 #33GNOME KOREA @ http://gnome.or.kr

GNOME Fifth Toe [4]GNOME Fifth Toe [4]

Productivitydia - Visio-style diagram drawinggnotime - time tracker/billingabiword - word processorgpaint - small easy-to-use paintingmergeant - visual database managementplanner - project managementworkrave - RSI prevention

2003년 12월 8일 월요일 #34GNOME KOREA @ http://gnome.or.kr

GNOME OfficeGNOME Office

abiword - word processorconglomerate - xml editordia - Visio-style diagram drawingevolution - mail client with PIMSgfax - free frontend to the various facsimile programsgimp - bitmap image manipulationgnucash - personal finance manageergnumeric - spread sheetmergeant - visual database managementplanner - project managementsodipodi - SVG-based illustrationand so on...

2003년 12월 8일 월요일 #35GNOME KOREA @ http://gnome.or.kr

EpilogueEpilogue

Past, Present and FuturePast, Present and Future

2003년 12월 8일 월요일 #36GNOME KOREA @ http://gnome.or.kr

Overall ArchitectureOverall Architecture

GTK+

Pango ATK

CORBA

ORBit2libIDL

GnomeVFS GConf

GStreamer

Desktop/FileManager(Nautilus)

XLib libc

GLibGDK

GdkPixbuf

libxml2libxslt

WindowManager

(Metacity)

GnomeSessionManager

GnomePanel

GnomeControlCenter

Gnome DesktopCore Applications

GnomePrint

GnomeCanvas

FifthToe

GnomeOffice

Other/LegacyApplications

GnomeDisplay

Manager

libglade

DeveloperTools

AT-SPIlibxft2FreeType

Language Bindings

GObject

Bonobobonoboui

libgnomelibgnomeui

GnomeDB

2003년 12월 8일 월요일 #37GNOME KOREA @ http://gnome.or.kr

PastPast

GNOME project announced - Aug 1997GNOME 1.0 - Mar 1999“October” GNOME 1.0.55 - Oct 1999

Gnome Bug Tracking System Introduced“Bongo” GNOME 1.2 - May 2000

Helix GNOME 1.2My First GNOME Desktop ;)

GNOME Foundation announced– Aug 2000GNOME 1.4 - Sep 2000

Eazel Nautilus & Helix Evolution

2003년 12월 8일 월요일 #38GNOME KOREA @ http://gnome.or.kr

Present and FuturePresent and Future

GNOME 2.0 - Jun 2002The first major upgrade with GTK+ 2.0

GNOME 2.2 - Feb 2003Ximian Desktop 2, Sun Java Desktop System

GNOME 2.4 - Sep 2003GNOME 2.4.1 - Nov 2003

Lastest stable releaseGNOME 2.5.0 – Nov 2003

Latest unstable releaseGNOME 2.6 - Mar 2004 ?

with GTK+ 2.4

2003년 12월 8일 월요일 #39GNOME KOREA @ http://gnome.or.kr

Ximian's Ximian Desktop 2Ximian's Ximian Desktop 2

2003년 12월 8일 월요일 #40GNOME KOREA @ http://gnome.or.kr

Sun's Java Desktop SystemSun's Java Desktop System

2003년 12월 8일 월요일 #41GNOME KOREA @ http://gnome.or.kr

CyGnome 2.2.1CyGnome 2.2.1

2003년 12월 8일 월요일 #42GNOME KOREA @ http://gnome.or.kr

freedesktop.orgfreedesktop.org

freedesktop.orginteroperability and shared technology for desktop environments for the X Window System

2003년 12월 8일 월요일 #43GNOME KOREA @ http://gnome.or.kr

GPEGPE

GPE: The GPE Palmtop Environmenta Free software GUI environment for palmtop/handheld computers running the GNU/Linux operating system using X-Window system and GTK+

2003년 12월 8일 월요일 #44GNOME KOREA @ http://gnome.or.kr

ReferencesReferences

GNOME Official Homepage - http://gnome.orgGTK+ Official Homepage - http://gtk.orgGIMP Official Homepage - http://gimp.orgGNOME Korea Official Homepage - http://gnome.or.krhttp://primates.ximian.com/~miguel/gnome-history.htmlPango Official Homepage - http://pango.org/GNOME Accessability Project - http://developer.gnome.org/projects/gap/GTK+ for Win32 - http://www.gimp.org/win32/GTK-Wimp - http://gtk-wimp.sourceforge.net/GTK+ for DirectFB - http://www.directfb.org/gtk.xmlGTK+ for OSX - http://gtk-osx.sourceforge.net/Cursed GTK - http://zemljanka.sourceforge.net/cursed/ORBit2 - http://www.gnome.org/projects/ORBit2/GNOME DB - http://www.gnome-db.org/GNOME print - http://www.gnome.org/projects/gnome-print/GStreamer - http://gstreamer.net/libXml2/libXSLT- http://www.xmlsoft.org/GNOME Fifth Toe - http://5toe.lyrical.net/GNOME Office - http://www.gnome.org/gnome-office/http://freedesktop.orgIBM developerWorks - http://www.ibm.com/developerworks/Miguel de Icaza Hompage - http://primates.ximian.com/~miguel/Special Thanks to http://google.com ;)