Kerla: novo jezgro napisano u Rustu i kompatibilno sa Linux ABI

Информације о пројекту Керла су недавно објављене. Керла се развија као језгро оперативног система написано у програмском језику Rust. Код се дистрибуира под лиценцама Apache 2.0 и MIT. Пројекат развија јапански програмер Сеија Нута, познат по стварању микројезгра оперативног система Resea, написаног у програмском језику C.

Ново језгро првобитно има за циљ да обезбеди компатибилност са Линукс језгром на ABI нивоу, омогућавајући немодификованим бинарним датотекама креираним за Линукс да раде у окружењу заснованом на Керли.

O Keralu

Керла је монолитно језгро оперативног система изграђено од нуле у Русту. У својој тренутној фази развоја, Керла може да ради само на x86_64 системима и имплементира основне системске позиве као што су write, stat, mmap, pipe и poll. Подржава сигнале, неименоване цеви и прекидаче контекста. Позиви попут fork, wait4 и execve се користе за контролу процеса. Постоји подршка за tty и псеудо-терминале (pty). И даље су подржани initramfs (користи се за монтирање коренског фајл система), tmpfs и devfs фајл системи.

Такође је обезбеђен мрежни стек са подршком за TCP и UDP сокете, базиран на smoltcp библиотеци. Програмер је припремио окружење за покретање које ради у QEMU или Firecracker виртуелним машинама користећи virtio-net драјвер, на који се већ можете повезати путем SSH . Musl се користи као системска библиотека, а BusyBox као кориснички услужни програм . Припремљен је систем за изградњу базиран на Docker-у који вам омогућава да креирате сопствене boot initramfs-ове користећи Kerla кернел.

Do sada je dato nekoliko detalja o njegovom novom kernelu, ali ono što najviše privlači pažnju Kerlinim karakteristikama je činjenica da je napisan na Rustu. Dakle, da li pisanje na Rustu ima neke prednosti u odnosu na druge jezike ili u odnosu na postojeći kod? Mnogi su odgovorili potvrdno na ovo pitanje, naglašavajući prednosti bezbednosti memorije koje jezik pruža.

Такође се пружа приликом процене тачности приступа меморији током извршавања. Штавише , Мозила верује да Руст нуди заштиту од прекорачења целих бројева , захтева обавезну иницијализацију вредности променљивих пре употребе, усваја концепт референци и непроменљивих променљивих подразумевано, нуди јако статичко типизирање како би се минимизирале логичке грешке и поједностављује обраду уноса путем подударања образаца.

Међу предностима, истичемо интегрисане алате за процену квалитета кода и креирање јединичних тестова који се могу покренути не само на стварном хардверу већ и у QEMU-у. У суштини, Мозила сматра да је Раст лакши за дебаговање, јер ће компајлер одбацити грешке. Међутим, тестови су указали на неке недостатке Раста.

„Kao i kod C ++, gotovo je nemoguće napisati idiomatski Rust bez upotrebe šablona, ​​tako da ima naduvene binarne datoteke i sporo vreme kompajliranja. Sve ove provere u vreme kompajliranja takođe imaju cenu. Takođe, ako nešto prepišete, gubite staru zrelu kodnu bazu i ne postoji način da napravite bazu koda sličnog kvaliteta u razumnom vremenskom periodu; mnogo je bolje proširiti, nego ponovo pisati, program u Rustu. Bolje je proširiti program umesto da ga prepisujete u Rust-u “, kaže softverski inženjer.

Према речима његовог творца, то је разлог зашто су програмери Линукса, посебно сам Линус Торвалдс, одбацили идеју преписивања целог језгра у Русту.

„Poradite na stvaranju sigurnih veza, a zatim napišite dodatni kod u Rustu i još uvek možete uživati ​​u tom zrelom kodu. (To radi Linux, postoje napori da se doda mogućnost pisanja modula kernela u Rust-u), “dodao je on. Linux programeri istražuju mogućnosti pisanja određenih novih modula kernela koristeći Rust jezik oko tri godine. Ovo je dovelo do projekta »Rust for Linux«.

На крају, ако сте заинтересовани да сазнате више, детаље можете пронаћи на следећем линку.


Додај као жељени извор на Гуглу