Kerla: ново јадро напишано во Rust и компатибилно со Linux ABI

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

Новиот кернел првично има за цел обезбеди компатибилност со кернелот на Linux на ниво на ABI, што ќе овозможи немодифицираните бинарни датотеки изградени за Linux да работат во околина базирана на Kerla.

За Керал

Kerla е монолитен оперативен систем јадро создаден од нула во Rust. Во сегашната фаза на развој, Керла може да се работи само на системи со архитектура x86_64 и имплементира основни системски повици како запишување, статистика, mmap, цевка и анкета, поддржува сигнали, неименувани цевки и контекстуални прекинувачи. Повиците како fork, wait4 и execve обезбедуваат контрола на процесите. Има поддршка за tty и псевдо-терминали (pty). Меѓу датотечните системи initramfs (кои се користат за монтирање на root FS), tmpfs и devfs сè уште се поддржани.

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

Досега се дадени малку детали за неговото ново јадро, но она што најмногу привлекува внимание на карактеристиките на Kerla е фактот дека е напишано во Rust. Значи, дали пишувањето во Rust има некакви предности во однос на другите јазици или во однос на постоечкиот код? Многумина одговорија да на ова прашање, нагласувајќи ги придобивките од безбедноста на меморијата што ги дава јазикот.

Тоа е исто така обезбедено при оценување на точноста на пристапите до меморијата при извршување. Што повеќе, Mozilla верува дека Rust нуди заштита од прелевање на цели броеви, бара задолжителна иницијализација на вредностите на променливите пред употреба, стандардно го усвојува концептот на референци и непроменливи променливи, нуди силно статичко пишување за да се минимизираат логичките грешки и ја поедноставува обработката на влезните податоци преку усогласување на обрасците.

Меѓу предностите, ги истакнуваме интегрираните алатки за оценување на квалитетот на кодот и создавање на тестови за единици кои можат да се извршуваат не само на вистински хардвер, туку и на QEMU. Во основа, Mozilla смета дека Rust полесно се дебагира бидејќи компајлерот ќе ги отфрли грешките. Сепак, заливите укажаа на некои недостатоци кај Rust.

„Како и со C ++, речиси е невозможно да се напише идиоматски Rust без користење шаблони, така што има надуени бинарни датотеки и бавно време на компајлирање. Сите овие проверки во времето на компајлирање имаат и цена. Исто така, ако преработите нешто, ја губите старата зрела база на кодови и нема шанси да создадете база на кодови со сличен квалитет за разумно време; многу е подобро да се прошири, наместо да се препишува, програмата во Rust. Подобро е да се прошири програмата наместо да се препишува во Rust “, вели софтверски инженер.

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

„Направете малку работа за да создадете безбедни врски, потоа напишете го дополнителниот код во Rust и сè уште ќе можете да уживате во тој зрел код. (Тоа го прави Linux, има напори да се додаде можност за пишување модул на јадрото во Rust), додаде тој. Програмерите на Linux ги истражуваат можностите за пишување одредени нови модули на кернелот користејќи го јазикот Rust околу три години. Ова доведе до проектот „Раѓа за Линукс“.

Конечно, ако сте заинтересирани да знаете повеќе за тоа, можете да се консултирате со деталите На следниот линк.


Содржината на статијата се придржува до нашите принципи на уредничка етика. За да пријавите грешка, кликнете овде.

Биди прв да коментираш

Оставете го вашиот коментар

Вашата е-маил адреса нема да бидат објавени. Задолжителни полиња се означени со *

*

*

  1. Одговорен за податоците: Мигел Анхел Гатон
  2. Цел на податоците: Контролирајте СПАМ, управување со коментари.
  3. Легитимација: Ваша согласност
  4. Комуникација на податоците: Податоците нема да бидат соопштени на трети лица освен со законска обврска.
  5. Складирање на податоци: База на податоци хостирани од Occentus Networks (ЕУ)
  6. Права: Во секое време можете да ги ограничите, вратите и избришете вашите информации.