система_инициализации_на_си
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| система_инициализации_на_си [2024/02/14 12:49] – [Текущих этап разработки] uf4n | система_инициализации_на_си [2024/03/09 18:11] (current) – uf4n | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| ===== Концепция ===== | ===== Концепция ===== | ||
| - | Хотелось бы достигнуть наибольшей возможной скорости инициализации системы. Для этого можно было бы включить в один код на Си зпуск демонов, | + | Хотелось бы достигнуть наибольшей возможной скорости инициализации системы. Для этого можно было бы включить |
| + | |||
| + | Проблемы обычного sysvinit: | ||
| + | - Повсеместно использует интерпретатор Bash. Убедиться | ||
| + | - Делает много обращений к диску | ||
| + | - Выполняет монтирование дисков с парсингом аргументов и тучей системных вызовов, | ||
| + | |||
| + | |||
| + | Система должна быть хоть немного **интерактивной**, | ||
| + | |||
| + | Очень бы хотелось сохранить | ||
| + | |||
| + | Если пользователь захочет изменить набор запускаемых сервисов или порядок их запуска, исходный файл на Си будет перегенерирован и перекомпилирован. Это напоминает принцип работы загрузчика LILO, для которого надо запускать процедуру перегенерации MBR и PBR при любых вмешательствах в конфигурационные файлы или изменениях ядра. | ||
| + | |||
| + | Запуск каждого демона можно описать | ||
| + | |||
| + | Библиотечную функцию execve можно попробовать реализовать на ассемблече с помощью удобных макросов. | ||
| + | |||
| + | * Наш init сохраняет систему уровней запуска (runlevels) | ||
| + | |||
| + | uf4n | ||
| - | Система должна быть хоть немного интерактивной, | ||
| ===== Текущий этап разработки ===== | ===== Текущий этап разработки ===== | ||
система_инициализации_на_си.1707914945.txt.gz · Last modified: 2024/02/14 12:49 by uf4n