Проект Tilck развивает упрощённое Linux-совместимое ядро

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 10 Jan 2023.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,482
    Likes Received:
    7,053
    Reputations:
    693
    В рамках проекта Tilck сотрудник VMware развивает монолитное ядро, фундаментально отличающееся от Linux, но спроектированное для совместимости с Linux на бинарном уровне и возможности запуска приложений, собранных для Linux. Код написан на языке Си и распространяется под лицензией BSD. На текущем этапе развития ядром поддерживается только архитектура x86, но код разработан с оглядкой универсальность и на реализацию в будущем поддержки других архитектур.

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

    [​IMG]
    Разработка нацелена на реализацию минимально необходимых возможностей, избегания перегруженности функциональностью, простую и понятную архитектуру, максимальное упрощения кода, небольшой размер бинарных файлов, предсказуемое (детерминированного) поведение, обеспечение минимальных задержек, достижение высокой надёжности и упрощение процессов разработки и тестирования.

    Проект не ставит перед собой цели использования в многопользовательских серверных окружениях или десктоп-системах. Поддерживается только монолитная сборка с встраиваемыми на этапе компиляции модулями. Из файловых систем поддерживаются FAT16 и FAT32 в режиме чтения, а также ramfs, devfs и sysfs. Блочные устройства пока не реализованы, т.е. всё размещается в памяти. Для абстрагирования операций с ФС предоставляется VFS. Многопоточность на текущем этапе развития доступна только на уровне ядра (в пространстве пользователя пока не предоставляется).

    Предложенный набор драйверов позволяет запускать Tilck как в окружении QEMU, так и на обычных системах, загружаясь с USB-накопителя. Имеется поддержка расширенных наборов инструкций SSE, AVX и AVX2. Для запуска предлагается собственный интерактивный загрузчик, поддерживающий системы с BIOS и UEFI, но возможно использование и сторонних загрузчиков, таких как GRUB2. При загрузке в QEMU ядро может работать в окружении с 3 МБ ОЗУ.

    В настоящее время проект позиционируется как учебный, но в долгосрочной перспективе не исключено, что Tilck дорастёт до уровня, пригодного для применения в качестве ядра для встраиваемых систем, на которых требуется предсказуемое поведение и низкие задержки. Ожидается, что Tilck может занять промежуточную нишу между решениями на базе ядра Linux и специализированными ОС, работающими в режиме реального времени, такими как FreeRTOS и Zephyr. Среди планов упоминается портирование Tilck для процессоров ARM и процессоров без блока управления памятью (MMU), добавление сетевой подсистемы, поддержка блочных устройств и дополнительных ФС, таких как ext2.

     
    _________________________
    seostock, CyberTro1n and DartPhoenix like this.
Loading...