De bouw van ‘embedded Linux’, van black-art tot kostenvrije kwaliteitsbewaking1
D&
E E
vent
, 9
okto
ber
200
3 E
indh
oven
[email protected]@Mietus.nl©
‘mLinux’ bouwen:black-art of QA-proces?
© ALbert Mietus, PTS software BV
De bouw van ‘embedded Linux’, van black-art tot kostenvrije [email protected]@Mietus.nl©
D&
E E
vent
, 9
okt
obe
r 2
003
Ein
dhov
en
Begrippen [Hidden sheet]
mLinux Embedded Linux (verkorte schijfwijze)
E-mLinux Easy/Embedded Linux (inclusief tools)
(E-* is ‘naam’ van mijn generieke bouw-omgeving)
QA Quality Assurance (verkorte schijfwijze) Kernel Kern-deel van een OS (Linux is een kernel)
Tools (hier) Aanvulling op (Linux)kernel, om volledig OS te krijgen
E.G. shell(s), ls, mkdir,cron, ssh, ftp
Busybox Set van tools, speciaal voor mLinux thttpd Kleine web-server, bijvoorbeeld voor embedded systemen.
De bouw van ‘embedded Linux’, van black-art tot kostenvrije [email protected]@Mietus.nl©
D&
E E
vent
, 9
okt
obe
r 2
003
Ein
dhov
en
Agenda
• Linux, … by magic• Zo doet u het (toch) niet
• QA, wat & waarom• beheer & reproduceer
• mLinux & QA• de kunst van automatisch bouwen• van kunstwerk tot maatwerk
De bouw van ‘embedded Linux’, van black-art tot kostenvrije kwaliteitsbewaking4
D&
E E
vent
, 9
okto
ber
200
3 E
indh
oven
[email protected]@Mietus.nl©
Linux, … by Magic
Ofwel:Hoe komt uw buurman aan zijn Linux?
De bouw van ‘embedded Linux’, van black-art tot kostenvrije [email protected]@Mietus.nl©
D&
E E
vent
, 9
okt
obe
r 2
003
Ein
dhov
en
Throw know-how
away (important!)
Linux, by magic
Kernel x.y
Con
figAdd Tools
Try-out
OK?Mostly not Sometimes
Linux wordt gebouwd door super-specialisten– Grote delen komen rechtstreeks van het internet– Delen worden geïntegreerd totdat het niet meer werkt– Patches (bugfix) worden gebruikt, zodra ze beschikbaar zijn
Het enige dat telt: is een ‘gratis’ OS, liefst ASAP!
De bouw van ‘embedded Linux’, van black-art tot kostenvrije [email protected]@Mietus.nl©
D&
E E
vent
, 9
okt
obe
r 2
003
Ein
dhov
en
TovernaarsVragen
• Welke features zitten er in MagicLinux ?• Bevat onzeLinux ook bugfix <No> ?• Wat is het verschil met de vorige release ?• Zijn er verder geen verschillen?
Zeker weten?
Deze vragen blijven vaak onbeantwoord!
De bouw van ‘embedded Linux’, van black-art tot kostenvrije kwaliteitsbewaking7
D&
E E
vent
, 9
okto
ber
200
3 E
indh
oven
[email protected]@Mietus.nl©
Quality Assurance
‘Zeker weten wat de kwaliteit is’
De bouw van ‘embedded Linux’, van black-art tot kostenvrije [email protected]@Mietus.nl©
D&
E E
vent
, 9
okt
obe
r 2
003
Ein
dhov
en
QA, traditioneel
• QA is vaak een zwaar proces dat probeert te verzekeren dat, in een complexe omgeving, een ingewikkelde verandering voldoende succesvol is.
• QA is gericht op het proces, niet het product!
• QA levert niet direct kwaliteit, maar probeert die kwaliteit constant te houden
• Effect: veel overhead,input van ‘buiten’ niet vertrouwen
De bouw van ‘embedded Linux’, van black-art tot kostenvrije [email protected]@Mietus.nl©
D&
E E
vent
, 9
okt
obe
r 2
003
Ein
dhov
en
Kwaliteit in embedded systemen
Voor embedded systemen is het eenvoudigHet ‘doosje’ moet altijd werken.
Zo niet, dan zal de klant① Het opnieuw proberen② Een paar tikjes op het systeem geven③ Het systeem weggooien
En een nieuwe kopen, soms van de concurrent
Met andere woorden:• Zorg dat u weet wat u levert!• Goedkoop? => foutjes worden geaccepteerd
De bouw van ‘embedded Linux’, van black-art tot kostenvrije [email protected]@Mietus.nl©
D&
E E
vent
, 9
okt
obe
r 2
003
Ein
dhov
en
QA in embedded systemen
QA kan (dus) veel eenvoudiger① De Q-eis is veel eenvoudiger: ‘altijd werken’② De omgeving is eenvoudiger: ‘het doosje’③ De verandering is eenvoudig: ‘…’④ De SW is relatief klein van omvang.
• QA in embedded systemen moet gericht zijn op de ‘in ontwikkeling zijnde’ revisie!
Want er is (vaak) maar één release
De bouw van ‘embedded Linux’, van black-art tot kostenvrije kwaliteitsbewaking11
D&
E E
vent
, 9
okto
ber
200
3 E
indh
oven
[email protected]@Mietus.nl©
Linux & QA
Ofwel:Hoe ‘uw Embedded-Linux’ bouwen?
De bouw van ‘embedded Linux’, van black-art tot kostenvrije [email protected]@Mietus.nl©
D&
E E
vent
, 9
okt
obe
r 2
003
Ein
dhov
en
QA en Linux
PRAGMA'S(Kom naar de stand voor uitleg)
– Vertrouw Linux– Zeker het deel dat veel gebruikt is.
– Vertrouw eigen veranderingen NIET– Die zijn te ‘weinig’ gebruikt.
– Vertrouw het bouwen ‘by magic’ NIET– Dat is niet herhaalbaar.
– Vertrouw uw kennis– En leg deze vast!
– Voorkom overhead– Altijd een goed idee
De bouw van ‘embedded Linux’, van black-art tot kostenvrije [email protected]@Mietus.nl©
D&
E E
vent
, 9
okt
obe
r 2
003
Ein
dhov
en
Eenvoudig QA in Linux
QA in Linux kan, door:– Het ‘by magic’ proces te standaardiseren – Te concentreren op ‘eigen inbreng’
» De Q van ‘veel’ is goed genoeg
Pragmatische aanpak:• automatisch bouwen• modulair bouwen
Effect:(operationele) QA-kosten zijn nihil (of minder!)
De bouw van ‘embedded Linux’, van black-art tot kostenvrije [email protected]@Mietus.nl©
D&
E E
vent
, 9
okt
obe
r 2
003
Ein
dhov
en
Automatisch bouwen
Bouw automatisch, aan de hand van een configuratie fileDeze configuratie:
• bevat:– versienummers, filenamen, download-sites, bouwopties, etc, ...– patches met eigen opties, modificaties, etc, …
• wordt beheerd en ‘opgeleverd’
Bouwen met gelijke configuratie geeft hetzelfde resultaat
Configfile(s)
fetch patchunzip installmake
File-list
TEST
co/ verbeter /ci
VersieBeheer insert/check
De bouw van ‘embedded Linux’, van black-art tot kostenvrije [email protected]@Mietus.nl©
D&
E E
vent
, 9
okt
obe
r 2
003
Ein
dhov
en
Voorbeeld
Template 1⇐ Versie beheer info
⇐ Relatief pad
⇐ Wat we bouwenWelke versieEn onze veranderingen(hier: config data)
⇐ default: busybox-0.60.5
⇐ Ja, het is een ‘Makefile’Type: port
# ConfigFile, for E-mLinux# $Id: GNUmakefile,v 1.7
2003/09/18 12:20:37 GAM Exp $
# Where is YourEmbeddedLinux?TOPDIR= ../../../.
#Module settingsPORTNAME = busyboxPORTVERSION = 0.60.5PATCHES = patch-aa patch-ba
# Install options ...INSTALLOPT ="PREFIX=${LIVEDIR}"## Overrule the default Epkg-name #PKGNAME =
include ${TOPDIR}/Mk/port.mk
De bouw van ‘embedded Linux’, van black-art tot kostenvrije [email protected]@Mietus.nl©
D&
E E
vent
, 9
okt
obe
r 2
003
Ein
dhov
en
Modulair bouwen
• Opdelen op in (sub)modulesLinux, busybox, thttpd, shell(s), … eigenApplicaties, …
• Per (sub)module een configuratiefileEr kan dus per module gebouwd, getest en beheerd
worden
• Speciaal type configuratiefile: ‘dir’ (of: ‘module’)
Bepaalt de bouwvolgorde (sub)modulesDUS: ook dat (kan) beheerd & gecontroleerd worden
De bouw van ‘embedded Linux’, van black-art tot kostenvrije [email protected]@Mietus.nl©
D&
E E
vent
, 9
okt
obe
r 2
003
Ein
dhov
en
Voorbeeld
Een iets andere template Zie ook 2 sheets terug
⇐ Alle (sub)moduleselk in een eigen directoryVolgorde is (hier) niet belangrijk
⇐ Als nodig, leg de gewenste bouwvolgorde (hier) vast
⇐ Een ander ‘template’ Type: subdir
# ConfigFile, for E-mLinux # $Id: GNUmakefile,v 1.21
2003/09/18 13:28:17 ami Exp $
# Where is YourEmbeddedLinux?TOPDIR= ../../.
# Modules to build SUBDIRS += busyboxSUBDIRS += links e2fsprogsSUBDIRS += thttpd dhcpcdSUBDIRS += bash dcron netkit SUBDIRS += linux-utils isdn4k-utils
#Order to build (“After”: “Before”)busybox: bash
include ${TOPDIR}/Mk/subdir.mk
De bouw van ‘embedded Linux’, van black-art tot kostenvrije [email protected]@Mietus.nl©
D&
E E
vent
, 9
okt
obe
r 2
003
Ein
dhov
en
QA-‘niveau(s)’
Er is altijd een afweging: (bij gelijke functionaliteit)
kosten ↔ kwaliteit .
We kunnen dit instellen, door meer of minder ‘config checks’ in de configfile op te nemen.
✔md5-checksums ✔chrooted bouwen✔File-list ✔ versies van compilers e.d.
Het maakt de bouwomgeving duurder(ontwerp, diskruimte, configuratietijd, bouwtijd, …)
Maar geeft een grotere garantie op kwaliteit
Dit is een ‘management keuze’!
De bouw van ‘embedded Linux’, van black-art tot kostenvrije [email protected]@Mietus.nl©
D&
E E
vent
, 9
okt
obe
r 2
003
Ein
dhov
en
Samenvatting & Conclusies (1)
① Bouw ‘mLinux’ door kennis vast te leggen!»Vastleggen == documenteren==controleerbaar==herhaalbaar
② Externe Wizards helpen niet»Dan wordt ‘by Magic’ slechts verborgen
③ Beheer[s] de (module)configuraties»Het eigen team moet het beheersen
④ Investeer in een maatwerk bouwomgeving»Hier is vaak wel externe kennis nodig
⑤ Concentreer op ‘eigen …<<inbreng>>…’»Wat extern veel gebruikt is, is vast wel goed
De bouw van ‘embedded Linux’, van black-art tot kostenvrije [email protected]@Mietus.nl©
D&
E E
vent
, 9
okt
obe
r 2
003
Ein
dhov
en
Samenvatting & Conclusies (2)
⑥ QA van ‘Linux’ is mogelijk en eenvoudig» Dit hebben we laten zien
⑦ Concept is belangrijkste, daarna pas tooling»Tools maken het efficiënter, niet beter
⑧ Kies een kwaliteitsniveau, dat past» Nog beter, is ook complexer en duurder
⑨ Kies tools voor ‘mLinux’»Kan die ‘mooie’ overweg met embedded beperkingen?
⑩ ‘Just do it’! (en verbeter, zodra nodig)»Begin goedkoop, verbeter tot het benodigde niveau!
De bouw van ‘embedded Linux’, van black-art tot kostenvrije kwaliteitsbewaking21
D&
E E
vent
, 9
okto
ber
200
3 E
indh
oven
[email protected]@Mietus.nl©
Voor vragen en discussie
Bij de PTS (stand 17)of
(Vanwege de krappe tijd)
Dank voor uw aandacht!