this = that

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

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.

Transcript of this = that

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_