Linux Embedded

Embed Size (px)

Citation preview

Linux

Sisteme de operare nglobate LINUX

Petre TmanMaster Anul I IIS

LinuxDezvoltarea sistemului de operare a fost nceput de ctre inginerul finlandezLinus Torvalds, care iniial dorea s obin un sistem similar cuMinix, dar fr limitrile acestuia. Linux a fost dezvoltat sub Licena Public General GNU GPL, astfel nct nu numai Linux nsui, dar icodul su surssunt disponibile tuturor celor interesai.Familie de sisteme de operare de tip Unix care folosesc nucleul Linux Se refer la kernelul meninut de Linus Torvalds si distribuit sub acest nume in diferite repository. Conine numai kernelul fara alte utilitati Distribuii cunoscute de Linux : RedHat, Debian, Fedora, SUSE, Mandrake, Slackware, Ubuntu, CentOS, etc

Embedded system (sistem nglobat)

este un sistem pe baz de microprocesor construit pentru a controla anumite funcii particulare i care nu este contruit pentru a fi programat de utilizatorul final

Embedded Linux

Este un sistem nglobat bazat pe kernelul Linux. Spre deosebire de versiunile Linux destinate desktopurilor si serverelor, versiunile embedded sunt gandite pentru dispozitive cu resurse relativ limitate. Din considerente legate de costuri sau dimensiuni, aceste dispozitive embedded au in general mult mai putin RAM si spatiu de stocare secundar disponibil comparativ cu un sistem desktop, si foarte probabil folosesc memorie de tip flash in locul hard driskurilorDistribuii cunoscute Linux Embedded: Qtopia, Clinux, MoblinClasificarea sistemelor embedded LinuxDupa dimensiune Mici minim 4MB ROM, 4-16 MB RAMMediu minim 32 MB ROM si 64-128 RAM (PDA, mp3, smartphone , etc)Mari (simulatoare de zbor, switch telecom)Contrngeri de timp (strict/slab)Conectivitatea reteaInteractiune user

Exempletelefoane mobile Motorola (bazate pe varianta MontaVista Linux [3]) Nokia (unele dispozitive din seria N),navigatoarele GPS TomTomroutere Cisco (seria Linksys) switchuri Cisco (seriile MDS si Nexus)Smartphone (Ssistem de operare: MeeGo, MeeMo, Android, Tizen, Firefox OS),

Linux Motive alegere ICalitate si ncredereModularitate funcionalitai n module diferiteLizibilitate - cod uor de citit si relativ usor de fixatExtensibil se pot aduga usor extensii codului Configurabil posibilitatea de a selecta optiunile care vor face parte din aplicatia finalaPredictibilitate comportamentul programului ar trebui s fie ntr-un cadru definit i nu ar trebui s devin neregulatError recovery este de asteptat ca programul va lua masuri de recuperare si alertare a adminitratorului cu masuri de diagnosticare semnificativeLongevitate - programul va rula perioade lungi de timp si isi va conserva integritatea indifferent de situatiile intalnite

Linux Motive alegere - II

Disponibilitatea codului Disponibilitate codului se refer la faptul c codul surs Linux si toate uneltele sunt disponibile fr restricii de acces. Cele mai importante componente Linux, inclusiv kernelul n sine, sunt distribuite sub GNU General Public License (GPL). Scopul licenei este de a da dreptul oricrui utilizator de a copia, modifica i redistribui programe i coduri surs ale programatorilor care i liceniaz operele sub tutela GPL.Hardware suportLinux are un suport hardware larg, adica accepta diferite tipuri de dispositive si platforme hardware . Desi mai exista unii furnizori care nu ofera drivere, se pot gasi aceste driver intretinute de comunitatea Linux

Linux Motive alegere - III

Protocoale de comunicatie si standarde softwareFurnizeaza un larg numar de protocoale de cominicatie si suport pentru standarde softwareSe poate conecta usor cu alte sisteme (Windows, etc). Tools (instrumente de dezvoltare) foarte multe (vezi freshmeat.com, sourceforge.net)Community supportLicentiere foarte permisiva. Dezvoltatorii pot sa folosesca, modifice, reditribuie sursele cu conditia sa furnizeze aceleasi drepturi de licentiereIndependenta de furnizor poti sa modifici usor vendorul, deoarece licentierea sub Linux permite sa ai aceleasi drepturi ca si vendorulCost fiind opensource, si existand multe tools-uri costurile sunt mici

DezavantajePerformaa real-time este data de kernel, astfel daca apare o eroare ea poate bloca intreg sistemulJuctorii in industria EmS LinuxComunitatea Open Source Solutii furnizate de vendoriMonteVista - lider in piaa de EmS Linux Wind River proprieratarul sistemului vxworks real-time OS, cu multa experienta in sistemele embedded (robotul de pe Marte)LynuxWorks cunoscut datorita sistemului Lynx Real-Time SystemsTimesys specializat in customizari, web-based , etcArhitectura Embedded Linux

Arhitectura Android

Applications - domeniu pentru aplicatii scrise in javaApplications Framework - furnizeaza toate tipurile de API folosite de aplicatiiLibraries - diferite librarii C/C++ folosite. Librariile sunt folosite de aplicatii prin Application FrameworkAndroid runtime desi Android este dezvoltat in java, el foloseste DVM(Dalvik Virtual machine) in loc de JVMLinux Kernel- dezvoltat pe Linux kernel 2.6. Contine driverele pentru diferitete componente. Arhitecturi procesoare Arhitecturi de procesoare folosite in sistemele Linux embedded :ARM (Advanced RISC Machine)AVR32 (apare in 2006) procesor pe 32 bitiIntel x86 este cel mai folosit pentru platforma Linux, dar este mai putin folosit pentru sisteme embedded LinuxM32R (din 2003) procesor pe 32 biti. Folosit la PDA, camere, uniti de control.MIPS (Microprocessor without Interlocked Pipeline Stages) . Folosit de exemplu la Nintendos 64-bit (N64) si Sony Playstations 1 and 2PowerPC- rezultat al colaborarii dintre Apple, IBM si Motorola. SuperH (Hitachi)

Cele mai folosite ARM, MIPS si PowerPC

Medii de dezvoltare Toolchain- un set de unelte software folosite pentru a realiza un soft (include linkeditor, asamblor, arhivator, compilator C , librarii C si headers, componente aditonale)Librarii C alternative (pentru performata si dimensiune redusa aplicatii): cele mai intalnite uClibc (provine de la proiectul uClinux) si Diet libcJavaPerl, MicroPerl, MiniPerlPythonIDE: Eclipse, Kdevelop, Glimmer, etc

Necear EmS Linux minimalLinux minimalBootloadermic kernel care sa aiba componentele pentru management memorie, management procese si servicii timpMai are nevoie de Drivere pentru hardwareUna sau mai multe aplicatii pentru ndeplinirea funciilorCerinte adiionale in functie de destinatie Un sistem de fisiere (poate in ROM sau RAM)TCP/IP protocoldisc pentru pastrarea datelor sau swap

EmS Linux - procesul de pornire

Procesorul pornete execuia de cod de la o anumita locaie Locaia conine booloaderul care iniializeaz device-ul si seteaz minimul necesar dupa ce totul a fost pregatit, kernelul linux este incrcat si pornetekernelul iniializeaz toate device-urile inainte sa montezesistemul de fisiere (filesystems) i s porneasc aplicaiileComponenteBootloaderul este printre primele pari de software care ruleaz in sistemAre 2 taskuri principale : iniializare sistem si incrcare kernelexemple de bootloadere pentru sisteme embedded : Das UBooat si redBoot. Ambele suport taskurile principale, pot administra Flash, retea si comunicatie serial.

Kernelul Linux nu este cu mult diferit de cel folosit la desktopuri. Are 2 diferente majore fata de acesta 1. prima este inializarea care este specifica sistemului 2. deoarece probabil se cunoste hardware-ul pe care va fi utilizat, se pot include toate driverele in kernel

La un sistem Linux embedded se poate optimiza procesul de pornire (bootare) incluznd driverele necesare in kernel.Dar in EmS Linux in general componentele hardware sunt unice, asta insemn c va trebui sa se foloseasc drivere personalizate.Pentru asta va trebui sa se scrie cod pentru drivere in kernel (pentru placa de baza). Acest lucru este mai usor decat s-ar crede deoarece o multime de placi de baza sunt suportate de kernelul Linux, astfel ca poti sa selectezi una din acestea pentru inceput exista drivere pentruperifericele comune si astfel poi folosi aceste drivere pentru a scrie unul pentru componentele noi

Exemplu IBM/Citizen Linux Watch56 X 48 mmMotherboard 27.5 X 35.2 mm8 MB Flash Memory8 MB DRAMTouch Sensitive Display1.5 oz32-bit RISC Processor (74-18 MHz)

Cum este posibil ?Kernelul Linux cu toate funcionalitile are nevoie doar de 1 MB de memorieUn Linux micro-kernel consuma numai 100 K memorie

Stiai c ?Edward Snowden care a desconspirate secretele NSA, pentru transmiterea informaiilor a folosit sistemul de operare Linux TailsTails este o versiune a sistemului de operare Linux, insa optimizat pentru anonimitate. Vine cu instrumente de privacy si criptare, cel mai notabil celebrul fiind Tor, aplicatie care face ca intregul trafic pe internet al utilizatorului sa se desfasoare sub umbrela anonimatuluiSe instaleaz pe un DVD sau USB BibliografieBuilding embedded Linux Systems ediatia 2 (2008), Karim Yaghmour, Jon Masters, Gilad BenYossef, Pelippe Gerumhttp://www.linuxjournal.com/magazine/