1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
|
%include "default.mgp"
%default 1 bgrad
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
%nodefault
%back "blue"
%center
%size 7
Nobody has [yet] understood
Embedded Linux
%center
%size 4
by
Harald Welte <laforge@gnumonks.org>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
Introduction
Who is speaking to you?
an independent Free Software developer, consultant and trainer
13 years experience using/deploying and developing for Linux on server and workstation
10 years professional experience doing Linux system + kernel level development
strong focus on network security and embedded
expert in Free and Open Source Software (FOSS) copyright and licensing
digital board-level hardware design, esp. embedded systems
active developer and contributor to many FOSS projects
thus, a techie, who will therefore not have fancy animated slides ;)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
Introduction
Why am I qualified?
The 'Linux community' POV
Initiator of OpenEZX project (Linux on Motorola GSM phones)
Author of various drivers for embedded hardware
The 'embedded Linux done the rigth way' POV
Lead System Architect (SW+HW) at Openmoko, Inc.
Co-creator of Open Hardware + Software for RFID
OpenPCD, OpenPICC, librfid, libmrtd
The 'chip manufacturer' POV
Open Source Liaison at VIA Technologies, Inc.
The 'customer of consumer-grade embedded Linux' POV
Done reverse-engineering on hundreds of devices for gpl-violations.org
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
Linux is everywhere!
%image "linux_netfilter_singapore_entertainment.jpg"
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
Linux is everywhere
Linux is everywhere!
Linux mobile phones (Motorola, Openmoko)
In-flight entertainment systems
Embedded networking gear
DSLAMs
rack monitoring
Public payphones
ATM's / PoS / vending machines
Now even Fitness gear (Daum Ergometer)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
Strengths of FOSS [0/4]
What are the true strengths of FOSS
Innovative and creative development
Security due to code review / bugreport / patches
Long-term maintainable code
Stable and reliable systems
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
Strengths of FOSS [1/4]
Innovative and creative development
easy-to-read existing codebase
standard (FOSS) development tools
thus, easy to modify and add features
community will build around great new features/apps
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
Strengths of FOSS [2/4]
Security due to code review / bugreport / patches
because all the code is out there
because many people are familiar with existing architecture
because code quality requirements usually very high
because community process allows quick and fast integration of bugfix
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
Strengths of FOSS [3/4]
Long-term maintainable code
because there's a lot of attention on good software architecture
because many developers are familiar with the shared/common API's
because code quality requirements usually ery high
because all code in mainline gets maintained and updated
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
Strengths of FOSS [4/4]
Stable and reliable systems
because code quality requirements usually ery high
because kernel releases are quite frequent
because all mainline code is automatically ported to new releases
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
Reality Check
So we should have the perfect world
tons of embedded Linux products
all of them maitainable, secure, stable
encouraging lots of creative work on top of their codebase
What is the reality
tons of embedded Linux products
none of the strengths of FOSS present in 99% of them
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
What does the vendor get
So what do the embedded vendors get?
unstable software
security nightmares
unmaintainable code
no innovation
no user-contributed bug fixes
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
What does the vendor get
unstable software
because their code stinks (low quality)
because they patch around problems rather than solving them
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
What does the vendor get
security nightmares
because they use stoneage forks of the kernel
because they never contributed their code mainline
because those forks can never be merged back with mainline again
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
What does the vendor get
unmaintainable code
because they have one fork of the code per device (product)
because their code quality sucks
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
What does the vendor get
no innovation
because they try to hide their code (gpl-violations.org)
because their R&D environment is non-standard
weird cross-toolchains that nobody has seen before
weird filesystems with custom patches that nobody knows
because they add proprietary components to lock developers from adding features
e.g. the entire web-based UI for embedded networking gear
binary-only kernel modules that force people to use old kernels with no interesting new features
because it is, overall, way too hard to develop on/for their platform
because they don't disclose serial console and/or JTAG access
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
Reality Check
So why do they still do it?
there can only be one conclusion:
they never understood the real potential of FOSS
all they do is try to compete with what proprietary competitors do
they never think about creating platforms, every product is distinct/separate
they have no interest in improving their products
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
What does the community get
So what does the community get?
products that run some crappy fork of Linux somewhere under the hood
but which we cannot really touch/modify without a lot of effort
we face opposition from the product maker if we want to help him to improve
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
TODO
What should they do?
stop thinking in terms of selling black boxes
defining products that take advantage of the true strength of FOSS
compete against the proprietary competition on a level that they can't match
give up the idea of defining all aspects of an appliance
rather think of building an extensible platforms and let community innovate
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
Outlook
Outlook
We will see even more embedded Linux, e.g. Mobile phones
We will see even more restricted devices (Tivo-ization, DRM for code)
which go on _very_ thin ice even with GPLv2
which almost completely remove all freedoms of FOSS
We have some faint dim light at the end of a very far tunnel
e.g. projects like Openmoko, who truly see openness as a feature
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%page
Nobody has [yet] understood Embedded Linux
Outlook
|