-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Добро пожаловать в вики Interium OS — централизованную документацию проекта. Эта страница — стартовая: здесь кратко изложены ключевые идеи проекта, есть быстрые ссылки на разделы и пошаговые инструкции для пользователей и разработчиков.
Оглавление
- 🔎 Обзор проекта
- ⚙️ Быстрый старт
- 🧭 Полезные разделы Wiki (ссылки-руководства)
- 🛠 Установка и зависимости
- 🧩 Архитектура и ключевые модули
- 🔌 Как расширять систему (Boot-плагины и кастомизация)
- 🔒 Безопасность и шифрование
- 🐞 Отладка и логирование
- ❓ Часто задаваемые вопросы (FAQ)
- 🤝 Вклад и правила взаимодействия
🔎 Обзор проекта Interium OS — экспериментальная, модульная и расширяемая консольная среда на Python. Это не полноценная ОС, а симулятор/оболочка для создания среды, демонстрации архитектурных подходов и хранения/управления простыми утилитами. Основные возможности:
- Виртуальная файловая структура: home/, etc/, usr/apps/, tmp/, boot/
- Управление пользователями и профилями
- Службы (AdaptiveNetwork, Colorize и др.)
- Установка приложений из GitHub Releases и QDUGUI
- Локальный зашифрованный Vault для секретов (Fernet)
- Boot-плагины: регистрация команд при старте
- Windows-лаунчер с возможностью обновления ядра и логированием
⚙️ Быстрый старт (Runbook)
- Клонируйте репозиторий:
git clone https://github.com/ShadowFlash900/INTERIUMOS.git cd INTERIUMOS - Установите зависимости (опционально):
или вручную: requests, cryptography, pandas, markdown, psutil.
python -m pip install -r requirements.txt - Запустите:
- Windows: запустите
launcher.bat(меню: Normal / Debug / Update / Restore / Elevate). - Linux/macOS:
python interium.py
- Windows: запустите
- Первый запуск предложит создать пользователя (admin по умолчанию). После логина вы попадёте в CLI.
🧭 Полезные разделы Wiki (предложения)
- Commands — детальная справка по каждой команде и аргументам (рекомендуется страница-справочник).
- Installation — подробная установка и настройка окружения.
- Customization — как менять ядро, добавлять сервисы, конфигурировать Colors, менять boot/плагины.
- Development — руководство для разработчиков, тесты, сборка, структура кода.
- Security — практические рекомендации по хранению secret.key, подписи релизов, безопасной установке приложений.
- Troubleshooting — типичные ошибки и их исправления.
- Changelog / Releases — как и где фиксируются изменения ядра.
(Хотите — я автоматически создам эти страницы отдельно на основе содержимого README.)
🛠 Установка и зависимости (детальнее) Рекомендуемый Python: 3.8+ Основные зависимости:
- requests — GitHub API и загрузки
- cryptography — Fernet (шифрование)
- pandas — CSV → XLSX
- markdown — MD → HTML
- psutil — показ температуры CPU
Совет: если не хотите всё ставить — установите только requests и cryptography; дополнительные возможности будут помечены как опциональные и дадут понятные ошибки/внимания при попытке использования.
🧩 Архитектура и ключевые модули (коротко)
- interium_core.py — основной движок: класс InteriumOS, CLI-цикл, загрузка/сохранение конфигов, профили, логика команд.
- interium_utils.py — утилиты (цвета, nano, fm, сервер, CPU temp).
- interium_fs.py — пути и create_fs().
- interium_crypto.py — secret.key и функции encrypt/decrypt.
- interium_services.py — загрузка/сохранение services.json, helpers для AdaptiveNetwork.
- interium_apps.py — инсталляция приложений (getfrom/getlist/getapp), zip/unzip, run.
- interium_vault.py — manage_vault и bookmarks.
- boot/ — папка для плагинов: скрипты с register_commands(...) подгружаются при старте.
- launcher.bat — Windows-лаунчер: логирование, обновление ядра, backup/restore, elevate.
🔌 Как расширять систему — практическое руководство
-
Boot-плагины (рекомендуемый путь)
- Положите файл
.pyвboot/. - Реализуйте функцию:
def register_commands(command_registry, os_system, command_args_info): # регистрируйте команды command_registry['mycmd'] = my_handler command_args_info['mycmd'] = "<args> — описание"
- Обработчик signature:
(command_line: str, os_system: InteriumOS). - Плагин загружается при старте автоматически.
- Положите файл
-
Конфигурация служб
- Редактируйте
etc/services.jsonили используйте CLI:-
sudo systemctl enable <ServiceName>— включить автоподнятие. -
sudo service <ServiceName> start/stop/status.
-
- Редактируйте
-
Кастомизация UI (цвета)
- В
interium_utils.pyклассColorsсодержит ANSI-коды. - Используйте
Colorizeservice для динамического отключения/включения цветов.
- В
-
Расширение менеджера приложений
- В
interium_apps.pyдобавьте обработчики для новых форматов (tar.gz), добавьте проверку цифровых подписей (sha256/GPG).
- В
-
Пакетизация
- Перенесите код в пакет
interium/, создайтеpyproject.toml/setup.py,pip install -e .— удобно для тестов и импортов.
- Перенесите код в пакет
🔒 Безопасность и шифрование
- secret.key хранится в
etc/secret.key. Он позволяет дешифровать Vault и зашифрованные пароли пользователей. Храните ключ отдельно и не добавляйте в репозиторий. - Vault (
home/.vault) хранит значения шифрованными через Fernet. Если ключ утрачен — данные не восстановить. - Рекомендация: использовать внешний секрет-менеджер (Vault/KMS) в production, проверять релизы/ассеты по подписи и хэшам.
🐞 Отладка и логирование
-
launcher.batсоздаётlogs/interium_YYYYMMDD_HHMMSS.logдля каждого запуска. - Для детальной отладки используйте Debug mode в лаунчере (включает -X dev и tracebacks).
- Проверяйте
AdaptiveNetworkпри проблемах с сетью:sudo service AdaptiveNetwork start
❓ FAQ — Частые вопросы
Q: Что такое sudo в Interium?
A: Это внутренняя метка, она помечает команду как привилегированную. Не повышает системные права процесса.
Q: Как включить сетевые операции?
A: sudo service AdaptiveNetwork start (или sudo systemctl enable AdaptiveNetwork).
Q: Как добавить команду без правки ядра?
A: Положите boot-плагин с register_commands в boot/.
🤝 Вклад и правила
- Fork → branch → PR. Пишите понятные описания и тесты.
- Для изменений, затрагивающих безопасность/шифрование: документируйте риски и миграционный план.
- Предлагаю добавить страницы CONTRIBUTING, SECURITY и шаблон PR/Issue.
Если хотите, я прямо сейчас:
- разобью Wiki на отдельные страницы (Commands, Installation, Customization, Security, Troubleshooting), и вставлю подготовленный контент в каждую,
- или создам PR с готовым README/Wiki-страницами (потребуется доступ/разрешение).
Готов продолжить и автоматически создать структуру Wiki — скажите, какие конкретные разделы хотите разнести на отдельные страницы, и я сделаю это сейчас.###