Pwojè Kerla ap devlope yon nwayo ki konpatib ak Linux nan lang Rust

Pwojè Kerla ap devlope yon nwayo sistèm operasyon ekri nan lang Rust. Nouvo nwayo a okòmansman konsantre sou bay konpatibilite ak nwayo Linux nan nivo ABI, ki pral pèmèt dosye ègzèkutabl ki pa modifye konpile pou Linux yo kouri nan yon anviwònman ki baze sou Kerla. Kòd la distribye anba Apache 2.0 ak lisans MIT. Pwojè a ap devlope pa devlopè Japonè Seiya Nuta, li te ye pou kreye sistèm operasyon microkernel Resea, ekri nan lang C.

Nan etap devlopman aktyèl li a, Kerla ka sèlman kouri sou sistèm x86_64 epi aplike apèl sistèm debaz tankou ekri, stat, mmap, tiyo ak biwo vòt, sipòte siyal, tiyo san non ak switch kontèks. Apèl tankou fork, wait4, ak execve yo bay pou kontwole pwosesis yo. Gen sipò pou tty ak pseudo-tèminal (pty). Sistèm fichye kounye a sipòte yo se initramfs (yo itilize pou monte sistèm dosye rasin lan), tmpfs ak devfs. Yon pile rezo ak sipò pou TCP ak UDP sockets yo bay, aplike ki baze sou bibliyotèk la smoltcp.

Pwomotè a te prepare yon anviwònman bòt ki kouri nan QEMU oswa nan machin vityèl Firecracker ak chofè virtio-net, kote ou ka deja konekte atravè SSH. musl yo itilize kòm yon bibliyotèk sistèm, epi BusyBox yo itilize kòm sèvis piblik itilizatè.

Pwojè Kerla ap devlope yon nwayo ki konpatib ak Linux nan lang Rust

Yo te prepare yon sistèm konstriksyon ki baze sou Docker ki pèmèt ou kreye pwòp initramfs bòt ou ak Kernel Kernel la. Separeman, yo devlope koki lojisyèl nsh ki sanble ak pwason ak pile Kazari GUI ki baze sou pwotokòl Wayland la.

Pwojè Kerla ap devlope yon nwayo ki konpatib ak Linux nan lang Rust

Sèvi ak langaj Rust nan yon pwojè pèmèt ou diminye kantite erè nan kòd la lè w itilize teknik pwogramasyon ki an sekirite epi ogmante efikasite nan idantifye pwoblèm lè w ap travay ak memwa. Rust ranfòse sekirite memwa nan moman konpile atravè tcheke referans, pwopriyetè objè ak swiv objè pou tout lavi (dimansyon), epi pa evalye kòrèkteman nan aksè memwa nan ègzekutabl. Anplis de sa, Rust bay pwoteksyon kont debòde nonb antye relatif, mande pou valè varyab yo dwe inisyalize anvan ou itilize, ranfòse konsèp nan referans imuiabl ak varyab pa default, ofri fò sezisman estatik pou minimize erè lojik, epi senplifye manyen valè opinyon. gras a matche modèl..

Pou devlopman konpozan ki ba-nivo, tankou nwayo OS la, Rust bay sipò pou endikasyon anvan tout koreksyon, anbalaj estrikti, foure inline asanblaj, ak entegre fichye asanblaj yo. Pou travay san yo pa mare nan bibliyotèk estanda a, gen pakè kès separe pou fè operasyon ak fisèl, vektè ak drapo ti jan. Yon lòt avantaj se zouti entegre pou evalye kalite kòd (linter, rouye-analyzer) ak kreye tès inite ki ka kouri pa sèlman sou pyès ki nan konpitè reyèl, men tou nan QEMU.

Sous: opennet.ru

Add nouvo kòmantè