Verteller: In deze
les gaan we het hebben over embedded systemen.
Als we het nu hebben over een ingebed systeem,
dan is dit een computersysteem dat is ontworpen
om een specifieke en speciale functie uit te voeren.
Als we het hebben over een ingebed systeem,
hebben we het vaak over
dingen die meer te maken hebben met productie of automatisering.
We kunnen dus een microcontroller in
een medisch infuussysteem hebben die maar één taak heeft.
Het is om de hoeveelheid vloeistof te meten
die door die machine en in je infuus gaat, zodat je de patiënt
kunt geven wat hij nodig heeft.
Misschien heb je er nog een
voor een besturingssysteem in een waterzuiveringsinstallatie.
En het is zijn verantwoordelijkheid om ervoor
te zorgen dat het water met een bepaalde snelheid doorstroomt.
En ze gaan kleppen openen of sluiten om ervoor te
zorgen dat we die hoeveelheid stroom door het systeem handhaven.
Dit is het idee van een ingebed systeem.
En het kan een heel, heel eenvoudig apparaat zijn of het
kan volledig complex zijn en een volledig
besturingssysteem hebben zoals Linux of Android dat wordt gebruikt
om dit soort systemen te draaien.
Het hangt er gewoon vanaf.
In deze specifieke les ga ik
me meer richten op de specifieke ingebedde systemen die
een enkele functie hebben en
die hun eigen besturingssysteem of microprocessors
hebben om die functie uit te voeren.
Bij mij thuis heb ik bijvoorbeeld een slimme meter.
Dus als ik naar de zijkant van mijn huis ga, kan
ik naar de elektriciteitsmeter van mijn
huis kijken en die vertelt me hoeveel kilowatt per uur ik gebruik en hoeveel
ik in de loop van de tijd heb gebruikt.
Deze informatie is verbonden met het internet, zodat het energiebedrijf
niet elke maand iemand naar
mijn huis hoeft te sturen om de meterstand
op te nemen.
In plaats daarvan gebeurt het nu allemaal elektronisch.
Ze doen dit met behulp van mobiele
modems en maken via het mobiele netwerk
verbinding met hun hoofdkantoor en hun
servers om de gegevens over ons energieverbruik
in te voeren.
Als je bij jou thuis naar de meterkast
kijkt, heb je waarschijnlijk iets dat er ongeveer hetzelfde uitziet.
Nu worden dit soort embedded systemen beschouwd
als statische omgevingen waar frequente wijzigingen
niet worden gemaakt of toegestaan.
Wanneer heb je bijvoorbeeld voor het laatst de software van
je elektriciteitsmeter geüpgraded?
Dat heb je waarschijnlijk nooit gedaan.
En het energiebedrijf doet het waarschijnlijk
ook niet vaak.
Dat is het idee van deze ingebedde systemen.
Ze zijn een zeer uitgekleed systeem
dat gemaakt is voor één doel en slechts één doel.
En door dat te doen, worden ze veiliger omdat
ze niet veel extra code hebben.
Maar als die originele code niet
in een goede staat op zijn plaats is gemaakt, wordt
het moeilijk om updates uit te voeren
omdat deze dingen niet gemaakt zijn
om regelmatig software-updates te krijgen.
Hierdoor hebben embedded
systemen vaak weinig ondersteuning voor het identificeren
en corrigeren van beveiligingsproblemen.
Je kunt het energiebedrijf niet bellen
en zeggen dat ze je meter moeten veiligstellen.
Dat is gewoon geen onderdeel van wat ze voor je gaan doen.
Ze doen het op hun manier omdat
het hun apparaat is.
En als je een ingebed systeem in je fabriek of in je fabriek
hebt, als je in een productiegebied zit, zul je vaak beperkte
ondersteuning van die fabrikant krijgen.
En dit is dus een gebied waar je
echt al deze apparaten op een apart
netwerk wilt zetten en ze niet terug
wilt verbinden met het internet in het algemeen, waar dit
een groot kwetsbaar gebied voor je zou kunnen zijn.
Als we het nu hebben over ingebedde
systemen, is er een term die PLC heet,
wat een programmeerbare logische controller is.
Dit is een type computer dat is ontworpen voor gebruik
in industriële of buitenomgevingen en dat
onze moderne mechanische systemen kan automatiseren.
Als je nu aan een PLC denkt, wil ik
dat je denkt aan iets als productie
dat een klep opent of sluit om meer
of minder water binnen te laten.
Dat is het idee van een PLC.
Het is een programmeerbare logische controller.
Nu draaien deze PLC's op firmware omdat dit,
nogmaals, ingebedde systemen zijn.
De firmware, software op een chip, kan dus worden gepatcht en geherprogrammeerd
om kwetsbaarheden te verhelpen wanneer
deze zich voordoen.
Maar nogmaals, er is een zeer specifiek proces en er
is meestal beperkte ondersteuning van de fabrikant.
Het is niet zoals Microsoft
die je elke dinsdag een patch geeft.
Met deze PLC's krijg je misschien elke zes maanden, of een
jaar, of twee jaar een patch.
Er zit meestal erg veel tijd tussen de patches.
Het andere waar we het over willen hebben zijn
de besturingssystemen die ze gebruiken.
Dus er is iets dat bekend staat als een RTOS,
wat een real-time besturingssysteem is.
Dit is een type besturingssysteem dat prioriteit
geeft aan het deterministisch uitvoeren van bewerkingen.
En dit zal ons helpen om consistente respons te
garanderen voor tijdkritische taken.
Denk hier eens over na.
Als je iets gebruikt dat een klep in een kerncentrale
moet openen of sluiten, kun je
dat dan op elk moment offline laten gaan?
Waarschijnlijk niet, toch?
Nou, dat is het idee achter het gebruik van een RTOS,
een real-time besturingssysteem.
Dit komt omdat veel van onze embedded
systemen geen reboots of crashes kunnen verdragen
en ze moeten reactietijden hebben
die binnen milliseconden voorspelbaar zijn.
Dus als ik iets bouw dat onderdelen
van een vliegtuig gaat besturen, dat mijn automatische
piloot gaat helpen met vliegen en waarbij de automatische
piloot elke paar milliseconden aanpassingen
moet doen aan de vleugels, dan is dat iets waar we een real-time
besturingssysteem voor willen gebruiken.
Daar kunnen we geen standaard Windows-systeem voor gebruiken.
Hij is gewoon niet snel of krachtig genoeg.
En het is onderhevig aan herstarten of crashen, en het is onderhevig
aan beveiligingspatches en al die andere dingen.
Dus RTOS, als je die term hoort, denk dan aan het
type besturingssysteem dat vaak wordt
gebruikt bij ingebedde systemen, vooral
in kritieke toepassingen.
Een andere manier om dit te doen is door
gebruik te maken van een zogenaamd systeem-op-een-chip.
Dit is een andere vorm van ingebedde systemen.
Dit is waar onze processor de platformfunctionaliteit
van meerdere logische controllers integreert op een enkele
chip.
Dit systeem-op-een-chip kan erg energiezuinig zijn en daarom worden
ze vaak gebruikt voor kleinere apparaten die een ingebed
systeem nodig hebben.
Dus als ik iets moet maken
met een ingebed systeem
dat heel klein is en in mijn broekzak past, dan gebruik
ik meestal zoiets als een systeem-op-een-chip.
Als je zoiets als een Roomba of
robotstofzuiger gebruikt, dan gebruiken
die een soort systeem-op-een-chip mentaliteit omdat ze proberen
al die informatie op een enkele chip te krijgen,
omdat het weer minder ruimte in beslag neemt en
je daardoor meer ruimte overhoudt voor de functionerende onderdelen
die je nodig hebt, zoals de stofzuiger.
Een systeem-op-een-chip is een soort geïntegreerd circuit
dat alle componenten van een computersysteem
op een enkele chip bevat.
Dit omvat je processor, het geheugen, de opslag, de grafische
processor en de randapparatuur, dingen
zoals USB-controllers, stroombeheercircuits en draadloze
radio's voor wifi of Bluetooth.
Een goed voorbeeld van een systeem-op-een-chip is de Raspberry
Pi, die een computer bevat die volledig
bestaat op een enkele chip.
Veel van deze system-on-a-chips
zullen worden ingebouwd in andere
apparaten zoals smart TV's en set top boxes, zoals de Amazon Fire
TV, Roku en Apple TV streamingapparaten.
System-on-a-chip ontwerpen zijn erg populair
geworden vanwege hun lage energieverbruik,
hun goede prestaties en de kleine vormfactor.
Als je bijvoorbeeld een Roku of Fire TV Stick hebt, hebben
die de grootte van een USB-stick.
Toch bieden ze een volledig werkende smart TV-functionaliteit in
elke bestaande televisie en kunnen
ze streaming video verwerken via
een draadloze verbinding met deze apparaten.