LAKI PINGVINI<>
022015<><>

”Nevidljivi” računari i Linux (1)

Pingvini iz senke

Slika 1. Single-board computer (Pico-ITX format)
Kada manje upućenom korisniku računara pomenete Linux, šta je prva asocijacija? Verovatno ništa. Oni nešto upućeniji bi verovatno mogli da opišu neke karakteristike Linuxa, uz nezaobilazne poluinformacije i dezinformacije pokupljene sa IT sajtova i od poznanika koji se izdaju za kompjuterske poznavaoce. A šta se dešava kada naprednijeg korisnika upitate šta je Linux i gde se sve sreće? Verovatno ćete dobiti odgovor da je reč o stabilnom klonu Unixa, često korišćenom kako na serverima tako i radnim stanicama za razvoj multiplatformskog softvera. Mali broj poznavalaca računara zna da Linux uživa priličnu popularnost na namenskim (takozvanim „embedded”) računarima. Upravo je to tema ovomesečne edukativne sekcije.

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.

Slika 2. Computer-on-module (Qseven format)
Takvi računari vrše najrazličitije uloge: to su mrežni ruteri, mobilni telefoni, stone i džepne igračke konzole, pametni fotoaparati, veš mašine i frižideri više klase, prenosni multimedijalni plejeri, računari sa senzorskom mrežom unutar automobila, napredni medicinski uređaji, kontroleri proizvodnih procesa u fabrikama... Otud i naziv: namenjeni su za ugradnju (embedding) u neki složeniji sistem specifične namene, nasuprot PC računaru koji predstavlja sistem opšte namene jer ga možemo koristiti za najrazličitije poslove.

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Ć

 
”Nevidljivi” računari i Linux (1)
Šta mislite o ovom tekstu?
Trisquel 7.0
AutoKey 0.90
SubDownloader 2.0.18
LiBRE! časopis o slobodnom softveru
Home / Novi brojArhiva • Opšte temeInternetTest driveTest runPD kutakCeDetekaWWW vodič • Svet igara
Svet kompjutera Copyright © 1984-2018. Politika a.d. • RedakcijaKontaktSaradnjaOglasiPretplata • Help • English
SKWeb 3.22
Opšte teme
Internet
Test Drive
Test Run
PD kutak
CeDeteka
WWW vodič
Svet igara



Naslovna stranaPrethodni brojeviOpšte informacijeKontaktOglašavanjePomoćInfo in English

Svet kompjutera