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 и не-Memory Management Unit (MMU), добавление сетевой подсистемы, поддержка блочных устройств и дополнительных файловых систем, таких как ext2.

Код написан на C и распространяется под лицензией BSD. На текущем этапе разработки ядро ​​поддерживает только архитектуру x86, но код разработан с учетом универсальности и реализации для будущей поддержки других архитектур.

наконец, если вы интересно узнать об этом больше, вы можете проверить подробности По следующей ссылке.


Оставьте свой комментарий

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

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.