Kerla долбоору Rust тилинде Linux менен шайкеш ядрону иштеп чыгууда

Kerla долбоору Rust тилинде жазылган операциялык системанын өзөгүн иштеп чыгууда. Жаңы өзөк алгач ABI деңгээлинде Linux ядросу менен шайкештикти камсыз кылууга багытталган, бул Linux үчүн түзүлгөн өзгөртүлбөгөн аткарылуучу файлдарды Kerla негизиндеги чөйрөдө иштетүүгө мүмкүндүк берет. Код Apache 2.0 жана MIT лицензиялары боюнча таратылат. Долбоор Си тилинде жазылган Resea микро ядролук операциялык системасын түзүү менен белгилүү жапон иштеп чыгуучусу Сеия Нута тарабынан иштелип чыгууда.

Учурдагы өнүгүү этабында Kerla x86_64 системаларында гана иштей алат жана жазуу, статистика, mmap, түтүк жана сурамжылоо сыяктуу негизги системалык чалууларды ишке ашырат, сигналдарды, аты жок түтүктөрдү жана контексттик өчүргүчтөрдү колдойт. Процесстерди башкаруу үчүн fork, wait4 жана execve сыяктуу чалуулар берилет. tty жана псевдо-терминалдар (pty) үчүн колдоо бар. Учурда колдоого алынган файл тутумдары initramfs (тамыр файл тутумун орнотуу үчүн колдонулат), tmpfs жана devfs. Smoltcp китепканасынын негизинде ишке ашырылган TCP жана UDP розеткаларын колдогон тармактык стек берилген.

Иштеп чыгуучу virtio-net драйвери менен QEMU же Firecracker виртуалдык машинасында иштеген жүктөө чөйрөсүн даярдаган, ага сиз SSH аркылуу туташа аласыз. musl тутумдук китепкана катары колдонулат, ал эми BusyBox колдонуучунун утилиталары катары колдонулат.

Kerla долбоору Rust тилинде Linux менен шайкеш ядрону иштеп чыгууда

Kerla ядросу менен өзүңүздүн жүктөө инитрафтарыңызды түзүүгө мүмкүндүк берген Докерге негизделген куруу системасы даярдалды. Өзүнчө, балыкка окшош nsh программалык кабыгы жана Wayland протоколуна негизделген Kazari GUI стеки иштелип чыгууда.

Kerla долбоору Rust тилинде Linux менен шайкеш ядрону иштеп чыгууда

Rust тилин долбоордо колдонуу коопсуз программалоо ыкмаларын колдонуу менен коддогу каталардын санын азайтууга жана эс тутум менен иштөөдө көйгөйлөрдү аныктоонун натыйжалуулугун жогорулатууга мүмкүндүк берет. Rust компиляция учурунда эстутумдун коопсуздугун маалымдама текшерүү, объектке ээлик кылуу жана объекттин өмүр боюна көз салуу (кошумчалар) аркылуу жана иштөө учурунда эстутумга кирүүлөрдүн тууралыгын баалоо аркылуу камсыздайт. Мындан тышкары, Rust бүтүн сандардын ашып кетишинен коргоону камсыздайт, колдонуудан мурун өзгөрүлмө маанилерди инициализациялоону талап кылат, демейки боюнча өзгөрүлгүс шилтемелер жана өзгөрмөлөр концепциясын ишке ашырат, логикалык каталарды азайтуу үчүн күчтүү статикалык терүүнү сунуштайт жана киргизилген маанилерди иштетүүнү жөнөкөйлөтөт үлгү дал келгендиги үчүн рахмат..

OS ядросу сыяктуу төмөнкү деңгээлдеги компоненттерди иштеп чыгуу үчүн Rust чийки көрсөткүчтөрдү, структуралык таңгактарды, ассемблердин саптык кыстармаларын жана ассемблер файлдарын кыстарууну камсыз кылат. Стандарттык китепканага байланбай иштөө үчүн, саптар, векторлор жана бит желектери менен операцияларды аткаруу үчүн өзүнчө куту пакеттери бар. Дагы бир артыкчылыгы - коддун сапатын баалоо үчүн орнотулган куралдар (линтер, дат-анализатор) жана бирдик тесттерин түзүү, аларды реалдуу аппараттык камсыздоодо гана эмес, ошондой эле QEMUда да иштетүүгө болот.

Source: opennet.ru

Комментарий кошуу