3. Who am I ?
• French free software developer in Korea
• Enlightenment developer since 2005
• Work for Samsung Mobile in Korea
• On Enlightenment Foundation Libraries
4. What is this talk about ?
●
Give some context about Enlightenment
●
Sharing experience
●
Wayland usage
●
Systemd usage
5. Why ?
●
Improve link across community
●
All about Free software
●
Sharing experience and knowledge
●
Lead to a better experience for everyone
6. Why ?
●
Better communication across project !
●
Seriously !
●
Build better and stronger base for everyone
to use
●
To get better standard, people need to
understand each other goal
7. Enlightenment ?
●
X Windows manager started in 1997
●
Enlightenment 0.17 released 21/12/2012
●
Composite manager
●
Wayland server
●
Wrote our own C toolkit, EFL
●
And our own terminal emulator
9. Enlightenment ?
●
Was GNOME windows manager more than
10 years ago.
●
Due to a conflict between Carsten and
Miguel, each of them took their own path
●
Argument was about the integration of the
windows manager with the desktop
10. Enlightenment ?
●
The year of Linux Desktop will not happen
●
The future will be in the embedded world
●
That was in 2001 and defined where
Enlightenment community worked on.
●
Goal :
– Serve us, developers
– Serve the embedded world
11. Enlightenment ?
●
In fact, this two goal where the same
●
Need a buttload of options
●
Light on CPU and memory usage
●
Easily themable
●
Easily adaptable to various screen and input
12. Performance matters ?
●
Embedded device don't have
– Much memory
– Much CPU
– Much GPU, if at all
– Much battery
●
In fact, optimizing for battery imply
optimizing for all the other goals !
13. Memory and battery ?
●
Used memory need to be always powered
●
Accessing memory use more energy than
accessing cache
●
Embedded memory bandwidth don't
increase
●
No swap
14. CPU and battery ?
●
Obviously, the more you use it...
●
What does use means with modern CPU :
– Have multiple core
– With different characteristic
– Change their clock
●
Use as little as possible and make them go
back to sleep as soon as possible
15. GPU and battery ?
●
Avoid fullscreen rendering
●
Avoid memcpy (on the GPU to)
●
No dependencies between frame
●
Use hardware layer to avoid compositing
●
If not, software compositor may be lighter
16. Battery ?
●
Don't follow Moore's Law !
●
Core i7 is as efficient as a Cortex A8 !
●
Little hope into a Moore's Law for SoC power
consumption
●
Battery will always be a limit
17. Battery ?
●
EFL/E17 use 10% less battery than Android
●
With Unity my laptop loose 1 hour of
autonomy according to powertop
●
Closing my webbrowser give me 1 more
hour of autonomy
●
True on a x86 laptop to !
20. Beyond desktop
●
1.5 Billion Android device in 2013
●
More than the number of desktop in use
●
Developing country jumping on Android
●
No free software
●
Gate to our today life !
●
As powerful as some laptop !
21. Specific software ?
●
An application per device ?
●
Screen variation ?
●
Reading distance ?
●
Input ?
●
Optimized for mobile ?
●
Not really specific !
22. Memory optimization
●
Share content across application, mmap !
●
Maybe finally a sensible .desktop
●
Share glyph and pixels across applications
●
Need help from the kernel to decide when
to really throw those data away
●
Toolkit should agree on a common cache
23. Screen variation
●
DPI is not enough
●
Distance to screen matter
●
Personnal sighseeing to
●
Scale factor for all readable elements per
screen
=> Should be a cross desktop standard and
handle by toolkit
25. Suspending
●
Throw all cached ressource away
●
Interact with the system nicely on suspend
●
On iconify EFL application throttle
themselves (yes, sleep in the main loop)
●
Drop frame rate when minimized
26. Wayland
●
X is impossible to secure by design
●
Designed more than 20 years ago
●
Compositing was added later on
●
A lot was learned
●
It is a great time to clean stuff
●
Needed to be competitiv
27. Wayland
●
More efficient by design
●
Should be better than Android
●
Should be more secure
●
Some backward compatibility for X apps
●
Create more work on Composite Manager
●
We need to all agree on the standard
32. Systemd
●
Could it take care of more ?
●
Launching/sandboxing application
●
Converting .desktop
●
Multi-instance application ?
●
Toolkit pre-initialization daemon ?
●
Maybe not a problem necessary to solve