Tilck Project, спрощене ядро, сумісне з Linux

галочка

Tilck — це освітнє монолітне ядро ​​x86, розроблене для сумісності з Linux на бінарному рівні.

Вийшла новина про а нова розробка, що має назву «Project Tilck», в якому працює співробітник VMware монолітне ядро, яке принципово відрізняється від Linux, але розроблене для сумісності двійковий з Linux і здатний запускати програми, створені для Linux.

Розвиток прагне реалізувати мінімально необхідні характеристики, уникнення перевантаження функціональністю, проста та зрозуміла архітектура, максимальне спрощення коду, малий розмір бінарних файлів, передбачувана (детермінована) поведінка, забезпечення мінімальних затримок, досягнення високої надійності та спрощення процесів розробки та тестування.

Tilck принципово відрізняється від Linux тим, що він не націлений на багатокористувацькі сервери чи настільні машини, аж ніяк не тому, що це не мало б сенсу: Linux великий і складний не через погану реалізацію, а через неймовірну кількість функцій, які він має. пропозиції та внутрішню складність, яку вони потребують. Іншими словами, Linux чудовий, враховуючи проблему, яку він вирішує. Tilck пропонуватиме менше функцій в обмін на:

простіший код (значно)
найменший двійковий розмір
надзвичайно детермінована поведінка
наднизька затримка
легша розробка та тестування
додаткова міцність

Проект не призначений для використання в багатокористувацьких серверних середовищах або настільні системи. З файлових систем у режимі читання підтримуються FAT16 і FAT32, а також ramfs, devfs і sysfs. Блокові пристрої ще не реалізовані; все в пам'яті.

VFS надається для абстрагування операцій FS. Багатопотоковість на поточному етапі розробки доступна лише на рівні ядра (ще не доступна в просторі користувача).

Ядро підтримує випереджувальну багатозадачність і реалізує близько 100 основних викликів. до системи Linux, таких як fork(), waitpid(), read(), write(), select() і poll(), яких достатньо для запуску консольних програм, таких як BusyBox, Vim, TinyCC, Micropython і Lua, а також графічні програми на основі кадрового буфера, такі як гра fbDOOM. Для створення програм для Tilck надається набір інструментів на основі бібліотеки Musl.

Згадується, що запропонований набір драйверів дозволяє запускати Tilck як у середовищі QEMU як у звичайних системах, які завантажуються з USB-накопичувача. На додаток до цього також зазначається, що існує підтримка розширених наборів інструкцій SSE, AVX і AVX2. Він пропонує власний інтерактивний завантажувач, який підтримує системи BIOS і UEFI, але також можна використовувати завантажувачі сторонніх виробників, такі як GRUB2. Після завантаження в QEMU ядро ​​може працювати в середовищі з 3 МБ оперативної пам’яті.

В даний час, проект позиціонується як освітній, але в довгостроковій перспективі можливо, що Tilck виросте до рівня, придатного для використання в якості ядра для вбудованих систем, які вимагають передбачуваної поведінки та низької затримки.

Хоча Tilck внутрішньо використовує концепцію потоку, багатопотоковість наразі не доступна для простору користувача (звісно, ​​існують потоки ядра). І fork(), і vfork() реалізовано правильно, а копіювання під час запису використовується для роздвоєних процесів. Системний виклик waitpid() повністю реалізовано (що передбачає групи процесів тощо).

Одна цікава функція в цій області заслуговує окремої згадки: незважаючи на відсутність багатопоточності в просторі користувача, Tilck має повну підтримку TLS.

Очікується, що Галочка подолати розрив між рішеннями на основі ядра Linux і спеціалізованими операційними системами реального часу, наприклад FreeRTOS і Zephyr. Плани включають перехід Tilck на процесори ARM і модулі керування пам’яттю (MMU), додавання мережевої підсистеми, підтримку блокових пристроїв і додаткові файлові системи, такі як ext2.

Код написаний мовою C і поширюється за ліцензією BSD. На поточному етапі розробки ядро ​​підтримує лише архітектуру x86, але код розроблено з урахуванням універсальності та реалізації для майбутньої підтримки інших архітектур.

нарешті, якщо ти є цікаво дізнатися про це більше, Ви можете перевірити деталі У наступному посиланні.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: AB Internet Networks 2008 SL
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.