SlideShare a Scribd company logo
1 of 87
Download to read offline
Using Open Source Software to
Build an Industrial-grade
Embedded Linux Platform from
Scratch
SZ Lin (林上智)
Embedded Linux Development Center,
Software R&D Engineer
07/19, 2019
Open Source Summit Japan 2019
About Me
SZ LIN (林上智)
 Software Engineer at Moxa
 Cybersecurity Fundamentals Specialist
 ISA/ IEC 62443
 Debian Developer
 Blog - https://szlin.me
2
Smart
Grid
Smart
Rail
Smart
Oil Field
Smart
Factory
Smart
Transportation
Smart
Marine
Application
Device
Industrial
Routers
Industrial
Ethernet
Industrial
Wireless
LAN
Network Infrastructure
Embedded Computers
Industrial Computing
Industrial Embedded Linux Platforms
Serial
Connectivity
I/O
Connectivity
Video
Connectivity
Edge Connectivity
3
Before Using Open Source Software
Something You Should Know
4
5
Copyright Patent
A patent gives its owner the right to
exclude others from making, using,
selling, and importing an invention
for a limited period of time, usually
twenty years.
src: https://en.wikipedia.org/wiki/Patent
Copyright is a legal right, that grants
the creator of an original work
exclusive rights to determine whether,
and under what conditions, this
original work may be used by others
src: https://en.wikipedia.org/wiki/Copyright
6
Copyright Patent
Identify key recommended processes
for effective open source management
[1].
It is a shared defensive patent pool
with the mission to protect Linux [2].
Processes, Tooling and Support
7
OpenChain
Trust between entities in the supply chain
The OpenChain Project builds
trust in open source by making
open source license
compliance simpler and more
consistent
SPDX [3]
Trust for software packages
Software Package Data Exchange
(SPDX) is a file format used to
document information on the
software licenses under which a
given piece of computer
software is distributed.
FOSSology [4]
Free scanning technology
FOSSology is a open source
license compliance software
system and toolkit
Industrial/ Harsh Environments
Including smart rail, smart grid, intelligent transportation,
factory automation, oil & gas, marine, and more
8
Longevity + Stability + Security
Target Application
9
Performance Real-time Safety
Resource
Limited
Longevity + Stability + Security
Target Application
10
Performance Real-time Safety
Resource
Limited
SoftwareHardware
Maintenance PhaseDevelopment Phase
System
Preparation
Regular
UpdateBuild and Testing
4321
Long-term
Test
Lifecycle of Industrial-grade
Embedded Linux Platform
11
Development Phase
Design and development according to application
12
13
User Applications
GNU/ Linux
GNU C library
Init system
User
Space
Kernel
Space
Hardware and peripheral devices
Architecture-dependent firmware
Bootloader
Kernel
System call interface
Toolchain
Root filesystem
14
Choose Proper Bootloader
15
DRAM
Linux
Linux
uImage
Decompressor
U-boot
MLO
U-boot
Load
Loading
Relocate
Decompress
ROM
CPU
1st Stage
2nd Stage
Bootloader behavior
(A case of ARM-based architecture)
16
Category License Supported Platforms
Supported
UEFI
Maintainer
Das U-Boot
[5]
GPL-2+
68k, ARM, Blackfin,
MicroBlaze, MIPS, Nios,
SuperH, PPC, RISC-V,
x86 (on top of Coreboot)
Y
DENX
Software
Engineering
Coreboot [6] GPL-2
IA-32, x86-64, ARMv7,
ARMv8, MIPS, RISC-V,
POWER8
Y coreboot.org
GRUB GPL-3
IA-32, x86-64, IA-64,
ARM, PowerPC, MIPS
and SPARC
Y GNU Project
rEFInd [9]
GNU GPLv3,
Modified BSD
License (original
program),
additional
components
released under
various licenses
x86, x86-64, or
ARM64
Y
Roderick W.
Smith
17
Kernel Space
Based on the application requirement
18
Choose Proper Kernel
Linux Kernel Comparison Table
Category
Latest
version
Target Application Maintainer
Linux kernel 5.2
• Performance
• Resource Limited [12] [13]
Kernel.org
Preempt RT kernel 5.2
• Real-time
• Functional safety
• Resource Limited
Real Time Linux
collaborative project
19
*Real-time application [14][15]
SoC Board Support Package Kernel
• Kernel version depends on SoC vendors
– Well made but not well maintained
• Contain lots of in-house patches
– Errata patches
– Specific feature patches
– …
• Different SoC might use different versions of
kernel
• The lifetime is unsure
20
LTS: Long Term Stable Kernel [16]
Extend software uptime for stable kernel
• Only accept bug fixes and security fixes
img: https://www.kernel.org/category/releases.html
21
LTSI: Long Term Support Initiative [17]
• Linux Foundation collaborative project
– Based on LTS
– Add another chance to include further patches on top
of LTS
– Auto Test framework
– Same lifetime with LTS (yearly release and 2 years life
time)
22
CIP (Civil Infrastructure Platform) [19]
• Linux Foundation collaborative project
– Support kernel and core package
– Auto Test framework
– Maintenance period
• 10 years and more (10-20 years)
23
img: https://wiki.linuxfoundation.org/civilinfrastructureplatform/cipconferences
24
Linux Kernel Source Comparison Table
Version
Maintenance
Period
(years)
Features
Latest
Version
Supported
Realtime
kernel
Maintainer
SoC
BSP
kernel
? Bug fixes ? N
SoC vendor
kernel team
LTS
kernel
2 ~ ?
• Bug fixes
• Security fixes
4.19 N Kernel.org
LTSI
kernel
2 ~ ?
• Bug fixes
• Security fixes
• Specific features
• New features
4.14 N LTSI
CIP
kernel
10 +
• Bug fixes
• Security fixes
• Specific features
• New features
4.19 Y CIP
25
26
Longevity + Stability + Security
Performance Real-time Safety
Resource
Limited
Mutually Exclusive ?
To fulfill multiple user scenarios
27
Multiple Kernel In Single Platform
FIT (Flattened Image Tree)
• Tree data structure
• Handle multiple types of image
– kernel : kernel image
– fdt : dtb file
– ramdisk : root file system
• Image hashing
– md5
– sha1
• Image signing
• Each node in configurations has their image
configuration in booting stage
(A case of ARM-based architecture)
28
29
More info.:
http://git.denx.de/?p=u-
boot.git;a=blob_plain;f=doc/uImage.FIT/source_file_format.txt;hb=HEAD
30
User Space
ELISA: Safety-Critical Systems [20]
31
• Linux Foundation collaborative project
– Build and certify Linux-based safety-critical applications
– Define and maintain a common set of tools and processes
• SIL2LinuxMP [21] project and the Linux Foundation’s Real-Time
Linux project
– IEC 61508
32
Choose Proper
C Library and Toolchain
C Library and Toolchain Comparison
Table
Category License Features
Target
Application
Maintainer
User
glibc [25] LGPL 2.1
• Stable ABI
• Backward compatibility
• Fully symbol versioning
• Stack smashing
protection/ heap
corruption detection
• Profiling
• Performance
• Security
GNU
uClibc-ng
[26]
LGPL 2.1
• No-MMU architecture
support
• Tiny size
• Resource
Limited
uclibc-ng.org
Musl [28] MIT
• Stable ABI
• Backward compatibility
• Stack smashing
protection/ heap
corruption detection
• Resource
Limited
• Security
musl-libc.org
33
* Be aware of year 2038 problem [29]Other option [93]
Year 2038 Problem [92]
• The time_t datatype is a data type in the ISO C
library and kernel structure defined for storing
system time values.
• 32-bit system can represent dates from
 Dec 13 1901
 Jan 19th 2038
• It causes integer overflowing on 03:14:08 UTC 19
January 2038
34
Init System
35
Init System Comparison Table
Category License C Library User Note
busybox GPL 2.0
uClinux-ng
Glibc
musl
ProteanOS
PiBox
Resource-
limited
application
sysvinit GPL 2.0+
uClinux-ng
glibc
musl
Devuan
systemd LGPL 2.1+ glibc
Arch, CentOS,
CoreOS, Debian,
Fedora, Mint,
OpenSUSE,
Redhat, Ubuntu
Linux only
openrc 2-clause BSD
musl
glibc
Gentoo
Alpine Linux
upstart GPL 2.0 glibc Chromium OS Linux only
36
Choose proper RFS
(Root filesystem)
Stable root filesystem
37
Root filesystem Comparison Table
Category
Maintenance
Period
(years)
Number of
packages
C Library
Security
Tracker
CI
Busybox ?
300 ~ 400
applets
• uClibc
• glibc
? ?
Yocto
Latest release the
previous two
releases
It depends on
meta-*
• glibc
• musl
Y Y
Buildroot 1 2000+ [42]
• glibc
• musl
• uClibc-ng
Y Y
Debian
3 +
2 (i386, amd64, armel,
armhf and arm64)
51000+
• glibc
• musl
Y Y
38
39
System Development Tools
System Development Tools Comparison
Table
Root filesystem
System
Development Tools
Toolchain
System
Development
Tools
License
Busybox Yocto OE-Core MIT
Yocto Yocto OE-Core MIT
Buildroot Buildroot Buildroot GPL 2.0+
Debian
ISAR Debian toolchain
Metadata: MIT
Others: GPL 2.0
ELBE Debian toolchain GPL 3.0+
Yocto Deby (meta-
debian)
OE-Core MIT
Live-build Debian toolchain GPL 3.0+
40
Good system security [50]
Everything is open
Usually, fixed packages are uploaded
within a few days
Stability
unstable → testing → stable
Scalability
Server, Desktop,
Laptop, Embedded devices
Long term support
5 more years by Debian-LTS project
(i386, amd64, armel, armhf and arm64)
Multiple architectures
alpha, amd64, armel, armhf,
aarch64, hppa, i386, ia64, mips,
mipsel, powerpc, s390, and spar
Why We Choose Debian [49]
Incredible amounts
of software
Debian comes with over 51000
different pieces
of software with free
41
Development Phase
System
Preparation
Build and Testing
4321
42
Long-term
Test
Regular
Update
More info: Building, Deploying and Testing an Industrial Linux Platform
Open Source Summit Japan 2017 [51]
Master
Develop
Feature ..
Merge
Pull Request
Fork
Local
Branch
Patches
Notification
Internal/ External
Developers
CI/ CD Automatic
Release Pipeline
Maintainer
Approval
Pass
Pass
Y
Y N
N
43
CI/ CD Automatic Release Pipeline
Building Testing
Deploying
4321
Release
Continuous Delivery Continuous
Deployment
Code
Continuous
Integration
44
Code
Continuous
Integration
CI/ CD Automatic Release Pipeline
Building Testing
Deploying
4321
Release
45
Server
Slave
node
Webhooks
Patches
Internal/ External
Developers
Local
Branch
Pull Request
Slave
node
Slave
node
Static Program
Analysis
 Coding style
 OWASP [52]
 Infer [53]
 Sonarqube [54]
 …
46
Static Testing Cases Management -
Jenkins
47
Static
analysis
#1
Static
analysis
#2
…
Static
analysis
#n
Image: https://c1.staticflickr.com/5/4030/4438139050_04604b4908.jpg
48
Distributed Compiler
• Software
– Icecream/ IceCC was created by SUSE based on distcc
[55][56]
• Improve performance of compile jobs in parallel
• Add dynamic scheduler of the compilation jobs
• Support multiple platform
• Support cross compiling
• Hardware - for each node
– SSD
– Large capacity memory
– Gigabit LAN
49
Client Client Client
ICECC - Distributed CompilerServer
Patches
Internal/ External Developers
Local
Branch
Pull Request
3. Send
log & image
50
Webhooks
1. Send command
2. Get source
CI/ CD Automatic Release Pipeline
Building Testing
Deploying
4321
Release
Code
Continuous
Integration
Continuous Delivery
51
Continuous Delivery – LAVA [57][58]
52
53
Server
Master
Worker WorkerWorker
1. Send job file via XML-RPC
5. Deployment via TFTP
2. Dispatch job via ZMQ
3. Download image
via curl or wget
4. Boot up via Ethernet remote I/O
DUT Clusters
Dynamic Program
Analysis
● gcov [59]
● valgrind [60]
● profiling tools [61]
● ...
Platform Test
● LTP [62]
● Security testing
[63]
● Kselftest [67]
● ...
7. Send test cases
(Test framework)
8. Start testing
6. Trigger test framework
9. Send back testing result
Fuego [68][69]
• Test framework for testing embedded Linux
– Official automated test framework for the LTSI project.
• BSD 3-Clause license in default
• Over 100 pre-packaged tests
– Ability for 3rd parties to initiate or schedule tests on our
hardware, and the ability to share our test results with others.
54
Master
Develop
Merge
Notification
CI/ CD Automatic
Release Pipeline
Maintainer
Approval
Pass
Pass
Y
Y N
N
55
Image
Deployment
24/ 7 Long-term
Platform Test
Maintenance Phase
Long-term Testing and Regular Update
56
Maintenance Phase
System
Preparation
Build and Testing
4321
57
Long-term
Test
Regular
Update
More info: Building, Deploying and Testing an Industrial Linux Platform
Open Source Summit Japan 2017 [51]
Notification
Test Results
58
* Test cases are managed by test framework
24/ 7 Long-term Platform Test
Robustness
Robustness is the ability
of a computer system to
cope with errors during
execution and cope with
erroneous input [71]
Reliability
Reliability is enhanced
by features that help to
avoid, detect and repair
hardware faults [72]
Security
Quick response in
resolving CVE/
vulnerabilities and
attacks in platform
Longevity
Long-term support at
least 10 years life cycle
with bug fixes, new
features and new
hardware components
59
Endurance test
Compatibility test
…
24/ 7 Long-term Platform Test
Robustness
Robustness is the ability
of a computer system to
cope with errors during
execution and cope with
erroneous input [71]
Reliability
Reliability is enhanced
by features that help to
avoid, detect and repair
hardware faults [72]
Security
Quick response in
resolving CVE/
vulnerabilities and
attacks in platform
Longevity
Long-term support at
least 10 years life cycle
with bug fixes, new
features and new
hardware components
60
Fuzz testing
[64][65][66]
…
24/ 7 Long-term Platform Test
Reliability
Reliability is enhanced
by features that help to
avoid, detect and repair
hardware faults [72]
Security
Quick response in
resolving CVE/
vulnerabilities and
attacks in platform
61
Power failure test
Reboot test
Regression test
…
24/ 7 Long-term Platform Test
Security
Quick response in
resolving CVE/
vulnerabilities and
attacks in platform
62
Daily test for CVE [63]
…
For Stable Kernel Maintenance
• Automated Linux Kernel Testing [73][74]
– Detect, bisect, report and fix regressions on upstream
Kernel trees before release
– Short tests on many configurations
63
KernelCI
Reproducible Builds [75]
64
• Create an independently-verifiable path from source
to binary
– Ensure builds have identical results
– Act as part of a chain of trust
– Prove the source code has not been tampered/modified
Open Source Testing Tools
Continuous Integration • Jenkins [78]
• Jenkins X [79]
Continuous Delivery/ Deployment • LAVA 2 [57]
Distributed compiler service • icecc [55]
• GOMA [80][81]
• distcc [82]
Test Case Management • Jenkins
• LAVA 2
• Fuego [68][69]
Version Control • Git with gitlab [83]
Static Program Analysis • Coding style
• OWASP [52]
• Infer [53]
• Sonarqube [54]
Dynamic Program Analysis • Gcov [59]
• Valgrind [60]
• Profiling tools [61]
Security Testing • OpenVAS [63]
• Vuls [84]
Fuzzing Testing • Syzkaller [64]
• Trinity [65]
• OSS-fuzz [66]
65
CI/ CD/ LT are
concepts of software engineering
instead of
tools or procedures
66
Maintenance Phase
Hardware
Survey
Long-term
Test
Kernel/ RFS
Preparation
4321
Regular
Update
67
Bug fixes
Security
fixes
New userspace
program
New kernel
features
Why We Need Software Update?
Over 10+ years
Maintenance release
68
The Components Might Be Updated
69
Components Size Update frequency Risk
Peripheral devices
firmware
< 10 MB Rarely Mid
Bootloader
(including SPL)
< 1 MB Rarely High
Device tree <100 kB Rarely High
Linux kernel < 10 MB Regularly High
Root file system Variant Regularly High
System
configuration
< 1 MB Rarely Low
Application Variant Often Low
Characteristics of Industrial Embedded
Linux Platform
70
1
Multiple devices
Remote management
5
Middle of nowhere
Human-less warehouse or site
Harsh environment
Unreliable network and power supply
2
Bandwidth limited
Wireless focus
3
Multiple version supported
Rollback version
4
Longevity
Long-term support at least 10 years life cycle
6
The Media for Software Update
71
Wire cable OTA
Portable
storage
On-site
Software Update Requirements
72
Basic Features
Fail-safe
Roll-back
Size reduction
Signatures
Multiple storage type support (e.g., NOR/NAND flash, eMMC)
Build system integration
Remote access (e.g., OTA)
Additional Features
Online and offline updates
Encryption
Delta-updates
Successful update detection
Proactive updating
Update Approaches
73
Components Size Complexity Time Cost
Image/ block based Large Low Very High
File based Variant Low Variant
Package based
(e.g., deb, rpm)
Variant Low Variant
Delta based Low Very High Low
Partition Architecture
74
Application Framework
Middleware/ Libraries
Linux kernel, (device
tree)
Bootloader/ Firmware
Application
Root file system
User Data/ Configuration
OS
Asymmetric/ Symmetric Firmware Updates [85]
75
Bootloader/ Firmware
Recovery OS
User Data/ Configuration
Main OS
Bootloader/ Firmware
Main OS – A (Active)
User Data/ Configuration
Main OS – B (Inactive)
Asymmetric Firmware Updates
• Fail-safe
• Downtime
Symmetric Firmware Updates
• Seamless update
• Roll-back
• Fail-safe
• Double copy of OS
Comparison - Features
76
Category
Fail-
Safe
Roll-
Back
Delta-
Updates
Signatures
Multiple Storage
Type Support
Build
System
Integration
SWUpdate Y Y librsync Y
•NOR NAND flashes
•UBI volumes
•SD / eMMC
Yocto/
Buildroot
RAUC Y Y casync Y
•NOR NAND flashes
•UBI volumes
•SD / eMMC
Yocto/
Buildroot
OSTree N Y
archive-
z2
Y ? Yocto
Comparison - Others
77
Method
Asymmetric/
Symmetric
Image
Updates
Type Language License
SWUpdate Both
Image-based
File-based
C99
GPLv2
With openssl
exception
RAUC Both
Image-based
File-based
C LGPLv2.1
OSTree Asymmetric File-based C/C++
MPL 2.0
/LGPLv2+
78
Community
Collaboration
Different approach for
multiple target applications
Preparedness
Planning
Conclusion
Longevity, stability and
security
© Moxa Inc. All rights reserved.
Thank You
80
References
[1] https://www.openchainproject.org
[2] https://www.openinventionnetwork.com/
[3] https://spdx.org/
[4] https://www.fossology.org/
[5] https://en.wikipedia.org/wiki/Das_U-Boot
[6] https://en.wikipedia.org/wiki/Coreboot
[7] https://en.wikipedia.org/wiki/Booting#Modern_boot_loaders
[8] http://www.rodsbooks.com/refind/
[9] https://en.wikipedia.org/wiki/REFInd
[10] https://www.kernel.org
[11] https://wiki.linuxfoundation.org/realtime/start
[12] https://tiny.wiki.kernel.org/start
[13] https://bootlin.com/pub/conferences/2017/jdll/opdenacker-embedded-
linux-in-less-than-4mb-of-ram/opdenacker-embedded-linux-in-less-than-
4mb-of-ram.pdf
[14] https://xenomai.org/
[15] https://www.rtai.org/
81
References
[16] https://www.kernel.org/category/releases.html
[17] https://ltsi.linuxfoundation.org/
[18] https://events.linuxfoundation.org/wp-content/uploads/2017/11/Using-
Linux-for-Long-Term-Community-Status-and-the-Way-We-Go-OSS-Tsugikazu-
Shibata.pdf
[19] https://www.cip-project.org/
[20] https://elisa.tech/
[21] http://www.osadl.org/SIL2LinuxMP.sil2-linux-project.0.html
[22] https://wiki.linuxfoundation.org/gsoc/2019-gsoc-safety-critical-Linux
[23] https://lists.elisa.tech/login?r=%2Ftopics
[24] https://events.static.linuxfound.org/sites/events/files/slides/libc-talk.pdf
[25] https://www.gnu.org/software/libc/
[26] https://uclibc-ng.org/
[27] http://events.linuxfoundation.org/sites/events/files/slides/uclibc-still-
makes-sense-brodkin-elce2017.pdf
[28] https://www.musl-libc.org/
[29] https://en.wikipedia.org/wiki/Year_2038_problem
82
References
[30] https://en.wikipedia.org/wiki/Linux_startup_process
[31] http://upstart.ubuntu.com/faq.html
[32] https://en.wikipedia.org/wiki/Systemd
[33] https://sysdfree.wordpress.com/2019/03/09/135/
[34] https://wiki.gentoo.org/wiki/Comparison_of_init_systems
[35] https://elinux.org/images/6/69/Demystifying_Systemd.pdf
[36] http://proteanos.com/
[37] https://www.piboxproject.com/
[38] https://lists.debian.org/debian-devel/2016/02/msg00122.html
[39] https://busybox.net/FAQ.html#libc
[40] https://wiki.yoctoproject.org/wiki/Stable_branch_maintenance
[41] https://www.debian.org/social_contract#guidelines
[42] https://bootlin.com/pub/conferences/2018/elc/petazzoni-
buildroot-whats-new/petazzoni-buildroot-whats-new.pdf
83
References
[43] https://events.static.linuxfound.org/sites/events/files/slides/libc-talk.pdf
[44]
http://events17.linuxfoundation.org/sites/events/files/slides/ELC%202016%20-
%20Designing%20a%20distro%20from%20scratch%20using%20OpenEmbedd
ed.pdf
[45] https://github.com/meta-debian/meta-debian
[46] https://events.linuxfoundation.org/wp-
content/uploads/2017/12/ELCE2018_Debian-Yocto-State-of-the-
Art_r6_Kazuhiro-Hayashi.pdf
[47] https://events.linuxfoundation.org/wp-content/uploads/2017/12/Buildroot-
vs-Yocto-Differences-for-Your-Daily-Job-Luca-Ceresoli-AIM-Sportline.pdf
[48] https://events.static.linuxfound.org/sites/events/files/slides/belloni-
petazzoni-buildroot-oe_0.pdf
[49] https://www.debian.org/intro/why_debian.en.html
[50] https://www.debian.org/security/index.en.html
[51] http://events.linuxfoundation.org/sites/events/files/slides/Build
ing%2C%20Deploying%20and%20Testing%20an%20Industrial%20Linux%
20Platform.pdf
84
References
[52] https://wiki.jenkins-ci.org/display/JENKINS/Plugins
[53] http://fbinfer.com/
[54] https://www.sonarqube.org/
[55] https://github.com/icecc
[56] https://www.slideshare.net/szlin/distributed-compiler-icecc
[57] https://validation.linaro.org/static/docs/v2/#
[58] http://elinux.org/images/3/35/LAVA_Project_Update.pdf
[59] https://gcc.gnu.org/onlinedocs/gcc/Gcov.html
[60] http://valgrind.org/
[61] https://perf.wiki.kernel.org/index.php/Main_Page
[62] http://linux-test-project.github.io/
[63] http://www.openvas.org/
[64] https://github.com/google/syzkaller
[65] http://codemonkey.org.uk/projects/trinity/
[66] https://github.com/google/oss-fuzz
[67] https://kselftest.wiki.kernel.org
85
References
[68] https://elinux.org/Fuego
[69] http://fuegotest.org/
[70] https://elinux.org/Automated_Testing_Summit_2019
[71] https://en.wikipedia.org/wiki/Robustness_(computer_science)
[72] https://en.wikipedia.org/wiki/Reliability,_availability_and_serviceability
[73] https://kernelci.org/
[74]
https://fosdem.org/2019/schedule/event/kernelci_a_new_dawn/attachment
s/slides/3300/export/events/attachments/kernelci_a_new_dawn/slides/3300
/gtucker_kernelci_fosdem_2019_v2_3_1024x768.pdf
[75] https://reproducible-builds.org/
[76] http://layer-acht.org/slides/2019-06-08-MiniDebConf-Hamburg--aiming-for-
bullseye/#/7
[77] https://wiki.debian.org/ReproducibleBuilds
[78] https://jenkins.io
[79] https://jenkins.io/projects/jenkins-x/
[80] https://chromium.googlesource.com/infra/goma/server/
[81] https://chromium.googlesource.com/infra/goma/client
86
References
[82] https://github.com/distcc/distcc
[83] https://about.gitlab.com/
[84] https://vuls.io/
[85] https://mkrak.org/wp-content/uploads/2018/04/FOSS-
NORTH_2018_Software_Updates.pdf
[86] https://events.linuxfoundation.org/wp-content/uploads/2017/12/Strategies-for-
Developing-and-Deploying-your-Embedded-Applications-and-Images-Mirza-Krak-
Mender.io_.pdf
[87]
http://events17.linuxfoundation.org/sites/events/files/slides/ELC2017_SWUpdate.p
df
[88] https://events.linuxfoundation.org/wp-content/uploads/2017/12/ELCE-2018-
Update-Tools-BoF_Jan-Lubbe.pdf
[89] https://events.linuxfoundation.org/wp-content/uploads/2017/12/ELCE-2018-
Update-Tools-BoF_Jan-Lubbe.pdf
[90] https://elinux.org/images/f/f5/Embedded_Systems_Software_Update_for_IoT.pdf
[91] https://rauc.readthedocs.io/en/latest/
[92] http://elinux.org/images/6/6e/End_of_Time_--_Embedded_Linux_Conference_2015.pdf
[93] https://android.googlesource.com/platform/bionic
87

More Related Content

What's hot

HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...
HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...
HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...Linaro
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)RuggedBoardGroup
 
20111015 勉強会 (PCIe / SR-IOV)
20111015 勉強会 (PCIe / SR-IOV)20111015 勉強会 (PCIe / SR-IOV)
20111015 勉強会 (PCIe / SR-IOV)Kentaro Ebisawa
 
Learning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device DriverLearning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device DriverNanik Tolaram
 
Bd master guide extract encapsulated bios
Bd master guide extract encapsulated biosBd master guide extract encapsulated bios
Bd master guide extract encapsulated biosIman Teguh Pribadi
 
Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Thomas Petazzoni
 
“Making Edge AI Inference Programming Easier and Flexible,” a Presentation fr...
“Making Edge AI Inference Programming Easier and Flexible,” a Presentation fr...“Making Edge AI Inference Programming Easier and Flexible,” a Presentation fr...
“Making Edge AI Inference Programming Easier and Flexible,” a Presentation fr...Edge AI and Vision Alliance
 
Achieving the ultimate performance with KVM
Achieving the ultimate performance with KVM Achieving the ultimate performance with KVM
Achieving the ultimate performance with KVM ShapeBlue
 
Secure boot general
Secure boot generalSecure boot general
Secure boot generalPrabhu Swamy
 
Automotive embedded systems part6 v1
Automotive embedded systems part6 v1Automotive embedded systems part6 v1
Automotive embedded systems part6 v1Keroles karam khalil
 
Language translation with Deep Learning (RNN) with TensorFlow
Language translation with Deep Learning (RNN) with TensorFlowLanguage translation with Deep Learning (RNN) with TensorFlow
Language translation with Deep Learning (RNN) with TensorFlowS N
 

What's hot (20)

HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...
HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...
HKG18-411 - Introduction to OpenAMP which is an open source solution for hete...
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
 
Qnx os
Qnx osQnx os
Qnx os
 
Linux Internals - Part I
Linux Internals - Part ILinux Internals - Part I
Linux Internals - Part I
 
20111015 勉強会 (PCIe / SR-IOV)
20111015 勉強会 (PCIe / SR-IOV)20111015 勉強会 (PCIe / SR-IOV)
20111015 勉強会 (PCIe / SR-IOV)
 
Qnx os
Qnx os Qnx os
Qnx os
 
Qemu
QemuQemu
Qemu
 
Video Drivers
Video DriversVideo Drivers
Video Drivers
 
Learning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device DriverLearning AOSP - Android Linux Device Driver
Learning AOSP - Android Linux Device Driver
 
Bd master guide extract encapsulated bios
Bd master guide extract encapsulated biosBd master guide extract encapsulated bios
Bd master guide extract encapsulated bios
 
Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)
 
Android 10
Android 10Android 10
Android 10
 
“Making Edge AI Inference Programming Easier and Flexible,” a Presentation fr...
“Making Edge AI Inference Programming Easier and Flexible,” a Presentation fr...“Making Edge AI Inference Programming Easier and Flexible,” a Presentation fr...
“Making Edge AI Inference Programming Easier and Flexible,” a Presentation fr...
 
Achieving the ultimate performance with KVM
Achieving the ultimate performance with KVM Achieving the ultimate performance with KVM
Achieving the ultimate performance with KVM
 
Secure boot general
Secure boot generalSecure boot general
Secure boot general
 
Automotive embedded systems part6 v1
Automotive embedded systems part6 v1Automotive embedded systems part6 v1
Automotive embedded systems part6 v1
 
Language translation with Deep Learning (RNN) with TensorFlow
Language translation with Deep Learning (RNN) with TensorFlowLanguage translation with Deep Learning (RNN) with TensorFlow
Language translation with Deep Learning (RNN) with TensorFlow
 
USB 3.0
USB 3.0USB 3.0
USB 3.0
 
Embedded Linux - Building toolchain
Embedded Linux - Building toolchainEmbedded Linux - Building toolchain
Embedded Linux - Building toolchain
 
Deep Dive into the AOSP
Deep Dive into the AOSPDeep Dive into the AOSP
Deep Dive into the AOSP
 

Similar to Using open source software to build an industrial grade embedded linux platform from scratch - Open Source Summit Japan 2019

Design, Build,and Maintain the Embedded Linux Platform
Design, Build,and Maintain the Embedded Linux PlatformDesign, Build,and Maintain the Embedded Linux Platform
Design, Build,and Maintain the Embedded Linux PlatformSZ Lin
 
Software update for embedded systems
Software update for embedded systemsSoftware update for embedded systems
Software update for embedded systemsSZ Lin
 
Embedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practice
Embedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practiceEmbedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practice
Embedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practiceEmbeddedFest
 
Open source Android 10 on Orange Pi: Meth or Reality?
Open source Android 10 on Orange Pi: Meth or Reality?Open source Android 10 on Orange Pi: Meth or Reality?
Open source Android 10 on Orange Pi: Meth or Reality?GlobalLogic Ukraine
 
2008-09-09 IBM Interaction Conference, Red Hat Update for System z
2008-09-09 IBM Interaction Conference, Red Hat Update for System z2008-09-09 IBM Interaction Conference, Red Hat Update for System z
2008-09-09 IBM Interaction Conference, Red Hat Update for System zShawn Wells
 
Linux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy serversLinux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy serversVladimir Shakhov
 
Cross-compilation native sous android
Cross-compilation native sous androidCross-compilation native sous android
Cross-compilation native sous androidThierry Gayet
 
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processorUplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processorSatya Harish
 
ERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsChristian Charreyre
 
Linux on System z Update: Current & Future Linux on System z Technology
Linux on System z Update: Current & Future Linux on System z TechnologyLinux on System z Update: Current & Future Linux on System z Technology
Linux on System z Update: Current & Future Linux on System z TechnologyIBM India Smarter Computing
 
Manage kernel vulnerabilities in the software development lifecycle
Manage kernel vulnerabilities in the software development lifecycleManage kernel vulnerabilities in the software development lifecycle
Manage kernel vulnerabilities in the software development lifecycleSZ Lin
 
2009-09-24 Get the Hype on System z Webinar with IBM, Current & Future Linux ...
2009-09-24 Get the Hype on System z Webinar with IBM, Current & Future Linux ...2009-09-24 Get the Hype on System z Webinar with IBM, Current & Future Linux ...
2009-09-24 Get the Hype on System z Webinar with IBM, Current & Future Linux ...Shawn Wells
 
Civil Infrastructure Platform: Industrial Grade SLTS Kernel and Base-layer De...
Civil Infrastructure Platform: Industrial Grade SLTS Kernel and Base-layer De...Civil Infrastructure Platform: Industrial Grade SLTS Kernel and Base-layer De...
Civil Infrastructure Platform: Industrial Grade SLTS Kernel and Base-layer De...Yoshitake Kobayashi
 
SLTS kernel and base-layer development in the Civil Infrastructure Platform
SLTS kernel and base-layer development in the Civil Infrastructure PlatformSLTS kernel and base-layer development in the Civil Infrastructure Platform
SLTS kernel and base-layer development in the Civil Infrastructure PlatformYoshitake Kobayashi
 

Similar to Using open source software to build an industrial grade embedded linux platform from scratch - Open Source Summit Japan 2019 (20)

Design, Build,and Maintain the Embedded Linux Platform
Design, Build,and Maintain the Embedded Linux PlatformDesign, Build,and Maintain the Embedded Linux Platform
Design, Build,and Maintain the Embedded Linux Platform
 
Software update for embedded systems
Software update for embedded systemsSoftware update for embedded systems
Software update for embedded systems
 
Advancement on embedded linux-v2
Advancement on embedded linux-v2Advancement on embedded linux-v2
Advancement on embedded linux-v2
 
Embedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practice
Embedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practiceEmbedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practice
Embedded Fest 2019. Wei Fu. Linux on RISC-V--Fedora and Firmware in practice
 
Linux internals v4
Linux internals v4Linux internals v4
Linux internals v4
 
Open source Android 10 on Orange Pi: Meth or Reality?
Open source Android 10 on Orange Pi: Meth or Reality?Open source Android 10 on Orange Pi: Meth or Reality?
Open source Android 10 on Orange Pi: Meth or Reality?
 
2008-09-09 IBM Interaction Conference, Red Hat Update for System z
2008-09-09 IBM Interaction Conference, Red Hat Update for System z2008-09-09 IBM Interaction Conference, Red Hat Update for System z
2008-09-09 IBM Interaction Conference, Red Hat Update for System z
 
Linux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy serversLinux firmware for iRMC controller on Fujitsu Primergy servers
Linux firmware for iRMC controller on Fujitsu Primergy servers
 
Cross-compilation native sous android
Cross-compilation native sous androidCross-compilation native sous android
Cross-compilation native sous android
 
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processorUplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
 
ERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projectsERTS 2008 - Using Linux for industrial projects
ERTS 2008 - Using Linux for industrial projects
 
Linux on System z Update: Current & Future Linux on System z Technology
Linux on System z Update: Current & Future Linux on System z TechnologyLinux on System z Update: Current & Future Linux on System z Technology
Linux on System z Update: Current & Future Linux on System z Technology
 
Manage kernel vulnerabilities in the software development lifecycle
Manage kernel vulnerabilities in the software development lifecycleManage kernel vulnerabilities in the software development lifecycle
Manage kernel vulnerabilities in the software development lifecycle
 
Building
BuildingBuilding
Building
 
What's New in RHEL 6 for Linux on System z?
What's New in RHEL 6 for Linux on System z?What's New in RHEL 6 for Linux on System z?
What's New in RHEL 6 for Linux on System z?
 
2009-09-24 Get the Hype on System z Webinar with IBM, Current & Future Linux ...
2009-09-24 Get the Hype on System z Webinar with IBM, Current & Future Linux ...2009-09-24 Get the Hype on System z Webinar with IBM, Current & Future Linux ...
2009-09-24 Get the Hype on System z Webinar with IBM, Current & Future Linux ...
 
Civil Infrastructure Platform: Industrial Grade SLTS Kernel and Base-layer De...
Civil Infrastructure Platform: Industrial Grade SLTS Kernel and Base-layer De...Civil Infrastructure Platform: Industrial Grade SLTS Kernel and Base-layer De...
Civil Infrastructure Platform: Industrial Grade SLTS Kernel and Base-layer De...
 
ch20.ppt
ch20.pptch20.ppt
ch20.ppt
 
Presentation on linux
Presentation on linuxPresentation on linux
Presentation on linux
 
SLTS kernel and base-layer development in the Civil Infrastructure Platform
SLTS kernel and base-layer development in the Civil Infrastructure PlatformSLTS kernel and base-layer development in the Civil Infrastructure Platform
SLTS kernel and base-layer development in the Civil Infrastructure Platform
 

More from SZ Lin

Industry Insights Common Pitfalls and Key Considerations in Using Software Bi...
Industry Insights Common Pitfalls and Key Considerations in Using Software Bi...Industry Insights Common Pitfalls and Key Considerations in Using Software Bi...
Industry Insights Common Pitfalls and Key Considerations in Using Software Bi...SZ Lin
 
Select, manage, and backport the long term stable kernels
Select, manage, and backport the long term stable kernelsSelect, manage, and backport the long term stable kernels
Select, manage, and backport the long term stable kernelsSZ Lin
 
OpenChain 2.0 specification in a nutshell
OpenChain 2.0 specification in a nutshellOpenChain 2.0 specification in a nutshell
OpenChain 2.0 specification in a nutshellSZ Lin
 
OpenChain - The Industry Standard for Open Source Compliance
OpenChain - The Industry Standard for Open Source ComplianceOpenChain - The Industry Standard for Open Source Compliance
OpenChain - The Industry Standard for Open Source ComplianceSZ Lin
 
[ELCE] Activities of super long term support kernel workgroup in civil infras...
[ELCE] Activities of super long term support kernel workgroup in civil infras...[ELCE] Activities of super long term support kernel workgroup in civil infras...
[ELCE] Activities of super long term support kernel workgroup in civil infras...SZ Lin
 
Take a step forward from user to maintainer or developer in open source secur...
Take a step forward from user to maintainer or developer in open source secur...Take a step forward from user to maintainer or developer in open source secur...
Take a step forward from user to maintainer or developer in open source secur...SZ Lin
 
OpenChain spec 2.0 繁體中文
OpenChain spec 2.0 繁體中文OpenChain spec 2.0 繁體中文
OpenChain spec 2.0 繁體中文SZ Lin
 
Introduction to Civil Infrastructure Platform
Introduction to Civil Infrastructure PlatformIntroduction to Civil Infrastructure Platform
Introduction to Civil Infrastructure PlatformSZ Lin
 
Long-term Maintenance Model of Embedded Industrial Linux Distribution
Long-term Maintenance Model of Embedded Industrial Linux DistributionLong-term Maintenance Model of Embedded Industrial Linux Distribution
Long-term Maintenance Model of Embedded Industrial Linux DistributionSZ Lin
 
Building, deploying and testing an industrial linux platform @ Open source su...
Building, deploying and testing an industrial linux platform @ Open source su...Building, deploying and testing an industrial linux platform @ Open source su...
Building, deploying and testing an industrial linux platform @ Open source su...SZ Lin
 
Embedded Linux/ Debian with ARM64 Platform
Embedded Linux/ Debian with ARM64 PlatformEmbedded Linux/ Debian with ARM64 Platform
Embedded Linux/ Debian with ARM64 PlatformSZ Lin
 
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯Debian 套件打包教學指南 v0.19 - 繁體中文翻譯
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯SZ Lin
 
Cellular technology with Embedded Linux - COSCUP 2016
Cellular technology with Embedded Linux - COSCUP 2016Cellular technology with Embedded Linux - COSCUP 2016
Cellular technology with Embedded Linux - COSCUP 2016SZ Lin
 
Learning notes on Open Source License
Learning notes on Open Source License Learning notes on Open Source License
Learning notes on Open Source License SZ Lin
 
y2038 issue
y2038 issuey2038 issue
y2038 issueSZ Lin
 
Debian 套件打包教學指南 - 繁體中文翻譯
Debian 套件打包教學指南 - 繁體中文翻譯Debian 套件打包教學指南 - 繁體中文翻譯
Debian 套件打包教學指南 - 繁體中文翻譯SZ Lin
 
Fast boot
Fast bootFast boot
Fast bootSZ Lin
 
Distributed Compiler Icecc
Distributed Compiler IceccDistributed Compiler Icecc
Distributed Compiler IceccSZ Lin
 
淺談 Live patching technology
淺談 Live patching technology淺談 Live patching technology
淺談 Live patching technologySZ Lin
 

More from SZ Lin (19)

Industry Insights Common Pitfalls and Key Considerations in Using Software Bi...
Industry Insights Common Pitfalls and Key Considerations in Using Software Bi...Industry Insights Common Pitfalls and Key Considerations in Using Software Bi...
Industry Insights Common Pitfalls and Key Considerations in Using Software Bi...
 
Select, manage, and backport the long term stable kernels
Select, manage, and backport the long term stable kernelsSelect, manage, and backport the long term stable kernels
Select, manage, and backport the long term stable kernels
 
OpenChain 2.0 specification in a nutshell
OpenChain 2.0 specification in a nutshellOpenChain 2.0 specification in a nutshell
OpenChain 2.0 specification in a nutshell
 
OpenChain - The Industry Standard for Open Source Compliance
OpenChain - The Industry Standard for Open Source ComplianceOpenChain - The Industry Standard for Open Source Compliance
OpenChain - The Industry Standard for Open Source Compliance
 
[ELCE] Activities of super long term support kernel workgroup in civil infras...
[ELCE] Activities of super long term support kernel workgroup in civil infras...[ELCE] Activities of super long term support kernel workgroup in civil infras...
[ELCE] Activities of super long term support kernel workgroup in civil infras...
 
Take a step forward from user to maintainer or developer in open source secur...
Take a step forward from user to maintainer or developer in open source secur...Take a step forward from user to maintainer or developer in open source secur...
Take a step forward from user to maintainer or developer in open source secur...
 
OpenChain spec 2.0 繁體中文
OpenChain spec 2.0 繁體中文OpenChain spec 2.0 繁體中文
OpenChain spec 2.0 繁體中文
 
Introduction to Civil Infrastructure Platform
Introduction to Civil Infrastructure PlatformIntroduction to Civil Infrastructure Platform
Introduction to Civil Infrastructure Platform
 
Long-term Maintenance Model of Embedded Industrial Linux Distribution
Long-term Maintenance Model of Embedded Industrial Linux DistributionLong-term Maintenance Model of Embedded Industrial Linux Distribution
Long-term Maintenance Model of Embedded Industrial Linux Distribution
 
Building, deploying and testing an industrial linux platform @ Open source su...
Building, deploying and testing an industrial linux platform @ Open source su...Building, deploying and testing an industrial linux platform @ Open source su...
Building, deploying and testing an industrial linux platform @ Open source su...
 
Embedded Linux/ Debian with ARM64 Platform
Embedded Linux/ Debian with ARM64 PlatformEmbedded Linux/ Debian with ARM64 Platform
Embedded Linux/ Debian with ARM64 Platform
 
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯Debian 套件打包教學指南 v0.19 - 繁體中文翻譯
Debian 套件打包教學指南 v0.19 - 繁體中文翻譯
 
Cellular technology with Embedded Linux - COSCUP 2016
Cellular technology with Embedded Linux - COSCUP 2016Cellular technology with Embedded Linux - COSCUP 2016
Cellular technology with Embedded Linux - COSCUP 2016
 
Learning notes on Open Source License
Learning notes on Open Source License Learning notes on Open Source License
Learning notes on Open Source License
 
y2038 issue
y2038 issuey2038 issue
y2038 issue
 
Debian 套件打包教學指南 - 繁體中文翻譯
Debian 套件打包教學指南 - 繁體中文翻譯Debian 套件打包教學指南 - 繁體中文翻譯
Debian 套件打包教學指南 - 繁體中文翻譯
 
Fast boot
Fast bootFast boot
Fast boot
 
Distributed Compiler Icecc
Distributed Compiler IceccDistributed Compiler Icecc
Distributed Compiler Icecc
 
淺談 Live patching technology
淺談 Live patching technology淺談 Live patching technology
淺談 Live patching technology
 

Recently uploaded

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
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
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
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
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
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
 
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
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
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
 

Recently uploaded (20)

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
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
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
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
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
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
 
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
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
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
 

Using open source software to build an industrial grade embedded linux platform from scratch - Open Source Summit Japan 2019

  • 1. Using Open Source Software to Build an Industrial-grade Embedded Linux Platform from Scratch SZ Lin (林上智) Embedded Linux Development Center, Software R&D Engineer 07/19, 2019 Open Source Summit Japan 2019
  • 2. About Me SZ LIN (林上智)  Software Engineer at Moxa  Cybersecurity Fundamentals Specialist  ISA/ IEC 62443  Debian Developer  Blog - https://szlin.me 2
  • 3. Smart Grid Smart Rail Smart Oil Field Smart Factory Smart Transportation Smart Marine Application Device Industrial Routers Industrial Ethernet Industrial Wireless LAN Network Infrastructure Embedded Computers Industrial Computing Industrial Embedded Linux Platforms Serial Connectivity I/O Connectivity Video Connectivity Edge Connectivity 3
  • 4. Before Using Open Source Software Something You Should Know 4
  • 5. 5 Copyright Patent A patent gives its owner the right to exclude others from making, using, selling, and importing an invention for a limited period of time, usually twenty years. src: https://en.wikipedia.org/wiki/Patent Copyright is a legal right, that grants the creator of an original work exclusive rights to determine whether, and under what conditions, this original work may be used by others src: https://en.wikipedia.org/wiki/Copyright
  • 6. 6 Copyright Patent Identify key recommended processes for effective open source management [1]. It is a shared defensive patent pool with the mission to protect Linux [2].
  • 7. Processes, Tooling and Support 7 OpenChain Trust between entities in the supply chain The OpenChain Project builds trust in open source by making open source license compliance simpler and more consistent SPDX [3] Trust for software packages Software Package Data Exchange (SPDX) is a file format used to document information on the software licenses under which a given piece of computer software is distributed. FOSSology [4] Free scanning technology FOSSology is a open source license compliance software system and toolkit
  • 8. Industrial/ Harsh Environments Including smart rail, smart grid, intelligent transportation, factory automation, oil & gas, marine, and more 8
  • 9. Longevity + Stability + Security Target Application 9 Performance Real-time Safety Resource Limited
  • 10. Longevity + Stability + Security Target Application 10 Performance Real-time Safety Resource Limited SoftwareHardware
  • 11. Maintenance PhaseDevelopment Phase System Preparation Regular UpdateBuild and Testing 4321 Long-term Test Lifecycle of Industrial-grade Embedded Linux Platform 11
  • 12. Development Phase Design and development according to application 12
  • 13. 13 User Applications GNU/ Linux GNU C library Init system User Space Kernel Space Hardware and peripheral devices Architecture-dependent firmware Bootloader Kernel System call interface Toolchain Root filesystem
  • 16. 16 Category License Supported Platforms Supported UEFI Maintainer Das U-Boot [5] GPL-2+ 68k, ARM, Blackfin, MicroBlaze, MIPS, Nios, SuperH, PPC, RISC-V, x86 (on top of Coreboot) Y DENX Software Engineering Coreboot [6] GPL-2 IA-32, x86-64, ARMv7, ARMv8, MIPS, RISC-V, POWER8 Y coreboot.org GRUB GPL-3 IA-32, x86-64, IA-64, ARM, PowerPC, MIPS and SPARC Y GNU Project rEFInd [9] GNU GPLv3, Modified BSD License (original program), additional components released under various licenses x86, x86-64, or ARM64 Y Roderick W. Smith
  • 18. Based on the application requirement 18 Choose Proper Kernel
  • 19. Linux Kernel Comparison Table Category Latest version Target Application Maintainer Linux kernel 5.2 • Performance • Resource Limited [12] [13] Kernel.org Preempt RT kernel 5.2 • Real-time • Functional safety • Resource Limited Real Time Linux collaborative project 19 *Real-time application [14][15]
  • 20. SoC Board Support Package Kernel • Kernel version depends on SoC vendors – Well made but not well maintained • Contain lots of in-house patches – Errata patches – Specific feature patches – … • Different SoC might use different versions of kernel • The lifetime is unsure 20
  • 21. LTS: Long Term Stable Kernel [16] Extend software uptime for stable kernel • Only accept bug fixes and security fixes img: https://www.kernel.org/category/releases.html 21
  • 22. LTSI: Long Term Support Initiative [17] • Linux Foundation collaborative project – Based on LTS – Add another chance to include further patches on top of LTS – Auto Test framework – Same lifetime with LTS (yearly release and 2 years life time) 22
  • 23. CIP (Civil Infrastructure Platform) [19] • Linux Foundation collaborative project – Support kernel and core package – Auto Test framework – Maintenance period • 10 years and more (10-20 years) 23
  • 25. Linux Kernel Source Comparison Table Version Maintenance Period (years) Features Latest Version Supported Realtime kernel Maintainer SoC BSP kernel ? Bug fixes ? N SoC vendor kernel team LTS kernel 2 ~ ? • Bug fixes • Security fixes 4.19 N Kernel.org LTSI kernel 2 ~ ? • Bug fixes • Security fixes • Specific features • New features 4.14 N LTSI CIP kernel 10 + • Bug fixes • Security fixes • Specific features • New features 4.19 Y CIP 25
  • 26. 26 Longevity + Stability + Security Performance Real-time Safety Resource Limited Mutually Exclusive ?
  • 27. To fulfill multiple user scenarios 27 Multiple Kernel In Single Platform
  • 28. FIT (Flattened Image Tree) • Tree data structure • Handle multiple types of image – kernel : kernel image – fdt : dtb file – ramdisk : root file system • Image hashing – md5 – sha1 • Image signing • Each node in configurations has their image configuration in booting stage (A case of ARM-based architecture) 28
  • 31. ELISA: Safety-Critical Systems [20] 31 • Linux Foundation collaborative project – Build and certify Linux-based safety-critical applications – Define and maintain a common set of tools and processes • SIL2LinuxMP [21] project and the Linux Foundation’s Real-Time Linux project – IEC 61508
  • 32. 32 Choose Proper C Library and Toolchain
  • 33. C Library and Toolchain Comparison Table Category License Features Target Application Maintainer User glibc [25] LGPL 2.1 • Stable ABI • Backward compatibility • Fully symbol versioning • Stack smashing protection/ heap corruption detection • Profiling • Performance • Security GNU uClibc-ng [26] LGPL 2.1 • No-MMU architecture support • Tiny size • Resource Limited uclibc-ng.org Musl [28] MIT • Stable ABI • Backward compatibility • Stack smashing protection/ heap corruption detection • Resource Limited • Security musl-libc.org 33 * Be aware of year 2038 problem [29]Other option [93]
  • 34. Year 2038 Problem [92] • The time_t datatype is a data type in the ISO C library and kernel structure defined for storing system time values. • 32-bit system can represent dates from  Dec 13 1901  Jan 19th 2038 • It causes integer overflowing on 03:14:08 UTC 19 January 2038 34
  • 36. Init System Comparison Table Category License C Library User Note busybox GPL 2.0 uClinux-ng Glibc musl ProteanOS PiBox Resource- limited application sysvinit GPL 2.0+ uClinux-ng glibc musl Devuan systemd LGPL 2.1+ glibc Arch, CentOS, CoreOS, Debian, Fedora, Mint, OpenSUSE, Redhat, Ubuntu Linux only openrc 2-clause BSD musl glibc Gentoo Alpine Linux upstart GPL 2.0 glibc Chromium OS Linux only 36
  • 37. Choose proper RFS (Root filesystem) Stable root filesystem 37
  • 38. Root filesystem Comparison Table Category Maintenance Period (years) Number of packages C Library Security Tracker CI Busybox ? 300 ~ 400 applets • uClibc • glibc ? ? Yocto Latest release the previous two releases It depends on meta-* • glibc • musl Y Y Buildroot 1 2000+ [42] • glibc • musl • uClibc-ng Y Y Debian 3 + 2 (i386, amd64, armel, armhf and arm64) 51000+ • glibc • musl Y Y 38
  • 40. System Development Tools Comparison Table Root filesystem System Development Tools Toolchain System Development Tools License Busybox Yocto OE-Core MIT Yocto Yocto OE-Core MIT Buildroot Buildroot Buildroot GPL 2.0+ Debian ISAR Debian toolchain Metadata: MIT Others: GPL 2.0 ELBE Debian toolchain GPL 3.0+ Yocto Deby (meta- debian) OE-Core MIT Live-build Debian toolchain GPL 3.0+ 40
  • 41. Good system security [50] Everything is open Usually, fixed packages are uploaded within a few days Stability unstable → testing → stable Scalability Server, Desktop, Laptop, Embedded devices Long term support 5 more years by Debian-LTS project (i386, amd64, armel, armhf and arm64) Multiple architectures alpha, amd64, armel, armhf, aarch64, hppa, i386, ia64, mips, mipsel, powerpc, s390, and spar Why We Choose Debian [49] Incredible amounts of software Debian comes with over 51000 different pieces of software with free 41
  • 42. Development Phase System Preparation Build and Testing 4321 42 Long-term Test Regular Update More info: Building, Deploying and Testing an Industrial Linux Platform Open Source Summit Japan 2017 [51]
  • 43. Master Develop Feature .. Merge Pull Request Fork Local Branch Patches Notification Internal/ External Developers CI/ CD Automatic Release Pipeline Maintainer Approval Pass Pass Y Y N N 43
  • 44. CI/ CD Automatic Release Pipeline Building Testing Deploying 4321 Release Continuous Delivery Continuous Deployment Code Continuous Integration 44
  • 45. Code Continuous Integration CI/ CD Automatic Release Pipeline Building Testing Deploying 4321 Release 45
  • 46. Server Slave node Webhooks Patches Internal/ External Developers Local Branch Pull Request Slave node Slave node Static Program Analysis  Coding style  OWASP [52]  Infer [53]  Sonarqube [54]  … 46
  • 47. Static Testing Cases Management - Jenkins 47 Static analysis #1 Static analysis #2 … Static analysis #n
  • 49. Distributed Compiler • Software – Icecream/ IceCC was created by SUSE based on distcc [55][56] • Improve performance of compile jobs in parallel • Add dynamic scheduler of the compilation jobs • Support multiple platform • Support cross compiling • Hardware - for each node – SSD – Large capacity memory – Gigabit LAN 49
  • 50. Client Client Client ICECC - Distributed CompilerServer Patches Internal/ External Developers Local Branch Pull Request 3. Send log & image 50 Webhooks 1. Send command 2. Get source
  • 51. CI/ CD Automatic Release Pipeline Building Testing Deploying 4321 Release Code Continuous Integration Continuous Delivery 51
  • 52. Continuous Delivery – LAVA [57][58] 52
  • 53. 53 Server Master Worker WorkerWorker 1. Send job file via XML-RPC 5. Deployment via TFTP 2. Dispatch job via ZMQ 3. Download image via curl or wget 4. Boot up via Ethernet remote I/O DUT Clusters Dynamic Program Analysis ● gcov [59] ● valgrind [60] ● profiling tools [61] ● ... Platform Test ● LTP [62] ● Security testing [63] ● Kselftest [67] ● ... 7. Send test cases (Test framework) 8. Start testing 6. Trigger test framework 9. Send back testing result
  • 54. Fuego [68][69] • Test framework for testing embedded Linux – Official automated test framework for the LTSI project. • BSD 3-Clause license in default • Over 100 pre-packaged tests – Ability for 3rd parties to initiate or schedule tests on our hardware, and the ability to share our test results with others. 54
  • 55. Master Develop Merge Notification CI/ CD Automatic Release Pipeline Maintainer Approval Pass Pass Y Y N N 55 Image Deployment 24/ 7 Long-term Platform Test
  • 56. Maintenance Phase Long-term Testing and Regular Update 56
  • 57. Maintenance Phase System Preparation Build and Testing 4321 57 Long-term Test Regular Update More info: Building, Deploying and Testing an Industrial Linux Platform Open Source Summit Japan 2017 [51]
  • 58. Notification Test Results 58 * Test cases are managed by test framework
  • 59. 24/ 7 Long-term Platform Test Robustness Robustness is the ability of a computer system to cope with errors during execution and cope with erroneous input [71] Reliability Reliability is enhanced by features that help to avoid, detect and repair hardware faults [72] Security Quick response in resolving CVE/ vulnerabilities and attacks in platform Longevity Long-term support at least 10 years life cycle with bug fixes, new features and new hardware components 59 Endurance test Compatibility test …
  • 60. 24/ 7 Long-term Platform Test Robustness Robustness is the ability of a computer system to cope with errors during execution and cope with erroneous input [71] Reliability Reliability is enhanced by features that help to avoid, detect and repair hardware faults [72] Security Quick response in resolving CVE/ vulnerabilities and attacks in platform Longevity Long-term support at least 10 years life cycle with bug fixes, new features and new hardware components 60 Fuzz testing [64][65][66] …
  • 61. 24/ 7 Long-term Platform Test Reliability Reliability is enhanced by features that help to avoid, detect and repair hardware faults [72] Security Quick response in resolving CVE/ vulnerabilities and attacks in platform 61 Power failure test Reboot test Regression test …
  • 62. 24/ 7 Long-term Platform Test Security Quick response in resolving CVE/ vulnerabilities and attacks in platform 62 Daily test for CVE [63] …
  • 63. For Stable Kernel Maintenance • Automated Linux Kernel Testing [73][74] – Detect, bisect, report and fix regressions on upstream Kernel trees before release – Short tests on many configurations 63 KernelCI
  • 64. Reproducible Builds [75] 64 • Create an independently-verifiable path from source to binary – Ensure builds have identical results – Act as part of a chain of trust – Prove the source code has not been tampered/modified
  • 65. Open Source Testing Tools Continuous Integration • Jenkins [78] • Jenkins X [79] Continuous Delivery/ Deployment • LAVA 2 [57] Distributed compiler service • icecc [55] • GOMA [80][81] • distcc [82] Test Case Management • Jenkins • LAVA 2 • Fuego [68][69] Version Control • Git with gitlab [83] Static Program Analysis • Coding style • OWASP [52] • Infer [53] • Sonarqube [54] Dynamic Program Analysis • Gcov [59] • Valgrind [60] • Profiling tools [61] Security Testing • OpenVAS [63] • Vuls [84] Fuzzing Testing • Syzkaller [64] • Trinity [65] • OSS-fuzz [66] 65
  • 66. CI/ CD/ LT are concepts of software engineering instead of tools or procedures 66
  • 68. Bug fixes Security fixes New userspace program New kernel features Why We Need Software Update? Over 10+ years Maintenance release 68
  • 69. The Components Might Be Updated 69 Components Size Update frequency Risk Peripheral devices firmware < 10 MB Rarely Mid Bootloader (including SPL) < 1 MB Rarely High Device tree <100 kB Rarely High Linux kernel < 10 MB Regularly High Root file system Variant Regularly High System configuration < 1 MB Rarely Low Application Variant Often Low
  • 70. Characteristics of Industrial Embedded Linux Platform 70 1 Multiple devices Remote management 5 Middle of nowhere Human-less warehouse or site Harsh environment Unreliable network and power supply 2 Bandwidth limited Wireless focus 3 Multiple version supported Rollback version 4 Longevity Long-term support at least 10 years life cycle 6
  • 71. The Media for Software Update 71 Wire cable OTA Portable storage On-site
  • 72. Software Update Requirements 72 Basic Features Fail-safe Roll-back Size reduction Signatures Multiple storage type support (e.g., NOR/NAND flash, eMMC) Build system integration Remote access (e.g., OTA) Additional Features Online and offline updates Encryption Delta-updates Successful update detection Proactive updating
  • 73. Update Approaches 73 Components Size Complexity Time Cost Image/ block based Large Low Very High File based Variant Low Variant Package based (e.g., deb, rpm) Variant Low Variant Delta based Low Very High Low
  • 74. Partition Architecture 74 Application Framework Middleware/ Libraries Linux kernel, (device tree) Bootloader/ Firmware Application Root file system User Data/ Configuration OS
  • 75. Asymmetric/ Symmetric Firmware Updates [85] 75 Bootloader/ Firmware Recovery OS User Data/ Configuration Main OS Bootloader/ Firmware Main OS – A (Active) User Data/ Configuration Main OS – B (Inactive) Asymmetric Firmware Updates • Fail-safe • Downtime Symmetric Firmware Updates • Seamless update • Roll-back • Fail-safe • Double copy of OS
  • 76. Comparison - Features 76 Category Fail- Safe Roll- Back Delta- Updates Signatures Multiple Storage Type Support Build System Integration SWUpdate Y Y librsync Y •NOR NAND flashes •UBI volumes •SD / eMMC Yocto/ Buildroot RAUC Y Y casync Y •NOR NAND flashes •UBI volumes •SD / eMMC Yocto/ Buildroot OSTree N Y archive- z2 Y ? Yocto
  • 77. Comparison - Others 77 Method Asymmetric/ Symmetric Image Updates Type Language License SWUpdate Both Image-based File-based C99 GPLv2 With openssl exception RAUC Both Image-based File-based C LGPLv2.1 OSTree Asymmetric File-based C/C++ MPL 2.0 /LGPLv2+
  • 78. 78 Community Collaboration Different approach for multiple target applications Preparedness Planning Conclusion Longevity, stability and security
  • 79. © Moxa Inc. All rights reserved. Thank You
  • 80. 80
  • 81. References [1] https://www.openchainproject.org [2] https://www.openinventionnetwork.com/ [3] https://spdx.org/ [4] https://www.fossology.org/ [5] https://en.wikipedia.org/wiki/Das_U-Boot [6] https://en.wikipedia.org/wiki/Coreboot [7] https://en.wikipedia.org/wiki/Booting#Modern_boot_loaders [8] http://www.rodsbooks.com/refind/ [9] https://en.wikipedia.org/wiki/REFInd [10] https://www.kernel.org [11] https://wiki.linuxfoundation.org/realtime/start [12] https://tiny.wiki.kernel.org/start [13] https://bootlin.com/pub/conferences/2017/jdll/opdenacker-embedded- linux-in-less-than-4mb-of-ram/opdenacker-embedded-linux-in-less-than- 4mb-of-ram.pdf [14] https://xenomai.org/ [15] https://www.rtai.org/ 81
  • 82. References [16] https://www.kernel.org/category/releases.html [17] https://ltsi.linuxfoundation.org/ [18] https://events.linuxfoundation.org/wp-content/uploads/2017/11/Using- Linux-for-Long-Term-Community-Status-and-the-Way-We-Go-OSS-Tsugikazu- Shibata.pdf [19] https://www.cip-project.org/ [20] https://elisa.tech/ [21] http://www.osadl.org/SIL2LinuxMP.sil2-linux-project.0.html [22] https://wiki.linuxfoundation.org/gsoc/2019-gsoc-safety-critical-Linux [23] https://lists.elisa.tech/login?r=%2Ftopics [24] https://events.static.linuxfound.org/sites/events/files/slides/libc-talk.pdf [25] https://www.gnu.org/software/libc/ [26] https://uclibc-ng.org/ [27] http://events.linuxfoundation.org/sites/events/files/slides/uclibc-still- makes-sense-brodkin-elce2017.pdf [28] https://www.musl-libc.org/ [29] https://en.wikipedia.org/wiki/Year_2038_problem 82
  • 83. References [30] https://en.wikipedia.org/wiki/Linux_startup_process [31] http://upstart.ubuntu.com/faq.html [32] https://en.wikipedia.org/wiki/Systemd [33] https://sysdfree.wordpress.com/2019/03/09/135/ [34] https://wiki.gentoo.org/wiki/Comparison_of_init_systems [35] https://elinux.org/images/6/69/Demystifying_Systemd.pdf [36] http://proteanos.com/ [37] https://www.piboxproject.com/ [38] https://lists.debian.org/debian-devel/2016/02/msg00122.html [39] https://busybox.net/FAQ.html#libc [40] https://wiki.yoctoproject.org/wiki/Stable_branch_maintenance [41] https://www.debian.org/social_contract#guidelines [42] https://bootlin.com/pub/conferences/2018/elc/petazzoni- buildroot-whats-new/petazzoni-buildroot-whats-new.pdf 83
  • 84. References [43] https://events.static.linuxfound.org/sites/events/files/slides/libc-talk.pdf [44] http://events17.linuxfoundation.org/sites/events/files/slides/ELC%202016%20- %20Designing%20a%20distro%20from%20scratch%20using%20OpenEmbedd ed.pdf [45] https://github.com/meta-debian/meta-debian [46] https://events.linuxfoundation.org/wp- content/uploads/2017/12/ELCE2018_Debian-Yocto-State-of-the- Art_r6_Kazuhiro-Hayashi.pdf [47] https://events.linuxfoundation.org/wp-content/uploads/2017/12/Buildroot- vs-Yocto-Differences-for-Your-Daily-Job-Luca-Ceresoli-AIM-Sportline.pdf [48] https://events.static.linuxfound.org/sites/events/files/slides/belloni- petazzoni-buildroot-oe_0.pdf [49] https://www.debian.org/intro/why_debian.en.html [50] https://www.debian.org/security/index.en.html [51] http://events.linuxfoundation.org/sites/events/files/slides/Build ing%2C%20Deploying%20and%20Testing%20an%20Industrial%20Linux% 20Platform.pdf 84
  • 85. References [52] https://wiki.jenkins-ci.org/display/JENKINS/Plugins [53] http://fbinfer.com/ [54] https://www.sonarqube.org/ [55] https://github.com/icecc [56] https://www.slideshare.net/szlin/distributed-compiler-icecc [57] https://validation.linaro.org/static/docs/v2/# [58] http://elinux.org/images/3/35/LAVA_Project_Update.pdf [59] https://gcc.gnu.org/onlinedocs/gcc/Gcov.html [60] http://valgrind.org/ [61] https://perf.wiki.kernel.org/index.php/Main_Page [62] http://linux-test-project.github.io/ [63] http://www.openvas.org/ [64] https://github.com/google/syzkaller [65] http://codemonkey.org.uk/projects/trinity/ [66] https://github.com/google/oss-fuzz [67] https://kselftest.wiki.kernel.org 85
  • 86. References [68] https://elinux.org/Fuego [69] http://fuegotest.org/ [70] https://elinux.org/Automated_Testing_Summit_2019 [71] https://en.wikipedia.org/wiki/Robustness_(computer_science) [72] https://en.wikipedia.org/wiki/Reliability,_availability_and_serviceability [73] https://kernelci.org/ [74] https://fosdem.org/2019/schedule/event/kernelci_a_new_dawn/attachment s/slides/3300/export/events/attachments/kernelci_a_new_dawn/slides/3300 /gtucker_kernelci_fosdem_2019_v2_3_1024x768.pdf [75] https://reproducible-builds.org/ [76] http://layer-acht.org/slides/2019-06-08-MiniDebConf-Hamburg--aiming-for- bullseye/#/7 [77] https://wiki.debian.org/ReproducibleBuilds [78] https://jenkins.io [79] https://jenkins.io/projects/jenkins-x/ [80] https://chromium.googlesource.com/infra/goma/server/ [81] https://chromium.googlesource.com/infra/goma/client 86
  • 87. References [82] https://github.com/distcc/distcc [83] https://about.gitlab.com/ [84] https://vuls.io/ [85] https://mkrak.org/wp-content/uploads/2018/04/FOSS- NORTH_2018_Software_Updates.pdf [86] https://events.linuxfoundation.org/wp-content/uploads/2017/12/Strategies-for- Developing-and-Deploying-your-Embedded-Applications-and-Images-Mirza-Krak- Mender.io_.pdf [87] http://events17.linuxfoundation.org/sites/events/files/slides/ELC2017_SWUpdate.p df [88] https://events.linuxfoundation.org/wp-content/uploads/2017/12/ELCE-2018- Update-Tools-BoF_Jan-Lubbe.pdf [89] https://events.linuxfoundation.org/wp-content/uploads/2017/12/ELCE-2018- Update-Tools-BoF_Jan-Lubbe.pdf [90] https://elinux.org/images/f/f5/Embedded_Systems_Software_Update_for_IoT.pdf [91] https://rauc.readthedocs.io/en/latest/ [92] http://elinux.org/images/6/6e/End_of_Time_--_Embedded_Linux_Conference_2015.pdf [93] https://android.googlesource.com/platform/bionic 87