Saltar al contenido
Productos / Sistema operativo

Un sistema operativo con el que no tienes que pelearte.

Un sistema basado en Linux, pensado para desarrolladores y organizaciones que quieren un entorno ligero, transparente y muy personalizable, en lugar de un sistema generalista con décadas de valores por defecto acumulados. Está en diseño y desarrollo inicial, y todavía no hay nada que descargar.

01: La apuesta

Ubuntu hizo Linux fácil para todos. Nosotros hacemos lo contrario.

Linux con interfaz gráfica ya es un problema resuelto. Ubuntu, Fedora, Mint, Zorin y Pop!_OS lo hicieron accesible, lo hicieron bien, y no queda nada que ganar repitiéndolo. 0dyssey no persigue esa mitad del problema, y concederla es lo que convierte el resto de esta página en una afirmación y no en una fanfarronada.

La mitad que nadie ha tomado es la puesta en marcha. Un entorno de mosaico ligero con las herramientas ya elegidas sigue teniendo que montarse a mano, a partir de archivos de configuración y de experiencia acumulada con Linux, por cada persona que quiere uno. Ese coste es el objetivo. Quitar el impuesto de la puesta en marcha, no la potencia.

La terminal se queda. Es una función, no el enemigo, y un sistema construido para mantenerte lejos de ella resuelve otro problema para otra persona. Lo que se asienta sobre la base se construye a mano en lugar de heredarse como los valores por defecto de otro con un tema encima.

02: El argumento

Por qué construir uno.

Los sistemas operativos modernos se construyen para el mercado masivo, y eso no es un insulto, es una restricción de diseño. Servir a todo el mundo significa entregar valores por defecto que no le sirven exactamente a nadie, arrastrar décadas de compatibilidad y esconder la máquina tras capas difíciles de inspeccionar y más difíciles aún de cambiar.

El resultado le resulta familiar a cualquiera que trabaje cerca del metal: te pasas el tiempo adaptándote al sistema en lugar de al revés, y cuando algo se comporta de forma extraña, la respuesta honesta suele ser que nadie de los que trabajan hoy en ello sabe por qué ese código está ahí.

Queremos las propiedades opuestas. Un sistema donde lo que se ejecuta al arrancar es una decisión que alguien tomó y puede explicar, donde las piezas que no quieres están ausentes en lugar de desactivadas, y donde cambiar un comportamiento significa cambiar un componente en lugar de pelearse con él.

Eso no es un sistema operativo generalista, ni pretende serlo. Es un sistema para quienes prefieren ser dueños de la capa de abajo antes que negociar con ella.

03: Compromisos de diseño

Decisiones ya tomadas.

Estas son las restricciones a las que se somete el desarrollo. Se enuncian en presente porque las decisiones son reales, aunque el software esté en sus comienzos.

  • Modular por construcción

    Los componentes son separables, y los que no quieres están ausentes en lugar de instalados y apagados. Un sistema al que puedes restar piezas es un sistema sobre el que puedes razonar.

  • Transparente por defecto

    Lo que ocurre entre el encendido y una shell utilizable se puede inspeccionar y está documentado. Ningún comportamiento que solo exista como folclore en un hilo de foro de hace seis años.

  • Seguro por construcción

    La seguridad se trata como una propiedad de la compilación: una superficie menor, privilegios explícitos, valores por defecto sensatos. No una guía de endurecimiento publicada a posteriori para que el usuario la aplique.

  • El rendimiento como restricción

    El peso es un fallo de diseño, no un impuesto que aceptar. Lo que se entrega es lo necesario, que es la única forma fiable de seguir siendo rápido en lugar de serlo solo en un benchmark.

  • Personalizable sin pelea

    Cambiar cómo se comporta el sistema significa cambiar un componente por una vía prevista, no esquivar un valor por defecto que daba por hecho que nunca querrías hacerlo.

  • Hecho para quienes trabajan cerca de la máquina

    Desarrolladores, especialistas en sistemas y organizaciones que operan su propia infraestructura. El entorno está ajustado para ese trabajo, en lugar de ser lo bastante amable para todo el mundo a su costa.

04: La pila

Lo que realmente se construye, desde la máquina hacia arriba.

Un sistema operativo es un problema de integración antes que un problema de código. Este es el orden en que tiene que ocurrir la integración.

Esto es el plan de trabajo, no un registro de cambios. Ninguna de estas capas está terminada, y las que están más abajo en la lista no se han empezado.

  1. Sistema base

    La configuración del kernel, la ruta de arranque y el conjunto más pequeño de espacio de usuario que constituye una máquina en la que puedes iniciar sesión y confiar.

  2. Init y servicios

    Qué arranca, en qué orden y bajo qué autoridad. La parte de una distribución que determina si el sistema es legible o mágico.

  3. Modelo de paquetes y actualizaciones

    Cómo llega el software, cómo se verifica y cómo una máquina pasa de un estado conocido al siguiente sin convertirse en un caso único.

  4. Modelo de seguridad

    Los límites de privilegios, los valores por defecto y lo que expone una instalación estándar. Se decide junto con la base en lugar de añadirse encima.

  5. Entorno de desarrollo

    Cadenas de herramientas, contenedores y la superficie de trabajo diaria, tratados como una parte de primera clase del sistema y no como algo que el usuario monta después.

  6. Integración e ingeniería de versiones

    Compilaciones reproducibles, imágenes y la maquinaria que convierte un directorio de decisiones en algo que otra persona puede instalar.

05: La composición

Capas probadas, compuestas.

Cada capa por debajo de la superior es software existente, elegido por sus méritos y usado tal cual. Lo único nuevo es la capa de arriba, y ese es el alcance honesto del trabajo.

No es un fork, sino una composición cuidadosa de capas probadas sobre una base Void Linux. Cada una hace su trabajo y pasa el relevo limpiamente a la siguiente. Nombrar un componente es una decisión tomada, no una afirmación de que las piezas ya estén ensambladas.

base void linux, del kernel a la experiencia de usuario
  • L4

    0dyssey

    la capa de experiencia de usuario

    La única capa que se escribe aquí en lugar de adoptarse: valores por defecto elegidos, una superficie de control para los ajustes que importan y la documentación que convierte las cuatro capas de abajo en un sistema que otra persona pueda usar. Todavía no se ejecuta, y es el único peldaño de la lista que aún no existe.

  • L3

    i3

    gestión de ventanas

    Mosaico, manejado con el teclado, configurado en un único archivo legible. Sigue siendo un gestor de ventanas en lugar de convertirse en un entorno de escritorio.

  • L2

    xbps

    paquetes y actualizaciones

    Cómo llega el software y cómo una máquina pasa de un estado conocido al siguiente, con las mismas herramientas para un solo paquete y para un sistema entero.

  • L1

    runit

    init y supervisión

    Qué arranca, en qué orden y qué lo reinicia cuando se cae. Lo bastante pequeño para leerlo de principio a fin, que es la razón por la que está aquí en lugar de un init mayor.

  • L0

    Kernel de Linux

    hardware y planificación

    Controladores, memoria y planificación de procesos bajo una sola autoridad. Elegido por razones aburridas: amplio soporte de hardware y un comportamiento ya documentado en profundidad.

cada capa pasa el relevo limpiamente
06: La ficha técnica

La ficha técnica.

Cada línea es una decisión ya tomada, escrita con claridad para poder discutirla en lugar de adivinarla.

Esta ficha recoge decisiones, no mediciones. Nada de lo que aparece se ha evaluado con benchmarks, porque no hay una compilación lo bastante estable para ello, y una cifra publicada ahora sería una cifra inventada ahora. La fila que normalmente llevaría los números dice exactamente eso.

  • Telemetría

    Ninguna, por decisión

    No se está integrando ninguna vía de envío de datos. No hay nada que desactivar después, porque nada entra desde el principio.

  • Código

    Open core

    Cada capa de la que se compone ya es abierta, y la capa específica de este proyecto está pensada para publicarse de la misma manera. Cómo funciona la máquina no pretende ser un secreto comercial.

  • Legibilidad

    Un requisito, no una preferencia

    Lo que arranca al iniciar, lo que instala un paquete y lo que supone un valor por defecto deben poder leerse por la persona que usa la máquina. Un comportamiento que nadie sabe explicar cuenta como un defecto, no como una rareza.

Base
Void Linux
Kernel
Linux
Init
runit
Paquetes
xbps
Gestor de ventanas
i3, en mosaico
Capa de UX
A medida, no adoptada
Usuario previsto
Desarrolladores y especialistas en sistemas
Telemetría
Ninguna
Cifras medidas
Aún sin medir
Compilación descargable
Ninguna por ahora
Estado
En desarrollo
07: Lo que no es

Lo que deliberadamente no estamos construyendo.

Un alcance enunciado solo como ambiciones no es un alcance. Son las lecturas que queremos descartar ahora en lugar de decepcionar más tarde.

  • No es un escritorio generalista que intenta reemplazar lo que la mayoría ya usa sin problemas.
  • No es una reedición con otro tema de una distribución existente con nuestro nombre en el fondo de pantalla.
  • No es un producto con una fecha de lanzamiento que se mantiene en silencio. No hay fecha que callar.
  • No es un proyecto comunitario que pide colaboradores sin tener todavía capacidad para guiarlos.
  • No es algo en torno a lo que debas planificar infraestructura de producción hoy, y diremos con claridad cuándo eso cambie.
08: Lo que existe hoy

Diseño, decisiones y código inicial.

Esta banda cambia en el momento en que haya algo real que entregarte.

Ninguna compilación que descargar

No hay ISO, ni instalador, ni espejo de paquetes, ni canal de versiones, ni lista de preinscripción. Lo que existe es la arquitectura, las decisiones de arriba y un desarrollo inicial contra ellas. El trabajo se va documentando a medida que ocurre, y esa documentación es la forma honesta de seguirlo hasta que haya una compilación.

Seguir las bitácoras de desarrollo
09: Bitácora de desarrollo

Una entrada por tramo de trabajo, sujeta a una forma fija.

El estándar con el que se escribe la bitácora, fijado antes de que haya algo en ella. La numeración empezará en 001, cada entrada llevará el día en que ocurrió el trabajo y nada tendrá fecha retroactiva.

La numeración es la garantía. Empieza en 001 sin nada detrás, así que esta bitácora no puede adquirir en silencio un historial que no tuvo.

Sin entradas publicadas

La bitácora no ha empezado. Todavía no hay entrada 001, nada tiene fecha retroactiva y ninguna entrada de ejemplo ocupa su lugar. 0dyssey está en desarrollo, y la primera entrada se escribirá cuando haya un trabajo lo bastante terminado como para describirlo con exactitud, no cuando esta página necesite tener algo dentro.

Leer lo que está publicado

La forma de una entrada

Fijada de antemano, para que el formato quede decidido antes de que la primera entrada lo defina en silencio. Cada entrada responderá a estas cuatro cosas, en este orden.

  1. Cuál era el objetivo

    Lo concreto que debía lograr este tramo de trabajo, enunciado antes de afirmar nada de él. Un objetivo escrito después es un objetivo que siempre se cumplió.

  2. Qué está construido

    Solo lo que funciona hoy, en pasado, sin afirmar nada que un lector no pueda comprobar a partir del propio trabajo. Sin capturas de maquetas, sin teatro de hoja de ruta.

  3. Qué está a medias

    Las partes realmente inacabadas, nombradas en lugar de darlas por hechas. Si dos cosas están a medias, se nombran las dos.

  4. Qué sigue

    El siguiente trabajo concreto y por qué va antes que los demás. Sin fecha asociada, porque no hay ninguna fecha que asociar.

10: Secuencia

Cómo se llega a una compilación que puedas ejecutar.

Fases, no fechas. El marcador está en la fase en la que el trabajo se encuentra realmente hoy.

Ninguna entrada de abajo lleva un trimestre, porque ninguna lo tiene. Cuando exista una fecha real, se imprimirá aquí y en ningún otro sitio antes.

  1. Hecho

    La arquitectura y las decisiones de arriba

    Los compromisos de diseño, el modelo de módulos y el alcance, incluidos los rechazos. Suficiente para construir sobre ello y suficiente para discutirlo.

  2. Ahora

    Sistema base y ruta de arranque

    La base de la pila: configuración del kernel, arranque y el espacio de usuario mínimo que forma una máquina en la que puedes iniciar sesión. Aquí es donde está realmente el trabajo.

  3. Después

    Init, servicios, paquetes y actualizaciones

    Las capas que deciden si el sistema es legible: qué arranca y por qué, cómo llega el software y cómo una máquina pasa de un estado conocido a otro.

  4. Más adelante

    Una imagen que otra persona pueda instalar

    Compilaciones reproducibles e ingeniería de versiones, el punto en el que esta página deja de ser un plan y pasa a ser una descarga.

11: El largo plazo

El largo plazo.Un horizonte, no una capacidad actual.

Ninguna de las tres existe, ninguna tiene fecha y ninguna es una fase posterior de la hoja de ruta de arriba. Es la dirección a la que se somete el diseño, impresa aquí para que la hoja de ruta no se confunda con toda la ambición, ni la ambición con el estado del software.

  1. Un sistema operativo para desarrolladores, no uno generalista

    Un sistema lo bastante pequeño para que la velocidad sea una propiedad de su tamaño y no un ejercicio de ajuste, con la cadena de herramientas y la superficie de trabajo diaria tratadas como parte de él y no como algo que el usuario monta después. Herramientas elegidas por cómo trabajan realmente los desarrolladores, que crecen con el sistema en lugar de acumularse en él.

  2. Nativo de IA a nivel de sistema

    Integrada a nivel de sistema en lugar de añadida como una aplicación: una máquina que automatiza lo que puede, actúa en tu nombre y te habla, sugiriendo, explicando y preguntando, en lugar de obligarte a manejar cada comando a mano. Es el único peldaño en el que el sistema operativo y el resto de la ingeniería son el mismo problema. También es un reto de investigación difícil, así que se enuncia como estrella polar y nada más.

  3. La meta más ambiciosa: desde cero

    Construir el sistema desde cero, con el tiempo hasta el kernel. Se nombra aparte a propósito: es una empresa de décadas y no el siguiente punto tras los anteriores, y archivarla como una entrada de la hoja de ruta sería mentir sobre su tamaño.

12: Preguntas

Las preguntas que plantea esta página.

Se responden aquí y en las preguntas frecuentes desde una sola fuente, así que nunca pueden decir cosas distintas. Cuando la respuesta honesta es que todavía no existe nada, esa es la respuesta que se da.

Cada respuesta de abajo está escrita según el estado del trabajo hoy. Ninguna describe software que puedas ejecutar.

¿0dyssey es de código abierto, y con qué licencia?

Las capas que compone son software libre existente y conservan sus propias licencias, decida lo que decida aquí. La licencia de las partes escritas para este proyecto no se ha decidido, así que no hay nada que anunciar ni nada que insinuar. Se indicará aquí cuando se elija. Una licencia citada hoy sería una postura tomada para una web, no una decisión tomada sobre el software.

¿Para quién es?

Para desarrolladores, especialistas en sistemas y organizaciones que operan su propia infraestructura: las personas que trabajan cerca de la máquina y prefieren ser dueñas de la capa de abajo antes que negociar con ella. La mitad más útil de la respuesta es para quién no es. No es un intento de hacer Linux amable para quien no quiere una terminal. Ese problema está resuelto, y lo resolvieron otras distribuciones: un escritorio Linux gráfico es hoy realmente bueno, y construir una versión peor no ayudaría a nadie. El público de aquí ya eligió la terminal y quiere que el entorno que la rodea deje de costar días de montaje.

¿Necesito experiencia con Linux?

La intención de diseño es que la línea de comandos esté siempre ahí y nunca sea la única forma de entrar. Sentirse cómodo con una terminal debería hacer el sistema más rápido de usar, no ser el precio para entrar. Tómalo como un compromiso que puedes exigirle al proyecto y no como una función con la que planificar: la superficie que lo haría cierto está diseñada y no construida, y hoy no hay nada frente a lo que sentarse para comprobar esa afirmación.

¿Es una versión maquillada de una distribución existente?

No. La base es Void Linux, con el kernel de Linux debajo, runit como init, xbps para los paquetes e i3 como gestor de ventanas en mosaico. Son capas probadas, y reescribirlas mal sería una pérdida de tiempo para todos. No es un fork, es una composición cuidadosa: cada capa hace su trabajo y pasa el relevo limpiamente a la siguiente. Lo que se construye para este proyecto es todo lo que está encima, las herramientas, los valores por defecto y la superficie de trabajo, y esa es la parte que merece ser juzgada. No merecería la pena publicar los valores por defecto de otro con un tema encima.

¿Qué hardware necesitará?

Todavía no hay respuesta, y cualquier cifra impresa aquí sería inventada y no medida. Funcionar bien en máquinas modestas y antiguas es un objetivo de diseño, y se deriva de las mismas decisiones que el resto: lo que está ausente no puede costarte nada. Pero un requisito es una medición, nada es lo bastante estable para medirse, y una cifra publicada ahora es una cifra a la que una compilación futura se vería obligada sin motivo. Los requisitos se publicarán cuando se hayan medido, y no antes.

¿Cuándo puedo probarlo?

No puedes. No hay compilación: ni ISO, ni instalador, ni espejo de paquetes, ni canal de versiones, ni número de versión, ni lista de preinscripción a la que apuntarse. Tampoco hay fecha, lo que significa que no se está guardando ninguna fecha en secreto. El trabajo se documenta a medida que ocurre, y seguir esa documentación es la forma honesta de seguir el progreso real en lugar de una cuenta atrás de marketing.

¿Qué pasa con mi instalación actual?

Nada, porque no hay nada que instalar. Cuando haya una imagen, la intención es que se comporte como cualquier otra instalación de Linux: particionado normal, gestor de arranque normal, arranque dual normal, y documentación para las configuraciones habituales en lugar de un camino especial que solo entendemos nosotros. Nada de eso es una promesa sobre la que planificar hasta que exista una imagen y se haya probado en máquinas reales. Nadie debería reparticionar una máquina que funciona por un software sin compilación.

15: Sigue el trabajo

Mira cómo se construye un sistema operativo a la vista de todos.

Las decisiones, los callejones sin salida y las reescrituras se documentan mientras siguen frescos. Si quieres saber cuándo habrá algo que ejecutar, ahí es donde se dirá primero.