Uspješno sudjelovanje doktoranda...

Denis Salopek, doktorand na FER-u i asistent na Zavodu za telekomunikacije, sudjelovao je na upravo završenom Google Summer of Code ciklusu s projektom razvoja pogonskog programa (engl. device driver) u jezgri operacijskog sustava FreeBSD za razvojnu ploču NetFPGA SUME.

NetFPGA je projekt otvorenoga kôda pokrenut u suradnji sveučilišta Stanford i Cambridge s fokusom na omogućavanje razvoja mrežnog sklopovlja (npr. usmjernika, prospojnika, mrežnih kartica, te druge specijalizirane namjenske logike obrade paketa) korištenjem programirljivih logičkih polja (FPGA). Postojeće programsko sučelje, odnosno pogonski program putem kojeg takav uređaj komunicira s operacijskim sustavom, bio je dostupan samo za operacijski sustav Linux. Cilj Denisovog projekta bio je razviti odgovarajući pogonski program za operacijski sustav FreeBSD, što je uspješno i ostvario, pa će razvijeni driver biti uključen u nadolazeću verziju FreeBSD 12.2.

Google Summer of Code uključuje izradu projekata u kojima studenti dodiplomskih, diplomskih i doktorskih studija sudjeluju izradom ciljanih programskih rješenja otvorenog kôda. Rad na projektima provodi se tijekom ljeta uz mentorstvo etabliranih organizacija otvorenoga kôda te uz stipendije koje isplaćuje Google. Ove godine je od 8902 zaprimljenih projektnih prijedloga za provedbu, prihvaćeno njih 13 posto iz ukupno 66 zemalja, među kojima je bio i Denisov projekt.

U nastavku obavijesti Denis Salopek podijelio je svoje dojmove o sudjelovanju na Google Summer of Code, poručivši svim studentima FER-a, a posebno onima s vlastitom inicijativom u razvoju programskih rješenja otvorenoga kôda, da GSoC može biti izuzetno zanimljivo i korisno iskustvo!

"U sklopu istraživanja na doktorskom studiju pod mentorstvom prof. dr. sc. Miljenka Mikuca, bavim se obradom prometa u mrežama visoke propusnosti korištenjem računala i dodatnog sklopovlja pa su operacijski sustav FreeBSD i razvojna ploča NetFPGA SUME bili dio mog istraživanja i prije ovog projekta.

Programiranje drivera / pogonskih programa zahtijeva (u)poznavanje rada jezgre operacijskog sustava, posebno na razini upravljanja DMA komunikacijom s uređajem te pakiranje sirovih podataka u strukture prilagođene mrežnom složaju OS-a. Budući da kroz 10 Gbit/s Ethernet sučelje može proći i do 14,88 milijuna paketa u sekundi, posebnu pažnju potrebno je posvetiti učinkovitosti i štednji resursa pa je korisno imati i prethodnog iskustva u optimizaciji takvog koda.

U NXLAB-u na Zavodu za telekomunikacije (laboratorij čiji sam član), već dugo se bavimo obradom paketa u 10G Ethernet i bržim mrežama. Upravo to prethodno iskustvo i oprema dostupna u laboratoriju bili su ključni za uspješan razvoj i ispitivanje rada drivera.

Jedna od prednosti ovog projekta je što sam imao pomoć stručnjaka iz FreeBSD zajednice za koju sam radio i tako sam mogao puno brže doći do rezultata nego da sam se primio tog zadatka samostalno. Posljednja tri mjeseca bila su (zabavan) izazov na kojem sam svakoga dana proširio svoja znanja, a pored toga, imam i vidljive rezultate svoga rada.

Pored samog kodiranja, bilo je nužno i kvalitetno pripremiti dokumentaciju za prijavu projekta te tijekom rada redovito pisati izvješća. Da ne bi sve bilo prejednostavno, nebrojene sate utrošio sam u, nadam se, ispravno deklariranje, izračun te plaćanje poreza na primljenu stipendiju. Uz to, izazovno je bilo i pronaći ravnotežu između raspodjele vremena za posao i ovaj projekt na način da mi ostane i nešto slobodnog vremena“, zaključuje Denis.

Autor: Petra Škaberna
Popis obavijesti