Who am I ?• French free software developer in Korea• Enlightenment developer since 2005• Work for Samsung Mobile in Korea• On Enlightenment Foundation Libraries
What is this talk about ?●Give some context about Enlightenment●Sharing experience●Wayland usage●Systemd usage
Why ?●Improve link across community●All about Free software●Sharing experience and knowledge●Lead to a better experience for everyone
Why ?●Better communication across project !●Seriously !●Build better and stronger base for everyoneto use●To get better standard, people need tounderstand each other goal
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
88Enlightenment ?< Screenshot of Enlightenment Window Manager >
Enlightenment ?●Was GNOME windows manager more than10 years ago.●Due to a conflict between Carsten andMiguel, each of them took their own path●Argument was about the integration of thewindows manager with the desktop
Enlightenment ?●The year of Linux Desktop will not happen●The future will be in the embedded world●That was in 2001 and defined whereEnlightenment community worked on.●Goal :– Serve us, developers– Serve the embedded world
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
Performance matters ?●Embedded device dont have– Much memory– Much CPU– Much GPU, if at all– Much battery●In fact, optimizing for battery implyoptimizing for all the other goals !
Memory and battery ?●Used memory need to be always powered●Accessing memory use more energy thanaccessing cache●Embedded memory bandwidth dontincrease●No swap
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 goback to sleep as soon as possible
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
Battery ?●Dont follow Moores Law !●Core i7 is as efficient as a Cortex A8 !●Little hope into a Moores Law for SoC powerconsumption●Battery will always be a limit
Battery ?●EFL/E17 use 10% less battery than Android●With Unity my laptop loose 1 hour ofautonomy according to powertop●Closing my webbrowser give me 1 morehour of autonomy●True on a x86 laptop to !
Beyond desktop !
Beyond desktop !
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 !
Specific software ?●An application per device ?●Screen variation ?●Reading distance ?●Input ?●Optimized for mobile ?●Not really specific !
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 whento really throw those data away●Toolkit should agree on a common cache
Screen variation●DPI is not enough●Distance to screen matter●Personnal sighseeing to●Scale factor for all readable elements perscreen=> Should be a cross desktop standard andhandle by toolkit
Input variation●Not everyone has the same fingers !
Suspending●Throw all cached ressource away●Interact with the system nicely on suspend●On iconify EFL application throttlethemselves (yes, sleep in the main loop)●Drop frame rate when minimized
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
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
Wayland●First always compositing●Handle Wayland client under X●Become a full Wayland compositor
Systemd●Enlightenment_start replacement●More reliable●Handle monitoring of many process●Can monitor :– Evas_Cserve2– Elev8d– Elm_Quicklaunch
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