toques de guión finales
- ahora también se puede imprimir bien con `html[class="to-print"]`
This commit is contained in:
@@ -21,81 +21,29 @@ SO de Linux.</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><q><em>Daemons</em></q> de red (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>Repositorios (core, extra, kde-testing, custom)
|
||||
<ul>
|
||||
<li>Espejos</li>
|
||||
<li>AUR</li>
|
||||
</ul></li>
|
||||
<li>GUI
|
||||
<ul>
|
||||
<li>DE
|
||||
<li>DE (GNOME / KDE)</li>
|
||||
<li>WM:
|
||||
<ul>
|
||||
<li>GNOME / KDE</li>
|
||||
<li>Xorg (i3, xmonad)</li>
|
||||
<li>Wayland (hyprand, niri, sway)</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>
|
||||
<li>Display Manager (GDM / SSDM, etc)</li>
|
||||
<li>Más</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>Arch Wiki</li>
|
||||
<li>Forks de Arch (artix, black arch, alarm, cachyos, nyarch)</li>
|
||||
<li>Instalación (que es el iso)</li>
|
||||
<li>Instalación (que es el iso & pasos conceptuales)</li>
|
||||
</ul>
|
||||
<div class="note">
|
||||
<div class="title">
|
||||
<p>Note</p>
|
||||
</div>
|
||||
<p><code>kernel -> coreutils -> init -> 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>
|
||||
@@ -234,12 +182,19 @@ kernel y ejecutarlo adecuadamente al arrancar el ordenador.</p>
|
||||
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>
|
||||
<p>El caso más popular y que lo incluye todo es <code>grub</code>, otras
|
||||
opciones populares son <code>systemd-boot</code> y
|
||||
<code>limine</code>.</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 más popular (con diferencia) hoy en día es systemd, también es el
|
||||
único que arch soporta de forma oficial. Aunque existen otros como
|
||||
OpenRC, Runit, Dinit, S6, etc; que se pueden configurar en arch (aunque
|
||||
para eso hay opciones mejores como usar Artix).</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
|
||||
@@ -256,6 +211,193 @@ fondo, normalmente manejados por el init system como un servicio.</p>
|
||||
se mantienen activos de fondo buscando las redes disponibles y
|
||||
decidiendo constantemente si deben conectarse, desconectarse, o que
|
||||
hacer.</p>
|
||||
<p>Los <em>daemons</em> se suelen caracterizar con una <q>d</q> al final
|
||||
del nombre (<code>playerctl</code> -> <code>playerctld</code>,
|
||||
<code>udev</code> -> <code>udevd</code>, <code>ssh</code> ->
|
||||
<code>sshd</code>, etc).</p>
|
||||
<p>El más popular es <code>NetworkManager</code>, que es un <q>todo en
|
||||
uno</q> de un <em>daemon</em> de red. Pero hay muchas otras opciones mas
|
||||
modulares, como <code>iwd</code> específico para configuración
|
||||
inalámbrica, <code>systemd-networkd</code>, o
|
||||
<code>wpa_supplicant</code> para certificados de wifi. Incluso
|
||||
configuraciones mixtas, <code>NetworkManager</code> se puede configurar
|
||||
para solo usar <code>iwd</code>, o que use <code>dnsmasq</code> para
|
||||
cache del DNS, etc.</p>
|
||||
<h2 id="administrador-de-paquetes">Administrador de Paquetes</h2>
|
||||
<p>Hasta ahora hemos visto el kernel, los creutils, un bootloader, el
|
||||
init system y todos los servicios y <em>daemons</em> que puede haber.
|
||||
Esto son muchísimos archivos y manejarlos a mano sería un desastre.</p>
|
||||
<p>Para esto está el concepto de un <q>package manager</q> o
|
||||
<q>administrador de paquetes</q>. En vez e manejar los programas como
|
||||
archivos independientes, los agrupamos en <q>paquetes</q> que contienen
|
||||
los archivos relacionados al programa, y el el administrados de paquetes
|
||||
el que se encarga de manejar todos estos archivos.</p>
|
||||
<div class="sourceCode" id="cb1"><pre
|
||||
class="sourceCode txt"><code class="sourceCode default"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a> ➜ pacman -Ql lidm</span>
|
||||
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a>lidm-git /etc/</span>
|
||||
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a>lidm-git /etc/lidm.ini</span>
|
||||
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a>lidm-git /usr/</span>
|
||||
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a>lidm-git /usr/bin/</span>
|
||||
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a>lidm-git /usr/bin/lidm</span>
|
||||
<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a>lidm-git /usr/share/</span>
|
||||
<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a>lidm-git /usr/share/man/</span>
|
||||
<span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a>lidm-git /usr/share/man/man1/</span>
|
||||
<span id="cb1-10"><a href="#cb1-10" aria-hidden="true" tabindex="-1"></a>lidm-git /usr/share/man/man1/lidm.1.gz</span>
|
||||
<span id="cb1-11"><a href="#cb1-11" aria-hidden="true" tabindex="-1"></a>lidm-git /usr/share/man/man5/</span>
|
||||
<span id="cb1-12"><a href="#cb1-12" aria-hidden="true" tabindex="-1"></a>lidm-git /usr/share/man/man5/lidm-config.5.gz</span></code></pre></div>
|
||||
<p>Suelen hacer más tareas, como mostrar información de cada paquete y
|
||||
satisfacer sus dependencias (esto con otros paquetes del que determinado
|
||||
paquete depende, por ejemplo por ser una librería).</p>
|
||||
<div class="sourceCode" id="cb2"><pre
|
||||
class="sourceCode txt"><code class="sourceCode default"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a> ➜ ldd /usr/bin/lidm</span>
|
||||
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a> linux-vdso.so.1 (0x00007fd93d489000)</span>
|
||||
<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a> libpam.so.0 => /usr/lib/libpam.so.0 (0x00007fd93d428000)</span>
|
||||
<span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a> libc.so.6 => /usr/lib/libc.so.6 (0x00007fd93d23a000)</span>
|
||||
<span id="cb2-5"><a href="#cb2-5" aria-hidden="true" tabindex="-1"></a> libaudit.so.1 => /usr/lib/libaudit.so.1 (0x00007fd93d207000)</span>
|
||||
<span id="cb2-6"><a href="#cb2-6" aria-hidden="true" tabindex="-1"></a> /lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fd93d48b000)</span>
|
||||
<span id="cb2-7"><a href="#cb2-7" aria-hidden="true" tabindex="-1"></a> libcap-ng.so.0 => /usr/lib/libcap-ng.so.0 (0x00007fd93d1ff000)</span>
|
||||
<span id="cb2-8"><a href="#cb2-8" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb2-9"><a href="#cb2-9" aria-hidden="true" tabindex="-1"></a> ➜ pacman -F /usr/lib/libpam.so.0</span>
|
||||
<span id="cb2-10"><a href="#cb2-10" aria-hidden="true" tabindex="-1"></a>usr/lib/libpam.so.0 is owned by system/pam 1.7.1-1</span>
|
||||
<span id="cb2-11"><a href="#cb2-11" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb2-12"><a href="#cb2-12" aria-hidden="true" tabindex="-1"></a> ➜ paru -Qi lidm | grep Depends</span>
|
||||
<span id="cb2-13"><a href="#cb2-13" aria-hidden="true" tabindex="-1"></a>Depends On : pam lidm-service</span></code></pre></div>
|
||||
<p>En este ejemplo se puede ver que el ejecutable <code>lidm</code>
|
||||
depende de <code>libpam</code>, archivo que es parte del paquete
|
||||
<code>pam</code>. Y esta dependencia esta especificada adecuadamente en
|
||||
la información del paquete.</p>
|
||||
<p>Este es uno de los componentes en el que las distribuciones normales
|
||||
no dan elección, el entorno de paquetes suele estar orientado alrededor
|
||||
del administrador de paquetes elegido y sería imposible dar a
|
||||
elegir.</p>
|
||||
<h2 id="repositorios">Repositorios</h2>
|
||||
<p>Los repositorios son los <q>sitios</q> donde se agrupan los paquetes.
|
||||
En arch hay dos principales, <code>core</code> para los componentes
|
||||
super básicos (el kernel, init system, administrador de paquetes), y
|
||||
<code>extra</code> para paquetes que no son principales en un sistema
|
||||
operativo (naevgador, interfaces, etc).</p>
|
||||
<p>Hay repositorios extra, como puede ser <code>multilib</code> para
|
||||
paquetes de 32 bits, y nada te impide hacer tus propios repositorios
|
||||
personales con tu propia selección de paquetes.</p>
|
||||
<p>Además es común el tener repositorios donde las nuevas versiones
|
||||
llegan un poco antes, de <em>testing</em> (<code>core-testing</code>,
|
||||
<code>extra-testing</code>, <code>multilib-testing</code>,
|
||||
<code>gnome-unstable</code>, <code>kde-unstable</code>).</p>
|
||||
<h3 id="espejos">Espejos</h3>
|
||||
<p>Los espejos o <em>mirrors</em> es simplemente una copia de los
|
||||
repositorios en cierto servidor. Por ejemplo puede haber un servidor
|
||||
específico de España que sirve los repositorios de arch en España para
|
||||
no sobrecargar todos el mismo servidor y que tengamos menor tiempo de
|
||||
respuesta.</p>
|
||||
<h3 id="aur">AUR</h3>
|
||||
<p>El AUR (Arch User Repository) es un repositorio con <em>scripts</em>
|
||||
creados por usuarios de arch con como instalar un paquete.</p>
|
||||
<p>Si un paquete no está oficialmente en los repositorios, es muy
|
||||
posible que alguien lo haya añadido ahí ya, y si no... ¡Tú puedes ser la
|
||||
primera persona en hacerlo!</p>
|
||||
<p><img src="https://repology.org/graph/map_repo_size_fresh.svg"
|
||||
alt="AUR repology" /></p>
|
||||
<div class="warning">
|
||||
<div class="title">
|
||||
<p>Warning</p>
|
||||
</div>
|
||||
<p>Es importante recordar que los paquetes del AUR están hechos por
|
||||
usuarios y pueden ser maliciosos, lo más importante siempre es leer el
|
||||
<em>script</em> para asegurarnos que no tiene nada sospechoso.</p>
|
||||
</div>
|
||||
<blockquote>
|
||||
<p>— <a
|
||||
href="https://repology.org/repositories/graphs">https://repology.org/repositories/graphs</a></p>
|
||||
</blockquote>
|
||||
<h2 id="gui">GUI</h2>
|
||||
<p>Os habreis dado cuenta de que habrá muchos componentes pero todavía
|
||||
no hemos salido de la TTY, ni una sola interfaz gráfica. Y ahora ha
|
||||
llegado el momento de instalar una.</p>
|
||||
<p>Aquí tenemos dos opciones, la primera y más aburrida, instalar un
|
||||
entorno de escritorio (DE, Desktop Environment). GNOME o KDE, gnomo o
|
||||
caballero. Se llaman entornos porque suelen venir con todo incluido,
|
||||
traen audio, la barra, aplicaciones del sistema, aplicación de ajustes,
|
||||
etc.</p>
|
||||
<p>O la mas interesante, instalar un administrador de ventanas (WM,
|
||||
window manager) que <strong>solo</strong> se ocupe de manejar las
|
||||
ventanas y como interactuamos con ellas. No hay escritorio, no hay fondo
|
||||
de pantalla, no hay barra, no hay un launcher de aplicaciones, nada, es
|
||||
nuestro trabajo en hacer nuestra selección de componentes y configurarlo
|
||||
todo lo que queramos.</p>
|
||||
<p>Hoy en día hay dos protocolos básicos, xorg y wayland.</p>
|
||||
<p>Xorg es el protocolo que lleva décadas existiendo y queda poca gente
|
||||
queriendo tocar código tan anticuado. Pero funciona perfectamente y hay
|
||||
muchos administradores de ventanas escritos a lo largo del tiempo para
|
||||
él como <code>i3</code> (del que entraremos en detalle después) o
|
||||
<code>xmonad</code>.</p>
|
||||
<p>Wayland es un protocolo nuevo que está cogiendo mucha popularidad
|
||||
recientemente y busca rediseñar muchos de los principios de xorg a
|
||||
estándares mas modernos. Pese a lo nuevo que es ya hay multitud de
|
||||
compositores (así se llaman los WM en wayland) para él, como
|
||||
<code>hyprland</code>, <code>niri</code> o <code>sway</code> (que busca
|
||||
ser un reemplazo literal de <code>i3</code> para wayland).</p>
|
||||
<h3 id="display-manager">Display Manager</h3>
|
||||
<p>Un display manager es simplemente el programa que hay antes de la
|
||||
interfaz gráfica completa en la que se nos permite iniciar sesión con
|
||||
nuestro usuario. Muchas también permiten seleccionar la interfaz gráfica
|
||||
a arrancar si tenemos varias.</p>
|
||||
<p>Los más comunes son GDM, SSDM (de GNOME y KDE relativamente,
|
||||
funcionan con mas cosas a parte de sus DEs), pero <a
|
||||
href="https://wiki.archlinux.org/title/Display_manager">hay muchos
|
||||
mas</a>.</p>
|
||||
<h3 id="más">Más</h3>
|
||||
<p>Hay muchos más componentes, especialmente en el ámbito de escritorio
|
||||
que se deben instalar, como un servidor de audio, un motor de fondos de
|
||||
pantalla, una barra de estado, un launcher de aplicaciones, el
|
||||
<em>daemon</em> de notificaciones, etc. Pero eso no es necesario para
|
||||
empezar a experimentar con arch.</p>
|
||||
<h1 id="arch-wiki">Arch Wiki</h1>
|
||||
<p>Para cualquier problema, guía o información está la magnífica wiki de
|
||||
arch: <a
|
||||
href="https://wiki.archlinux.org">https://wiki.archlinux.org</a>. La
|
||||
mayoría de la información de esta charla se ha verificado con ella y hay
|
||||
secciones de la wiki para casi todos los apartados de esta charla y
|
||||
muchas más cosas.</p>
|
||||
<p>Hay desde una guía de <a
|
||||
href="https://wiki.archlinux.org/title/Installation_guide">la
|
||||
instalación manual de arch</a> hasta un apartado con <a
|
||||
href="https://wiki.archlinux.org/title/Network_configuration">todo lo
|
||||
que puede hacer falta saber de la configuración de red</a>. La
|
||||
documentación es tan buena que suele ser útil incluso resolviendo
|
||||
problemas fuera de cualquier cosa parecida a arch.</p>
|
||||
<h1 id="forks-de-arch">Forks de Arch</h1>
|
||||
<p>Hay muchas distribuciones basadas en arch que no son arch puro, por
|
||||
ejemplo:</p>
|
||||
<ul>
|
||||
<li>Artix: Una distribución de arch que no viene con systemd por
|
||||
defecto, deja elegir otra serie de init systems. Tiene sus paquetes de
|
||||
arch modificados ligeramente para funcionar bien sin systemd. Una de las
|
||||
grandes ventajas es que al estar basado en arch, puede usar sus
|
||||
repositorios y el AUR sin problemas.</li>
|
||||
<li>Black Arch: Es arch pero con unos repositorios específicos que
|
||||
contienen paquetes más orientados a la ciberseguridad y pentesting.</li>
|
||||
<li>Arch Linux ARM (alarm): Arch Linux específico para arquitecturas ARM
|
||||
(como una raspberry pi).</li>
|
||||
<li>Nyarch: ... <!-- Mención honorífica --></li>
|
||||
</ul>
|
||||
<h1 id="instalación">Instalación</h1>
|
||||
<p>La instalación es muy simple una vez entiendes el sistema. Lo único
|
||||
nuevo que hay que entender es que es el ISO de instalación.</p>
|
||||
<p>El ISO de instalación es arch ya instalado en un USB portable y
|
||||
protegido contra escritura que contiene las herramientas para instalar
|
||||
arch. Estas mismas herramientas se podrían instalar en cualquier
|
||||
instalación de arch y usar ese mismo ordenador para la instalación de
|
||||
arch.</p>
|
||||
<p>Una vez tienes las herramientas los pasos son muy simples:</p>
|
||||
<ul>
|
||||
<li>Particionas el disco.</li>
|
||||
<li>Montas el disco.</li>
|
||||
<li>Instalas los paquetes básicos en el punto de montaje.</li>
|
||||
<li>Configuras los paquetes justos para que arranque adecuadamente y se
|
||||
pueda usar (principalemnte asegurarse que el bootloader está instalado,
|
||||
crear usuarios, instalar los paquetes de red).</li>
|
||||
</ul>
|
||||
<p>Ni más ni menos.</p>
|
||||
<section id="footnotes" class="footnotes footnotes-end-of-document"
|
||||
role="doc-endnotes">
|
||||
<hr />
|
||||
|
||||
Reference in New Issue
Block a user