add: cositas del guion

tambien se puede pasar a html con pandoc
This commit is contained in:
2026-04-15 18:43:37 +02:00
parent d5f618fc6b
commit 7d28e44efa
6 changed files with 478 additions and 25 deletions

View File

@@ -63,6 +63,7 @@ vm-nographic: exit-notice root.img $(VM_DEPS)
# custom.db.tar.gz ./*.pkg.tar.zst~*.sig` (pq lo he copiado todo, sig incluido)
# para generar los archivos de la base de datos de los paquetes
serve:
@echo -e "\033[4;7m/etc/pacman.conf:\033[0m"
@echo "[custom]"
@echo "SigLevel = Optional TrustAll"
@echo "http://192.168.122.1:8080"

8
notas-jaime/make-html.sh Executable file
View File

@@ -0,0 +1,8 @@
set -xeuo pipefail
${PANDOC_PATH:-pandoc} \
--template="${HTML_TEMPLATE:-template.html}" \
--metadata title="${HTML_TITLE:-"Arch + i3"}" \
-f markdown+fenced_divs+markdown_in_html_blocks \
\
"${1:-toc.md}" -o "${2:-toc.html}"

102
notas-jaime/style.css Normal file
View File

@@ -0,0 +1,102 @@
:root {
--text-color: #eee;
--faint-text-color: #888;
--background-color: #121415;
--blockquote-color: #444;
--link-color: #d55;
--visited-link-color: #a22;
--code-background-color: #0a0a0a;
--text-font: system-ui, sans-serif;
--quoteish-left-width: 4px;
}
/* General */
html {
display: flex;
justify-content: center;
align-items: center;
}
body {
font-family: var(--text-font);
line-height: 1.6;
max-width: 700px;
margin: 30px 50px;
color: var(--text-color);
background-color: var(--background-color);
}
/* Headings */
h1,
h2,
h3,
h4,
h5,
h6 {
border-bottom: 1px var(--faint-text-color) solid;
}
/* Block Quotes */
blockquote {
border-left: var(--quoteish-left-width) var(--blockquote-color) solid;
padding: 0 30px;
margin-left: 10px;
/* margin-bottom: 20px; */
}
/* Code */
code {
background-color: var(--code-background-color);
padding: 5px 10px;
border-radius: 8px;
}
a {
color: var(--link-color);
}
a:visited {
color: var(--visited-link-color);
}
/* Alerts */
.note {
--color: #7cf;
--icon: '🛈';
}
.note {
border-left: var(--quoteish-left-width) var(--color) solid;
padding: 15px 30px;
margin-left: 10px;
margin-bottom: 20px;
background-color: #ffffff05;
}
.note > .title > p {
color: var(--color);
font-size: 1.25em;
font-weight: bold;
margin-top: 0;
}
.note > :last-child {
margin-bottom: 0;
}
.note > .title > p::before {
content: var(--icon);
margin-right: 0.25em;
}

10
notas-jaime/template.html Normal file
View File

@@ -0,0 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>$title$</title>
<link href="style.css" rel="stylesheet">
</head>
<body> $body$ </body>
</html>

267
notas-jaime/toc.html Normal file
View File

@@ -0,0 +1,267 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Arch + i3</title>
<link href="style.css" rel="stylesheet">
</head>
<body> <!--
for vim:
set makeprg=./make-html.sh
-->
<h1 id="índice-de-la-charla">Índice de la Charla</h1>
<ul>
<li>Filosofía Te lo montas tu… Es importante conocer las partes de un SO
de Linux.</li>
<li>Partes de un SO:
<ul>
<li>Kernel (linux, linux-zen)</li>
<li>Coreutils (GNU Core utils, uutils)</li>
<li>Bootloader (grub, systemd-boot, limine)</li>
<li>Init System (systemd, runit, openrc, dinit)</li>
<li>Network Manager (NetworkManager, iwd)</li>
<li>Administrador de Paquetes (pacman)</li>
<li>Repositorios (core, extra, kde-testing, custom)</li>
<li>AUR (como un pseudo-repositorio alternativo)</li>
<li>GUI
<ul>
<li>DE
<ul>
<li>GNOME / KDE</li>
</ul></li>
<li>WM(xorg):
<ul>
<li>i3</li>
<li>xmonad</li>
</ul></li>
<li>Compositor(wayland):
<ul>
<li>sway</li>
<li>Hyprland</li>
<li>Niri</li>
</ul></li>
</ul></li>
<li>Display Manager
<ul>
<li>GDM / SSDM</li>
<li>lidm</li>
</ul></li>
<li>Notif daemon, sudo, etc</li>
</ul></li>
<li>Mencion de la wiki</li>
<li>Forks de Arch (artix, black arch, alarm, cachyos, nyarch)</li>
<li>Instalación (que es el iso)</li>
</ul>
<div class="note">
<div class="title">
<p>
NOTE
</p>
</div>
<p><code>kernel -&gt; coreutils -&gt; init -&gt; network</code></p>
<p>Hacerlo como una progresión.</p>
<ul>
<li>El kernel es lo básico, maneja los procesos y permite que estos
reserven memoria, tengan un sistema de archivos, se comuniquen con
periféricos, etc.</li>
<li>Coreutils da una serie de programas básicos para interactuar con lo
que ofrece el kernel (ls, cat, touch, mkdir, etc). <strong>no son parte
del kernel</strong></li>
<li>Linux no esta preparado para arrancar directamente cuando el
ordenador arranca (a menos que sea UEFI y esté configurado). Entonces
hay un programa llamado <q>boot loader</q> que se encarga de arrancar un
SO al encender el ordenador. También pueden ser <q>boot managers</q>,
que además ofrecen menús y opciones para configurar que SO arrancar si
hay varios o incluso con que opciones.</li>
<li>Cuando linux arranca, aunque tenga programas instalados, alguien
tiene que decidir que ejecutar y que no, no tiene sentido que se ejecute
<q>mkdir</q> al arrancar. A esto se le llama el <q>init</q>, que es el
programa que se ejecuta al arrancar y se encarga de arrancar los
<q>servicios</q> en su orden correcto, como configurar el teclado,
arrancar el <q>daemon</q> de red, etc, y mostrarnos nuestra interfaz de
usuario cuando todo esté listo.</li>
</ul>
<p>Dejar <q>daemon</q> un poco en el aire y desarrollarlo en
NetworkManager como ejemplo.</p>
</div>
<div class="note">
<div class="title">
<p>
NOTE
</p>
</div>
<p>En Network Manager</p>
<p>Hay muchas alternativas, NetworkManger es el <q>todo en uno</q>, pero
hay paquetes para cosas mas pequeñas, <q>iwd</q> con
<q>wpa_supplicant</q> para configurar wifi solo, etc. Incluso
combinaciones, hacer que <q>NetworkManager</q> use solo <q>iwd</q> para
configurar el wifi, o que use <q>dnsmasq</q> para <q>cache</q> de DNS,
etc.</p>
</div>
<hr />
<h1 id="filosofía">Filosofía</h1>
<blockquote>
<p>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.</p>
</blockquote>
<blockquote>
<p>Arch strives to keep its packages as close to the original upstream
software as possible.</p>
</blockquote>
<blockquote>
<p><cite> <a href="https://archlinux.org/about/"
class="uri">https://archlinux.org/about/</a> </cite></p>
</blockquote>
<p>Arch es una distribución de Linux que te deja el trabaho de
configurar tu ordenador a ti.</p>
<p>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:</p>
<ul>
<li>Debian suele modificar el código de linux para ajustarse a su
filosofía de estabilidad y largo soporte de hardware y software.</li>
<li>Ubuntu usa GNOME por defecto y suele modificarlo para ajustarse a la
temática y comportamiento del escritorio y aherirse a su filosofía de
mejorar la experiencia del usuario.</li>
<li>Fedora suele modificar los paquetes para adoptar las últimas
características lo antes posible y mejorar la seguridad de la
distribución.</li>
</ul>
<p>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.</p>
<h2 id="consecuencias">Consecuencias</h2>
<p>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.</p>
<p>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.</p>
<p>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.</p>
<h2 id="por-qué-usar-arch">¿Por qué usar arch?</h2>
<p>Está muy bien la excusa de que Ubuntu <q>solo funciona</q>, pero arch
te obliga a entender como funciona tu ordenador.</p>
<p>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.</p>
<h1 id="partes-de-un-so">Partes de un SO</h1>
<h2 id="kernel">Kernel</h2>
<p>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.</p>
<p>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
<code>linux-lts</code>, <code>linux-zen</code> o
<code>linux-hardened</code>. Pero CachyOS también ofrece sus propios
<q>mix</q>.</p>
<details>
<summary>
Paquetes <code>linux-cachyos</code> en el AUR actualmente. <a
href="#fn1" class="footnote-ref" id="fnref1"
role="doc-noteref"><sup>1</sup></a>
</summary>
<blockquote>
</blockquote>
<p><code>linux-cachyos</code> <code>linux-cachyos-bore</code>
<code>linux-cachyos-rc</code> <code>linux-cachyos-lts</code>
<code>linux-cachyos-cjktty</code> <code>linux-cachyos-eevdf</code>
<code>linux-cachyos-hardened</code> <code>linux-cachyos-bmq</code>
<code>linux-cachyos-server</code>
<code>linux-cachyos-deckify-native</code>
<code>linux-cachyos-native</code>
<code>linux-cachyos-native-nvidia-open</code>
<code>linux-cachyos-rc-native</code>
<code>linux-cachyos-rc-native-nvidia-open</code></p>
</details>
<h2 id="coreutils">Coreutils</h2>
<p>Los coreutils (core utilities) en linux son el conjunto de programas
básicos de un sistema unix. En linux los coreutils tradicionales son <a
href="https://www.gnu.org/software/coreutils/">los de GNU</a>, pero son
reemplazables por otras implementaciones como <a
href="https://github.com/uutils/coreutils">uutils</a> (en rust).</p>
<p>La lista de programas que ofrece coreutils (9.10-1) en arch es:<br />
<code>[</code> <code>b2sum</code> <code>base32</code>
<code>base64</code> <code>basename</code> <code>basenc</code>
<code>cat</code> <code>chgrp</code> <code>chmod</code>
<code>chown</code> <code>chroot</code> <code>cksum</code>
<code>comm</code> <code>cp</code> <code>csplit</code> <code>cut</code>
<code>date</code> <code>dd</code> <code>df</code> <code>dir</code>
<code>dircolors</code> <code>dirname</code> <code>du</code>
<code>echo</code> <code>env</code> <code>expand</code> <code>expr</code>
<code>factor</code> <code>false</code> <code>fmt</code>
<code>fold</code> <code>groups</code> <code>head</code>
<code>hostid</code> <code>id</code> <code>install</code>
<code>join</code> <code>link</code> <code>ln</code> <code>logname</code>
<code>ls</code> <code>md5sum</code> <code>mkdir</code>
<code>mkfifo</code> <code>mknod</code> <code>mktemp</code>
<code>mv</code> <code>nice</code> <code>nl</code> <code>nohup</code>
<code>nproc</code> <code>numfmt</code> <code>od</code>
<code>paste</code> <code>pathchk</code> <code>pinky</code>
<code>pr</code> <code>printenv</code> <code>printf</code>
<code>ptx</code> <code>pwd</code> <code>readlink</code>
<code>realpath</code> <code>rm</code> <code>rmdir</code>
<code>seq</code> <code>sha1sum</code> <code>sha224sum</code>
<code>sha256sum</code> <code>sha384sum</code> <code>sha512sum</code>
<code>shred</code> <code>shuf</code> <code>sleep</code>
<code>sort</code> <code>split</code> <code>stat</code>
<code>stdbuf</code> <code>stty</code> <code>sum</code> <code>sync</code>
<code>tac</code> <code>tail</code> <code>tee</code> <code>test</code>
<code>timeout</code> <code>touch</code> <code>tr</code>
<code>true</code> <code>truncate</code> <code>tsort</code>
<code>tty</code> <code>uname</code> <code>unexpand</code>
<code>uniq</code> <code>unlink</code> <code>users</code>
<code>vdir</code> <code>wc</code> <code>who</code> <code>whoami</code>
<code>yes</code></p>
<p>Estos programas <strong>no son parte del kernel</strong>, se ofrecen
a parte para interactuar con él.</p>
<h2 id="bootloader">Bootloader</h2>
<p>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 <q>boot loader</q> que se encarga de cargar el
kernel y ejecutarlo adecuadamente al arrancar el ordenador.</p>
<p>Además, muchos de estos <q>bootloaders</q> 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 <q>boot manager</q>.</p>
<h2 id="init-system">Init System</h2>
<p>Una vez el kernel arranca, este tiene programas instalados y esta
listo para ofrecer sus servicios, pero no puede ejecutar cualquier cosa
como <code>mkdir</code>. 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 <code>/sbin/init</code>).</p>
<p>El trabajo de un init system completo es el de iniciar todas las
partes del sistema adecuadas, llamadas <q>servicios</q>. Estos servicios
pueden ser programas simples que configuren el teclado, o programas que
se mantienen activos de fondo, como el <q>daemon</q> de red.</p>
<p>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.</p>
<h2 id="daemons-de-red"><q><em>Daemons</em></q> de red</h2>
<p>Un daemon es simplemente un programa que se mantiene ejecutando de
fondo, normalmente manejados por el init system como un servicio.</p>
<p>El ejemplo mas claro son los <em>daemons</em> de</p>
<section id="footnotes" class="footnotes footnotes-end-of-document"
role="doc-endnotes">
<hr />
<ol>
<li id="fn1"><p><a href="https://wiki.cachyos.org/features/kernel/"
class="uri">https://wiki.cachyos.org/features/kernel/</a><a
href="#fnref1" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
</ol>
</section> </body>
</html>

View File

@@ -1,10 +1,15 @@
<!--
for vim:
set makeprg=./make-html.sh
-->
# Índice de la Charla
- Filosofia
- Filosofía
Te lo montas tu... Es importante conocer las partes de un SO de Linux.
- Partes de un SO?:
- Partes de un SO:
- Kernel (linux, linux-zen)
- Coreutils (GNU Core utils, uutils)[^coreutils-bins]
- Coreutils (GNU Core utils, uutils)
- Bootloader (grub, systemd-boot, limine)
- Init System (systemd, runit, openrc, dinit)
- Network Manager (NetworkManager, iwd)
@@ -29,47 +34,107 @@
- Forks de Arch (artix, black arch, alarm, cachyos, nyarch)
- Instalación (que es el iso)
[^coreutils-bins]: \[ 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
::: note
<div class="title"><p>NOTE</p></div>
> [!NOTE]
> kernel -> coreutils -> init -> network
>
> Hacerlo como una prograsión.
>
> - El kernel es lo básico, maneja los procesos y permite que estos reserven memoria, tengan un sistema de archivos, se comuniquen con periféricos, etc.
> - Coreutils da una serie de programas básicos para interactuar con lo que ofrece el kernel (ls, cat, touch, mkdir, etc). **no son parte del kernel**
> - Linux no esta preparado para arrancar directamente cuando el ordenador arranca (a menos que sea UEFI y esté configurado). Entonces hay un programa llamado "boot loader" que 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.
> - Cuando linux arranca, aunque tenga programas instalados, alguien tiene que decidir que ejecutar y que no, no tiene sentido que se ejecute "mkdir" al arrancar. A esto se le llama el "init", que es el programa que se ejecuta al arrancar y se encarga de arrancar los "servicios" en su orden correcto, como configurar el teclado, arrancar el "daemon" de 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.
`kernel -> coreutils -> init -> network`
> [!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.
Hacerlo como una progresión.
- El kernel es lo básico, maneja los procesos y permite que estos reserven memoria, tengan un sistema de archivos, se comuniquen con periféricos, etc.
- Coreutils da una serie de programas básicos para interactuar con lo que ofrece el kernel (ls, cat, touch, mkdir, etc). **no son parte del kernel**
- Linux no esta preparado para arrancar directamente cuando el ordenador arranca (a menos que sea UEFI y esté configurado). Entonces hay un programa llamado <q>boot loader</q> que se encarga de arrancar un SO al encender el ordenador. También pueden ser <q>boot managers</q>, que además ofrecen menús y opciones para configurar que SO arrancar si hay varios o incluso con que opciones.
- Cuando linux arranca, aunque tenga programas instalados, alguien tiene que decidir que ejecutar y que no, no tiene sentido que se ejecute <q>mkdir</q> al arrancar. A esto se le llama el <q>init</q>, que es el programa que se ejecuta al arrancar y se encarga de arrancar los <q>servicios</q> en su orden correcto, como configurar el teclado, arrancar el <q>daemon</q> de red, etc, y mostrarnos nuestra interfaz de usuario cuando todo esté listo.
Dejar <q>daemon</q> un poco en el aire y desarrollarlo en NetworkManager como ejemplo.
:::
::: note
<div class="title"><p>NOTE</p></div>
En Network Manager
Hay muchas alternativas, NetworkManger es el <q>todo en uno</q>, pero hay paquetes para cosas mas pequeñas, <q>iwd</q> con <q>wpa_supplicant</q> para configurar wifi solo, etc. Incluso combinaciones, hacer que <q>NetworkManager</q> use solo <q>iwd</q> para configurar el wifi, o que use <q>dnsmasq</q> para <q>cache</q> de DNS, etc.
:::
---
# Filosofia
# Filosofía
> 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.
> &emph; <cite> <https://archlinux.org/about/> </cite>
> &mdash; <cite> <https://archlinux.org/about/> </cite>
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:
- Debian suele modificar el código de linux para ajustarse a su filosofia de estabilidad y largo soporte de hardware y software.
- Ubuntu usa GNOME por defecto y suele modificarlo para ajustarse a la temática de debian y ajustar su comportamiento par ajustarse a su filosofía de mejorar la experiencia del usuario.
- Debian suele modificar el código de linux para ajustarse a su filosofía de estabilidad y largo soporte de hardware y software.
- Ubuntu usa GNOME por defecto y suele modificarlo para ajustarse a la temática y comportamiento del escritorio y aherirse a su filosofía de mejorar la experiencia del usuario.
- Fedora suele modificar los paquetes para adoptar las últimas características lo antes posible y mejorar la seguridad de la distribución.
Arch Linux en cambio busca evitar modificar el código original, prioriza mantenerse original al projecto. Solo lo modifica cuando es necesario para compilar correctamente o funcionar con el resto del sistema.
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.
## Consecuencias
Por esto mismo es un sistema que no trae _casi_\* nada por defecto (una excepción). 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.
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.
## ¿Por qué usar arch?
Está muy bien la excusa de que Ubuntu <q>solo funciona</q>, 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.
# Partes de un SO
## Kernel
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 <q>mix</q>.
<details>
<summary markdown="1">
Paquetes `linux-cachyos` en el AUR actualmente. [^cachyos-kernel]
</summary>
> [^cachyos-kernel]: <https://wiki.cachyos.org/features/kernel/>
`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`
</details>
## Coreutils
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](https://www.gnu.org/software/coreutils/), pero son reemplazables por otras implementaciones como [uutils](https://github.com/uutils/coreutils) (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.
## Bootloader
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 <q>boot loader</q> que se encarga de cargar el kernel y ejecutarlo adecuadamente al arrancar el ordenador.
Además, muchos de estos <q>bootloaders</q> 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 <q>boot manager</q>.
## Init System
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 <q>servicios</q>. Estos servicios pueden ser programas simples que configuren el teclado, o programas que se mantienen activos de fondo, como el <q>daemon</q> 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.
## <q>*Daemons*</q> de red
Un daemon es simplemente un programa que se mantiene ejecutando de fondo, normalmente manejados por el init system como un servicio.
El ejemplo más claro son los *daemons* de red, estos procesos se mantienen activos de fondo buscando las redes disponibles y decidiendo constantemente si deben conectarse, desconectarse, o que hacer.