présentation et spécificités inspiratrices pour linux &...

30
2008 RMLL.info RMLL 2008 Auteur : François Revol Date : 04/07/2008 Présentation et Spécificités inspiratrices pour Linux & Co

Upload: others

Post on 26-Jul-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

2008 RMLL.info

RMLL 2008Auteur : François RevolDate : 04/07/2008

Présentationet

Spécificités inspiratrices pour Linux & Co

Page 2: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

2008 RMLL.info

Haiku

« Armelle j'ai rencontréeelle m'a plu

matin d'été »

Page 3: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 3

2008 RMLL.info

Présentation● Historique● Caractéristiques Générales● Principes● Communauté● Actions en cours

Page 4: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 4

2008 RMLL.info

Historique

t

BeBox

BeOS

1990 2000

Zeta

20081995

18 Août 2001

Fin de Be, Inc.

OpenBeOS Haiku

Page 5: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 5

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)

Page 6: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 6

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é

Page 7: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 7

2008 RMLL.info

Communauté● Équipes

● Marketing/Communication● Kernel, Network, Printing...

● 20 développeurs principaux● Contributeurs● Projets associés

– Portages (Gnash...)– Applications natives (BePDF, Pe, ...)

Page 8: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 8

2008 RMLL.info

Actions en cours● Portages

– Webkit– NetSurf– CUPS– Java (supporté par

OpenJDK)– XEmacs :-D

● Ouverture– FOSDEM, ... RMLL \o/

● GSoC– 5 projets

● Haiku Code Drive– 4 projets

● Bounties– SATA (fini)

Page 9: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 9

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)

Page 10: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 10

2008 RMLL.info

Spécificités● Interface Graphique● API● Média● Systèmes de Fichiers● Noyau● Pilotes

Page 11: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 11

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

Page 12: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 12

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 ;-)

Page 13: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 13

2008 RMLL.info

API● Orientée Objet, C++● Organisée en « Kits »● Héritage multiple

– BDirectory : public BNode, BEntryList

● QApplication == BApplication ?

● App Kit– BMessage, ...

● Interface Kit– BWindow– BView

● BButton, ...● Storage Kit● Media Kit

– BMediaFile, ...

Page 14: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 14

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

Page 15: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 15

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

Page 16: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 16

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

Page 17: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 17

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...

Page 18: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 18

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

Page 19: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 19

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)

Page 20: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 20

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

Page 21: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 21

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

Page 22: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 22

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)

Page 23: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 23

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;}

Page 24: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 24

2008 RMLL.info

Pilotes : Exemple /dev/nullstatus_t init_hardware(){

return B_OK;}

const char **publish_devices(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;}

status_t init_driver(void){

return B_OK;}

void uninit_driver(void){}

Page 25: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 25

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.

Page 26: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 26

2008 RMLL.info

Conclusion Générale

Si la biodiversité est essentielle à notre planète, la technodiversité est nécessaire la logisphère.

Page 27: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 27

2008 RMLL.info

Besoin de vous● Manque

● Pilotes● Applications

● Déboggage● Testeurs

● Portage Falcon et ARM ;-D

Page 28: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 28

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]

Page 29: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 29

2008 RMLL.info

Questions ?

BeOSet

Fournisseurs d'idées depuis 1990

Page 30: Présentation et Spécificités inspiratrices pour Linux & Corevolf.free.fr/RMLL/2008/Haiku/Haiku_RMLL_2008.pdf · Présentation et Spécificités inspiratrices pour Linux & Co. 2008

04/07/2008 Projet Haiku - François Revol 30

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/