Кілька днів тому було оголошено про запуск нової версії проєкту MirageOS 3.6 . Це бібліотека операційної системи, яка дозволяє формувати операційні системи з однією програмою як «унікедро», яке є автономним і здатним працювати без використання інших операційних систем — незалежне ядро операційної системи.
OCaml використовується для розробки додатків. Код проекту розповсюджується за безкоштовною ліцензією ISC. Основна ідея unikernel полягає в тому, що це високооптимізована, спеціально розроблена операційна система , яка може допомогти забезпечити ефективну роботу та доставку додатків.
Вся функціональність низького рівня, властива операційній системі, реалізована у вигляді бібліотеки, що додається до програми.
Додаток може бути розроблений на будь-якій операційній системі, після чого він компілюється у спеціалізоване ядро (концепція unikernel), яке можна запускати безпосередньо на гіпервізорах Xen, KVM, BHyve та VMM (OpenBSD) , на мобільних платформах, як процес у середовищі, сумісному з POSIX, або в хмарних середовищах Amazon Elastic Compute Cloud та Google Compute Engine.
Сформоване середовище не містить нічого зайвого і взаємодіє безпосередньо з гіпервізором без контролерів та системних рівнів, досягаючи значного зниження загальних витрат та підвищеної безпеки.
Робота з MirageOS зводиться до трьох етапів: підготовка конфігурації з визначенням використовуваних в середовищі OPAM-пакетів, збірка середовища та запуск середовища.
Час роботи на Xen базується на тонкому ядрі Mini-OS, а також на інших гіпервізорах та системах на базі ядра Solo5.
Що нового в MirageOS 3.6?
Основні зміни в новій версії пов'язані з підтримкою нових функцій, запропонованих у Solo5 0.6.0. Цей проєкт спочатку розпочався як спосіб портування MirageOS для роботи на гіпервізорі Linux/KVM. Відтоді він перетворився на більш універсальне середовище виконання з ізольованим програмним середовищем , придатне для запуску програм, побудованих з використанням різних унікедерів, орієнтованих на різні технології ізольованого програмного забезпечення на різних хост-операційних системах та гіпервізорах.
Серед реалізованих покращень виділяється підтримка маніфесту, який дозволяє визначати кілька мережевих адаптерів та пристроїв зберігання даних, підключених до ядра Unikernel під час ізоляції на основі бекендів hvt, spt та muen (використання бекендів genode та virtio поки що обмежене одним пристроєм).
А також підтримка для ввімкнення захисту від перевантаження стека для всього ланцюжка інструментів за замовчуванням та покращений захист сторінок для деяких цільових об'єктів.
Ще однією родзинкою анонсу є можливість запуску унікального ядра MirageOS в ізольованому середовищі spt, що надається Solo5. Під час використання серверної частини spt ядра MirageOS запускаються в користувацьких процесах Linux з мінімальною ізоляцією на основі seccomp-BPF.
Посилений внутрішній захист на основі Solo5 (hvt, spt), наприклад, передбачена компіляція в режимі SSP (Stack Crush Protection).
Як отримати MirageOS?
Для тих, хто зацікавлений у можливості отримати цю нову версію MirageOS, вони можуть це зробити, дотримуючись інструкцій, якими ми ділимося нижче.
Вимоги для встановлення MirageOS: система UNIX (Linux, Mac або BSD), OPAM 2.0.0 або пізнішої версії та OCaml 4.05.0 або пізнішої версії.
Якщо це не так, їх можна встановити, виконавши одну з наступних команд у терміналі, залежно від вашого розподілу.
Для тих, хто користується Debian, Ubuntu або їх похідними:
sudo apt-get update
sudo apt-get install opam
Для тих, хто використовує Arch Linux, Manjaro або будь-яку іншу похідну від Arch:
sudo pacman -S opam
Fedora, RHEL, CentOS або будь-який інший їх похідний:
sudo dnf -i opam
Нарешті, щоб встановити MirageOS:
opam init
opam install mirage