a-kerno — демон-оркестратор, ядро экосистемы ADE.
- Запускается из
ade-waylandилиade-xlibre(ade-setup) при ADE-сессии (adm exec'ит.desktop; см. doc/ade-setup.md) - Читает декларативный конфиг
~/.config/ade/daemons.mdсо списком демонов ADE - Запускает демоны как дочерние процессы в указанном порядке
- Запускает session WM из
a-kerno.md(## composer/run); envADE_COMPOSITOR/ADE_WMиADE_WM_RESTARTперекрывают файл - Отслеживает состояние демонов и перезапускает согласно политикам (always, on-failure, once, disabled)
- Предоставляет управляющий Unix-сокет
/tmp/ade-{UID}/kernoс протоколом CMDLIST (TXT01 / BIN01) - Поддерживает автозапуск пользовательских программ (XDG autostart + Markdown)
- Выполняет graceful shutdown WM и демонов при завершении сессии
- Клиентская библиотека
client/kerno/для программного доступа
Конфигурация демонов хранится в Markdown-формате в файле ~/.config/ade/daemons.md.
Формат: секции ## <name> properties с ключами - key: value и секция ## enabled daemons
с task-листом - [x] / - [ ].
Основные настройки a-kerno: $ADE_CONFIG_HOME/a-kerno.md (при первом запуске создаётся шаблон).
## composer
- run: Hyprland --config ~/.config/hypr/hyprland.conf
- restart: alwaysПриоритет команды WM: ADE_COMPOSITOR → ADE_WM → a-kerno.md / run → headless (пусто).
ADE_WM_RESTART перекрывает restart из файла.
| Переменная | Назначение | По умолчанию |
|---|---|---|
ADE_CONFIG_HOME |
Каталог конфигурации ADE | ~/.config/ade |
ADE_RUNTIME_DIR |
Каталог runtime (сокеты, PID) | /tmp/ade-{UID} |
ADE_KERNO_SOCK |
Путь к управляющему сокету | /tmp/ade-{UID}/kerno |
ADE_COMPOSITOR / ADE_WM |
Override команды session WM (Wayland / X11) | — |
ADE_WM_RESTART |
Override рестарта WM: always / on-failure / disabled |
из a-kerno.md или always |
ADE_INDEXD_SOCK |
Сокет a-lancxo | /tmp/ade-{UID}/indexd |
ADE_SKRIPTO_SOCK |
Сокет a-skripto | /tmp/ade-{UID}/skripto |
Управление демонами производится через Unix-сокет по протоколу CMDLIST:
- TXT01 — текстовый формат (human-readable, заголовок
TXT01) - BIN01 — бинарный формат (фреймовый, заголовок
BIN1)
| TXT01 | BIN01 (code) | Назначение |
|---|---|---|
list-daemons |
1 | Список демонов |
status <name> |
2 | Статус демона |
restart <name> |
3 | Перезапуск демона |
stop <name> |
4 | Остановка демона |
start <name> |
5 | Запуск демона |
list-features |
6 | Список фич |
logs <name> |
7 | Логи демона |
shutdown |
8 | Завершение a-kerno |
prog-list |
9 | Список программ |
prog-status <name> |
10 | Статус программы |
prog-start <name> |
11 | Запуск программы |
prog-stop <name> |
12 | Остановка программы |
- Архитектура a-kerno — полная спецификация
- Дизайн пользовательских программ
- Документация в
doc/
make build # a-kerno
make test # Тесты
make lint # Линтер
make tidy # go mod tidy
make install # a-kerno (session scripts: cd ../ade-setup && make install)a-kerno/
├── cmd/a-kerno/main.go — точка входа, Orchestrator
├── internal/
│ ├── binparser/ — бинарный протокол BIN01 (Фаза 6)
│ │ ├── parser.go — фреймовый парсер
│ │ ├── writer.go — фреймовый writer
│ │ └── parser_test.go — тесты
│ ├── config/config.go — Config, Init()
│ ├── daemon/ — управление демонами
│ ├── feature/registry.go — реестр фич ADE
│ ├── logdup/ — дублирование stdout/stderr
│ ├── orchestrator/orchestrator.go — оркестратор
│ ├── program/ — управление пользовательскими программами
│ └── server/ — управляющий Unix-сокет (TXT01 + BIN01)
├── client/kerno/client.go — клиентская библиотека (Фаза 6)
├── parser/ — парсер TXT01
├── doc/ — ссылки на документацию
├── go.mod, go.sum, Makefile
└── .gitignore, .golangci.yaml