Kit-ul de dezvoltare Freescale QorIQ Linux Software vă va depăși așteptările

by donpedro

Dacă urmăriţi noutăţile despre Linux, aţi observat, probabil, confuzia cu privire la ceea ce face un bun Linux BSP (Linux Board Support Package). Îmi aduc aminte de un

vechi prieten în IT, a cărui definiţie “lansat”, înseamnă că programul a rulat cel puţin o dată pe staţia personală de lucru. În timp ce industria tehnologică este necruţătoare când vine vorba despre calitate, chiar și după ce un cod Linux ajunge la milioane de linii, mulţi ingineri de software încă presupun că acest cod este doar un cod de referinţă și nu a fost testat temeinic. Mai mult decât atât, mulţi oameni cred că, atunci când adoptă Linux, se află pe cont propriu – fără sprijin. Companiile, de multe ori, dau în sarcina echipelor lor de inginerie să valideze, să fortifice și să testeze codul înainte de a fi lansat în producţie – acest pas critic putând duce la consum de resurse şi timp preţios. Acesta este motivul pentru care Freescale a luat decizia de a dezvolta un kit de dezvoltare software SDK (Freescale Software Development Kit), care vă ajută la eliminarea de luni și luni de zile din planul de dezvoltare.

de Marlan Winter, Freescale Semiconductor

Ce este de fapt SDK-ul Freescale? Este doar un BSP?
Tendinţa pentru majoritatea clienţilor este de a referi la Freescale SDK ca la un pachet suport pentru placa BSP (Board Support Package). Este mai mult decât atât. Voi folosi termenul BSP în cazul în care are sens în context, dar când spun BSP în context, presupun că acest BSP este creat din SDK, iar SDK înseamnă multiple BSP-uri, în mai multe moduri.

Ce exprimă un nume?
Totul începe de la nume. Când echipele noastre de software au vrut să ofere suport pentru procesoarele de comunicaţie construite pe tehnologia Power Architecture®, cu Linux BSP – QorIQ Multicore Processors, QorIQ Qonverge Platforms și Power QUICC, au pus în discuţie o mulţime de idei despre modul în care acestea ar face acest lucru. Având o lungă istorie în privinţa integrării în componentele din siliciu a blocurilor IP comune, Freescale a creat multiple BSP-uri dintr-un singur obiect de lucru. Obiectul de lucru este similar cu o bibliotecă Freescale Linux IP care va oferi suport pentru IP-urile de pe siliciu. Tot ce ar trebui să facă un inginer, ar fi să “asambleze” componentele Linux IP în aceeași configuraţie cu procesorul, pentru a crea un BSP global la nivel de procesor. Pentru a suporta acest ansamblu, biblioteca completă de IP-uri Linux, a fost numită kit de dezvoltare software. Gândiţi-vă la rezultat: obţineţi un kit de dezvoltare software, adăugaţi ceva din propriul IP, apoi apăsaţi un buton (o exagerare!) și după o transformare, veţi obţine un BSP ideal pentru placa voastră. Acum știţi de ce Freescale numeşte un SDK – “SDK-UL”.
Am asamblat de asemenea uneltele software și alte programe Linux împreună cu Linux IP-ul pentru procesoare, pentru ca voi să obţineţi un singur punct de pornire pentru dezvoltare sub Linux pe platformele noastre de procesare de comunicaţii și sisteme SoC multinucleu.

De unde obţineţi un SDK Linux (Linux Software Development Kit)?
Un punct de pornire ar fi http://freescale.com/sdk
Dar acesta nu este singurul loc de unde puteţi obţine un SDK Freescale. De fapt, dacă vă gandiţi de unde puteţi obţine un BSP (îmi cer scuze că am schimbat brusc subiectul), poţi învăţa ceva despre Freescale. Ceea ce ne diferenţiază este faptul că Freescale este o companie care se străduiește să dezvolte o mare parte din software-ul său într-un mediu complet deschis.

Cum știi că noi dezvoltăm cod sursă public?
Ai putea ști acest lucru dacă vei căuta unele dintre cele mai recente coduri sursa Linux pentru procesoarele de comunicaţii Freescale direct de pe serverul de surse public GIT al Freescale (http://git.freescale.com), kernel.org sau acum şi pe Yocto. Cât de recent este codul nostru public? Ei bine, pe platforma noastră GIT Freescale, este foarte, foarte recent. Pe alocuri, precum kernel.org, Freescale este unul din contribuitorii de top. Am furnizat codul nostru sursă, ca versiune finală (o versiune beta care are un potenţial de a deveni foarte rapid un produs finit), la kernel.org (și altele) și avem un palmares bogat în acceptarea rapidă a codului în producţie. Răspundem la această întrebare astfel, pentru că este important să se înţeleagă că nu doar am depus un cod în kernel.org. El trece printr-un proces de verificare. Nu este o procedură automată. Dar îl puteţi testa; codul nostru este extrem de recent. Mulţi, foarte mulţi dintre clienţii noștri indică pur și simplu kernel.org, ca loc de plecare pentru dezvoltare.

Detalii despre kit-ul de dezvoltare software Freescale pentru reţele
Haideţi să pătrundem în unele detalii și să vedeţi cum produsele Freescale ar putea fi un pic diferite faţă de altele.

Acceleratoare și IP-uri speciale
Unul dintre lucrurile într-adevăr simple, dar plăcute, cu privire la IP-urile Freescale de pe siliciu este acela că procesoarele noastre de comunicaţie au IP-ul proprietar care nu poate fi găsit pe toate drumurile. Acest IP are, literalmente, echivalentul a mii de ani de dezvoltare. Are feedback-ul cumulat de la mii de clienţi și de la zeci de mii de dezvoltatori de software. Numerele sunt uluitoare. Am avut reacţii din toate industriile. Când obţineţi un procesor de comunicaţii de la Freescale, primiţi înţelepciunea cumulată a sute de mii de ingineri. Iar acest lucru creează o provocare specială pentru un dezvoltator Linux. Nu este rezonabil să ne așteptăm ca cineva care știe Linux și un pic despre comunicaţii, să sprijine în mod corespunzător un periferic Freescale specializat, care a fost în curs de îmbunătăţire constantă timp de 10 – 15 ani. Ideea este că atunci când începeţi cu un SDK de la Freescale, puteţi fi siguri că primiţi cel mai modern suport pentru unele dintre cele mai avansate periferice din lume. Să trecem în revistă doar câteva dintre periferice.

Securitate
Răspunsul este, probabil, “da.” Întrebarea este “Are Freescale accelerare pentru [introduceţi aici algoritmul vostru preferat de criptare ezoterică]?”

Cum facem acest lucru?
Freescale dispune de un centru de excelenţă în criptografie. Noi nu-l numim “Area 51”, dar când scriu acest lucru, mi se pare ciudat, pentru că nu este prea departe de Zona 51 – aluzie la localizarea Freescale. Ceea ce au creat inginerii noştri, este un bloc IP de securitate comun pe care Freescale l-a folosit din nou și din nou, pe multe, multe dispozitive semiconductoare. Nu numai că noi folosim acest centru de excelenţă pentru dezvoltarea motoarelor noastre de acceleraţie criptografică, dar îl folosim pentru a oferi consultanţă despre securitate în alte zone ale Freescale. El devine un cerc virtuos. Noi îl folosim mai mult, ei află mai multe, învaţă mai mult, contribuţia crește, iar apoi noi îl folosim şi mai mult.
Rezultatul este o pătrundere uimitoare de accele­rare criptografică programabilă pe care o veţi găsi în multe soluţii Freescale, inclusiv în procesoarele de comunicaţii QorIQ și în procesoarele de aplicaţii i.MX. Am creat chiar o nouă variantă independentă numită familia de co-procesoare criptografice – C29x – deoarece clienţii doresc, uneori, accesul la motorul nostru, dar pentru un motiv sau altul nu au nevoie de un procesor prea complex.
Am avut contact cu o persoană din departamentul de marketing care era frustrată pentru că a creat un tabel uriaş cu toate combinaţiile de algoritmi de securitate pentru care se doarea suport, iar echipa de software nu l-a completat suficient de repede. Dar, ceea ce nu a reușit să aprecieze este că motorul de accelerare criptografică este programabil. Să vrei toate combinaţiile pentru fiecare algoritm criptografic existent, imediat, este ca și cum ai vrea ca orice program care îţi trece prin minte să-l ai în PC-ul tău… chiar acum!
Deci, aici este întrebarea de un milioan de dolari: Dacă vreţi să acceleraţi operaţiunile criptografice din proiectul dumneavoastră bazat pe Linux și utilizaţi un procesor de comunicaţii QorIQ de la Freescale, cum poate Freescale să sprijine această operaţiune în cel mai bun mod? Gândiţi-vă la asta. Inginerii noștri de software au acces imediat la inginerii din spatele motorului nostru de criptare și atunci când deveniţi partener cu Freescale, aveţi şi voi acelaşi acces.

Comunicaţii
Nu există nicio modalitate în care aş putea elogia suficient adevăratele performanţe ale procesoarelor pentru comunicaţii de la Freescale. Nu într-un articol pe blog. Nici măcar într-o carte. Dar poate reuşesc într-un mic rezumat.
Freescale a schimbat într-adevăr istoria procesoarelor de reţa, când a introdus procesorul 68HC302. Deși acest lucru s-a întâmplat cu mult timp în urmă, adevărul este că 68HC302 trăiește. Acest procesor, distinct și clar, a devenit un fel de reper pentru cei care vor să înveţe cum să accele­reze pachetele de date pe Internet și Ethernet. Freescale a examinat fiecare bit din fiecare element din linie în fiecare algoritm și a învăţat cum să-l reprezinte cel mai bine în siliciu, păstrând în același timp toate flexibilitatea software-ului. Freescale nu face totul dintr-o dată. A început cu procesorul de comunicaţii (CP), apoi a creat DPAA, iar acum, departe de ceea ce s-a făcut la început, Freescale este încă o dată inovator, prin crearea unui mod cu totul nou de a gândi despre comunicaţiile bazate pe pachete, cu ajutorul arhitecturii Layerscape. Datorită acestor etape, Freescale a creat primul Linux ce rulează pe procesoarele sale de comunicaţii. Expertiza noastră în ceea ce priveşte punerea de software pe IP este incontestabilă.

Calitate
Chiar dacă suntem foarte experimentaţi cu IP-ul nostru pe siliciu, mulţi clienţi se întreabă “Cât de bun este în realitate Linux SDK?” În mintea mea, echivalez calitatea cu testarea, dar de fapt este mult mai mult, de exemplu, este chiar procesul pe care îl utilizezi. Să analizăm ceea ce facem în spatele dezvoltarii Freescale SDK.

Mediu de testare
Fiecare SDK este testat riguros înainte de a fi lansat pe piaţă. Prin lansare, vreau să spun că vom face o imagine testată, disponibilă la http://freescale.com/sdk. Executăm această sarcină monumentală aproximativ de două ori pe an. Dar, la fel de monumentală ca realizare a noastră este faptul că facem o cantitate considerabilă de teste, în mult mai puţin timp decât v-aţi putea aștepta. De ce?

De-a lungul anilor, Freescale a decis că, pentru a fi eficient în dezvoltarea de Linux, are nevoie de a crea capacitatea de a gestiona mai multe versiuni de Linux kernel, plăci multiple, cip-uri multiple, mai multe teste și a ţine evidenţa tuturor acestor factori multipli. Problema este o progresie geometrică. Ca urmare, în spatele dezvoltării Linux de la Freescale, este o foarte largă interconectare între dezvoltarea Linux și mediul de testare. Din acest motiv, în orice moment, un inginer de software de la Freescale se poate conecta la o placă existentă în una dintre “fermele” noastre de plăci din întreaga lume (mai multe “ferme” pe placă, mai târziu), pentru a crea un BSP din orice număr de nuclee Linux diferite, să programeze un kernel în memoria flash a plăcii, iar apoi să simuleze placa în toate modurile posibile.

Utilizând puternicul mediu de dezvoltare multi­nucleu CodeWarrior depanarea de la distanţă în timp real nu pune nicio problemă. Dacă dorim, putem să introducem modificări chiar în sistemele noastre de proiectare a circuitelor integrate (IC) pentru ca acestea să se suprapună mai bine peste software. Şi, pentru că un singur inginer de software poate face ceea ce am descris mai sus, Freescale poate face acest lucru cu programe automate. De fapt, noi facem acest lucru tot timpul. Freescale face testare 24/7. Monitorizăm constant parametrii cheie de performanţă și atunci când inginerii testează cod în oricare parte din Linux, este rapid şi exersat în amănunt. Până când codul nostru ajunge la kernel.org, acesta a fost rulat și rulat și iar rulat. Luăm, de asemenea, decizii cu privire la versiunile de kernel pe care codul ar trebui să ruleze. Acest lucru înseamnă că-l testăm şi pe versiunile precendente dar şi viitoare de care dispunem. Notă rapidă privind depanarea: Deși există multe instrumente de dezvoltare pe piaţă, suita de dezvoltare CodeWarrior pentru aplicaţii de reţea oferă abilitatea de a contacta Freescale pentru obţinerea suportului de depanare procesor sub Linux fără implicarea unei terţe părţi.

Teste personalizate Linux și mai multe teste … și chiar mai mult
Nu este un secret că pentru Linux, există o mulţime de teste disponibile. Nu este un secret faptul că Freescale va folosi cât mai multe dintre acestea pe cât posibil. Dar, dacă noi am fi testat cu ajutorul suitelor de test disponibile pe internet, atunci Freescale nu s-ar mai fi diferenţiat de celelalte companii. Deci, am scris câteva teste, ale noastre. Mai multe, mii, ca să fie exact. Mai mult, ne-am creat propriile noastre modelele de referinţă. Unul, ca exemplu, este NAS (Network Attached Storage), proiect de referinţă – pe care vom rula codul de referinţă NAS prin câţiva pași, ca parte a testelor noastre. Deci, când Freescale spune că noi scriem un test, uneori este o aplicaţie întreagă. Câteva dintre testele noastre au o componentă manuală pentru ele. De exemplu, testarea la cald a conectării USB, este un test manual. Cu toate acestea, urmărim procentajul nostru de teste manuale și sunt adăugate echipamente tot timpul, astfel încât, multe teste manuale, pe cât posibil, să fie complet transformate în 100% teste automate. Când rulăm aceste teste, monitorizăm indicatorii cheie de performanţă. Noi urmărim acești indicatori în mod regulat pentru a ne asigura că aceștia se menţin în toleranţă. Fiecare test are indicatori cheie de performanţă şi dacă este cazul, şi rezultatele așteptate.

Echipamente de testare în producţie
Îmi amintesc când am mers la sediul unui client, cu mai mulţi ani în urmă și am văzut cum clientul – legat prin laptop la Ethernet – îşi testa placa de dezvoltare. Apoi a pornit unele programe, care cred că încă se mai numesc “a.out”, pentru a reflecta pachetele primite de la placa de test, înapoi la placa de test. Cam la acest lucru s-a rezumat mare parte din testare. Nimic asemănător cu ceea ce facem noi. Freescale cumpără, și închiriază în acelaşi timp, echipamente de testare de producţie pentru reţea. Acestea nu sunt nici mici și nici ieftine. Acestea sunt echipamente industriale, pentru testare de reţea, capabile să injecteze toate tipurile diferite de pachete – voce, date, streaming, video și de specialitate – inclusiv să injecteze erori în pachete și multe alte lucruri care se asigură ca procesoarele noastre vor manipula pachetele în mod corect. Nu avem doar unul sau două dispozi­tive de acest fel. Când ne gândim la traficul de reţea, ne gândim ca la un trafic de date aseamănător unui marfar. Noi măsurăm capacitatea noastră în terabiţi. Drept urmare, plăcile Freescale SDK sunt testate cu adevărat pe un trafic asemănător cu cel din producţie.

Plăci multiple
Mai devreme am discutat despre noţiunea de “fermă” de plăci. O “fermă” de plăci este o cameră plină de plăci de dezvoltare Freescale interconectate, cu alimentare de la reţea, reset, consolă, porturi IO supervizate de la distanţă prin reţea și de accesare JTAG prin reţea.
Avem în “fermă” plăci care sunt foarte vechi precum și plăci care sunt foarte noi. Aceste plăci sunt accesibile pentru testare automată, precum și pentru dezvoltatori individuali. S-ar putea întreba cum ajută acest lucru la calitatea SDK? Anumite deficienţe care ar putea fi în mod normal ratate atunci când o bucată de cod rulează doar pe o singură placă, dar pot fi descoperite atunci când codul rulează pe multe plăci. Aceasta este doar una din modalităţile prin care Freescale încearcă să facă un SDK de foarte bună calitate. Suportăm noi toate plăcile pe care Freescale le-a creat vreodată pentru reţele? Răspunsul sincer este “nu”. Fiindcă aceasta este o problemă cu multiplicare geometrică (suport Linux kernel * plăci * arhitecturi software * etc.), eventual putem permite ca plăcile mai vechi să rămână pe un SDK mai vechi. În cazul în care un client dorește să obţină o actualizare pentru o placă mai veche, până la ultimul SDK, vom realiza o portare personalizată a unui SDK recent. Dar, ca regulă generală, vom gestiona 20 din plăcile noastre mai vechi, în SDK-ul nostru cel mai recent.

Arhitecturi CPU multiple
Când te gândești la faptul că procesoarele Freescale suportă arhitecturi CPU multiple (nucleu pe 32-biţi Power Architecture® e500core, nuclee pe 64-biţi e5500 și e6500 Power Architecture®, nuclee pe 32-biţi ARM® Cortex®-A7 și nuclee pe 64-biţi Cortex-A8), v-aţi aștepta să apară probleme. Nu. Ceea ce a permis ca Freescale să reușească, este că a exersat compilarea Linux-ului pe arhitecturi diferite și a învăţat cum să gestioneze și să se adapteze pentru diferenţele apărute. De exemplu, testele noastre “pur şi simplu ştiu cum” să treacă de la teste pe 32 de biţi la teste pe 64 de biţi. De asemenea, este nevoie să fie creat suport pentru a face faţă diferenţelor de distribuţie, fără a provoca defecţiuni false. Eliminând pe cât posibil cât mai multe diferenţe, prin controlul lor, Freescale poate utiliza aceasta pentru a face un SDK mai bun, mai util, din care vor rezulta BSP-uri mai bune. Într-un fel, ai mai multe șanse de a fi independent de cip prin utilizarea unui BSP Freescale, decât un BSP care acceptă numai o arhitectură unică.

Versiuni de Linux multiple
Modul în care Freescale gestionează Linux urmărește să menţină arhive mari cu versiuni diferite de Linux – ca un fel de jurnal de versiuni ajunse în producţie. Vom urmări îndeaproape Linux și, apro­xi­mativ o dată pe an, ne vom sincroniza cu nucleul cel mai recent care va avea Long Term Support (LTS – un termen Linux). Apoi vom aduce la zi această versiune particulară de nucleu în aproximativ șase luni. Astfel putem avea nucleele mai recente, fără a compromite ceea ce este important pentru clienţii noștri, asigurarea că SDK-ul nostru este foarte solid. Dar, dacă te gândești la asta, înseamnă că Freescale are posibilitatea de a realiza portări pentru versiuni vechi şi noi încorporate în ADN prin proceduri bine puse la punct. Sistemele noastre automate nu ar funcţiona bine dacă nu am avea această parte bine pusă la punct. Codul va trebui să funcţioneze pe diferite versiuni de nucleu, astfel putem scrie codul cunoscând acest lucru – drept urmare codul pur și simplu “funcţionează mai bine”.

Arhitecturi Software Multiple
Ultimul element de calitate pe care îl voi discuta este faptul că Freescale controlează virtualizarea mai mult decât orice companie de semiconductoare din lume. După cum s-a menţionat anterior, SDK-ul noastru trebuie să fie capabil de a găzdui mai multe arhitecturi software. Este important să reţineţi că testăm, de fapt, toate arhitecturile și se verifică indicatorii cheie de performanţă pentru fiecare. Cu alte cuvinte, dacă se execută SMP, AMP, SMP/AMP mixte, Hypervisor (două tipuri diferite), sau situaţii complexe cu sistem de operare (OS) oaspete, am testat deja cele mai multe dintre acestea, pentru tine. Evident, pentru testarea de OS oaspete, vom folosi Linux, datorită acordării licenţelor și disponibilitatea pentru echipele noastre de inginerie. Din moment ce am testat atât de multe arhitecturi software, de asemenea, am scris testele care pot lucra în mai multe arhitecturi software, la fel de bine ca în arhitecturi CPU.
Sper că de acum îţi dai seama că Freescale se gândește la nivelul de calitate pentru Linux, care este greu de învins. Ar costa pur și simplu sute de milioane de dolari pentru a se egala munca pe care a făcut-o Freescale.

Experienţă
Până acum am discutat în detaliu despre tehnologia noastră, dar primești mai mult decât te-ai aștepta atunci când alegi Freescale. Unul dintre marile avantaje obţinute cu Freescale SDK este experienţa. Toate lucrările monumentale pe care le-am descris au fost realizate de către inginerii loiali firmei Freescale. Multă lume ştie că Freescale are mulţi, mulţi proiectanţi de cipuri care lucrează la procesoare de comunicaţii, adevărate opere de artă. Dar ceea ce s-ar putea să nu știţi este că raportul dintre dezvoltatorii de software și dezvoltatorii de cip este în prezent de 1 la 1 și în creștere. Ideea este că pentru a extinde forţa procesoarelor noastre deja foarte performante, bogate în caracteristici, cu funcţii de securitate, este nevoie de software, iar Freescale se angajează să asigure soluţia completă. Doar pentru a sublinia experienţa inginerilor Freescale, puteţi merge la kernel.org și să căutaţi raportul anual denumit “Who is writing Linux”.
În raportul din anul 2013, Freescale este clasat ca al 13-lea contributor din lume, alături de creatori de reţele și lideri IT, precum IBM și Cisco.
Poţi fi pe acea listă doar dacă ai avut contribuţii importante. De fapt, trebuie să fii destul de bun, deoarece deţinătorii Linux controlează toate contribuţiile. Legat de experienţă, Freescale a pus accentul pe ușurinţa de utilizare, atunci când vine vorba de experienţa clientului cu produsele noastre. Vrem cu adevarat ca oamenii, chiar și hobby-iști care lucrează la proiecte pentru diferite expoziţii, să poată utiliza procesoarele noastre. Ca urmare, Freescale este angajat în proiectul Yocto. Pur și simplu încercăm să facem în așa fel încât, să obţineţi pur și simplu o reţetă pentru plăca voastră, să tastaţi o comandă pentru a executa reţeta și să aveţi un BSP instant – care să lucreze perfect pentru placa voastră. (n.r. Yocto este un proiect de creare de distribuţii Linux pentru sisteme embedded).

Securitate
Un domeniu în care tehnologia Freescale este foarte avansată este securitatea. Clienţii Freescale au nevoie de securitate. Ei au nevoie de dezvoltare, implementare, iniţializare, execuţie și comunicare într-un mod care să impiedice factorii ostili să se infiltreze în sistemul lor. În special, atunci când vine vorba de securitate, SDK-ul nostru are înţelepciunea colectivă a tuturor clienţilor noștri, a dezvoltatorilor noștri și componentelor noastre. Ne-am gândit de la un capăt la altul al lanţului valo­ric. Chiar soluţile bazate pe tehnologia ARM le-am împachetat în Freescale IP, ceea ce înseamnă că tehnologia Trustzone de la ARM va beneficia de tehnologia de fabricaţie și secvenţa de iniţializare create de Freescale. Dacă vă confruntaţi cu dificultăţi în a face întregul lanţ valoric securizat și aveţi nelămuriri, contactaţi Freescale.

Acum, ştiind toate aceastea, vă mai permiteţi să ignoraţi SDK-ul Freescale?
Freescale Linux SDK pentru procesoarele de comunicaţii nu este este pur și simplu un Linux BSP obișnuit. El este într-adevăr, mult mai mult. Întrebaţi un dezvoltator de Linux ce face el cu Linux. Puneţi întrebări specifice despre ce aţi învăţat aici. Apoi întrebaţi-vă… dacă aţi căzut într-o capcană? Când lucrurile se complică, cine poate în mod real să răspundă la întrebările voastre? Ce se întâmplă dacă aveţi nevoie de ajutor în oricare dintre domeniile următoare? Cine ar fi mai potrivit pentru a răspunde întrebărilor voastre?

• Cum realizez portarea dintr-un BSP vechi la ultima versiune?
• Cum pot crește performanţa sistemului meu?
• De ce am nevoie pentru a dezvolta produse pentru producţia pe termen lung?
• Cum pot crește calitatea sistemului meu?
• Cum pot reduce consumul de energie al sistemului meu?
• Mă puteţi ajuta să găsesc un defect greu de identificat în sistemul meu? (Avem instrumente și tehnici, pentru care pur și simplu nu am avut spaţiu să le menţionez aici).

La aceste întrebări vă răspunde Freescale, compania care știe Linux în cel mai mic amănunt, care îşi știe produsele proprii mai bine decât oricine de pe planetă. Clienţii noştri se pot baza cu adevărat pe noi când au nevoie, pentru că avem foarte multe de oferit, iar acum la final vă invităm să ne întrebaţi dacă vă putem ajuta cu proiectele voastre bazate pe Linux. Vă permiteţi să vă refuzaţi această oportunitate?

Marlan Winter este inginer de marketing pentru produsele software QorIQ.

Freescale Semiconductor România S.R.L.

București
Tel: 021 3052 400
officero@freescale.com
www.freescale.ro

S-ar putea să vă placă și