Kestrel
Distribución Linux independiente basada en Arch, con Hyprland + Quickshell y un puente de planificación por tarea a nivel de kernel.
Un escritorio moldeado, un kernel y un vocabulario de planificación: el compositor, la terminal y las apps comparten una pista por tarea que consume sched_ext.
Cargando últimos commits…
Base
ARCH
Escritorio
HYPRLAND + QUICKSHELL
Instalación
COPIA DE ROOTFS
Planificador
scx_kestrel
Problema
La mayoría de las distribuciones entregan al escritorio un planificador y se detienen ahí. El compositor, la terminal y las aplicaciones no comparten un vocabulario para latencia o rendimiento, así que el ajuste se hace con prioridades genéricas y configuración superpuesta a un sistema genérico.
Kestrel parte de Arch y reemplaza las piezas que deciden cómo se siente el escritorio: compositor, shell, terminal, kernel y planificador se construyen y distribuyen como un sistema emparejado.
Qué es Kestrel
Kestrel es una distribución independiente basada en Arch con un único escritorio moldeado: Hyprland, Quickshell, foot y fish. El compositor, el shell, la terminal, el kernel y el planificador se construyen y distribuyen como un sistema emparejado.
El kernel, linux-kestrel, se compila con Clang ThinLTO para x86-64-v3, preemption completa, 1000 Hz, sched_ext, DAMON y NTSYNC. Hyprland, Quickshell y su cierre de librerías compartidas se recompilan con las mismas flags, y la terminal es un fork de foot que participa en la ruta de la pista.
El puente de planificación
Pista del kernel
linux-kestrel añade sched_ext_hint a struct sched_attr; el espacio de usuario fija 0..1024 con sched_setattr(2) y SCHED_FLAG_KESTREL_HINT (1ULL << 40).
Librería de usuario
libkestrel-hint y kestrel-hint fijan y leen la pista para el escritorio, terminales, navegador y trabajo en segundo plano.
Broker
kestrel-broker coloca procesos en los cgroups kestrel-desktop, kestrel-term, kestrel-browser y kestrel-background.
Planificador
scx_kestrel, un fork de scx_layered, lee la pista con scx_bpf_task_hint y aplica su conjunto de capas; scx_loader/scxctl cambian de planificador en runtime.
Paquetes pesados → kernel
Hyprland
El compositor corre en kestrel-desktop. El trabajo crítico de frame lleva una pista de latencia antes del dispatch, para que scx_kestrel pueda preferirlo cuando el escritorio está bajo carga.
Quickshell
La barra, el launcher, las notificaciones, el OSD y el screensaver comparten la clase kestrel-desktop con el compositor; la UI interactiva permanece en la misma ruta de latencia.
Navegador Zen
Los procesos del navegador corren en kestrel-browser. Las pestañas en primer plano y la entrada llevan la pista interactiva; las pestañas en segundo plano no compiten por el mismo presupuesto.
Terminal foot
Un único foot --server compartido corre en kestrel-term con clientes por ventana, así la latencia de la terminal queda aislada del navegador y del trabajo en segundo plano.
Trabajo en segundo plano
Builds, indexación y trabajos de agentes van a kestrel-background, libres de usar núcleos ociosos sin robar latencia al escritorio.
Kernel + planificador
linux-kestrel expone la pista 0..1024 mediante sched_ext; scx_kestrel la lee con scx_bpf_task_hint y la combina con su conjunto de capas.
Stack de optimización
Kestrel no se detiene en las pistas de runtime. Hyprland y Quickshell se compilan para x86-64-v3 con Clang ThinLTO, y el cierre compartido de librerías de Hyprland se recompila con las mismas flags en lugar del -O2 genérico de Arch, para que el escritorio tenga un único codegen. qt6-base-kestrel añade Wayland explicit sync (linux-drm-syncobj-v1), y linux-kestrel es Clang ThinLTO sobre x86-64-v3 con preemption completa, 1000 Hz, sched_ext, DAMON y NTSYNC.
El resultado es una única ruta de optimización desde los procesos pesados (Zen, Hyprland, Quickshell, foot, Obsidian, OBS), a través de su cgroup y su pista por tarea, hasta el planificador y el kernel. Cada clase y cada tarea llevan información explícita en lugar de depender de prioridades ambientales.
Qué incluye
Hyprland gestiona ventanas y Quickshell aporta la barra, el launcher, las notificaciones, el OSD, el screensaver y los temas. foot corre como un servidor compartido en el slice kestrel-term; fish es el shell de login. Las aplicaciones incluyen Neovim, Zen, Obsidian, LibreOffice, Kdenlive y OBS Studio.
Un único CLI kestrel cubre temas, capturas, empaquetado, hardware y configuración del sistema. Las actualizaciones son rolling Arch, con una snapshot Btrfs automática antes de cada upgrade y rollback desde el menú de arranque. El tooling agéntico se instala mediante mise.
Medición
kestrel-bench se ejecuta dentro de la VM y comprueba el puente de pistas de extremo a extremo: verifica set/get, la colocación del broker y de foot, corre un A/B 3x scx_bpfland vs scx_kestrel, mide la matriz de workers de foot y muestrea el PSS máximo de los procesos incluidos. Un cambio que no mueve una métrica no se publica.
Estado
- La ISO live compila y arranca el kernel Kestrel con el escritorio completo y el puente de pistas
- El puente de pistas (linux-kestrel + libkestrel-hint + scx_kestrel) está implementado y probado por kestrel-bench
- El escritorio, los defaults de foot/fish y el toolchain temático están en su lugar
- El empaquetado y la documentación todavía se están poniendo al día con la implementación
Ecosistema de Kestrel
La distribución se reparte en repositorios versionados de forma independiente que comparten los mismos contratos de kernel, escritorio y empaquetado.
iso
Imagen livePerfil archiso, instalador y configurador, helper de arranque en VM, firma y herramientas de release.
kernel
KernelReceta linux-kestrel, parche de pistas, integración con sched_ext y el harness de benchmarks.
desktop
Cierre de escritorioMetapaquete kestrel-desktop y el cierre emparejado de librerías de Hyprland.
foot
TerminalFork de foot que lleva la pista por tarea de Kestrel en el árbol de procesos de la terminal.
hyprland
CompositorPaquete fuente lean de Hyprland compilado para x86-64-v3 con ThinLTO.
quickshell
Shell de escritorioPaquete fuente lean de Quickshell con las correcciones de interceptación QML.
scx
Planificadorscx_kestrel, un fork de scx_layered, y el bake de su conjunto de capas.
scx-loader
Cargador de planificadorFork del loader que conoce scx_kestrel, empaquetado como scx-tools-kestrel.
qtbase
Base QtRama de Qt base que añade Wayland explicit sync (linux-drm-syncobj-v1).
packages
Overlay de paquetesOverlay pacman [kestrel] firmado y publicado en GitHub Pages.
docs
DocumentaciónArquitectura, empaquetado, publicación y documentación para mantenedores.