Лоиҳаи Kerla як ядрои мувофиқи Linuxро бо забони Rust таҳия мекунад

Лоиҳаи Kerla як ядрои системаи амалиётиро таҳия мекунад, ки бо забони Rust навишта шудааст. Ядрои нав дар аввал ба таъмини мутобиқат бо ядрои Linux дар сатҳи ABI нигаронида шудааст, ки имкон медиҳад файлҳои иҷрошавандаи тағирнашуда барои Linux тартиб дода шаванд, то дар муҳити Kerla асосёфта кор кунанд. Рамз дар доираи иҷозатномаҳои Apache 2.0 ва MIT паҳн карда мешавад. Лоиҳаро таҳиягари ҷопонӣ Сеия Нута таҳия мекунад, ки бо эҷоди системаи амалиётии микроядроии Resea маъруф аст, ки бо забони Си навишта шудааст.

Дар марҳилаи кунунии рушд, Kerla метавонад танҳо дар системаҳои x86_64 кор кунад ва зангҳои асосии системаро ба монанди навиштан, стат, mmap, қубур ва пурсишро амалӣ созад, сигналҳо, қубурҳои беном ва коммутаторҳои контекстӣ дастгирӣ мекунад. Зангҳо ба монанди fork, wait4 ва execve барои идоракунии равандҳо таъмин карда мешаванд. Дастгирии tty ва псевдотерминалҳо мавҷуд аст (pty). Системаҳои файлии дар айни замон дастгирӣшаванда initramfs (барои васл кардани системаи файлии реша истифода мешаванд), tmpfs ва devfs мебошанд. Стеки шабакавӣ бо дастгирии розеткаҳои TCP ва UDP таъмин карда шудааст, ки дар асоси китобхонаи smoltcp амалӣ карда мешавад.

Таҳиягар муҳити пурборкуниро омода кардааст, ки дар QEMU ё дар мошини виртуалии Firecracker бо драйвери virtio-net кор мекунад, ки шумо аллакай тавассути SSH пайваст шуда метавонед. musl ҳамчун китобхонаи системавӣ ва BusyBox ҳамчун утилитаҳои корбар истифода мешавад.

Лоиҳаи Kerla як ядрои мувофиқи Linuxро бо забони Rust таҳия мекунад

Системаи бунёдии ба Docker асосёфта омода шудааст, ки ба шумо имкон медиҳад initramf-ҳои пурборкунандаи худро бо ядрои Kerla эҷод кунед. Алоҳида, қабати нармафзори nsh монанд ба моҳӣ ва стеки Kazari GUI дар асоси протоколи Wayland таҳия карда мешаванд.

Лоиҳаи Kerla як ядрои мувофиқи Linuxро бо забони Rust таҳия мекунад

Истифодаи забони Rust дар лоиҳа ба шумо имкон медиҳад, ки бо истифода аз усулҳои бехатарии барномасозӣ ва баланд бардоштани самаранокии муайян кардани мушкилот ҳангоми кор бо хотира шумораи хатогиҳои кодро кам кунед. Rust бехатарии хотираро дар вақти тартибдиҳӣ тавассути санҷиши истинод, моликияти объект ва пайгирии умри объект (миқёс) ва тавассути арзёбии дурустии дастрасии хотира дар вақти кор таъмин мекунад. Илова бар ин, Rust аз фаромадани ададҳо муҳофизат мекунад, талаб мекунад, ки арзишҳои тағирёбанда пеш аз истифода оғоз карда шаванд, консепсияи истинодҳо ва тағирёбандаҳоро ба таври нобаёнӣ татбиқ мекунад, чопкунии статикиро барои кам кардани хатогиҳои мантиқӣ пешниҳод мекунад ва коркарди арзишҳои вурудро осон мекунад ба шарофати мувофиқати намуна ..

Барои таҳияи ҷузъҳои сатҳи паст, аз қабили ядрои OS, Rust барои нишондиҳандаҳои хом, бастабандии сохтор, замимаҳои дохилии ассемблер ва ҷобаҷогузории файлҳои ассемблер дастгирӣ мекунад. Барои кор кардан бидуни пайвастшавӣ ба китобхонаи стандартӣ, бастаҳои алоҳида барои иҷрои амалиётҳо бо сатрҳо, векторҳо ва парчамҳои бит мавҷуданд. Бартарии дигар ин абзорҳои дарунсохт барои арзёбии сифати код (linter, rust-analyzer) ва эҷоди санҷишҳои воҳидҳо мебошад, ки онҳоро на танҳо дар сахтафзори воқеӣ, балки дар QEMU низ иҷро кардан мумкин аст.

Манбаъ: opennet.ru

Илова Эзоҳ