![]() | ![]() |
![]() |
| ![]() |
| |||||||||||||||||
Pingvini iz senke
Embedded šta? Na internet forumima nisu retke diskusije o tome šta su „pravi” računari, a šta nisu. Setimo se ponovnog uvođenja opisa konzolnih igara u „Svet kompjutera” pre nekoliko godina, kao i prateće teme na „SK forumu” gde su pojedini forumaši grčevito branili stanovište da konzolama nije mesto u „Svetu kompjutera”, jer to nisu kompjuteri. Naravno, radi se o pogrešnoj formulaciji – igračke konzole svakako nisu Intel-kompatibilni PC računari (doduše, poslednja generacija praktično jeste), ali su definitivno kompjuteri po svim svojim osobinama. Štaviše, iza mnogih blagodeti današnjice nalaze se „skriveni” računari koji sadrže: procesor (neretko sa hardverskom FPU jedinicom i više procesorskih jezgara), RAM (sa baterijskim bekap napajanjem ili ne), nekakav storage za podizanje operativnog sistema i skladištenje podataka (najčešće u vidu fleš memorije), kao i mrežni interfejs (Ethernet ili Wi-Fi) i slično.
Od mikrokontrolera do Core-i7 Očigledno, granica između uobičajenih desktop/laptop računara i embedded računara nije jasno definisana. Mnogi embedded sistemi, naročito oni koji obavljaju vrlo specifičan posao u realnom vremenu, zasnovani su na mikrokontrolerima ili DSP-ovima niske potrošnje. Na njima se „vrti” specijalizovani operativni sistem prilagođen takvom hardveru (npr. FreeRTOS), a neretko uopšte nema operativnog sistema već se izvršava jedan jedini program dopunjen minijaturnim drajverima za upravljanje malim skupom uređaja. Međutim, u nezanemarljivom broju embedded računara, naročito onih sa nešto snažnijim hardverom koji mora da pokrije širi spektar funkcija, nalazi se upravo Linux, i u manjoj meri Windows Embedded (zanimljivo, igračku konzolu PlayStation 4 pokreće modifikovana verzija FreeBSD-a, još jednog predstavnika Unix familije). Ovakav hardver neretko je zasnovan na procesoru familije Cortex-A ili na nekom x86 kompatibilcu, poput AMD-ove serije G, Intel Atoma, pa sve do Core i7 – bitno je da se radi o (minimalno) 32-bitnom procesoru koji poseduje hardversku MMU jedinicu (Slika 1.). Iz prakse su nam poznati primeri industrijskih kontrolera koji nisu ništa drugo nego prepakovani PC, mada ovakvi sistemi nisu preterano rasprostranjeni, na prvom mestu zbog potrošnje i zagrevanja (kupci najčešće insistiraju na pasivnom hlađenju). Snažniji embedded računari (Slika 2.) obično se prave kao COM (Computer-on-Module) koji se ugrađuje u odgovarajuću matičnu ploču (recimo, po industrijskim standardima „COM Express” i „Qseven”), ili u varijanti gde se sve nalazi na zajedničkoj ploči, zajedno sa konektorima (tzv. „single-board computer”). Primer koji će čitaocima biti bliži je minijaturni računar Raspberry Pi, koji predstavlja školski primer embedded single-board kompjutera, istovremeno razvojnog sistema za hobiste i entuzijaste, sa nekoliko dostupnih Linux distribucija. Konkretni embedded sistemi se obično projektuju za specifične uslove. Na primer, štampana ploča se oblikuje tako da može da se uklopi u određenu šasiju, biraju se određene komponente otporne na vibracije i trzaje, ali je za većinu zajedničko isto: tu su procesor i razni kontroleri integrisani na istom silicijumu (takozvani „system on chip”), RAM, fleš memorija, pomoćna kola (temperaturni senzori, real-time časovnik sa baterijskim napajanjem...) i eventualni konektori za proširenje (mini PCI Express, SATA, namenski konektori za vezu sa drugim pločama i slično). Naravno, strogo se vodi računa o dimenzijama, potrošnji i ceni komponenata. U interakciji sa korisnikom, kod namenskih računara, definitivno nema pravila. Na primer, mrežni ruter je predviđen da se poveže „u struju” i da radi svoj posao, a to je rutiranje IP saobraćaja. Eventualno štelovanje vrši se putem web interfejsa i to je sve – nema lokalnog miša, tastature, ekrana i slično. To ne znači da se na njegovom procesoru ne može izvršavati operativni sistem kao što je Linux (na kome sluša minijaturni web server kao što je Nginx), jer kao što znamo, grafičko okruženje uopšte nije deo samog Linux jezgra već se pokreće kao odvojeni skup korisničkih programa. Samim tim, na ovakvim sistemima grafičko okruženje često nije instalirano, niti je planirano da korisnik u svakodnevnom radu ručno pokreće programe. Sve je automatizovano „startup” skriptama i odgovarajućim programima, a eventualno podešavanje vrši se u strogo kontrolisanim uslovima, kao što je pomenuti web interfejs, odnosno klasična web stranica koju servira HTTP server na uređaju. Sa druge strane, pojedini embedded sistemi nude vrlo bogat grafički interfejs na lokalnom ekranu, sve zavisno od namene. Gde je tu Linux? Linux je interesantan kao operativni sistem za snažnije embedded računare iz više razloga. Na prvom mestu, izvorni kôd je otvoren, pa je nad njim moguće praviti svakakve modifikacije, u zavisnosti od potreba, znanja i raspoloživog vremena za razvoj. Na drugom mestu, uz Linux kernel stiže ogromna baza drajvera i pokriva na hiljade raznih uređaja. Drajveri koji dolaze uz Linux su često funkcionalniji od njihovih pandana koji se dobijaju uz mikrokontrolerska razvojna okruženja, a svakako je manja verovatnoća da će praviti probleme nego kada biste ih sami pisali na osnovu dokumentacije koju ste dobili uz neki čip. Na trećem mestu, postoji ogromna baza postojećeg softvera za Linux koji se, uz modifikacije ili bez njih, može koristiti na embedded sistemu. Hoćete da napravite minijaturni embedded računar za kontrolu industrijskog procesa (bilo direktno ili upravljajući mikrokontrolerima), a da pritom sve relevantne podatke skladišti u SQL bazu na SSD uređaju i da omogući daljinsku administraciju putem web interfejsa? Uz Linux, ovo je sasvim realan scenario. U sledećem broju, pozabavićemo se specifičnostima Linuxa u embedded okruženju, uključujući razvijanje aplikacija, pripremu fajl-sistema i slično. Ivan TODOROVIĆ |
| |||||||||||||||||||
![]() | |
![]() | ![]() |
Home / Novi broj | Arhiva • Opšte teme | Internet | Test drive | Test run | PD kutak | CeDeteka | WWW vodič • Svet igara Svet kompjutera Copyright © 1984-2018. Politika a.d. • Redakcija | Kontakt | Saradnja | Oglasi | Pretplata • Help • English | |
SKWeb 3.22 |