NOTE
kernel -> coreutils -> init -> network
Hacerlo como una progresión.
boot loaderque se encarga de arrancar un SO al encender el ordenador. También pueden ser
boot managers, que además ofrecen menús y opciones para configurar que SO arrancar si hay varios o incluso con que opciones.
mkdiral arrancar. A esto se le llama el
init, que es el programa que se ejecuta al arrancar y se encarga de arrancar los
serviciosen su orden correcto, como configurar el teclado, arrancar el
daemonde red, etc, y mostrarnos nuestra interfaz de usuario cuando todo esté listo.
Dejar daemon
un poco en el aire y desarrollarlo en
NetworkManager como ejemplo.
NOTE
En Network Manager
Hay muchas alternativas, NetworkManger es el todo en uno
, pero
hay paquetes para cosas mas pequeñas, iwd
con
wpa_supplicant
para configurar wifi solo, etc. Incluso
combinaciones, hacer que NetworkManager
use solo iwd
para
configurar el wifi, o que use dnsmasq
para cache
de DNS,
etc.
Arch is installed as a minimal base system, configured by the user upon which their own ideal environment is assembled by installing only what is required or desired for their unique purposes.
Arch strives to keep its packages as close to the original upstream software as possible.
Arch es una distribución de Linux que te deja el trabaho de configurar tu ordenador a ti.
Muchas otras distribuciones vienen con todas las partes de un SO incluidas, sin libertad de elegir, y muchas veces modifican el codigo de los projectos para ajustarse más a la distribución. Por ejemplo:
Arch Linux en cambio busca evitar modificar el código original, prioriza mantenerse original al proyecto. Solo lo modifica cuando es necesario para compilar correctamente o funcionar con el resto del sistema.
Por esto mismo es un sistema que no trae nada por defecto. Te obliga a entender cada una de las partes de tu ordenador para poder instalarlo y eres tú el responsable de configurarlas para que cada una de las partes de tu sistema funcionen correctamente entre si.
Hay herramientas para instalar arch con un solo click, pero con estas es muy fácil desentendernos de los componentes que conforman nuestro sistema operativo, y luego cuando cualquier cosa cambie que requiera nuestra intervención, no entenderemos nuestro sistema para arreglarlo. Una vez entiendes tu sistema es muy dificil cargárselo, ya que sabremos que componente ha fallado, porque, como arreglarlo o incluso alternativas a ese componente.
También lo convierte en uno de los sistemas más personalizables ya que nadie ni nada se interpone entre ti y la configuración original de los programas de tu ordenador.
Está muy bien la excusa de que Ubuntu solo funciona
, pero arch
te obliga a entender como funciona tu ordenador.
Como estudiantes de informática y teleco estudiamos sobre los ordenadores, y usar una distribución como arch es una manera muy buena de probar cosas nuevas y aprender por el camino como funciona uno.
El kernel es la parte más baja y central de un sitema operativo. Se encarga de manjear los procesos y ofrecerles servicios para reservar memoria, trabajar con un sistema de archivos, abstraer los periféricos con una interfaz común, etc.
Arch soporta oficialmente linux, pero tecnicamente podrías instalar
cualquier implementación similar a linux. Existen incluso varias
versiones de linux con distintas modificaciones. Las más conocidas son
linux-lts, linux-zen o
linux-hardened. Pero CachyOS también ofrece sus propios
mix
.
linux-cachyos en el AUR actualmente. 1
linux-cachyos linux-cachyos-bore
linux-cachyos-rc linux-cachyos-lts
linux-cachyos-cjktty linux-cachyos-eevdf
linux-cachyos-hardened linux-cachyos-bmq
linux-cachyos-server
linux-cachyos-deckify-native
linux-cachyos-native
linux-cachyos-native-nvidia-open
linux-cachyos-rc-native
linux-cachyos-rc-native-nvidia-open
Los coreutils (core utilities) en linux son el conjunto de programas básicos de un sistema unix. En linux los coreutils tradicionales son los de GNU, pero son reemplazables por otras implementaciones como uutils (en rust).
La lista de programas que ofrece coreutils (9.10-1) en arch es:
[ b2sum base32
base64 basename basenc
cat chgrp chmod
chown chroot cksum
comm cp csplit cut
date dd df dir
dircolors dirname du
echo env expand expr
factor false fmt
fold groups head
hostid id install
join link ln logname
ls md5sum mkdir
mkfifo mknod mktemp
mv nice nl nohup
nproc numfmt od
paste pathchk pinky
pr printenv printf
ptx pwd readlink
realpath rm rmdir
seq sha1sum sha224sum
sha256sum sha384sum sha512sum
shred shuf sleep
sort split stat
stdbuf stty sum sync
tac tail tee test
timeout touch tr
true truncate tsort
tty uname unexpand
uniq unlink users
vdir wc who whoami
yes
Estos programas no son parte del kernel, se ofrecen a parte para interactuar con él.
Un ordenador no está diseñado para arrancar directamente un kernel
(hasta recientemente con configuraciones específicas de UEFI). Para esto
hay un programa llamado boot loader
que se encarga de cargar el
kernel y ejecutarlo adecuadamente al arrancar el ordenador.
Además, muchos de estos bootloaders
ofrecen menus antes de
arrancar el kernel para seleccionar el sistema en casos de multiboot o
configurar las opciones con las que arranca ell kernel. En este caso se
les considera un boot manager
.
Una vez el kernel arranca, este tiene programas instalados y esta
listo para ofrecer sus servicios, pero no puede ejecutar cualquier cosa
como mkdir. Entones se usa un init system, que consiste
simplemente en el primer programa que linux ejecuta al arrancar el
ordenador (por defecto se busca en /sbin/init).
El trabajo de un init system completo es el de iniciar todas las
partes del sistema adecuadas, llamadas servicios
. Estos servicios
pueden ser programas simples que configuren el teclado, o programas que
se mantienen activos de fondo, como el daemon
de red.
El orden también es muy importante, la interfaz gráfica también se considera un servicio que solo se puede ejecutar cuando el resto de servicios previos han terminado de ejecutarse adecuadamente. No tiene mostrar la interfaz de inicio de sesión si el teclado no está preparado.
Daemonsde red
Un daemon es simplemente un programa que se mantiene ejecutando de fondo, normalmente manejados por el init system como un servicio.
El ejemplo mas claro son los daemons de