4 puntos por GN⁺ 2024-01-27 | 1 comentarios | Compartir por WhatsApp

Oasis es un sistema Linux pequeño

  • Oasis es bastante diferente de otros sistemas operativos basados en Linux y se parece más a BSD.
  • Todo el software está enlazado estáticamente, lo que resuelve los problemas de actualización de bibliotecas y proporciona binarios completamente independientes que se pueden copiar fácilmente a otros sistemas.
  • Ofrece compilaciones rápidas y 100% reproducibles, con tiempos de compilación óptimos, compilaciones predecibles y reproducibles, menos dependencias de tiempo de compilación y compilaciones incrementales incluso más allá de los límites de los paquetes.
  • Tiene dependencias mínimas de bootstrap, por lo que se puede compilar cruzado fácilmente incluso desde sistemas no Linux como macOS u OpenBSD.

Principios

  • La complejidad del software debe medirse incluyendo todas las dependencias transitivas.
  • Los ejecutables deben estar enlazados estáticamente.
  • Los componentes de software deben permitir una personalización y modificación sencillas.
  • Las fuentes de los paquetes deben referenciarse mediante URL o submódulos de git, y no incluirse directamente.
  • /etc debe ser lo suficientemente simple como para poder entenderse por completo.
  • Los parches deben estar bien organizados, tener buenas explicaciones y aplicarse siempre limpiamente.

Instalación

  • Oasis es un proyecto ambicioso y todavía queda mucho trabajo por hacer.
  • Los usuarios deben sentirse cómodos compilando su propio kernel y resolviendo problemas del sistema.
  • Si surge algún problema, siempre están felices de brindar ayuda.

QEMU

  • Si quieres probar Oasis sin instalarlo directamente, puedes usar una imagen de QEMU.
  • El archivo incluye el sistema de archivos raíz, el kernel de Linux y un script para ejecutar QEMU.
  • Puedes ejecutarlo en modo gráfico con ./run y en modo serial con ./run -s.

Software

  • Usa implementaciones de bibliotecas y herramientas lo más simples y pequeñas posible.
  • musl, sbase, ubase, pigz, mandoc, bearssl, oksh, sdhcp, vis, byacc, perp y sinit, netsurf, samurai, velox, netbsd-curses, etc., se usan como reemplazos de glibc, coreutils, util-linux, gzip, man-db, openssl, bash, dhclient/dhcpcd, vim/emacs, bison, sysvinit/systemd, chromium/firefox, ninja, Xorg y ncurses.
  • Los paquetes están agrupados en conjuntos lógicos, y la lista completa se puede consultar en el directorio pkg.
  • Si falta el software que prefieres, todavía puedes instalarlo mediante pkgsrc o nix.

Contacto

  • Para preguntas, parches y discusiones generales, se puede usar la lista de correo (~mcf/oasis@lists.sr.ht) y el canal de IRC (#oasis en libera.chat).

Opinión de GN⁺

  • Oasis ofrece un enfoque distinto al de los sistemas Linux tradicionales y, con características como el enlazado estático, las compilaciones rápidas y las dependencias mínimas de bootstrap, brinda una nueva opción para los desarrolladores.
  • Este sistema tiene una filosofía que prioriza reducir la complejidad del desarrollo de software y facilitar la personalización y modificación, ofreciendo una mirada fresca a los principios de la ingeniería de software.
  • Aunque Oasis sigue siendo un proyecto en desarrollo, puede convertirse en una alternativa atractiva para usuarios que disfrutan los desafíos técnicos y buscan una comprensión profunda del sistema.

1 comentarios

 
GN⁺ 2024-01-27
Opiniones en Hacker News
  • No puede decir mucho sobre el sistema, pero comenta que la comunidad fue muy amable al interactuar por IRC. Tenía planes de construir una imagen de SO inmutable para ejecutarla como nodo de Kubernetes, y con algo de ayuda logró hacerlo.

  • El enlazado estático sugiere que la imagen base y la memoria en tiempo de ejecución pueden ser mayores debido a múltiples copias de las bibliotecas. La simplicidad del enlazado estático es buena, pero parece ir en contra de la idea de "reducir el tamaño".

  • Comparte un enlace a una discusión anterior de agosto de 2022.

  • Se pregunta si alguien sabe cuál es el tamaño de la instalación base. No pudo encontrar la respuesta en ningún lado, y el enlace a la imagen de QEMU actualmente está roto. Por ejemplo, le interesa saber cómo se compara con Alpine con un conjunto de paquetes similar.

  • Se pregunta cuáles son los casos de uso y cuál es la ventaja de usar el compilador C croc. Cuáles son las ventajas de usar croc en lugar de TCC, y le parece interesante haber conocido el navegador Netsurf. Sin embargo, como usa el motor JS Duktape, podría haber problemas de rendimiento.

  • Había un comentario (eliminado) que se quejaba de que no se puede acceder a GitHub con JavaScript desactivado. El repositorio de Oasis también está replicado en sourcehut, así que eso podría resultar más aceptable.

  • michaelforney también hizo el port de st a Wayland. El predecesor de Oasis es sta.li.

  • Se pregunta qué tan grandes son las bibliotecas estáticas. Las bibliotecas dinámicas pueden compartir espacio de direcciones, pero en el caso de las bibliotecas estáticas el enlazador puede eliminar rutinas no utilizadas, por lo que podría haber eficiencias inesperadas. Además, también podría ser más rápido.

  • Se pregunta cuál es la comparación entre musl y la glibc tradicional, y si hay diferencias de rendimiento entre ambas bibliotecas. Últimamente se está usando cada vez más musl en los ecosistemas de Rust y Zig.

  • Valora positivamente las decisiones interesantes y el hecho de que no sea simplemente otra distribución de Linux.