SlideShare ist ein Scribd-Unternehmen logo
1 von 87
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoCMacpaul Lin
 
Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8Linaro
 
Yocto project and open embedded training
Yocto project and open embedded trainingYocto project and open embedded training
Yocto project and open embedded trainingH Ming
 
eStargzイメージとlazy pullingによる高速なコンテナ起動
eStargzイメージとlazy pullingによる高速なコンテナ起動eStargzイメージとlazy pullingによる高速なコンテナ起動
eStargzイメージとlazy pullingによる高速なコンテナ起動Kohei Tokunaga
 
[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020Akihiro Suda
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequenceHoucheng Lin
 
Android起動周りのノウハウ
Android起動周りのノウハウAndroid起動周りのノウハウ
Android起動周りのノウハウchancelab
 
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディングTakuya ASADA
 
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBshimosawa
 
HKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewHKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewLinaro
 
A Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry PiA Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry PiJian-Hong Pan
 
BuildKitでLazy Pullを有効にしてビルドを早くする話
BuildKitでLazy Pullを有効にしてビルドを早くする話BuildKitでLazy Pullを有効にしてビルドを早くする話
BuildKitでLazy Pullを有効にしてビルドを早くする話Kohei Tokunaga
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device driversHoucheng Lin
 
SFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driverSFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driverLinaro
 

Was ist angesagt? (20)

U boot porting guide for SoC
U boot porting guide for SoCU boot porting guide for SoC
U boot porting guide for SoC
 
Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8
 
Linux Device Tree
Linux Device TreeLinux Device Tree
Linux Device Tree
 
Platform Drivers
Platform DriversPlatform Drivers
Platform Drivers
 
Yocto project and open embedded training
Yocto project and open embedded trainingYocto project and open embedded training
Yocto project and open embedded training
 
Mastering Real-time Linux
Mastering Real-time LinuxMastering Real-time Linux
Mastering Real-time Linux
 
eStargzイメージとlazy pullingによる高速なコンテナ起動
eStargzイメージとlazy pullingによる高速なコンテナ起動eStargzイメージとlazy pullingによる高速なコンテナ起動
eStargzイメージとlazy pullingによる高速なコンテナ起動
 
[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020[KubeCon NA 2020] containerd: Rootless Containers 2020
[KubeCon NA 2020] containerd: Rootless Containers 2020
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequence
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
 
Linux Internals - Part I
Linux Internals - Part ILinux Internals - Part I
Linux Internals - Part I
 
History of linux
History of linuxHistory of linux
History of linux
 
Android起動周りのノウハウ
Android起動周りのノウハウAndroid起動周りのノウハウ
Android起動周りのノウハウ
 
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
 
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKB
 
HKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewHKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting Review
 
A Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry PiA Journey to Boot Linux on Raspberry Pi
A Journey to Boot Linux on Raspberry Pi
 
BuildKitでLazy Pullを有効にしてビルドを早くする話
BuildKitでLazy Pullを有効にしてビルドを早くする話BuildKitでLazy Pullを有効にしてビルドを早くする話
BuildKitでLazy Pullを有効にしてビルドを早くする話
 
Arm device tree and linux device drivers
Arm device tree and linux device driversArm device tree and linux device drivers
Arm device tree and linux device drivers
 
SFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driverSFO15-200: Linux kernel generic TEE driver
SFO15-200: Linux kernel generic TEE driver
 

Ähnlich wie 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
 
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
 
Using Embedded Linux for Infrastructure Systems
Using Embedded Linux for Infrastructure SystemsUsing Embedded Linux for Infrastructure Systems
Using Embedded Linux for Infrastructure SystemsYoshitake Kobayashi
 

Ähnlich wie 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
 
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
 
Using Embedded Linux for Infrastructure Systems
Using Embedded Linux for Infrastructure SystemsUsing Embedded Linux for Infrastructure Systems
Using Embedded Linux for Infrastructure Systems
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
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.
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 

Kürzlich hochgeladen (20)

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
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...
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

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