Manuel Bachmann - Tizen, a Wayland-powered operating system

Tizen is a fully open-source and embedded-oriented operating system. Having a tradition of using the latest technology available, it integrated Wayland since its first stable release in 2013. Pushing this move forward, the first images using only Wayland/Weston, with no X11 server installed, were released as soon as February of 2014.

There are still a lot of Wayland-related challenges to overcome, though. There are different profiles (Common, IVI...) with different needs, application frameworks to integrate, shortcomings in the Wayland protocol or in its shells... we will do an overview of the work done in this area.

1) A display-system-independent build system

The Tizen build system provides a way to build packages and create a bootable image independently of the display system used. As a result, most of the core packages are built with abstracted GUI libraries or with conditional flags, allowing supporting multiple display backends. We will have a quick look about how this works.

(sample packages : Mesa, weston-common, x11-common, EFL...)

2) Wayland shells, Tizen API integration, toolkits integration

The Tizen framework provides an API for end-user applications, so they can for instance hide and show themselves. As the core Wayland protocol did not provide these facilities, we made adaptations to the work-in-progress XDG-Shell protocol, which are now required by the framework and were first tested on Tizen before their upstream integration. There are still adaptations in progress, for which we will show demonstrations and a quick overview.

(new requests : xdg_surface_minimize(), xdg_surface_present() )

Tizen IVI is an in-vehicle-oriented flavor of Tizen. A prerequisite for IVI releases is the IVI-Shell protocol, an alternative shell interface for Weston based on the GENIVI group specifications. We participate in the upstream process by providing a Weston repository with IVI-Shell patches integrated, and integration in the framework and various toolkits (see below).

(ivi-shell : upstream Weston with patches, weston-ivi-shell plugin)

With regards to all the work done with XDG-Shell and IVI-Shell, it is important to provide integration in the available toolkits. We actively push patches to their upstream communities, and backport them into Tizen when necessary.

(xdg-shell & ivi-shell : EFL, Qt, Ozone-Wayland for CrosswalkÂ… )

3) Wayland/Weston and the Tizen multiuser challenge

Tizen is currently switching to a fully multiuser model, which implies having several users connected to a same box and sharing input devices and displays. Making this work smoothly requires modifications in both the application framework and the compositor plugins. We will here sum up what is planned at this date.

4) Wayland/Weston and the enforced security model

Tizen is progressively switching from a security framework named privilege-manager to another one named Cynara. This technology upgrade is the perfect frame to allow to set up a communication channel between privileged applications, the compositor, and a security backend. This will allow applications requiring privileged access to the compositor (screenshooting, compositor plugins overloading...) to do so in a trusted way.

NOTES & REFERENCES

  • https://www.mail-archive.com/general@lists.tizen.org/msg02056.html
  • http://lists.freedesktop.org/archives/wayland-devel/2014-July/016224.html
  • https://github.com/Tarnyko/weston-ivi-shell - http://www.phoronix.com/scan.php?page=news_item&px=MTc3MjM - https://github.com/01org/ozone-wayland/commit/a034a018b6ec317ec5559dcce6efec916ec40512
  • https://wiki.tizen.org/wiki/Multi-user_DisplayManagement

Slides Video