User Tools

Site Tools


система_инициализации_на_си

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
система_инициализации_на_си [2024/02/18 20:10] uf4nсистема_инициализации_на_си [2024/03/09 18:11] (current) uf4n
Line 2: Line 2:
  
 ===== Концепция ===== ===== Концепция =====
-External Linkызывает интерпретатор + 
-Хотелось бы достигнуть наибольшей возможной скорости инициализации системы. Для этого можно было бы включить **в один код на Си** зпуск демонов, монтирование файловых систбез оптимизаций кем, инициализацию драйверов и т.п. Это позволило бы сократить на порядок количесво системных вызовов, неизбежных при использовании Bash.+Хотелось бы достигнуть наибольшей возможной скорости инициализации системы. Для этого можно было бы включить **в один код на Си** зпуск демонов, монтирование файловых систем, инициализацию драйверов и т.п.
  
 Проблемы обычного sysvinit: Проблемы обычного sysvinit:
Line 18: Line 18:
  
 Запуск каждого демона можно описать в отдельном текстовом файле. При добавлении сервиса в автозапуск, подобно тому, как это делается в sysvinit, система инициализации должна отследить изменения в каталогах /etc/rc*.d/ (условно) и сконкатенировать код запуска демона в код init'a. Сразу после этого файл компилируется со всеми возможными оптимизациями (компилировать такой init как-то иначе смысла нет), такими как march=native, O3 и flto. Запуск каждого демона можно описать в отдельном текстовом файле. При добавлении сервиса в автозапуск, подобно тому, как это делается в sysvinit, система инициализации должна отследить изменения в каталогах /etc/rc*.d/ (условно) и сконкатенировать код запуска демона в код init'a. Сразу после этого файл компилируется со всеми возможными оптимизациями (компилировать такой init как-то иначе смысла нет), такими как march=native, O3 и flto.
 +
 +Библиотечную функцию execve можно попробовать реализовать на ассемблече с помощью удобных макросов.
  
   * Наш init сохраняет систему уровней запуска (runlevels)   * Наш init сохраняет систему уровней запуска (runlevels)
-  * Сервисы друг от друга не зависят. Их можно запускать в любом порядке 
  
 uf4n uf4n
система_инициализации_на_си.1708287047.txt.gz · Last modified: 2024/02/18 20:10 by uf4n