SlideShare a Scribd company logo
1 of 28
Download to read offline
GNU/Linux vs Android as an embedded OS
Pierre Ficheux, Smile ECS
pierre.ficheux@smile.fr
November 2021
Agenda
● Android / Linux comparison on several criterion
○ Application domains
○ Licensing
○ Architecture
○ Security !
○ Sources and “build system”
○ Development tools
○ Commercial issues
○ Ecosystem / community
○ Trends and market
○ General conclusion
○ Synthesis
● Questions !
2
$ whoami
● CTO for Smile ECS (Embedded and Connected Systems)
● Teacher and trainer (Yocto, Linux drivers, Linux RT, Android/AOSP)
● Writer (books, whitepapers and articles about open source technology -
Embedded Linux)
3
Why GNU/Linux vs Android ?
● Similar functionalities but Android is NOT à new “GNU/Linux distribution”
● Both are Linux kernel based
● Both are “open source” (considering AOSP - Android Open Source Project)
● BSP available from most HW (SoC) vendors
● Embedded Android was introduced by Google as the best “Linux
replacement” for some markets
○ TV
○ Automotive (Android Automotive OS)
● Android approach looks “simpler” (and more profitable) because of application
model
○ Easier development (thanks to Android Studio)
○ Application store (Google Play)
4
Application domains
● GNU/Linux is a “multipurpose” OS (for industrial market)
○ Desktop
○ Server
○ Embedded systems with medium footprint
○ Standard distributions eat lots of GB but smallest Yocto image is only 7MB !
○ Smart enough with CLI
○ Needs add-on for GUI (X11, Wayland, then Qt - licensing issue)
○ RT support (PREEMPT_RT or Xenomai)
● Android is focused on multimedia and “consumer electronics”
○ Nice GUI
○ Multicore CPU
○ High performance GPU
○ High footprint (1GB flash, basic system image is 2GB)
○ High memory usage (4GB RAM)
○ Automotive, TV
5
Application domains, conclusion
● Android is a better choice for a GUI based project (consumer)
● GNU/Linux is a good choice as a (free) RT-OS for industry
● GNU/Linux is the only way for a general purpose (with CLI) project
6
Architecture (big picture)
7
Architecture, focus on HAL
8
device (HW) dependent
implementation
Android framework
device independent
“driver”
Architecture, conclusion
● The main difference between GNU/Linux and Android is HAL
● Android is designed to use “user space drivers” (shared libraries)
● Most of the time, very few kernel development for an Android project
9
Licensing
● Licensing is VERY important for industrial project !
● GNU/Linux uses several licenses in user space (GPL, LGPL, BSD,
proprietary, etc.)
● Android uses Apache 2 license for Google framework
● Lots of proprietary components aka “driver binaries”
● Google avoids using GPL if possible (BusyBox replaced by ToyBox) !
● Both uses GPL in kernel space !
● Android architecture was designed to avoid licensing issues (HAL)
● Licensing could lead to legal issues in GNU/Linux (LGPLv3 for Qt)
10
Licensing, conclusion
● Use Android if you want to “avoid” licensing issues :-)
11
Security
● Security is a key issue these days with connected devices (IoT)
● Linux ecosystem includes several major projects regarding security
○ SELinux
○ Smack
○ dm-verity (block integrity)
○ etc.
● Activating that functionalities in Android is mandatory !
● Android needs secure boot (AVB = Android Verified Boot)
● A standard Android application runs in a “sandbox”
12
Security, SELinux with Android
● Each process and object labeled with a security context
● Each file belongs to a SELinux “domain”
● Each executable runs in a SELinux domain
● Definition of access rules from one domain to another
● Each access (such as device node) is verified by the Linux kernel !
○ # assign tty_device label to /dev/temper0 (a device driver)
○ /dev/temper0 u:object_r: tty_device:s0
○ # Untrusted Java app can read a tty_device type (.te)
○ allow untrusted_app_25 tty_device:chr_file { r_file_perms };
● Access fails if no rule allowing it is set (default lock)
● Zygote creates VM instances (ART) to run Android applications
● Zygote chooses the SELinux context for application
● SELinux can be disabled with “setenforce” command (if using “eng” build)
13
Security, conclusion
● Very high security level with Android !
● Mostly based on Linux tools !
● Could be the same with GNU/Linux but not configured by default
14
Sources and “build system”
● Build system is dedicated to OS image production
○ Bootloader
○ Linux kernel
○ Root filesystem
● Linux ecosystem provides several tools such as Yocto and Buildroot
● They don’t provide sources, only “recipes”
● Both are real collaborative projects (fully open source)
● Yocto is an official project from Linux foundation (used by most of the HW
makers)
● Android/AOSP build system was created by Google (not collaborative)
○ configuration/customization is “tricky” (designed for building a phone “ROM”)
○ includes sources and binaries (compilers, etc.)
○ no package management for the system part
● AOSP sources are huge, tens of GB for recent versions (80 Gb for 11)
15
Sources and build system
● Not possible to manage AOSP sources in a single Git repository
● You should use “repo” to manage hundreds of trees (800 for 11) !
● Android versions are “fragmented”, very difficult to get a “mainline” platform
(except for Google devices)
16
Sources and build system, conclusion
● GNU/Linux world is much better for this point !
17
Development tools
● Android and its tools are developed by Google “behind the doors”
○ A kind of proprietary approach (“the cathedral and the bazaar”) !
○ Tools are clearly identified, well documented
○ Android Studio (for building apps) is complex but very powerful !
○ Android/AOSP sources and internals are poorly documented :-(
● GNU/Linux is “the bazaar”
○ Loooots of tools (too many ?)
○ Several IDE (Eclipse, Qt Creator, etc.)
○ One can use CLI tools (such as toolchain) with different GUI
○ Much better documentation for major projects (Yocto)
18
Development tools, conclusion
● Proprietary world “aficionados” would prefer Android tools !
● Huge, opaque but easy to install and works fine
● GNU/Linux tools needs knowledge and tuning :-)
19
Commercial/product issues
● Licensing (and patents) can be issues in the GNU/Linux world
○ Be careful about the software architecture
● Android world is much more difficult
○ Android based device should be certified to use the “Android” trademark and GMS (store)
○ Long and costly procedure
○ Many requirements in Android Compatibility Definition Document (CDD)
○ Lots of automatic or manual tests (CTS, VTS, etc.)
○ All tests should be replayed by an external company approved by Google
○ Last but not the least, Google will approve, or not (for any reason)
○ Google will NOT approve an old Android version
20
Commercial issues, conclusion
● Building an Android certified device is a a hard work !
● You can use AOSP without certification
○ Don’t use Android branding !
○ No access to GMS
21
Ecosystem / community
● Android ecosystem is huge regarding
○ end users (billions of devices → hardware makers, STB/Google TV, automotive)
○ applications (most of them are proprietary)
○ developers
● Google does not accept external contribution → no community
● GNU/Linux has a rich ecosystem of contributors, providers, users, hardware
makers
● Communities are the 💙 of GNU/Linux world
● GNU/Linux is supported by foundations in the open source world
○ Linux
○ Apache
○ Eclipse
● Lots of major projects around GNU/Linux, such as Yocto, PREEMPT_RT, etc.
22
Ecosystem / community, conclusion
● Android has no real community (except apps developers), only customers
(such as Windows)
● Working with GNU/Linux outside communities is not possible
23
Trends and market
● Android is still a leader in smartphone market (72%) but iOS is still 28% (was
18% in 2016)
● Android (AAOS) more present in automotive world (2021 +)
○ IoT growing market
○ Android GUI is fine for the end user
○ Automotive world is not really open source friendly !
○ Partnership with GM, PSA, Renault, Volvo
○ GENIVI (now COVESA) focuses on AAOS (“AAOS special interest group”)
○ Concurrency from AGL (Linux) and QNX (proprietary)
● Android did not kill GNU/Linux in industrial world
○ Fragmentation in BSP (Android version)
○ Certification, licensing
○ Footprint and CPU usage
○ No real-time support
○ GAFAM syndrom ?
24
Trends and market, conclusion
● GNU/Linux is still a leader for industrial projects
● Android will get more shares for multimedia/consumer projects
25
General conclusion
● Android is not really an open OS (developed “behind the doors”)
● Android is very difficult to adapt
○ Very few AOSP documentation
○ Very few experts :-(
○ Costly certification
● Be careful about legal issues for GNU/Linux
● Very high (and native) security level for Android
● GUI approach is better and simpler for Android
● Any Android project is very costly (to be estimated a long time before) !
● Marketing (everybody has a smartphone, including your boss !)
26
Synthesis
27
Criteria Android GNU/Linux
Application domains 😐 😐
Licensing 😎 😟😣
Architecture 😐 😐
Security 😇 😒
Sources / build system 😈😒 😃
Development tools 😃 😐
Commercial / product issues 😈😓 😀
Ecosystem / community 😐 😃😍
Trends and market 😐 😐
Questions ?
28

More Related Content

Similar to GNU/Linux ou Android comme système d'exploitation embarqué ?

Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014Opersys inc.
 
X86 ROM Cooking 101 (Android Builders Summit 2014)
X86 ROM Cooking 101 (Android Builders Summit 2014)X86 ROM Cooking 101 (Android Builders Summit 2014)
X86 ROM Cooking 101 (Android Builders Summit 2014)Ron Munitz
 
Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)
Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)
Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)Ron Munitz
 
Embedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon VEmbedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon VOpersys inc.
 
Is Android the New King of Embedded OSes at Embedded World 2014
Is Android the New King of Embedded OSes at Embedded World 2014Is Android the New King of Embedded OSes at Embedded World 2014
Is Android the New King of Embedded OSes at Embedded World 2014Opersys inc.
 
Mob modcon 2015-android rom cooking tutorial
Mob modcon 2015-android rom cooking tutorialMob modcon 2015-android rom cooking tutorial
Mob modcon 2015-android rom cooking tutorialRon Munitz
 
Embedded Android Workshop at Android Open 2011
Embedded Android Workshop at Android Open 2011Embedded Android Workshop at Android Open 2011
Embedded Android Workshop at Android Open 2011Opersys inc.
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
Embedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVEmbedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVOpersys inc.
 
Is Android the New Embedded Linux? at AnDevCon IV
Is Android the New Embedded Linux? at AnDevCon IVIs Android the New Embedded Linux? at AnDevCon IV
Is Android the New Embedded Linux? at AnDevCon IVOpersys inc.
 
Embedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeEmbedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeOpersys inc.
 
Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Opersys inc.
 
Embedded Android Workshop at Embedded World Conference 2013
Embedded Android Workshop at Embedded World Conference 2013Embedded Android Workshop at Embedded World Conference 2013
Embedded Android Workshop at Embedded World Conference 2013Opersys inc.
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowKarim Yaghmour
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowOpersys inc.
 
Embedded Android Workshop with Oreo
Embedded Android Workshop with OreoEmbedded Android Workshop with Oreo
Embedded Android Workshop with OreoOpersys inc.
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowOpersys inc.
 
Embedded Android Workshop with Nougat
Embedded Android Workshop with NougatEmbedded Android Workshop with Nougat
Embedded Android Workshop with NougatOpersys inc.
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopEmbedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopOpersys inc.
 

Similar to GNU/Linux ou Android comme système d'exploitation embarqué ? (20)

Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014Embedded Android Workshop at ABS 2014
Embedded Android Workshop at ABS 2014
 
X86 ROM Cooking 101 (Android Builders Summit 2014)
X86 ROM Cooking 101 (Android Builders Summit 2014)X86 ROM Cooking 101 (Android Builders Summit 2014)
X86 ROM Cooking 101 (Android Builders Summit 2014)
 
Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)
Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)
Android ROM Cooking 101: A practical tutorial (DroidCon Tel-Aviv 2014)
 
Embedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon VEmbedded Android Workshop at AnDevCon V
Embedded Android Workshop at AnDevCon V
 
Is Android the New King of Embedded OSes at Embedded World 2014
Is Android the New King of Embedded OSes at Embedded World 2014Is Android the New King of Embedded OSes at Embedded World 2014
Is Android the New King of Embedded OSes at Embedded World 2014
 
Mob modcon 2015-android rom cooking tutorial
Mob modcon 2015-android rom cooking tutorialMob modcon 2015-android rom cooking tutorial
Mob modcon 2015-android rom cooking tutorial
 
Embedded Android Workshop at Android Open 2011
Embedded Android Workshop at Android Open 2011Embedded Android Workshop at Android Open 2011
Embedded Android Workshop at Android Open 2011
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Embedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IVEmbedded Android Workshop at AnDevCon IV
Embedded Android Workshop at AnDevCon IV
 
Is Android the New Embedded Linux? at AnDevCon IV
Is Android the New Embedded Linux? at AnDevCon IVIs Android the New Embedded Linux? at AnDevCon IV
Is Android the New Embedded Linux? at AnDevCon IV
 
Embedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeEmbedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC Europe
 
Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013
 
Embedded Android Workshop at Embedded World Conference 2013
Embedded Android Workshop at Embedded World Conference 2013Embedded Android Workshop at Embedded World Conference 2013
Embedded Android Workshop at Embedded World Conference 2013
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
Embedded Android Workshop with Oreo
Embedded Android Workshop with OreoEmbedded Android Workshop with Oreo
Embedded Android Workshop with Oreo
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
Embedded Android Workshop with Nougat
Embedded Android Workshop with NougatEmbedded Android Workshop with Nougat
Embedded Android Workshop with Nougat
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopEmbedded Android Workshop with Lollipop
Embedded Android Workshop with Lollipop
 

More from Open Source Experience

GAFAM or not GAFAM dans les collectivités
GAFAM or not GAFAM dans les collectivitésGAFAM or not GAFAM dans les collectivités
GAFAM or not GAFAM dans les collectivitésOpen Source Experience
 
API != REST - procmail à la rescousse
API != REST - procmail à la rescousseAPI != REST - procmail à la rescousse
API != REST - procmail à la rescousseOpen Source Experience
 
Vous souhaitez passer votre projet en open source ?
Vous souhaitez passer votre projet en open source ?Vous souhaitez passer votre projet en open source ?
Vous souhaitez passer votre projet en open source ?Open Source Experience
 
Évolutions de la gouvernance des projets libres
Évolutions de la gouvernance des projets libresÉvolutions de la gouvernance des projets libres
Évolutions de la gouvernance des projets libresOpen Source Experience
 
Data in Motion : un enjeu pour la modernisation des systèmes d'information
Data in Motion : un enjeu pour la modernisation des systèmes d'informationData in Motion : un enjeu pour la modernisation des systèmes d'information
Data in Motion : un enjeu pour la modernisation des systèmes d'informationOpen Source Experience
 
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOpsGérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOpsOpen Source Experience
 
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...Open Source Experience
 
La montée en puissance de l’infrastructure ouverte
La montée en puissance de l’infrastructure ouverteLa montée en puissance de l’infrastructure ouverte
La montée en puissance de l’infrastructure ouverteOpen Source Experience
 
L’Open Science au service des personnes atteintes d’épilepsie
L’Open Science au service des personnes atteintes d’épilepsieL’Open Science au service des personnes atteintes d’épilepsie
L’Open Science au service des personnes atteintes d’épilepsieOpen Source Experience
 
Une infrastructure Cloud et une solution IDaaS 100% libres
Une infrastructure Cloud et une solution IDaaS 100% libresUne infrastructure Cloud et une solution IDaaS 100% libres
Une infrastructure Cloud et une solution IDaaS 100% libresOpen Source Experience
 
Impliquer des contributeurs externes dans son projet open source
Impliquer des contributeurs externes dans son projet open sourceImpliquer des contributeurs externes dans son projet open source
Impliquer des contributeurs externes dans son projet open sourceOpen Source Experience
 
Conseils de survie pour hiérarchiser les cybermenaces
Conseils de survie pour hiérarchiser les cybermenacesConseils de survie pour hiérarchiser les cybermenaces
Conseils de survie pour hiérarchiser les cybermenacesOpen Source Experience
 
AliceVision : pipeline de reconstruction 3D open source
AliceVision : pipeline de reconstruction 3D open sourceAliceVision : pipeline de reconstruction 3D open source
AliceVision : pipeline de reconstruction 3D open sourceOpen Source Experience
 
Analyse de la composition logicielle à l’aide d’outils open source
Analyse de la composition logicielle à l’aide d’outils open sourceAnalyse de la composition logicielle à l’aide d’outils open source
Analyse de la composition logicielle à l’aide d’outils open sourceOpen Source Experience
 
E-commerce en 2021 : grandes tendances technologiques dans le développement d...
E-commerce en 2021 : grandes tendances technologiques dans le développement d...E-commerce en 2021 : grandes tendances technologiques dans le développement d...
E-commerce en 2021 : grandes tendances technologiques dans le développement d...Open Source Experience
 
Démo : comment sécuriser des milliers de serveurs gratuitement
Démo : comment sécuriser des milliers de serveurs gratuitementDémo : comment sécuriser des milliers de serveurs gratuitement
Démo : comment sécuriser des milliers de serveurs gratuitementOpen Source Experience
 
Démystifier les architectures orientées événements avec Apache Kafka
Démystifier les architectures orientées événements avec Apache KafkaDémystifier les architectures orientées événements avec Apache Kafka
Démystifier les architectures orientées événements avec Apache KafkaOpen Source Experience
 
Partagez votre code et non vos secrets
Partagez votre code et non vos secretsPartagez votre code et non vos secrets
Partagez votre code et non vos secretsOpen Source Experience
 
Badge des bonnes pratiques OpenSSF de la CII
Badge des bonnes pratiques OpenSSF de la CIIBadge des bonnes pratiques OpenSSF de la CII
Badge des bonnes pratiques OpenSSF de la CIIOpen Source Experience
 

More from Open Source Experience (20)

GAFAM or not GAFAM dans les collectivités
GAFAM or not GAFAM dans les collectivitésGAFAM or not GAFAM dans les collectivités
GAFAM or not GAFAM dans les collectivités
 
API != REST - procmail à la rescousse
API != REST - procmail à la rescousseAPI != REST - procmail à la rescousse
API != REST - procmail à la rescousse
 
Vous souhaitez passer votre projet en open source ?
Vous souhaitez passer votre projet en open source ?Vous souhaitez passer votre projet en open source ?
Vous souhaitez passer votre projet en open source ?
 
Évolutions de la gouvernance des projets libres
Évolutions de la gouvernance des projets libresÉvolutions de la gouvernance des projets libres
Évolutions de la gouvernance des projets libres
 
Data in Motion : un enjeu pour la modernisation des systèmes d'information
Data in Motion : un enjeu pour la modernisation des systèmes d'informationData in Motion : un enjeu pour la modernisation des systèmes d'information
Data in Motion : un enjeu pour la modernisation des systèmes d'information
 
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOpsGérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
Gérer vos clusters Kubernetes avec Flux 2 et la méthode GitOps
 
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
Quelle est la valeur de l’open source ? Étude de l’UE sur l’impact de l’open ...
 
La montée en puissance de l’infrastructure ouverte
La montée en puissance de l’infrastructure ouverteLa montée en puissance de l’infrastructure ouverte
La montée en puissance de l’infrastructure ouverte
 
Mon application web en 20 minutes
Mon application web en 20 minutesMon application web en 20 minutes
Mon application web en 20 minutes
 
L’Open Science au service des personnes atteintes d’épilepsie
L’Open Science au service des personnes atteintes d’épilepsieL’Open Science au service des personnes atteintes d’épilepsie
L’Open Science au service des personnes atteintes d’épilepsie
 
Une infrastructure Cloud et une solution IDaaS 100% libres
Une infrastructure Cloud et une solution IDaaS 100% libresUne infrastructure Cloud et une solution IDaaS 100% libres
Une infrastructure Cloud et une solution IDaaS 100% libres
 
Impliquer des contributeurs externes dans son projet open source
Impliquer des contributeurs externes dans son projet open sourceImpliquer des contributeurs externes dans son projet open source
Impliquer des contributeurs externes dans son projet open source
 
Conseils de survie pour hiérarchiser les cybermenaces
Conseils de survie pour hiérarchiser les cybermenacesConseils de survie pour hiérarchiser les cybermenaces
Conseils de survie pour hiérarchiser les cybermenaces
 
AliceVision : pipeline de reconstruction 3D open source
AliceVision : pipeline de reconstruction 3D open sourceAliceVision : pipeline de reconstruction 3D open source
AliceVision : pipeline de reconstruction 3D open source
 
Analyse de la composition logicielle à l’aide d’outils open source
Analyse de la composition logicielle à l’aide d’outils open sourceAnalyse de la composition logicielle à l’aide d’outils open source
Analyse de la composition logicielle à l’aide d’outils open source
 
E-commerce en 2021 : grandes tendances technologiques dans le développement d...
E-commerce en 2021 : grandes tendances technologiques dans le développement d...E-commerce en 2021 : grandes tendances technologiques dans le développement d...
E-commerce en 2021 : grandes tendances technologiques dans le développement d...
 
Démo : comment sécuriser des milliers de serveurs gratuitement
Démo : comment sécuriser des milliers de serveurs gratuitementDémo : comment sécuriser des milliers de serveurs gratuitement
Démo : comment sécuriser des milliers de serveurs gratuitement
 
Démystifier les architectures orientées événements avec Apache Kafka
Démystifier les architectures orientées événements avec Apache KafkaDémystifier les architectures orientées événements avec Apache Kafka
Démystifier les architectures orientées événements avec Apache Kafka
 
Partagez votre code et non vos secrets
Partagez votre code et non vos secretsPartagez votre code et non vos secrets
Partagez votre code et non vos secrets
 
Badge des bonnes pratiques OpenSSF de la CII
Badge des bonnes pratiques OpenSSF de la CIIBadge des bonnes pratiques OpenSSF de la CII
Badge des bonnes pratiques OpenSSF de la CII
 

Recently uploaded

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 

Recently uploaded (20)

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 

GNU/Linux ou Android comme système d'exploitation embarqué ?

  • 1. GNU/Linux vs Android as an embedded OS Pierre Ficheux, Smile ECS pierre.ficheux@smile.fr November 2021
  • 2. Agenda ● Android / Linux comparison on several criterion ○ Application domains ○ Licensing ○ Architecture ○ Security ! ○ Sources and “build system” ○ Development tools ○ Commercial issues ○ Ecosystem / community ○ Trends and market ○ General conclusion ○ Synthesis ● Questions ! 2
  • 3. $ whoami ● CTO for Smile ECS (Embedded and Connected Systems) ● Teacher and trainer (Yocto, Linux drivers, Linux RT, Android/AOSP) ● Writer (books, whitepapers and articles about open source technology - Embedded Linux) 3
  • 4. Why GNU/Linux vs Android ? ● Similar functionalities but Android is NOT à new “GNU/Linux distribution” ● Both are Linux kernel based ● Both are “open source” (considering AOSP - Android Open Source Project) ● BSP available from most HW (SoC) vendors ● Embedded Android was introduced by Google as the best “Linux replacement” for some markets ○ TV ○ Automotive (Android Automotive OS) ● Android approach looks “simpler” (and more profitable) because of application model ○ Easier development (thanks to Android Studio) ○ Application store (Google Play) 4
  • 5. Application domains ● GNU/Linux is a “multipurpose” OS (for industrial market) ○ Desktop ○ Server ○ Embedded systems with medium footprint ○ Standard distributions eat lots of GB but smallest Yocto image is only 7MB ! ○ Smart enough with CLI ○ Needs add-on for GUI (X11, Wayland, then Qt - licensing issue) ○ RT support (PREEMPT_RT or Xenomai) ● Android is focused on multimedia and “consumer electronics” ○ Nice GUI ○ Multicore CPU ○ High performance GPU ○ High footprint (1GB flash, basic system image is 2GB) ○ High memory usage (4GB RAM) ○ Automotive, TV 5
  • 6. Application domains, conclusion ● Android is a better choice for a GUI based project (consumer) ● GNU/Linux is a good choice as a (free) RT-OS for industry ● GNU/Linux is the only way for a general purpose (with CLI) project 6
  • 8. Architecture, focus on HAL 8 device (HW) dependent implementation Android framework device independent “driver”
  • 9. Architecture, conclusion ● The main difference between GNU/Linux and Android is HAL ● Android is designed to use “user space drivers” (shared libraries) ● Most of the time, very few kernel development for an Android project 9
  • 10. Licensing ● Licensing is VERY important for industrial project ! ● GNU/Linux uses several licenses in user space (GPL, LGPL, BSD, proprietary, etc.) ● Android uses Apache 2 license for Google framework ● Lots of proprietary components aka “driver binaries” ● Google avoids using GPL if possible (BusyBox replaced by ToyBox) ! ● Both uses GPL in kernel space ! ● Android architecture was designed to avoid licensing issues (HAL) ● Licensing could lead to legal issues in GNU/Linux (LGPLv3 for Qt) 10
  • 11. Licensing, conclusion ● Use Android if you want to “avoid” licensing issues :-) 11
  • 12. Security ● Security is a key issue these days with connected devices (IoT) ● Linux ecosystem includes several major projects regarding security ○ SELinux ○ Smack ○ dm-verity (block integrity) ○ etc. ● Activating that functionalities in Android is mandatory ! ● Android needs secure boot (AVB = Android Verified Boot) ● A standard Android application runs in a “sandbox” 12
  • 13. Security, SELinux with Android ● Each process and object labeled with a security context ● Each file belongs to a SELinux “domain” ● Each executable runs in a SELinux domain ● Definition of access rules from one domain to another ● Each access (such as device node) is verified by the Linux kernel ! ○ # assign tty_device label to /dev/temper0 (a device driver) ○ /dev/temper0 u:object_r: tty_device:s0 ○ # Untrusted Java app can read a tty_device type (.te) ○ allow untrusted_app_25 tty_device:chr_file { r_file_perms }; ● Access fails if no rule allowing it is set (default lock) ● Zygote creates VM instances (ART) to run Android applications ● Zygote chooses the SELinux context for application ● SELinux can be disabled with “setenforce” command (if using “eng” build) 13
  • 14. Security, conclusion ● Very high security level with Android ! ● Mostly based on Linux tools ! ● Could be the same with GNU/Linux but not configured by default 14
  • 15. Sources and “build system” ● Build system is dedicated to OS image production ○ Bootloader ○ Linux kernel ○ Root filesystem ● Linux ecosystem provides several tools such as Yocto and Buildroot ● They don’t provide sources, only “recipes” ● Both are real collaborative projects (fully open source) ● Yocto is an official project from Linux foundation (used by most of the HW makers) ● Android/AOSP build system was created by Google (not collaborative) ○ configuration/customization is “tricky” (designed for building a phone “ROM”) ○ includes sources and binaries (compilers, etc.) ○ no package management for the system part ● AOSP sources are huge, tens of GB for recent versions (80 Gb for 11) 15
  • 16. Sources and build system ● Not possible to manage AOSP sources in a single Git repository ● You should use “repo” to manage hundreds of trees (800 for 11) ! ● Android versions are “fragmented”, very difficult to get a “mainline” platform (except for Google devices) 16
  • 17. Sources and build system, conclusion ● GNU/Linux world is much better for this point ! 17
  • 18. Development tools ● Android and its tools are developed by Google “behind the doors” ○ A kind of proprietary approach (“the cathedral and the bazaar”) ! ○ Tools are clearly identified, well documented ○ Android Studio (for building apps) is complex but very powerful ! ○ Android/AOSP sources and internals are poorly documented :-( ● GNU/Linux is “the bazaar” ○ Loooots of tools (too many ?) ○ Several IDE (Eclipse, Qt Creator, etc.) ○ One can use CLI tools (such as toolchain) with different GUI ○ Much better documentation for major projects (Yocto) 18
  • 19. Development tools, conclusion ● Proprietary world “aficionados” would prefer Android tools ! ● Huge, opaque but easy to install and works fine ● GNU/Linux tools needs knowledge and tuning :-) 19
  • 20. Commercial/product issues ● Licensing (and patents) can be issues in the GNU/Linux world ○ Be careful about the software architecture ● Android world is much more difficult ○ Android based device should be certified to use the “Android” trademark and GMS (store) ○ Long and costly procedure ○ Many requirements in Android Compatibility Definition Document (CDD) ○ Lots of automatic or manual tests (CTS, VTS, etc.) ○ All tests should be replayed by an external company approved by Google ○ Last but not the least, Google will approve, or not (for any reason) ○ Google will NOT approve an old Android version 20
  • 21. Commercial issues, conclusion ● Building an Android certified device is a a hard work ! ● You can use AOSP without certification ○ Don’t use Android branding ! ○ No access to GMS 21
  • 22. Ecosystem / community ● Android ecosystem is huge regarding ○ end users (billions of devices → hardware makers, STB/Google TV, automotive) ○ applications (most of them are proprietary) ○ developers ● Google does not accept external contribution → no community ● GNU/Linux has a rich ecosystem of contributors, providers, users, hardware makers ● Communities are the 💙 of GNU/Linux world ● GNU/Linux is supported by foundations in the open source world ○ Linux ○ Apache ○ Eclipse ● Lots of major projects around GNU/Linux, such as Yocto, PREEMPT_RT, etc. 22
  • 23. Ecosystem / community, conclusion ● Android has no real community (except apps developers), only customers (such as Windows) ● Working with GNU/Linux outside communities is not possible 23
  • 24. Trends and market ● Android is still a leader in smartphone market (72%) but iOS is still 28% (was 18% in 2016) ● Android (AAOS) more present in automotive world (2021 +) ○ IoT growing market ○ Android GUI is fine for the end user ○ Automotive world is not really open source friendly ! ○ Partnership with GM, PSA, Renault, Volvo ○ GENIVI (now COVESA) focuses on AAOS (“AAOS special interest group”) ○ Concurrency from AGL (Linux) and QNX (proprietary) ● Android did not kill GNU/Linux in industrial world ○ Fragmentation in BSP (Android version) ○ Certification, licensing ○ Footprint and CPU usage ○ No real-time support ○ GAFAM syndrom ? 24
  • 25. Trends and market, conclusion ● GNU/Linux is still a leader for industrial projects ● Android will get more shares for multimedia/consumer projects 25
  • 26. General conclusion ● Android is not really an open OS (developed “behind the doors”) ● Android is very difficult to adapt ○ Very few AOSP documentation ○ Very few experts :-( ○ Costly certification ● Be careful about legal issues for GNU/Linux ● Very high (and native) security level for Android ● GUI approach is better and simpler for Android ● Any Android project is very costly (to be estimated a long time before) ! ● Marketing (everybody has a smartphone, including your boss !) 26
  • 27. Synthesis 27 Criteria Android GNU/Linux Application domains 😐 😐 Licensing 😎 😟😣 Architecture 😐 😐 Security 😇 😒 Sources / build system 😈😒 😃 Development tools 😃 😐 Commercial / product issues 😈😓 😀 Ecosystem / community 😐 😃😍 Trends and market 😐 😐