A Kerla projekt Linux-kompatibilis kernelt fejleszt Rust nyelven.

A Kerla projekt keretein belül egy Rust nyelven írt operációs rendszer kernel fejlesztése zajlik. Az új kernel elsődlegesen a Linux kernellel való ABI szintű kompatibilitásra összpontosít, lehetővé téve így a nem módosított Linuxra készült végrehajtható fájlok futtatását a Kerla alapú környezetben. A kód az Apache 2.0 és MIT licenc alatt érhető el. A projekt fejlesztője Seiya Nuta, egy japán fejlesztő, aki a C nyelven írt mikrokernel alapú operációs rendszer, a Resea létrehozásáról ismert.

A Kerla jelenlegi fejlesztési szakaszában csak x86_64 architektúrával rendelkező rendszereken működik, és alapvető rendszerhívásokat valósít meg, mint például write, stat, mmap, pipe és poll. Támogatja a jeleket, névtelen csatornákat és a kontextusváltásokat. A folyamatok kezelésére a fork, wait4 és execve hívások állnak rendelkezésre. Támogatja a tty-t és a pseudoterminalokat (pty). A fájlrendszerek közül eddig az initramfs (amelyet a gyökér fájlrendszer csatolására használnak), a tmpfs és a devfs támogatott. Hálozati verem kínál TCP és UDP socketek támogatásával, amely a smoltcp könyvtárra épül.

A fejlesztő készített egy boot környezetet, amely QEMU-ban vagy virtuális gépben Firecrackerben futtatható virtio-net meghajtóval, amelyhez már SSH-n keresztül lehet csatlakozni. A rendszerkönyvtárként a musl, míg a felhasználói segédprogramokhoz a BusyBox szolgáltat.

A Kerla projekt Linux-kompatibilis kernelt fejleszt Rust nyelven.

Docker alapú build rendszer készült, amely lehetővé teszi saját boot initramfs-ek létrehozását Kerla kernellel. Ezen kívül külön fejlesztik a fish-hez hasonló nsh shell-t és a Kazari GUI stack-et, amely a Wayland protokollra épül.

A Kerla projekt Linux-kompatibilis kernelt fejleszt Rust nyelven.

A Rust nyelv használata a projektben csökkenti a kódhibák számát a biztonságos programozási módszerek alkalmazásának és a memóriakezelési problémák hatékonyabb észlelésének köszönhetően. A Rust biztosítja a memória biztonságos kezelését a fordítás során a hivatkozások ellenőrzésével, az objektumok tulajdonjogának nyomon követésével és az objektumok életciklusának (láthatósági területének) figyelembevételével, valamint a memória hozzáférésének helyességének értékelésével a kód végrehajtása során. Ezen kívül a Rust eszközöket biztosít a túlcsordulások ellen, megköveteli a változók kötelező inicializálását a használat előtt, alapértelmezetten alkalmazza a változók és hivatkozások immutabilitásának koncepcióját, és erős statikus típusképzést kínál a logikai hibák minimalizálására, egyszerűsíti a bemeneti értékek kezelését a mintaillesztési eszközök révén.

Alacsony szintű összetevők, például az operációs rendszer kernelfejlesztéséhez a Rust támogatja a nyers mutatókat, a struktúrák csomagolását, az inline assembler beszúrásokat és az assembler fájlok beágyazását. A standard könyvtárhoz való kötődés nélküli működéshez külön crate csomagok állnak rendelkezésre, amelyek lehetővé teszik a sztringek, vektorok és bitflagok kezelését. Az előnyök között említhetők a beépített eszközök a kód minőségének értékelésére (lint, rust-analyzer) és az unit tesztek készítésére, amelyeket nemcsak valós hardveren, hanem a QEMU-ban is végrehajthatók.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster