65
this = that … ovvero MIR, un display server per domarli tutti LinuxDay 2014 - Roma

this = that

Embed Size (px)

DESCRIPTION

... ovvero MIR, un display server per domarli tutti (Wayland permettendo) In chiusura del keynote dell’Ubuntu Developer Summit del 2011, il benevolente dittatore di Ubuntu, Mark Shuttleworth, dichiarava a chiare lettere di voler portare Ubuntu su un range di dispositivi molto diversi dal canonico computer. Tre anni dopo i diversi progetti paralleli portati avanti per concretizzare questo intento stanno per raggiungere il grande pubblico. Primo fra tutti c’è MIR, il display server che è stato espressamente pensato per sostituire e migliorare un mostro sacro come X Window System. Quali nuove prospettive offre a utenti e sviluppatori? Quale il rapporto con altre soluzioni software simili? Scopriamolo insieme, su Ubuntu 14.10.

Citation preview

Page 1: this = that

this = that… ovvero MIR, un display server per domarli tutti

LinuxDay 2014 - Roma

Page 2: this = that

this = that… ovvero MIR, un display server per domarli tutti … Wayland permettendo

Page 3: this = that

… c’è da aggiungere altro?

1984

Page 4: this = that

anche prima che arrivasse era già famoso, tipo il 2000...

dicono sia stato un anno importante

Page 5: this = that

From: rws@mit-bold (Robert W. Scheifler)To: window@athenaSubject: window system XDate: 19 Jun 1984 0907-EDT (Tuesday)

Page 6: this = that

platform-independent graphics system to link together its heterogeneous multiple-vendor systems

“This is not the ultimate window system, but I believe it is a good starting point for experimentation”

Page 7: this = that

2013

Page 8: this = that

certi annunci si fanno ancora per email

Page 9: this = that

From: Oliver Ries <oliver.ries at canonical.com>To: [email protected]: taking Unity to the next levelDate: Mon Mar 4 17:46:54 UTC 2013

Page 10: this = that

Also, driven by Ubuntu Touch we are starting to move Unity over to a Qt/QML based implementation

“After thorough research, looking at existing options and weighing incosts & benefits we have decided to roll our own Display Server, Mir”

Page 11: this = that

Le notizie viaggiano veloci al tempo di Internet

2013, giusto poche ore più tardi

Page 12: this = that

U-ah! U-ah! U-ah!

2013, giusto poche ore più tardi

Page 13: this = that

from Arstechnica, 10 years of Ubuntu @ http://bit.ly/1romPZl

“Violating unwritten Linux taboos”

Page 14: this = that

e Mark aveva detto che stavolta portava le pizze per tutti, ecco

La community open source aveva scelto Wayland

Page 15: this = that

One Year Later

2014, LinuxDay

Page 16: this = that

Una domanda aleggia su questo talk...

Page 17: this = that

ecco … cioè … s’è fatta una certa …

Meglio Wayland o MIR?

Page 18: this = that

5 minuti prima “the alien” era morto con la stessa ricerca

Page 19: this = that

Forse voi volevate sapere a che servono Wayland e MIR

Page 20: this = that

Read the FAQs

What is wrong with X?

The problem with X is that... it's X

Why Mir?

[...] However, users nowadays expect a more consistent and a more integrated user experience than what is possible to offer on top of the X window system. [...]

Page 21: this = that

Ma come funziona davvero X?

Page 22: this = that

X è un protocollo

Page 23: this = that

X Window System Architecture for dummies

FINESTRE

X WINDOW SYSTEM

HARDWARE / KERNEL

Page 24: this = that

X Window System Architecture for wannabe nerds

X Server

Device Driver

X-CLIENT X-CLIENT X-CLIENTWINDOW MANAGER

&COMPOSITOR

INPUT INPUT OUTPUT

KMS - evdev - kernel

Page 25: this = that

Follow the rendering

1. kernel “legge” un evento e lo interpreta via evdev2. x server determina su quale finestra/client ha effetto l’evento, manda l’

evento alla finestra/client3. x client pondera e valuta l’evento, nel caso manda una richiesta (di

rendering) al server4. x server prepara e invia una richiesta (di rendering) al driver e valuta quale

porzione di schermo è stata “danneggiata”5. il danneggiamento è gestito compositor che decide, nel caso, di fare un’

altra richiesta di rendering per l’intero schermo6. x server gestisce la richiesta di rendering di compositor

Page 26: this = that

(per un sistema desktop o mobile moderno)

X è un protocollo vecchio e inefficiente

Page 27: this = that

http://en.wikipedia.org/wiki/Wayland_(display_server_protocol)

Entering: Wayland

Page 28: this = that

Wayland Architecture for wannabe nerds

WAYLAND COMPOSITOR(Weston, Mutter, KWin, …)

WAYLAND CLIENT

WAYLAND CLIENT

WAYLAND CLIENT

COSE 3D

INPUT INPUT

libinput - evdev

DRMKMS

OUTPUT

Page 29: this = that

per far parlare un compositor e un client … che si avranno da dire?

Wayland è un protocollo

Page 30: this = that

Scegli una libreria, un toolkit o fattelo da solo

No rendering, ci pensa il client

Page 31: this = that

Display server e compositor uniti

Page 32: this = that

http://en.wikipedia.org/wiki/Mir_(software)

Entering: MIR

Page 33: this = that

“We don't intend to support re-implementations of the Mir client libraries” -- http://bit.ly/1wseZBj

Nessun mir-protocol

Page 34: this = that

uh?

MIR

1 2

36

5 4

1. inter-app data exchange2. application management3. output management4. shell5. compositor6. input management

Page 35: this = that

libmirserverimplement a compositor and provide arbitration for the system to the gpu and displays

libmirclientallow applications to communicate with Mir servers, used by toolkits or applications directly

Page 36: this = that

A Mir server that compositites between sessions, greeters and boot screens

unity-system-compositor

Page 37: this = that

greeter and user shell implemented using Mir

unity greeter / unity8

Page 38: this = that

integrate with existing graphics hardware ( GBM, DRM and KMS)

on Ubuntu Touchvson the Free Graphics Driver Stack

Page 39: this = that

this = that?

Page 40: this = that

Dipende dal punto di vista :-)

Page 41: this = that

Che ce frega del display seve’, noi c’avemo il frame work!

“the display server doesn't matter”-- Robert Ancell

Page 42: this = that

U-ah! U-ah! U-ah!

2013, giusto poche ore più tardi

Page 43: this = that

My recommendation to application developers is to never accept patches for this mess Canonical created.

“ It can cause issues everywhere and that affects the development and maintenance costs of all applications.”-- Martin Gräßlin

Page 44: this = that

Ma Canonical c’è o ci fa?

Page 45: this = that

from Arstechnica, 10 years of Ubuntu @ http://bit.ly/1romPZl

“Violating unwritten Linux taboos”

Page 46: this = that

from Arstechnica, 10 years of Ubuntu @ http://bit.ly/1romPZl

“These days Ubuntu is less a traditional Linux distro and more somewhat like OS X is to BSD”

Page 47: this = that

Ottobre 2011, UDS P

Page 48: this = that

Canonical sta facendo un suo prodotto, che richiede di funzionare su mobile *adesso*

Page 49: this = that

MIR funziona su mobile, sarà portato su desktop nei prossimi mesi

Page 50: this = that

Wayland parte dal desktop, è il vero “sostituto” di X

Page 51: this = that

↑ ↑ ↓ ↓ ← → ← → Tap Tap

Il mio input è differente

Page 52: this = that

B2C vc B2B

Il mio target è differente

Page 53: this = that

qualcuno ha pensato “NVIDIA”?

Il mio driver è differente??

Page 54: this = that

8~10 ottobre ultimi scorsi

2014 X.Org Developer's Conference

Page 55: this = that

Refactor to plug into DRM-KMS -- new EGL extensions

“Enabling Alternative Window Systems with a non-Mesa Graphics Driver Implementation”

Page 56: this = that

Che sta per OpenGL ES Native Platform Graphics Interface

Parola d’ordine: EGL

Page 57: this = that

Il web è cambiato

Entering: The Browser

Page 58: this = that

e ormai solo l’engine JavaScript veloce non fa più hipe

Ai browser moderni non piace essere lenti

Page 59: this = that

Entering: screen sharing / recording

Page 60: this = that

Postilla: network “transparency”

Page 61: this = that

Insomma…che previsioni per il futuro?

Page 62: this = that

Per quest’anno X Window, sorry :’(

Page 63: this = that

Aprile 2016 l’appuntamento con MIR

Page 64: this = that

Wayland … chiedete ai fedoriani

Page 65: this = that

Grazie e happy LinuxDayby Luca & Flavia@elleuca -- @deindre_