Gebruiker:Wouter.Rymenants/Kladblok

Embedded Linux is de algemene naam voor een Linux besturingssysteem dat als een embedded system gebruikt wordt op kleinere elektronica apparaten. Bijvoorbeeld een gsm, router, PDA,...

Motorola RAZR², een systeem dat gebruikmaakt van embedded Linux.

Embedded Linux Kernel bewerken

Embedded Linux bestaat niet als een speciale soort GNU/Linux, zoals bijvoorbeeld mandrake linux of redhat linux. Het verschil met deze is de opbouw van de kernel. Het is een gewone, doch licht uitgevoerde, Linux-kernel die specifieke delen van een uitgebreidere kernel heeft. Deze delen zijn gekozen omdat ze onontbeerlijk zijn voor het doel van de versie van Embedded Linux (zo zal de kernel van een router geen X Window-systeem draaien). Bovenop deze kernel draait dan andere Linux software, die ondersteunt wordt door de gekozen kernel (Bij een router kan dat bijvoorbeeld het softwareprogramma ip-tables zijn). Men kan kiezen om er de traditionele GNU-software en -bibliotheken op te draaien of lichtere alternatieven zoals Busybox met uClibc.

Een linuxkernel zijn vaak open source, daarom zijn embedded linux versies ook gratis verkrijgbaar. Onder andere op het internet. [1] Sommige producenten die gebruik maken van Embedded Linux zeggen dat voorgemaakte versies nog niet onmiddelijk klaar zijn voor gebruik. De meningen hierover zijn echter verdeeld. [2] Is de Embedded Linux nog niet klaar voor gebruik, dan kan deze meestal wel aangepast worden daar het open-source is.


Ontwerpconsideraties bewerken

Bij het ontwerp van een embedded system zijn er een aantal parameters die invloed hebben op de goede werking van het embedded system. Is het systeem bijvoorbeeld te groot, dan moet ook het geheugen groter zijn. Dit kan dan leiden tot het gebruik van duurdere chips. Een ander voorbeeld is beveiliging, als het eenvoudig is het embedded system van een router te hacken, dan is het computernetwerk waaraan hij verbonden is zeer kwetsbaar voor aanvallen van buitenaf. Ontwerpconsideraties zijn onder andere:

  • Opstarttijd
  • Geheugen beheer
  • Vermogen beheer
  • Beveiliging
  • De grootte van het systeem
  • Beheer van systeemresources


Opstarttijd bewerken

Opstarttijd is de term die staat voor alles wat te maken heeft met het initialiseren van het besturingssysteem. Na deze opstarttijd zal de geïnstalleerde software kunnen werken. Boot time is afhankelijk van hoeveel delen van de kernel er moet worden geïnitialiseerd, hoe uitgebreid deze delen zijn en hoe snel hardware is waar het besturingssysteem op draait.[3] Vier technieken om opstarttijd te versnellen zijn:

  • PKernel XIP - Staat de [kernel] toe om uitgevoerd te worden in [flash] of in-place ROM (read-only memory)
  • DMA Copy Of Kernel On Startup - De kernel van flash naar RAM kopiëren met gebruik van DMA
  • Ongecomprimeerde kernel - Een kernel zonder compressie boot misschien sneller
  • Decompressie - De kernel sneller decomprimeren


Geheugen beheer bewerken

Beheer van geheugen in een Embedded system is over het algemeen eenvoudiger dan op volledige systemen. Bij geheugen is het meestal zo dat hoe groter het wordt, hoe moeilijker het wordt het te beheren (door bv een grotere index). Een embedded system is veel kleiner dan een volledig systeem. Hierboven komt ook dat er (meestal) niet moet worden gedaan aan swapping en dergelijke, zoals wel moet bij grotere systemen. Problemen bij Embedded Linux vormen zich rond een beperkte TLB (translation lookaside buffer), die in embedded systems meestal niet zo groot zijn. Hierdoor is er bij gebruik van userspace work een aanzienlijke daling in prestatie. Applicaties op de CPU (central processing unit) zijn 5% tot 40% van hun processortijd bezig met foute adressering.


Vermogen beheer bewerken

Aangezien veel van de toestellen die met embedded linux werken met batterijen werken is het nodig om het vermogen gebruik van de toestellen zoveel mogelijk te beperken, en zo efficient mogelijk om te gaan met de energie.[4] (zoals bijvoorbeeld een screensaver op een gsm/PDA)


Beveiliging bewerken

Beveiliging is voor alle software systemen die aangesloten zijn op het internet onmisbaar.[5] Vanaf het moment dat een systeem is aangesloten op een communicatienetwerk is het namelijk open voor aanvallen van buitenaf, van mensen die toegang proberen te krijgen tot het systeem of er schade aan willen berokkenen. Om deze reden is het nodig om Embedded Linux op zulke systemen te beveiligen. Een voorbeeld van een inbraak op een embedded system (niet linux) was er op de Iphone/Ipod/Ipad. Waardoor hackers software konden installeren zonder daarvoor betaald te hebben. [6]


Grootte van het systeem bewerken

De grootte van het systeem dient zoveel mogelijk beperkt te worden. De grootte van het systeem heeft een rechtstreeks verband met de nood naar meer geheugen, de opstarttijd en de prestaties van het systeem.


Beheer van systeemresources bewerken

Toestellen die gebruik maken van een Embedded system zijn over het algemeen toestellen die beperkte hardware hebben. Om toch nog zoveel mogelijk prestaties te halen uit de hardware die gebruikt wordt dient goed gekozen te worden welke software hoeveel % van de processortijd krijgt. Dit kan afhangen van welke applicatie er op dat moment uitgevoerd wordt op het toestel. Vb: Wanneer er muziek wordt afgespeeld op een Gsm moet de softwareapplicatie die daarvoor verantwoordelijk is genoeg processortijd krijgen om de muziek zonder haperen af te spelen. Wanneer er echter een bericht binnenkomt tijdens het afspelen, dan moet er ook genoeg processortijd zijn voor dat bericht.

Voordelen van Embedded Linux bewerken

In 2008 was Embedded Linux het top embedded system. Met het grootste aantal gebruikers zowel voor de open-source besturingssystemen als de andere besturingssystemen. Embedded Linux had toen 23% van het aantal gebruikers. In 2009 is dat aantal nog gestegen naar 26%. Terwijl in 2004 het nog maar 15,5% had. [2]


De reden voor het succes van Linux werd door de gebruikers zelf omschreven als volgt:

  • De kostprijs van licenties
  • Flexibiliteit door toegang tot de source
  • Algemene vertrouwdheid met het systeem
  • Steeds verbeterend/groeiend applicaties en tools
  • Groeiende ervaring bij de ontwikkelaars van Embedded Linux


Referenties bewerken

  1. [1], Kernels voor linux (linux.org)
  2. a b [2],Linux still top embedded system
  3. [3], Boot time
  4. [4], Elinux wiki Power management
  5. [5], Presentatie over SELinux(pagina 4-6)
  6. [6], Artikel in de morgen over foutjes in Ipad/Iphone/Ipod

[[Categorie:Linux]] [[cs:Vestavěný Linux]] [[de:Embedded Linux]] [[en:Embedded Linux]] [[es:Linux embebido]] [[fr:Linux embarqué]] [[it:Embedded Linux]] [[ja:組み込みLinux]] [[tr:Gömülü Linux]] [[zh:嵌入式Linux]]