embedded Linux, van Black Tot QA

21
De bouw van ‘embedded Linux’, van blac 1 D&E Event, 9 oktober 2003 E ALbert.Mietus@PTS.nl [email protected] © mLinux’ bouwen: black-art of QA-proces? © ALbert Mietus, PTS software BV

Transcript of embedded Linux, van Black Tot QA

Page 1: embedded Linux, van Black Tot QA

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

Page 2: embedded Linux, van Black Tot QA

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.

Page 3: embedded Linux, van Black Tot QA

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

Page 4: embedded Linux, van Black Tot QA

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?

Page 5: embedded Linux, van Black Tot QA

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!

Page 6: embedded Linux, van Black Tot QA

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!

Page 7: embedded Linux, van Black Tot QA

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’

Page 8: embedded Linux, van Black Tot QA

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

Page 9: embedded Linux, van Black Tot QA

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

Page 10: embedded Linux, van Black Tot QA

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

Page 11: embedded Linux, van Black Tot QA

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?

Page 12: embedded Linux, van Black Tot QA

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

Page 13: embedded Linux, van Black Tot QA

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!)

Page 14: embedded Linux, van Black Tot QA

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

Page 15: embedded Linux, van Black Tot QA

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

Page 16: embedded Linux, van Black Tot QA

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

Page 17: embedded Linux, van Black Tot QA

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

Page 18: embedded Linux, van Black Tot QA

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’!

Page 19: embedded Linux, van Black Tot QA

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

Page 20: embedded Linux, van Black Tot QA

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!

Page 21: embedded Linux, van Black Tot QA

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

[email protected]

(Vanwege de krappe tijd)

Dank voor uw aandacht!