Naar inhoud springen

Embedded Linux

Uit Wikipedia, de vrije encyclopedie
Dit is een oude versie van deze pagina, bewerkt door Wouter.Rymenants (overleg | bijdragen) op 5 nov 2010 om 19:39.
Deze versie kan sterk verschillen van de huidige versie van deze pagina.
Motorola RAZR², een systeem dat gebruikmaakt van embedded Linux.

Wat is Embedded Linux

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,...

Embedded Linux bestaat niet als een speciale soort GNU/Linux. Het is een gewone, doch licht uitgevoerde, Linux-kernel die specifiek 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 Linuxsoftware, die ondersteunt wordt door de delen die in de kernel zitten (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.


Embedded Linux Kernel

Embedded linux kernels zijn vaak open source, daarom kunnen embedded linux versies ook gratis gedownload worden van het internet. In het bijzonder op linux.org.[1] Hier kan men versies van linux opzoeken. In het bijzonder hier waar men embedded kan kiezen bij category. Daarna krijgt men een lijst met versies van windows en waar ze te downloaden zijn. Sommige producenten die gebruik maken van Embedded Linux zeggen dat deze 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.


Ontwerp consideraties

Bij het ontwerp van een embedded system dient men rekening te houden met een aantal parameters voor 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. Een meer complete lijst van parameters vindt u hieronder.

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

Parameters op linux

Deze problemen gelden voor alle embedded systems, en niet specifiek voor linux. Er zijn echter wel enkele methoden om specifiek voor linux vast te stellen hoe lang de boot time en dergelijke is voor een specifiek embedded system. Die wens ik hier even verder te bespreken.

Boot time

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

Memory management

Management 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). Hierbovenop komt dan nog dat er (meestal) niet moet worden gedaan aan swapping en dergelijke zoals 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 performance. Applicaties op de CPU (central processing unit) zijn 5% tot 40% van hun tijd bezig met foute adressering.

Power Management

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)

[8] is een website die handelt over de volgende onderwerpen in verband met management van vermogen op linux.

Beveiliging

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]

Voor beveiling van Embedded Linux zijn er verschillende opties:[7]

Grootte van het systeem

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. Manieren om het systeem kleiner te maken zijn terug te vinden op: Elinux/System Size


Beheer van systeemresources

Projecten rond het verbeteren van het beheer van de systeemresources zijn terug te vinden op: Elinux/Resource Management


Voordelen van Embedded Linux

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

  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
  7. [7], Elinux wiki security pagina