Sobre el proyecto
Linura es una capa de sistema experimental basada en intenciones para Linux que busca convertir objetivos humanos en estado de máquina declarativo, controlado por políticas y verificado. En lugar de traducir lenguaje natural a comandos de shell, captura intención estructurada y duradera, resuelve capacidades y conflictos, deriva el estado deseado y enruta cada mutación gestionada a través de un único ciclo de vida canónico de autoridad.
El proyecto combina dos ideas manteniendo separados sus límites de confianza. El plano de autoridad/control proporciona un modelo Linux tipado, proveedores, un ciclo de vida de mutación en once etapas (solicitud/intención, observar, planificar, validar, autorizar, preparar, ejecutar, verificar, confirmar, auditar, reconciliar), decisiones de política y aprobación, privilegio limitado, verificación independiente, confirmación segura ante fallos, reconciliación y auditoría. El plano de inteligencia añade intención persistente del usuario, configuraciones reutilizables, una Biblioteca local primero, un grafo del sistema, composición de capacidades, resolución de dependencias y conflictos, procedencia semántica, agentes especialistas y experiencia de primer arranque. El plano de control es utilizable sin IA, y el plano de inteligencia puede reemplazarse sin cambiar el plano de autoridad.
Los conceptos clave incluyen Setups (porciones reutilizables y versionadas de intención, como rust-development o postgresql-development) y Machine Profiles (composiciones de máquina completa). Los Setups almacenan intención portátil, composición y restricciones en lugar de historial de shell o instantáneas del sistema de archivos; las exportaciones llevan referencias a secretos, nunca valores secretos. Reutilizar un setup siempre vuelve a observar la máquina objetivo, resuelve de nuevo capacidades, deriva estado deseado fresco y genera un nuevo plan antes de cualquier mutación. Las instantáneas exactas siguen siendo un mecanismo separado de reversión/recuperación.
Las invariantes declaradas incluyen: linurad se ejecuta sin privilegios; no existe una API genérica de ejecución privilegiada de shell; los agentes no reciben un manejador ejecutor privilegiado; el lenguaje natural produce un IntentProposal, nunca texto ejecutable; el estado gestionado conserva procedencia semántica que explica por qué existe; el estado desconocido o no soportado falla de forma cerrada para mutaciones; el éxito del ejecutor se trata como evidencia de despacho, no como prueba del estado resultante; y la operación determinista local, el uso de la Biblioteca y la recuperación funcionan sin red ni acceso a modelos.
El repositorio está organizado como un workspace de Rust con crates para core, intent, graph, capability SDK, planner, provenance, agent runtime, policy, protocol, provider SDK, SDK facade, control, lifecycle, bootstrap, migrations y update, además de aplicaciones para linurad, linuractl, first boot, control center, agent UI y un shell Quickshell/QML. También incluye bindings, capabilities, workflows, surfaces, agents, executors, interfaces, schemas, profiles, packaging y docs.
El estado es v0.9.0, descrito como experimental con un Experimental First Boot y un entorno de referencia soportado; la versión inmutable se verifica de forma independiente. El primer objetivo de perfil de estación de trabajo interactiva es deliberadamente estrecho (Arch Linux, systemd, Wayland/Hyprland, NetworkManager, PipeWire, BlueZ, UDisks2, Polkit, Btrfs/Snapper), con arch-hyprland-v1 posicionado como candidato de desarrollo para v0.10 en lugar de formar parte del límite de soporte actual. El desarrollo sigue un orden estrecho de vertical-slice, y la puerta de calidad de bootstrap fija Rust 1.98.0 con comandos fmt, clippy, test y repository-check. Licenciado bajo Apache 2.0.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.