Elektra Project Markus Raab Markus Raab Turning Linux into a Trully Integrated Operating Environment.

Slides:



Advertisements
Ähnliche Präsentationen
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Advertisements

PHP Extension und Application Repository
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Referat von Frederik Barth
eXist Open Source Native XML Database
Die Skriptsprache Lua Softwaretechnologie II.
Installation des Add-In SOLVERSTAT
1A: POSIX POSIX (Portable Operating System) ist ein Standard für UNIX-Systeme. Er dient dazu, Programme portabel unter UNIX und Derivaten zu tauschen und.
Architektur von Renardus Göttingen State and University Library, Germany (SUB) Frank Klaproth The Academic Subject.
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Open Services Gateway Initiative
Michael Haverbeck System Engineer
Don`t make me think! A Common Sense Approach to Web Usability
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Typo 3. INSTALLATION TYPO3 INSTALLTOOL EXTENSIONS UND TEMPLATES INSTALLATION TEMPLAVOILA USERMANAGEMENT Inhalt:
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Marko Dragicevic Thomas Bergauer 27.Mai 2008
Wikis und Wikipedia Michal Simko Otis Skopik.
Dedizierte Systeme Typo3 Installation Dedizierte Systeme – Typo3 Installation – Christoph Stollwerk IT Zertifikat der Philosophischen Fakultät WS 2008/2009.
Linux Primary Domain Controller mit
Der formelle Imperativ – the Imperative
Linux oder GNU/Linux WS 2013/2014.
Potentiale für den Channel Server-Software aktualisieren Server-Hardware erneuern Migration von Anwendungen Diese Produkte stehen vor dem Ende des Support.
Ein Vortrag von Marcel Siegert und Philipp Hoffmann
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH
Geschichte - Entstehung - Was ist PHP? Einordnung - Allgemeines
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH.
? What is Open PS? SAP Open PS based on EPS 4.0
Physik multimedial Lehr- und Lernmodule für das Studium der Physik als Nebenfach Julika Mimkes: Links to e-learning content for.
E STUNDE Deutsch AP. Donnerstag, der 2. Mai 2013 Deutsch AP (E Stunde)Heute ist ein B Tag Goal: to understand authentic written text, audio material and.
E STUNDE Deutsch AP. Dienstag, der 28. Mai 2013 Deutsch AP (E Stunde)Heute ist ein E Tag Goal: to understand authentic written text, audio material and.
Was gibt’s neues im Bereich Anpassung Fabian Moritz Consultant, Developer SharePointCommunity.de.
Gregor Graf Oracle Portal (Part of the Oracle Application Server 9i) Gregor Graf (2001,2002)
Berliner Elektronenspeicherring-Gesellschaft für Synchrotronstrahlung m.b.H., Albert-Einstein-Straße 15, Berlin frontend control at BESSY R. Fleischhauer.
Lernen Mach das Buch auf Seite 30 und beantworte die Fragen.
Phonics Lessons Grade 1 Adapted from: Phonics Lessons by Gay Su Pinnell & Irene C. Fountas Grade 1, page 431 caatt If you knowIt helps you know.
E STUNDE Deutsch AP. Donnerstag, der 30. Mai 2013 Deutsch AP (E Stunde)Heute ist ein G Tag Goal: to understand authentic written text, audio material.
HORIZONT 1 Product HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / Das IT – Informationssystem.
Der die das ein eine ein Wie sagt man “the” auf Deutsch? Wie sagt man “a” auf Deutsch?
ENVIRONMENT PROBLEMS What can I do? Pineapples Traffic  Use public vehicles  Use more bike and go by walking  There should be a filter in every car.
Seminararbeit Release Management von Web-Systemen Minh Tran Lehrstuhl für Software Engineering RWTH Aachen
Technische Universität München Alexander Neidhardt Forschungseinrichtung Satellitengeodäsie 1 Concepts for remote control of VLBI-telescopes: on the way.
The Elektra Initiative Markus Raab Markus Raab Linux in ein wirklich voll integriertes System verwandeln.
A Modular Approach to Configuration Storage Markus Raab Markus Raab Xmpp:
Linux – Ubuntu Präsentation zur Sitzung am Referent: S. Imdahl.
A Modular Approach to Configuration Storage Markus Raab Markus Raab xmpp:
LINUX II Samba Verbindung mit Windows. Samba Übersicht ● Samba dient zur Verbindung von Linux-Clients mit Windows Rechnern ( samba-client ) sowie von.
DTrace Mathias Velten Sun Campus Ambassador
LLP DE-COMENIUS-CMP Dieses Projekt wurde mit Unterstützung der Europäischen Kommission finanziert. Die Verantwortung für den Inhalt dieser.
LINUX II Unit 9 Network File Server NFS. NFS Überblick ● Zugriff von lokalen Rechner über Netzwerk auf Dateien oder Ordnern auf entfernten Servern ● Entwickelt.
Maven NetBeans Platform RCP Development Aljoscha Rittner Sepix GmbH, NetBeans Dreamteam Member
1 Grundstruktur von Linux Manuel Blechschmidt & Volker Grabsch CdE Sommerakademie 2006 Kirchheim.
The Elektra Initiative Markus Raab Markus Raab 24C3, Berlin, 30 Dezember 2007.
Your Logo Presentation Title Presentation Subtitle.
Interrogatives and Verbs
Workshop 1 Getting Started 2016 Boris Wylutzki
Apache Camel Christian Schneider
FREE ICONS POWERPOINT TEMPLATE.
Premiere Conferencing GmbH
What can I offer you as an Ayurveda Consultant?
Konfiguration unter Linux mit Elektra
OAuth 2.0 Ralf Hoffmann 03 / 2017
Das IT - Informationssystem
Camil Bartkowiak Serhat Cinar Leonardo Di Lella Jan Finsel
Ein kleiner (Ein|Über)blick
Wie viel Uhr ist es? Telling Time.
OFFICE 365 FOCUS SESSION SHAREPOINT ONLINE 101:LERNE DIE BASICS 19. März 2018 Höhr-Grenzhausen.
Integrating Knowledge Discovery into Knowledge Management
- moodle – a internet based learning platform
 Präsentation transkript:

Elektra Project Markus Raab Markus Raab Turning Linux into a Trully Integrated Operating Environment

Zukunft, Vergangenheit und Gegenw art In welche Richtung entwickelt sich der Desktop? In welche Richtung entwickelt sich das darunterliegende System? Kann der sich der Deskop entfalten, ohne dass das darunterliegende System verändert wird?

Rundblick auf derzeitige Konfiguration Java, UNIX Commercial ✗ Kein einheitlicher Namensraum ✗ Keine einheitliche API um auf Konfigurationen zuzugreifen ✗ Schlechte Integration: Konfiguration ist die Seele der Software Linux ist heute ein = 2 Betriebsystem

Elektrified Panorama Java, UNIX Commercial ✔ Ein systemweiter Namensraum ✔ Eine Infrastruktur (API) ✔ Integration durch die Seele der Software Wir suchen einen 1 x 1 = 1 Status!

Konfigurations System Utopie Cross and Non-Cross Platform Software Apache, Samba, KDE, /sbin/init, inittools FileSystem SingleFile WRegistry FileSystem SingleFile FileSystem SingleFile OpenDir FileSystem SingleFile Backends Elektra API & Namespace :: Abstraction Layer

Warum Linux/UNIX eine Key DB braucht Es ist schwierig Softwarepakete zu bauen, die mit anderer vorhandener Software integrieren. Egoistische Formate für Konfigurationen Verschiedene Positionen je nach Distribution Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "IMPS/2" Option "Device" "/dev/input/mice" Option "ZAxisMapping" "4 5" Option "Emulate3Buttons" "yes" EndSection In Fedora 2: /etc/X11/xorg.conf Debian Sarge: /etc/X11/XF86Config-4 Other Distros: Gott weiß wo...

Wie wäre es so? Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "IMPS/2" Option "Device" "/dev/input/mice" Option "ZAxisMapping" "4 5" Option "Emulate3Buttons" "yes" EndSection ✗ Benötigt menschliche Augen und Gehirn ✗ Benötigt manual-pages ✗... und vi ✔ Jedes Bit Information ist leicht zugänglich. ✔ Leicht verständliche und editierbare Konfiguration für jedes Programm. (ohne ein Configparser implementieren zu müssen) ✔ Bereit für Admin- und User GUIs

Elektra's 7 Design Grundsätze 1.Unix look'n'feel und Standards in den Namensräumen 2.Immer und überall vorhanden (Sogar bei /sbin/init). Keine gezwungenen Abhängigkeiten in komplexe Librarys, Netzwerkdienste oder Sprachkodierungen. 3.ISO/ANSI C mit POSIX, portabel zu Linux, BSD, Unix, Windows, Mac, etc. 4.Keine Kenntnis über key/value Semantik gefordert. 5.Filesystem-like verlässliche Sicherheit. 6.Keine Daemons unbedingt benötigt. 7.Offene Aufbewahrung (Text basierend).

Key Hierachie Root for system wide keys Current user's key tree Avi's personal keys Luciana's personal keys Valeria's personal keys Die system/* Hierachie ist gespeichert unter /etc/kdb/ Die user:$USER/* Hierachie ist gespeichert unter ~$USER/.kdb/ Die user/* Hierachie ist eine Abkürzung für aktuellen Benutzer. Die /* Hierachie verschmelzt system und user.

Key Hierarchy :: system/... Root for system wide keys Equivalent to /etc/fstab Equivalent to /etc/group Keys with detected HW Equivalent to /etc/inittab Network info, interface IPs, etc Root for application global keys Application 1 Application 2 Equivalent to /etc/passwd

Key Hierarchy :: user/... Root for user-wide keys User's environment (instead of ~/.bashrc) User's aliases First env var set Second env var set (that depends on the first) Example of $PATH being set Third environment set Application keys for this user Temporary keys

Key Names Der Punkt macht die “MSN/*” Hierachie inaktiv.

Key Properties ➢ Name ➢ Value ➢ Value type ➢ User domain or owner ➢ Description/Comment ➢ System UID & GID ➢ Access Permissions ➢ Active or inactive key ➢ Last change time ➢ Last access time system/users/root/shadowPassword = $1$yM93nU user:valeria/env/env2/PATH = $PATH:/usr/sbin

Why GConf is Fat and Dependent... bash$ ldd /usr/bin/gconfd-1 libgconf-1.so.1 => /usr/lib/libgconf-1.so.1 liboaf.so.0 => /usr/lib/liboaf.so.0 libORBitCosNaming.so.0 => /usr/lib/libORBitCosNaming.so.0 libORBit.so.0 => /usr/lib/libORBit.so.0 libIIOP.so.0 => /usr/lib/libIIOP.so.0 libORBitutil.so.0 => /usr/lib/libORBitutil.so.0 libm.so.6 => /lib/tls/libm.so.6 libgmodule-1.2.so.0 => /usr/lib/libgmodule-1.2.so.0 libglib-1.2.so.0 => /usr/lib/libglib-1.2.so.0 libdl.so.2 => /lib/libdl.so.2 libc.so.6 => /lib/tls/libc.so.6 libpopt.so.0 => /usr/lib/libpopt.so.0 libwrap.so.0 => /usr/lib/libwrap.so.0 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 libnsl.so.1 => /lib/libnsl.so.1

Elektra is Light... bash$ ldd /lib/libkdb.so libc.so.6 => /lib/tls/libc.so.6 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 ✔ Verwendbar in einem eingeschränkten Umgebung, sogar bei /sbin/init ✔ Nicht unbedingt ein Daemon, also Kein “single point of failure” Ein Prozess kann die anderen in der Key-DB nicht gefärden. Kein Kommunikationsprotokoll, also kein zusätzlicher Speck hier. Keine Sicherheitslöcher, weil die Sicherheit vom OS gehandelt wird. Sauber, elegant und einfach.

Key Database Administration

kdb Kommand: Perfekt für Skripte bash$ kdb get system/filesystems/boot/mpoint bash# kdb set system/sw/XFree/Screen/Display/Modes 1280x1024 bash$ kdb export system/sw/myapp > myapp.conf.xml bash# kdb import < myapp.conf.xml bash$ kdb edit -R user/sw/myapp bash$ kdb ls -Rv system/sw/myapp bash$ kdb monitor system/init/id/runlevel bash$ kdb rm user/env/alias/vnc bash$ kdb ln system/sw/myapp/key1 user/sw/myapp/key1 Vollständige man-pages verfügbar!

XML Import and Export bash$ kdb export user/env/alias > file.xml bash$ kdb import < file.xml

Using kdb to Edit in Batch Verwende beliebigen Editor um XML zu editieren. Keys können auch hinzugefügt werden. Keys können geändert werden. Keys können auch gelöscht werden. (vielen Dank an die ksCompare() API Funktion)

Regedit: The Elektra GUI Edit Tool Mehr freundlich als der kdb Befehl. Hierachische Ansicht Unterstützt UNDOs und REDOs Aber: Wenn alles andere versagt, kann man mit vi immer noch direkt die Konfiguration bearbeiten!

The API

Kann schon jetzt verwendet werden! ➢ Entwicklung jetzt ✔ C/C++ ✔ Shell ✔ XML ✔ Python ✔ Ruby ✔ Java ✔ Lua ➢ Im kommen... ✔ Perl ✔ PHP ✔ Andere... ✔ (vielleicht steuerst du etwas bei?)

Viele Bankends in Entwicklung! ➢ Entwicklung jetzt ✔ filesys ✔ fstab ✔ gconf ✔ berkleydb ✔ template ✔ ini ➢ Im kommen... ✔ XOrg ✔ C-Style... ✔ Daemon ✔ (vielleicht steuerst du etwas bei?)

Nur 3 Klassen KeyDB KeyKeySet Classes

C API Funktionen ksInit() ksClose() ksInsert() ksAppend() ksInsertKeys() ksAppendKeys() ksToStream() ksCompare() ksNext() ksRewind() keyInit() keyClose() keyIsInitialized() keyNeedsSync() keyIsSystem() keyIsUser() keyGetNameSpace() keyIsDir() keyIsLink() keyToStream() keyDup() keyGetType() keySetType() keyGetNameSize() keyGetFullNameSize() keyGetName() keySetName() keyGetFullName() keyGetFullRootName() keyGetFullRootNameSize() keyGetBaseName() keyGetBaseNameSize() keyGetRootName() keyGetRootNameSize() keyCompare() keyGetUID() keySetUID() keyGetGID() keySetGID() keyGetCommentSize() keyGetComment() keySetComment() keyGetAccess() keySetAccess() keyGetOwner() keySetOwner() keyGetDataSize() keyGetString() keySetString() keyGetBinary() keySetBinary() keyGetLink() keySetLink() keyGetMTime() keyGetATime() keyGetCTime() keyGetParentName() keySetFlag() keyGetFlag() kdbOpen() kdbClose() kdbGetValue() kdbGetKeyByParent() kdbGetKeyByParentKey() kdbGetValueByParent() kdbSetValue() kdbSetValueByParent() kdbRemove() kdbLink() kdbGetKeyByParent() kdbGetKeyByParentKey() kdbGetValueByParent() kdbGetComment() kdbSetComment() kdbStatKey() kdbGetKey() kdbSetKey() kdbGetChildKeys() kdbGetRootKeys() kdbSetKeys() kdbMonitorKey() kdbMonitorKeys()

API vollständig dokumentiert! ✔ API doc in Browser betrachtbar ✔ API man pages ✔ Viele, viele Beispiele

Jetziges Ökosystem ➢ Regedit GUI, um Key database zu editieren ➢ /sbin/init patch, statt /etc/inittab ➢ X.org patch, statt /etc/X11/xorg.conf ➢ KConfig and GConf backends ➢ NSSwitch module User Database und authentifizierung von Elektra ➢ GLibC patches fstab, resolver, etc ➢ Die ganzen Language-Bindings ➢ Backends

The Elektra Project needs YOU ! Talk about it Package, port It to other platforms Write patches that Elektrifies old software Use it in your own software It's free. It's for you.

Danke für ➢ IBM Support für Open Source Projekte um Linux zu verbessern. ➢ Elektra Project community Subversion repository, Wiki space, etc... Start der Doxygen Dokumentation Und natürlich Patches, gute software, language bindings, etc...

Elektra Project Markus Raab Markus Raab Turning Linux into a Trully Integrated Operating Environment