Présentation Et Spécificités Inspiratrices Pour Linux & Co

Présentation Et Spécificités Inspiratrices Pour Linux & Co

Présentation et Spécificités inspiratrices pour Linux & Co RMLL 2008 Auteur : François Revol Date : 04/07/2008 2008 RMLL.info Haiku « Armelle j'ai rencontrée elle m'a plu matin d'été » 2008 RMLL.info Présentation ● Historique ● Caractéristiques Générales ● Principes ● Communauté ● Actions en cours 04/07/2008 Projet Haiku - François Revol 3 2008 RMLL.info Historique 1990 1995 2000 2008 t 18 Août 2001 Fin de Be, Inc. BeBox BeOS Zeta OpenBeOS Haiku 04/07/2008 Projet Haiku - François Revol 4 2008 RMLL.info Caractéristiques Générales ● Perpétuer la philosophie de BeOS – R1 : compatibilité binaire BeOS (→ gcc2) ● Libre : Licence MIT ● Intégration d'autres projets Libres – GNU (glibc, bash, coreutils, ...) – FreeBSD (pilotes réseau, bientôt jemalloc) – FreeType – AntiGrain Geometry – FFmpeg (libavcodec) 04/07/2008 Projet Haiku - François Revol 5 2008 RMLL.info Principes ● KISS: Keep It Smart & Simple (Simple et élégant) – Architecture – Interface graphique – Meilleurs réglages par défaut ● Ciblage poste de bureau multimédia – Faire une chose et la faire bien ● Modularité et Extensibilité 04/07/2008 Projet Haiku - François Revol 6 2008 RMLL.info Communauté ● Équipes ● Marketing/Communication ● Kernel, Network, Printing... ● 20 développeurs principaux ● Contributeurs ● Projets associés – Portages (Gnash...) – Applications natives (BePDF, Pe, ...) 04/07/2008 Projet Haiku - François Revol 7 2008 RMLL.info Actions en cours ● Portages ● GSoC – Webkit – 5 projets – NetSurf ● Haiku Code Drive – CUPS – 4 projets – Java (supporté par ● Bounties OpenJDK) – SATA (fini) – XEmacs :-D ● Ouverture – FOSDEM, ... RMLL \o/ 04/07/2008 Projet Haiku - François Revol 8 2008 RMLL.info Caractéristiques Techniques ● Noyau modulaire préemptif multithreadé ● Système de fichier avec méta-données typées et indexées ● API C++ cohérente (Kits) ● Greffons génériques (add-ons) ● Compatibilité POSIX ● Portabilité : x86, ppc, m68k (fun), arm? ● Concision (image 120Mo, noyau 140 klignes) 04/07/2008 Projet Haiku - François Revol 9 2008 RMLL.info Spécificités ● Interface Graphique ● API ● Média ● Systèmes de Fichiers ● Noyau ● Pilotes 04/07/2008 Projet Haiku - François Revol 10 2008 RMLL.info Interface Graphique ● MultiThreading → Réactivité ● UTF-8 (merci Plan9) ● Réplicants (> ActiveX, Widgets) ● Scripting (hey Linux set Hype of Dbus to false) ● Gestionnaire de Fichiers – Navigation « x-ray » – Attributs étendus ● Type MIME – Queries 04/07/2008 Projet Haiku - François Revol 11 2008 RMLL.info Interface Graphique ● Cohérence visuelle et fonctionnelle (X11) ● EyeCandy Sobriété & Réactivité ● Sliding tabs ● Bureau bleu « BeOS » #336698 – Win9x : vert mais BSOD, Win2k... bleu ;-) 04/07/2008 Projet Haiku - François Revol 12 2008 RMLL.info API ● Orientée Objet, C++ ● App Kit ● Organisée en « Kits » – BMessage, ... ● ● Héritage multiple Interface Kit – – BDirectory : public BWindow BNode, BEntryList – BView ● QApplication == ● BButton, ... BApplication ? ● Storage Kit ● Media Kit – BMediaFile, ... 04/07/2008 Projet Haiku - François Revol 13 2008 RMLL.info API ● Translation Kit – Inspiré d'AmigaOS (datatypes.library) – Uniformise l'accès par des add-ons ● Transparence sur libpng, libjpeg, ... – Bitmap, Vectoriel, Texte, – Sanity Translator : lire == scanner avec SANE ● Gnome ? – GOCR Translator : lire texte == lire bitmap 04/07/2008 Projet Haiku - François Revol 14 2008 RMLL.info Média ● Media Kit (API) – Media node (gstreamer ?) ● media_server et media_addon_server ● Mixer système soft (alsa, OSSv4 ?) – 1 réglage par flux (> Vista : par application) ● Support API bas niveau différentes – Old, multi, OSSv4 – Transparent pour les applications natives 04/07/2008 Projet Haiku - François Revol 15 2008 RMLL.info Systèmes de Fichiers (VFS) ● rootfs en RAM (/boot, /bin -> /boot/beos/bin) ● Node monitoring ([di]notify...) – Création, suppression, modif fichier, xattr, ... – Envoi de BMessage par le noyau ● Autres FS – Ext2, reiser (ro), NTFS, NFS2, ... – Userlandfs (même API que le noyau) – Cddafs – Googlefs 04/07/2008 Projet Haiku - François Revol 16 2008 RMLL.info Systèmes de Fichier (OpenBFS) ● Tradition Unix (superblock, groupes d'allocations, i-nœuds) ● Optimisations multimédia (grands fichiers) – B+Tree, 64 bits (xfs... ext4!...) – block_run (extents, enfin dans ext4!) ● Et... 04/07/2008 Projet Haiku - François Revol 17 2008 RMLL.info Systèmes de Fichier (OpenBFS) ● Méta-données (xattr) – Typées ((u)int, float, chaîne, icône, type mime... ==4CC) – Indexées (option) – Live Queries '(BEOS:MIME=="text/x-mail")&&(MAIL:status=="New")' ● Spotlight ? Beagle / Tracker* ? *TM de Be, Inc en son temps ● SkyOS : base OpenBFS + indexeur 04/07/2008 Projet Haiku - François Revol 18 2008 RMLL.info Noyau ● Pas µnoyau au sens Tannenbaum ● Mais très modulaire (même pci) → propreté ● SMP Préemptif (pas de giant lock!) ● Threads noyau (idle[cpu], réseau, usb, DPC...) ● Priorités 120 (0 → 99, > 100 = FIFO, RT mou) ● Kernel Debugger Land (stub GDB, hangman) ● Haiku: O(1) (GSoC2007, en cours) 04/07/2008 Projet Haiku - François Revol 19 2008 RMLL.info Noyau ● Tickless – PIT mode 0 (ATIIXP bug...) (Haiku : APIC) – Même sans PM, perf > – → add_timer() → semaphore → snooze(us) { acquire_sem_etc(sleepSem, 0, B_TIMEOUT, us); } → [u]sleep() ● Initrd ? Zbeos + tgz! – Eltorito → Stage2 + tgz → kernel + pilotes → /boot ● CD BeOS (et Haiku) == LiveCD 04/07/2008 Projet Haiku - François Revol 20 2008 RMLL.info Pilotes ● API stables (#ifdef hell) – Table de fonctions (ld -lkernel.so -lfoo) → design++; ● Haiku : nouveau framework en + – Noeuds et bus (à la BSD) ● Configure & Plug & Play 04/07/2008 Projet Haiku - François Revol 21 2008 RMLL.info Pilotes ● Add-ons /system/add-ons/kernel/{bus_manager/{pci,...},file_system,...} – Modules module_info={&std_ops, "foo/bar/v1", flags...} ● Bus bus_module_info={module_info, &rescan, ...} – PCI pci_module_info={{{,"bus_manager/pci/v1",}, ... &rescan}, &write_io_8, ...} ● Fs... – Pilotes /system/.../drivers/dev/foo/bar -> ../bin/bar ● insmod && modprobe -> /dev/null ● Devfs – Node monitoring → device_watcher, Tracker (== udev - vi) 04/07/2008 Projet Haiku - François Revol 22 2008 RMLL.info Pilotes : Exemple /dev/null #include <Drivers.h> #include <string.h> #define DEVICE_NAME "null" int32 api_version = B_CUR_DRIVER_API_VERSION; static status_t null_open(const char *name, uint32 flags, void **cookie) { *cookie = NULL; return B_OK; } static status_t null_close(void *cookie) { return B_OK; } static status_t null_freecookie(void *cookie) { return B_OK; } static status_t null_ioctl(void *cookie, uint32 op, void *buffer, size_t length) { return EPERM; } static status_t null_read(void *cookie, off_t pos, void *buffer, size_t *_length) { *_length = 0; return B_OK; } static status_t null_write(void *cookie, off_t pos, const void *buffer, size_t *_length) { return B_OK; } 04/07/2008 Projet Haiku - François Revol 23 2008 RMLL.info Pilotes : Exemple /dev/null status_t init_hardware() status_t init_driver(void) { { return B_OK; return B_OK; } } const char **publish_devices(void) { void uninit_driver(void) static const char *devices[] = { { DEVICE_NAME, } NULL }; return devices; } device_hooks *find_device(const char *name) { static device_hooks hooks = { &null_open, &null_close, &null_freecookie, &null_ioctl, &null_read, &null_write, }; if (!strcmp(name, DEVICE_NAME)) return &hooks; return NULL; } 04/07/2008 Projet Haiku - François Revol 24 2008 RMLL.info Conclusions ● BeOS pionnier du Multimédia grand-public ● C'est bon de voir que Linux nous donne raison ● BeOS bien sur inspiré par d'autres (SGI...) ● Haiku s'inspire de BeOS et le revendique ● Linux, OSX, ... héritent de BeOS ● Haiku aussi s'inspire des autres et expérimente ● L'hybridation est un phénomène naturel de la technosphère, Libre ou non. 04/07/2008 Projet Haiku - François Revol 25 2008 RMLL.info Conclusion Générale Si la biodiversité est essentielle à notre planète, la technodiversité est nécessaire la logisphère. 04/07/2008 Projet Haiku - François Revol 26 2008 RMLL.info Besoin de vous ● Manque ● Pilotes ● Applications ● Déboggage ● Testeurs ● Portage Falcon et ARM ;-D 04/07/2008 Projet Haiku - François Revol 27 2008 RMLL.info Liens ● Cette Présentation – http://revolf.free.fr/RMLL/2008/Haiku ● Haiku – http://haiku-os.org – irc://#[email protected]/ ● François Revol – [email protected] 04/07/2008 Projet Haiku - François Revol 28 2008 RMLL.info Questions ? BeOS et Fournisseurs d'idées depuis 1990 04/07/2008 Projet Haiku - François Revol 29 2008 RMLL.info Remerciements ● Olivier Coursière (soutien moral et technique) ● Thomas Petazzoni (nouveautés dans Linux 2.6) ● Be, Inc. pour BeOS et la BeBox ● La team Haiku ● L'album « Voices of Amiga » utilisé pour cette démo : http://www.jamendo.com/fr/album/2964/ 04/07/2008 Projet Haiku - François Revol 30 2008 RMLL.info.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    30 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us