Kerla: nové jádro napsané v Rustu a kompatibilní s Linux ABI

Nedávno byly zveřejněny informace o projektu Kerla, který je vyvíjen jako jádro operačního systému napsané v jazyce Rust. Kód je distribuován pod licencemi Apache 2.0 a MIT. Projekt vyvíjí japonský vývojář Seiya Nuta, známý vytvořením mikrokernelu operačního systému Resea, napsaného v jazyce C.

Nové jádro se zaměřuje zpočátku zajistit kompatibilitu s linuxovým jádrem na úrovni ABI, což umožní běh neupravených binárních souborů vytvořených pro Linux v prostředí založeném na Kerla.

O Keralovi

Kerla je monolitické jádro operačního systému vytvořené od nuly v Rustu. V současné fázi vývoje Kerla lze spustit pouze na systémech s architekturou x86_64 a implementuje základní systémová volání jako write, stat, mmap, roura a poll, podporuje signály, nepojmenované roury a kontextové přepínače. Volání jako fork, wait4 a execve poskytují řízení procesů. Existuje podpora pro tty a pseudoterminály (pty). Mezi systémy souborů initramfs (používané k připojení kořenového FS) jsou stále podporovány tmpfs a devfs.

K dispozici je také síťový zásobník s podporou soketů TCP a UDP, Založeno na knihovně smoltcp. Vývojář připravil bootovací prostředí, které funguje v QEMU nebo Firecracker VM s ovladačem virtio-net, ke kterému se již můžete připojit přes SSH. Musl se používá jako systémová knihovna a BusyBox se používá jako uživatelská utilita. Na základě Dockeru byl připraven systém sestavení, který vám umožní vytvořit si vlastní boot initramfs s jádrem Kerla.

O jeho novém jádru bylo zatím poskytnuto jen málo podrobností, ale to, co nejvíce přitahuje pozornost k vlastnostem Kerly, je skutečnost, že je napsáno v Rustu. Má tedy psaní v Rustu nějaké výhody oproti jiným jazykům nebo oproti stávajícímu kódu? Mnozí na tuto otázku odpověděli ano a zdůraznili výhody zabezpečení paměti, které jazyk poskytuje.

Poskytuje se také při vyhodnocování přesnosti přístupů do paměti za běhu. A co víc, Mozilla věří, že Rust nabízí ochranu proti přetečení celých čísel, vyžaduje před použitím povinnou inicializaci hodnot proměnných, ve výchozím nastavení přijímá koncept referencí a neměnných proměnných, nabízí silné statické typování pro minimalizaci logických chyb a zjednodušuje zpracování vstupu pomocí párování vzorů.

Mezi výhody vyzdvihujeme integrované nástroje pro hodnocení kvality kódu a vytváření jednotkových testů, které lze spustit nejen na skutečném hardwaru, ale také na QEMU. Mozilla v zásadě považuje Rust za jednodušší na ladění, protože kompilátor odmítne chyby. Zátoky však ukázaly na některé nevýhody Rusta.

„Stejně jako u C ++ je téměř nemožné napsat idiomatický Rust bez použití šablon, takže má nabubřelé binární soubory a pomalé kompilace. Všechny tyto kontroly v době kompilace také něco stojí. Také, pokud něco přepíšete, ztratíte starou vyspělou kódovou základnu a neexistuje způsob, jak vytvořit kódovou základnu podobné kvality v rozumném množství času; je mnohem lepší rozšířit, než přepsat, program v Rustu. Je lepší program rozšířit, než jej přepisovat do Rustu, “říká softwarový inženýr.

Podle jeho tvůrce právě z tohoto důvodu vývojáři Linuxu zejména Linus Torvalds sám, odmítli myšlenku přepsat celé jádro do Rustu.

„Udělejte nějakou práci na vytvoření zabezpečených odkazů, pak napište další kód v Rustu a stále si můžete užívat tento vyzrálý kód. (To je to, co Linux dělá, existují snahy přidat možnost napsat modul jádra v Rustu), “dodal. Vývojáři Linuxu zkoumali možnosti psaní určitých nových modulů jádra pomocí jazyka Rust asi tři roky. Vznikl tak projekt »Rust for Linux«.

Nakonec, pokud máte zájem o tom vědět více, můžete si přečíst podrobnosti Na následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.