11Distribución Linux · Sistemas de escritorio

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.

Arch LinuxHyprlandQuickshellsched_extBtrfsShell
Último commit del repositorio

Cargando últimos commits…

Base

ARCH

Escritorio

HYPRLAND + QUICKSHELL

Instalación

COPIA DE ROOTFS

Planificador

scx_kestrel

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

07

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.

08

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
09

Ecosistema de Kestrel

La distribución se reparte en repositorios versionados de forma independiente que comparten los mismos contratos de kernel, escritorio y empaquetado.