Skip to content

What's the difference between Linux desktop and Embedded Linux

Hidenori Matsubayashi edited this page Jul 5, 2021 · 3 revisions

The biggest difference is that Embedded Linux embedding for Flutter doesn't use GTK/GDK and X11 at all. It uses Wayland or DRM backends. On the other hand, Flutter desktop for Linux uses X11 and GTK/GDK.

Flutter desktop for Linux Fluter for Embedded Linux
image image

Why did we need to create a new embedder for Flutter?

Because requirements for embedded systems are not equal desktop one. For example, as I mentioned, Flutter desktop for Linux uses GTK/GDK and X11. These libraries require a lot of dependent libraries. In addition, in embedded use cases, GTK/GDK isn't always necessary, and CPU, physical memory, storages in embedded products are generally more limited than desktops. Therefore, we don’t want to install libraries that are not used as much as possible.

As a side note, we initially thought about sharing the source code with the desktop version but concluded that it was difficult. The source files of the Flutter desktop strongly dependent on GTK/GDK. Therefore, we couldn't share the source files to unuse GTK.

FYI: Overview of modern Linux graphics stack

image