<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Linux on KnightLi Blog</title>
        <link>https://knightli.com/es/tags/linux/</link>
        <description>Recent content in Linux on KnightLi Blog</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>es</language>
        <lastBuildDate>Wed, 20 May 2026 23:00:37 +0800</lastBuildDate><atom:link href="https://knightli.com/es/tags/linux/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Impacto de cuatro problemas locales recientes en Linux: Copy Fail, Dirty Frag, Fragnesia y ssh-keysign-pwn</title>
        <link>https://knightli.com/es/2026/05/20/linux-lpe-four-vulnerabilities-impact-summary/</link>
        <pubDate>Wed, 20 May 2026 23:00:37 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/20/linux-lpe-four-vulnerabilities-impact-summary/</guid>
        <description>&lt;p&gt;En las últimas semanas aparecieron varios problemas locales de seguridad de alto perfil en el ecosistema Linux. Por separado, afectan zonas distintas: interfaces criptográficas, rutas de red e IPsec, manejo de page cache y comprobaciones de acceso ptrace. En conjunto, apuntan a la misma lección operativa: si un atacante ya tiene un punto de ejecución local con pocos privilegios, el riesgo para hosts Linux, nodos de contenedores, máquinas de CI y servidores multiusuario aumenta de forma clara.&lt;/p&gt;
&lt;p&gt;Este artículo no repite todos los detalles técnicos de cada vulnerabilidad. Resume su impacto práctico y enlaza cuatro análisis separados dentro del sitio.&lt;/p&gt;
&lt;h2 id=&#34;qué-afecta-cada-uno-de-los-cuatro-eventos&#34;&gt;Qué afecta cada uno de los cuatro eventos
&lt;/h2&gt;&lt;p&gt;Los cuatro riesgos que conviene seguir son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Copy Fail (CVE-2026-31431): un usuario local con pocos privilegios puede afectar la page cache mediante rutas relacionadas con criptografía del kernel y ampliar privilegios.&lt;/li&gt;
&lt;li&gt;Dirty Frag (relacionado con CVE-2026-43284 / CVE-2026-43500): el riesgo se concentra en xfrm/ESP, RxRPC y rutas de datos de red y kernel, con alto impacto en fases posteriores a una intrusión.&lt;/li&gt;
&lt;li&gt;Fragnesia (CVE-2026-46300): cercano a Dirty Frag, gira alrededor de XFRM ESP-in-TCP, fragmentos compartidos y riesgo de escritura en page cache.&lt;/li&gt;
&lt;li&gt;ssh-keysign-pwn (CVE-2026-46333): no es un bug de root shell directo, sino un riesgo local de divulgación de información que puede exponer claves privadas SSH del host, &lt;code&gt;/etc/shadow&lt;/code&gt; y otros archivos sensibles.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Los puntos de entrada son distintos y las mitigaciones también. Arreglar Copy Fail no cubre automáticamente Dirty Frag o Fragnesia. Desactivar algunos módulos de red tampoco elimina por sí solo el riesgo de divulgación de información de ssh-keysign-pwn.&lt;/p&gt;
&lt;h2 id=&#34;copy-fail-alta-prioridad-para-contenedores-y-nodos-ci&#34;&gt;Copy Fail: alta prioridad para contenedores y nodos CI
&lt;/h2&gt;&lt;p&gt;El impacto clave de Copy Fail no es que una aplicación se bloquee. Es que una capacidad de ejecución con pocos privilegios puede convertirse en permisos de root. Es especialmente sensible en estos entornos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nodos CI/CD que permiten subir o ejecutar código.&lt;/li&gt;
&lt;li&gt;Hosts de contenedores que ejecutan cargas no confiables.&lt;/li&gt;
&lt;li&gt;Máquinas de desarrollo y prueba, jump hosts y servidores compartidos.&lt;/li&gt;
&lt;li&gt;Hosts cloud con kernels antiguos y ciclos de parcheo lentos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El peligro de Copy Fail está en su umbral de explotación relativamente bajo y en que se combina fácilmente con escenarios de contenedores. Muchos equipos tratan los contenedores como una frontera fuerte de aislamiento, pero los contenedores ordinarios siguen compartiendo el kernel del host por defecto. Si un atacante obtiene una shell dentro de un contenedor, una LPE del kernel puede convertir un problema del contenedor en un problema del host.&lt;/p&gt;
&lt;p&gt;Análisis detallado: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/copy-fail-cve-2026-31431-linux-kernel-container-escape/&#34; &gt;Copy Fail CVE-2026-31431: riesgo de escape de contenedor en una ruta de copia de archivos del kernel Linux&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;dirty-frag-un-amplificador-posterior-a-la-intrusión&#34;&gt;Dirty Frag: un amplificador posterior a la intrusión
&lt;/h2&gt;&lt;p&gt;Dirty Frag se parece más a una herramienta de ampliación de privilegios después de que el atacante ya entró al sistema. No es una vulnerabilidad remota sin autenticación típica. El requisito habitual es que el atacante ya tenga ejecución local mediante una contraseña débil, WebShell, cuenta de servicio con pocos privilegios, tarea de contenedor u otro punto de apoyo.&lt;/p&gt;
&lt;p&gt;Su impacto práctico aparece en varios lugares:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una cuenta comprometida con pocos privilegios puede convertirse en root.&lt;/li&gt;
&lt;li&gt;Un punto de ejecución con pocos privilegios dentro de un contenedor puede amenazar al host.&lt;/li&gt;
&lt;li&gt;Los sistemas que usan IPsec, ESP, RxRPC o capacidades de red relacionadas del kernel necesitan revisar con cuidado parches y mitigaciones temporales.&lt;/li&gt;
&lt;li&gt;Los equipos de seguridad no deben mirar solo la defensa perimetral, sino también las cadenas de escalada posteriores a la intrusión.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dirty Frag recuerda a los equipos de operaciones que una LPE local quizá no sea la primera entrada, pero puede decidir hasta dónde llega una intrusión. Si existe un punto de apoyo con pocos privilegios, el atacante buscará bugs del kernel para llegar al nivel más alto.&lt;/p&gt;
&lt;p&gt;Análisis detallado: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/09/dirty-frag-cve-2026-43284-linux-lpe-mitigation/&#34; &gt;Dirty Frag CVE-2026-43284: guía de riesgo y mitigación de escalada local en Linux&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;fragnesia-una-superficie-similar-no-se-limpia-de-una-sola-vez&#34;&gt;Fragnesia: una superficie similar no se limpia de una sola vez
&lt;/h2&gt;&lt;p&gt;Fragnesia importa porque muestra que la superficie alrededor de Dirty Frag no es un problema aislado. Incluso si un bug se corrige, rutas vecinas, estructuras de datos similares y combinaciones de módulos relacionados pueden conservar nuevos puntos explotables.&lt;/p&gt;
&lt;p&gt;Su impacto operativo principal es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No tratar solo el nombre de la vulnerabilidad una vez. Hay que seguir revisando por superficie de ataque.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt;, &lt;code&gt;rxrpc&lt;/code&gt;, XFRM y ESP-in-TCP deben evaluarse según dependencias reales del negocio.&lt;/li&gt;
&lt;li&gt;Si el sistema no depende de esas capacidades de red, se puede considerar una desactivación temporal, pero primero debe probarse para no romper VPN, IPsec, túneles o redes internas.&lt;/li&gt;
&lt;li&gt;Los riesgos de contaminación de page cache pueden crear puntos ciegos: el archivo parece no cambiar, pero la ruta de ejecución queda afectada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para empresas, la lección principal es que la gestión de parches no debe mirar solo un CVE aislado. Es más seguro inventariar por subsistemas y superficies de ataque, identificar qué máquinas exponen esas capacidades y qué servicios realmente necesitan esos módulos.&lt;/p&gt;
&lt;p&gt;Análisis detallado: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/15/linux-kernel-fragnesia-local-privilege-escalation/&#34; &gt;Fragnesia (CVE-2026-46300): impacto y mitigación de una escalada local en el kernel Linux&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;ssh-keysign-pwn-no-da-root-directo-pero-sigue-siendo-peligroso&#34;&gt;ssh-keysign-pwn: no da root directo, pero sigue siendo peligroso
&lt;/h2&gt;&lt;p&gt;ssh-keysign-pwn es distinto de los tres anteriores. Se parece más a una divulgación local de información sensible que a una vulnerabilidad de root shell directo. Pero en ataques reales, la divulgación de información sensible puede convertirse rápidamente en un incidente mayor.&lt;/p&gt;
&lt;p&gt;Sus impactos principales incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La filtración de SSH host private keys puede afectar la confianza en la identidad del host.&lt;/li&gt;
&lt;li&gt;El acceso a archivos como &lt;code&gt;/etc/shadow&lt;/code&gt; puede permitir cracking offline y toma de cuentas.&lt;/li&gt;
&lt;li&gt;Servidores multiusuario, jump hosts, máquinas de build y máquinas de desarrollo compartidas tienen mayor riesgo.&lt;/li&gt;
&lt;li&gt;Aunque el atacante no escale privilegios de inmediato, puede obtener material de credenciales útil para movimiento lateral.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este tipo de problema se subestima fácilmente porque no luce tan dramático como una shell root directa. Sin embargo, en entornos empresariales, la exposición de claves y hashes de contraseñas suele implicar una limpieza más larga: rotar claves SSH del host, revisar relaciones de confianza, comprobar contraseñas de cuentas y auditar logs de acceso.&lt;/p&gt;
&lt;p&gt;Análisis detallado: &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/17/ssh-keysign-pwn-cve-2026-46333/&#34; &gt;ssh-keysign-pwn (CVE-2026-46333): divulgación local en Linux, claves SSH del host y riesgo sobre /etc/shadow&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;impacto-común-los-contenedores-no-son-una-frontera-fuerte-por-defecto&#34;&gt;Impacto común: los contenedores no son una frontera fuerte por defecto
&lt;/h2&gt;&lt;p&gt;Juntos, estos cuatro eventos dejan claro un punto: el aislamiento ordinario de contenedores no es aislamiento de máquina virtual.&lt;/p&gt;
&lt;p&gt;Docker, containerd y Kubernetes usan namespaces, cgroups, capabilities, seccomp, AppArmor y SELinux para reducir superficie de ataque, pero normalmente siguen compartiendo el kernel del host. Si la vulnerabilidad está en el kernel compartido, un punto de ejecución con pocos privilegios dentro de un contenedor puede convertirse en entrada de ataque.&lt;/p&gt;
&lt;p&gt;Los entornos de alto riesgo deberían revisar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si se permite ejecutar código no confiable en hosts compartidos.&lt;/li&gt;
&lt;li&gt;Si los contenedores corren como root por defecto.&lt;/li&gt;
&lt;li&gt;Si se conceden capabilities innecesarias.&lt;/li&gt;
&lt;li&gt;Si las políticas seccomp son demasiado amplias.&lt;/li&gt;
&lt;li&gt;Si cargas multi-tenant deberían moverse a gVisor, Kata Containers, Firecracker microVM, máquinas virtuales dedicadas o nodos dedicados.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las plataformas CI/CD merecen atención especial. Los jobs de build ejecutan de forma natural código externo, scripts de instalación de dependencias, scripts de prueba y binarios temporales. Si esos jobs comparten hosts con servicios de larga duración, una sola escalada local puede afectar infraestructura mucho mayor.&lt;/p&gt;
&lt;h2 id=&#34;impacto-común-los-parches-deben-llegar-al-kernel-en-ejecución&#34;&gt;Impacto común: los parches deben llegar al kernel en ejecución
&lt;/h2&gt;&lt;p&gt;Un error común al parchear kernels Linux es asumir que un paquete instalado significa que la máquina está ejecutando el kernel corregido.&lt;/p&gt;
&lt;p&gt;Como mínimo, operaciones debería verificar tres cosas:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uname -a
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Confirmar el kernel actualmente en ejecución.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dpkg -l &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep linux-image
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;O en distribuciones de la familia RHEL:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rpm -qa &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep kernel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Confirmar los paquetes de kernel instalados.&lt;/p&gt;
&lt;p&gt;Finalmente, confirmar que la máquina reinició con el kernel corregido. Para servicios críticos que no pueden reiniciarse de inmediato, evaluar livepatch, hot patching o aislamiento temporal, pero no tratar la mitigación temporal como arreglo final.&lt;/p&gt;
&lt;h2 id=&#34;impacto-común-reducir-superficie-de-ataque-debe-ser-específico&#34;&gt;Impacto común: reducir superficie de ataque debe ser específico
&lt;/h2&gt;&lt;p&gt;Estas vulnerabilidades recuerdan que endurecer Linux no puede quedarse en &amp;ldquo;actualizar el sistema&amp;rdquo; y &amp;ldquo;activar firewall&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Revisiones más concretas incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Si AF_ALG / &lt;code&gt;algif_aead&lt;/code&gt; se usa en cargas del negocio.&lt;/li&gt;
&lt;li&gt;Si XFRM, ESP, ESP-in-TCP e IPsec son necesarios para VPN, túneles o gateways de seguridad.&lt;/li&gt;
&lt;li&gt;Si RxRPC es necesario.&lt;/li&gt;
&lt;li&gt;Si user namespaces no privilegiados deben estar habilitados.&lt;/li&gt;
&lt;li&gt;Si los contenedores pueden crear tipos de socket demasiado amplios.&lt;/li&gt;
&lt;li&gt;Si las políticas de acceso ptrace son demasiado permisivas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el negocio no necesita ciertas capacidades, se puede evaluar desactivar módulos, ajustar sysctl, endurecer seccomp y reducir capabilities. No copies comandos a producción a ciegas. Primero inventaría dependencias y luego despliega gradualmente.&lt;/p&gt;
&lt;h2 id=&#34;orden-de-respuesta-recomendado&#34;&gt;Orden de respuesta recomendado
&lt;/h2&gt;&lt;p&gt;Primero, prioriza máquinas donde la ejecución local de código está expuesta:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hosts de contenedores.&lt;/li&gt;
&lt;li&gt;CI/CD runners.&lt;/li&gt;
&lt;li&gt;Jump hosts.&lt;/li&gt;
&lt;li&gt;Servidores multiusuario.&lt;/li&gt;
&lt;li&gt;Hosts que ejecutan servicios expuestos.&lt;/li&gt;
&lt;li&gt;Sistemas que ejecutan plugins, scripts o extensiones no confiables.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Segundo, confirma avisos de la distribución y el kernel realmente en ejecución. No dependas solo del número de versión upstream. Debian, Ubuntu, RHEL, AlmaLinux, Rocky Linux, SUSE, openEuler y otras distribuciones pueden aplicar backports de seguridad.&lt;/p&gt;
&lt;p&gt;Tercero, endurece políticas de ejecución de contenedores. Prioriza usuarios no root, capabilities mínimas, &lt;code&gt;no-new-privileges&lt;/code&gt;, sistemas de archivos de solo lectura y políticas explícitas de seccomp más AppArmor o SELinux.&lt;/p&gt;
&lt;p&gt;Cuarto, revisa exposición de claves y credenciales. Especialmente en entornos afectados por ssh-keysign-pwn, evalúa si SSH host keys, &lt;code&gt;/etc/shadow&lt;/code&gt;, credenciales de jump hosts y CI secrets necesitan rotación.&lt;/p&gt;
&lt;p&gt;Quinto, mejora monitoreo. Observa root shells anómalas, PoCs locales sospechosas de LPE, cambios en archivos críticos, comportamiento ptrace anómalo, procesos de contenedor accediendo a rutas del host y conexiones de red inusuales desde nodos CI.&lt;/p&gt;
&lt;h2 id=&#34;conclusión&#34;&gt;Conclusión
&lt;/h2&gt;&lt;p&gt;El punto de estos cuatro eventos no es &amp;ldquo;Linux es inseguro&amp;rdquo;. El punto es que la confianza por defecto ya no alcanza.&lt;/p&gt;
&lt;p&gt;Linux sigue siendo transparente, reparable, configurable y endurecible. Pero en entornos donde contenedores, CI, multi-tenancy y ejecución de código impulsada por IA son cada vez más comunes, un punto de ejecución con pocos privilegios ya no puede tratarse como un problema menor. Si el kernel contiene bugs explotables de escalada local o divulgación de información sensible, una intrusión parcial puede convertirse en control del host, exposición de credenciales o movimiento lateral.&lt;/p&gt;
&lt;p&gt;El enfoque más realista es tomar estos cuatro eventos como recordatorio: parchear rápido, confirmar kernels reiniciados, habilitar módulos solo cuando sean necesarios, endurecer contenedores, hacer posible la rotación de claves y reevaluar niveles de aislamiento en cargas multi-tenant.&lt;/p&gt;
&lt;p&gt;Lecturas relacionadas en este sitio:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/01/copy-fail-cve-2026-31431-linux-kernel-container-escape/&#34; &gt;Copy Fail CVE-2026-31431: riesgo de escape de contenedor en una ruta de copia de archivos del kernel Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/09/dirty-frag-cve-2026-43284-linux-lpe-mitigation/&#34; &gt;Dirty Frag CVE-2026-43284: guía de riesgo y mitigación de escalada local en Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/15/linux-kernel-fragnesia-local-privilege-escalation/&#34; &gt;Fragnesia (CVE-2026-46300): impacto y mitigación de una escalada local en el kernel Linux&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://knightli.com/es/2026/05/17/ssh-keysign-pwn-cve-2026-46333/&#34; &gt;ssh-keysign-pwn (CVE-2026-46333): divulgación local en Linux, claves SSH del host y riesgo sobre /etc/shadow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>ssh-keysign-pwn (CVE-2026-46333): filtración local de información en Linux, claves host SSH y riesgo para /etc/shadow</title>
        <link>https://knightli.com/es/2026/05/17/ssh-keysign-pwn-cve-2026-46333/</link>
        <pubDate>Sun, 17 May 2026 09:29:03 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/17/ssh-keysign-pwn-cve-2026-46333/</guid>
        <description>&lt;p&gt;&lt;code&gt;ssh-keysign-pwn&lt;/code&gt; se refiere a un conjunto de rutas de explotación alrededor de un fallo lógico en &lt;code&gt;__ptrace_may_access()&lt;/code&gt; del Linux kernel, asignado como &lt;code&gt;CVE-2026-46333&lt;/code&gt;. No es una vulnerabilidad remota sin autenticación y no entrega directamente una shell de root, pero el riesgo sigue siendo alto: un usuario local con pocos privilegios podría leer archivos sensibles de root que no debería poder acceder, como claves privadas de host SSH o &lt;code&gt;/etc/shadow&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Para equipos de operaciones, la prioridad no es reproducir un PoC. La prioridad es identificar máquinas afectadas, actualizar el kernel, reiniciar para entrar en el kernel corregido y rotar claves de host SSH o restablecer contraseñas cuando sea necesario.&lt;/p&gt;
&lt;h2 id=&#34;conclusión-rápida&#34;&gt;Conclusión rápida
&lt;/h2&gt;&lt;p&gt;Esta vulnerabilidad merece una prioridad alta por cuatro motivos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La puede activar un usuario local de bajo privilegio, sin root.&lt;/li&gt;
&lt;li&gt;Ya existe PoC público, lo que reduce mucho la barrera de explotación.&lt;/li&gt;
&lt;li&gt;Los objetivos potenciales no son archivos comunes, sino claves privadas de host SSH y &lt;code&gt;/etc/shadow&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;La corrección requiere parche de kernel y reinicio; instalar paquetes sin reiniciar no basta.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si tus servidores tienen múltiples usuarios, shell local, hosting compartido, CI runners, hosts de contenedores, aulas, bastiones o cualquier usuario local que no sea completamente confiable, conviene tratarlo primero.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-la-vulnerabilidad&#34;&gt;Qué es la vulnerabilidad
&lt;/h2&gt;&lt;p&gt;Qualys publicó detalles en oss-security el 15 de mayo de 2026. Antes había informado a &lt;code&gt;security@kernel.org&lt;/code&gt; de un problema lógico en &lt;code&gt;__ptrace_may_access()&lt;/code&gt; del Linux kernel, y la corrección upstream ya había sido integrada por Linus. Después apareció código de explotación público, por lo que Qualys compartió la información en oss-security.&lt;/p&gt;
&lt;p&gt;El equipo CVE del Linux kernel asignó luego &lt;code&gt;CVE-2026-46333&lt;/code&gt;. La página de NVD muestra kernel.org como fuente, y la descripción corresponde al commit del kernel &lt;code&gt;ptrace: slightly saner &#39;get_dumpable()&#39; logic&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;En términos simples, el fallo está en la ruta de salida de procesos. Cuando algunos procesos privilegiados están terminando, la lógica del kernel relacionada con las comprobaciones de acceso de &lt;code&gt;ptrace&lt;/code&gt; puede omitir una comprobación dumpable que debería aplicarse, porque la tarea objetivo ya no tiene &lt;code&gt;mm&lt;/code&gt;. Un atacante puede competir en una ventana muy estrecha y obtener descriptores de archivo que el proceso privilegiado en salida todavía mantiene abiertos.&lt;/p&gt;
&lt;p&gt;Por eso se lo llama &lt;code&gt;ssh-keysign-pwn&lt;/code&gt;: una de las rutas públicas de explotación gira alrededor de &lt;code&gt;ssh-keysign&lt;/code&gt; para leer SSH host private keys.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-puede-exponer-claves-host-ssh-y-etcshadow&#34;&gt;Por qué puede exponer claves host SSH y /etc/shadow
&lt;/h2&gt;&lt;p&gt;En esencia, es una filtración local de información. Abusa de una ventana durante la salida de un programa privilegiado en la que el descriptor de memoria ya se separó, pero los descriptores de archivo aún no se cerraron.&lt;/p&gt;
&lt;p&gt;El aviso de AlmaLinux explica el riesgo con claridad: si un programa privilegiado abrió archivos sensibles antes de bajar privilegios, y el atacante logra capturar el descriptor de archivo correspondiente durante la ventana de salida, esos archivos sensibles podrían leerse.&lt;/p&gt;
&lt;p&gt;Dos objetivos frecuentes en la discusión pública son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ssh-keysign&lt;/code&gt;: puede involucrar claves privadas de host SSH como &lt;code&gt;/etc/ssh/ssh_host_*_key&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chage&lt;/code&gt;: puede involucrar &lt;code&gt;/etc/shadow&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si se filtran claves privadas de host SSH, un atacante podría suplantar el host y debilitar la confianza en la identidad SSH del servidor. Si se filtra &lt;code&gt;/etc/shadow&lt;/code&gt;, un atacante puede crackear hashes de contraseña offline y ampliar el compromiso después.&lt;/p&gt;
&lt;p&gt;Por eso debe tratarse como un problema de alta prioridad aunque no sea una vulnerabilidad de &amp;ldquo;root shell directo&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;cómo-evaluar-la-exposición&#34;&gt;Cómo evaluar la exposición
&lt;/h2&gt;&lt;p&gt;Desde la perspectiva upstream, es una vulnerabilidad del Linux kernel. Los registros de NVD muestran que el problema entró en el dataset de NVD el 15 de mayo de 2026, y en ese momento todavía no tenía puntuación CVSS.&lt;/p&gt;
&lt;p&gt;El estado por distribución debe verificarse en los avisos de cada proveedor:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AlmaLinux 8, 9 y 10 publicaron orientación y el 16 de mayo de 2026 actualizaron el aviso para indicar que los patched kernels ya estaban en repositorios de producción.&lt;/li&gt;
&lt;li&gt;Debian Security Tracker lista estados vulnerable/fixed y versiones corregidas para bullseye, bookworm, trixie, sid y otras ramas.&lt;/li&gt;
&lt;li&gt;Para otras distribuciones, revisa las páginas oficiales de seguridad o repositorios de Ubuntu, Red Hat, SUSE, Arch, Alpine, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No evalúes la seguridad solo por la versión upstream del kernel. Las distribuciones hacen backport de correcciones, por lo que un mismo número de versión aparente puede representar estados de parche diferentes.&lt;/p&gt;
&lt;h2 id=&#34;qué-máquinas-priorizar&#34;&gt;Qué máquinas priorizar
&lt;/h2&gt;&lt;p&gt;Orden recomendado de prioridad:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Servidores multiusuario y hosts compartidos.&lt;/li&gt;
&lt;li&gt;Bastiones, máquinas de enseñanza, equipos de desarrollo y otros sistemas con cuentas shell normales.&lt;/li&gt;
&lt;li&gt;CI runners, máquinas de build y nodos de plataformas de hosting.&lt;/li&gt;
&lt;li&gt;Hosts de contenedores y virtualización, sobre todo donde conviven workloads no completamente confiables.&lt;/li&gt;
&lt;li&gt;Máquinas con servicios públicos. La vulnerabilidad requiere acceso local, pero el riesgo se combina si un bug web, RCE, contraseña débil u otro camino da al atacante un punto de apoyo de bajo privilegio.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Los escritorios de un solo usuario tienen un riesgo relativamente menor, pero aun así deberían actualizarse con el sistema. La ejecución local de código con bajo privilegio no es rara en escritorios, a través de navegadores, herramientas de desarrollo, scripts y software de terceros.&lt;/p&gt;
&lt;h2 id=&#34;recomendaciones-de-corrección&#34;&gt;Recomendaciones de corrección
&lt;/h2&gt;&lt;p&gt;La solución preferida es instalar el kernel corregido que entrega la distribución y reiniciar.&lt;/p&gt;
&lt;p&gt;Los comandos cambian por distribución, pero el principio es el mismo:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Actualizar metadatos de paquetes.&lt;/li&gt;
&lt;li&gt;Instalar el paquete kernel que contiene la corrección de &lt;code&gt;CVE-2026-46333&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Reiniciar en el kernel nuevo.&lt;/li&gt;
&lt;li&gt;Usar &lt;code&gt;uname -r&lt;/code&gt; y el aviso de seguridad de la distribución para verificar que el kernel en ejecución está corregido.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El aviso de AlmaLinux indica que los kernels corregidos están disponibles en repositorios de producción y que los usuarios pueden ejecutar el &lt;code&gt;dnf upgrade&lt;/code&gt; habitual y reiniciar. Debian tracker también lista fixed versions para varias ramas.&lt;/p&gt;
&lt;p&gt;Importante: si solo instalas un paquete kernel nuevo pero no reinicias, el kernel antiguo vulnerable sigue ejecutándose.&lt;/p&gt;
&lt;h2 id=&#34;mitigación-temporal-endurecer-ptrace_scope&#34;&gt;Mitigación temporal: endurecer ptrace_scope
&lt;/h2&gt;&lt;p&gt;Si no puedes reiniciar de inmediato, endurece primero &lt;code&gt;ptrace_scope&lt;/code&gt; de Yama.&lt;/p&gt;
&lt;p&gt;Qualys confirmó en una respuesta posterior en oss-security que configurar &lt;code&gt;/proc/sys/kernel/yama/ptrace_scope&lt;/code&gt; en &lt;code&gt;2&lt;/code&gt; (admin-only attach) o &lt;code&gt;3&lt;/code&gt; (no attach) bloquea las rutas públicas de explotación que conocen. También aclararon que, en teoría, podrían existir otros métodos de explotación, por lo que esto es una mitigación, no una corrección.&lt;/p&gt;
&lt;p&gt;Configuración temporal:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo sysctl -w kernel.yama.ptrace_scope&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Configuración persistente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;kernel.yama.ptrace_scope = 3&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /etc/sysctl.d/99-ssh-keysign-pwn.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;ptrace_scope=3&lt;/code&gt; desactiva ptrace attach y puede afectar flujos de depuración como &lt;code&gt;gdb&lt;/code&gt; y &lt;code&gt;strace -p&lt;/code&gt;. Si necesitas depuración en producción, evalúa &lt;code&gt;2&lt;/code&gt;. En cualquier caso, agenda la actualización de kernel y el reinicio cuanto antes.&lt;/p&gt;
&lt;h2 id=&#34;hay-que-rotar-claves-host-ssh&#34;&gt;¿Hay que rotar claves host SSH?
&lt;/h2&gt;&lt;p&gt;Conviene adoptar una postura conservadora si la máquina tenía alguna de estas condiciones durante la ventana de exposición:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usuarios locales no confiables.&lt;/li&gt;
&lt;li&gt;Hosting compartido o entornos multi-tenant de contenedores/CI.&lt;/li&gt;
&lt;li&gt;Vulnerabilidades web, contraseñas débiles, scripts de cadena de suministro u otros caminos que puedan dar un punto de apoyo local.&lt;/li&gt;
&lt;li&gt;Procesos locales sospechosos, comportamiento de depuración anómalo o archivos PoC públicos en logs.&lt;/li&gt;
&lt;li&gt;Exposición prolongada antes de aplicar la corrección.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Una respuesta conservadora incluye:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rotar SSH host keys después de parchear y reiniciar.&lt;/li&gt;
&lt;li&gt;Actualizar sistemas de gestión de huellas de hosts conocidos.&lt;/li&gt;
&lt;li&gt;Notificar a automatizaciones que dependan de esa huella de host.&lt;/li&gt;
&lt;li&gt;Revisar alertas de conexión SSH para no confundir cambios legítimos de huella con ataques de intermediario, ni ignorar riesgos reales.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si sospechas que &lt;code&gt;/etc/shadow&lt;/code&gt; se filtró, evalúa también restablecimiento de contraseñas, prohibición de contraseñas débiles y revisión de hashes antiguos que puedan crackearse offline.&lt;/p&gt;
&lt;h2 id=&#34;qué-monitorear&#34;&gt;Qué monitorear
&lt;/h2&gt;&lt;p&gt;La ventana de explotación es breve, así que los logs tradicionales podrían no capturarlo todo. Aun así, revisa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Archivos como &lt;code&gt;ssh-keysign-pwn&lt;/code&gt;, &lt;code&gt;chage_pwn&lt;/code&gt; o artefactos PoC similares en directorios de usuarios normales.&lt;/li&gt;
&lt;li&gt;Actividad de compilación sospechosa, como programas C desconocidos compilados en poco tiempo.&lt;/li&gt;
&lt;li&gt;Señales de acceso anómalo a &lt;code&gt;/etc/ssh/ssh_host_*_key&lt;/code&gt; o &lt;code&gt;/etc/shadow&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Actividad inusual de &lt;code&gt;pidfd_getfd&lt;/code&gt;, &lt;code&gt;ptrace&lt;/code&gt; o depuradores.&lt;/li&gt;
&lt;li&gt;Reportes externos de cambios inesperados en la huella del host SSH.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estas señales no prueban que hubo explotación, y su ausencia tampoco prueba que no la hubo. Las prioridades reales siguen siendo parchear, reiniciar, rotar credenciales y aislar el riesgo.&lt;/p&gt;
&lt;h2 id=&#34;malentendidos-comunes&#34;&gt;Malentendidos comunes
&lt;/h2&gt;&lt;p&gt;Primero: no es una vulnerabilidad remota de OpenSSH. El nombre incluye &lt;code&gt;ssh-keysign&lt;/code&gt;, pero la causa raíz está en la lógica de comprobación de acceso &lt;code&gt;ptrace&lt;/code&gt; del Linux kernel, no en el flujo de autenticación remota de &lt;code&gt;sshd&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Segundo: no tener usuarios locales no elimina todo el riesgo. La vulnerabilidad sí requiere ejecución local, pero muchas cadenas reales obtienen primero un punto de apoyo local de bajo privilegio mediante servicios web, CI, scripts, contraseñas débiles o escapes de contenedor.&lt;/p&gt;
&lt;p&gt;Tercero: configurar &lt;code&gt;ptrace_scope&lt;/code&gt; no basta. Es una mitigación temporal, no una corrección raíz. La actualización del kernel y el reinicio siguen siendo necesarios.&lt;/p&gt;
&lt;p&gt;Cuarto: no haber obtenido root no significa que no haya incidente. La filtración de claves privadas de host SSH o &lt;code&gt;/etc/shadow&lt;/code&gt; puede bastar para movimiento lateral, suplantación de host y cracking offline.&lt;/p&gt;
&lt;h2 id=&#34;checklist-de-respuesta&#34;&gt;Checklist de respuesta
&lt;/h2&gt;&lt;p&gt;Orden recomendado:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Inventariar hosts Linux afectados, especialmente entornos multiusuario y compartidos.&lt;/li&gt;
&lt;li&gt;Revisar avisos oficiales de seguridad de la distribución e identificar la fixed kernel version.&lt;/li&gt;
&lt;li&gt;Instalar el kernel corregido y reiniciar.&lt;/li&gt;
&lt;li&gt;En máquinas que no puedan reiniciarse de inmediato, configurar &lt;code&gt;kernel.yama.ptrace_scope=2&lt;/code&gt; o &lt;code&gt;3&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Verificar la versión del kernel en ejecución después de la corrección.&lt;/li&gt;
&lt;li&gt;Rotar SSH host keys en máquinas de alto riesgo.&lt;/li&gt;
&lt;li&gt;Si se sospecha exposición de &lt;code&gt;/etc/shadow&lt;/code&gt;, evaluar restablecimiento de contraseñas y auditoría de cuentas.&lt;/li&gt;
&lt;li&gt;Buscar PoCs públicos, compilaciones anómalas y comportamiento local de depuración sospechoso.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ssh-keysign-pwn&lt;/code&gt; (&lt;code&gt;CVE-2026-46333&lt;/code&gt;) es una vulnerabilidad local de filtración de información causada por lógica relacionada con &lt;code&gt;__ptrace_may_access()&lt;/code&gt; en el Linux kernel. No permite entrar remotamente de forma directa y no concede una shell de root directa, pero puede permitir que un usuario local de bajo privilegio lea archivos sensibles de alto valor. Eso la vuelve especialmente importante en entornos multiusuario, hosting compartido, CI y hosts de contenedores.&lt;/p&gt;
&lt;p&gt;La corrección fiable es actualizar al kernel corregido de la distribución y reiniciar. &lt;code&gt;ptrace_scope=2/3&lt;/code&gt; puede servir como mitigación temporal, pero no reemplaza el parche. En hosts críticos expuestos durante la ventana de riesgo, también conviene evaluar rotación de claves host SSH y riesgo de contraseñas.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.openwall.com/lists/oss-security/2026/05/15/2&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;oss-security: divulgación de Qualys sobre el problema lógico en __ptrace_may_access()&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.openwall.com/lists/oss-security/2026/05/15/9&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;oss-security: Qualys confirma el identificador CVE-2026-46333&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.openwall.com/lists/oss-security/2026/05/15/8&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;oss-security: Qualys confirma la mitigación temporal con ptrace_scope&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2026-46333&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NVD: CVE-2026-46333&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://security-tracker.debian.org/tracker/CVE-2026-46333&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Debian Security Tracker: CVE-2026-46333&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://almalinux.org/he/blog/2026-05-15-ssh-keysign-pwn-cve-2026-46333/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;AlmaLinux: ssh-keysign-pwn (CVE-2026-46333) Patches Released&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/torvalds/linux/commit/31e62c2ebbfdc3fe3dbdf5e02c92a9dc67087a3a&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Linux upstream fix: ptrace get_dumpable() logic&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Dirty Frag, Copy Fail y Fragnesia: comparación de tres fallos recientes de escalada local en Linux</title>
        <link>https://knightli.com/es/2026/05/15/linux-lpe-dirty-frag-copy-fail-fragnesia-analysis/</link>
        <pubDate>Fri, 15 May 2026 13:24:04 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/15/linux-lpe-dirty-frag-copy-fail-fragnesia-analysis/</guid>
        <description>&lt;p&gt;En las últimas semanas han aparecido varias vulnerabilidades de escalada local de privilegios en el kernel de Linux: Dirty Frag, Copy Fail y Fragnesia. Parecen parte de una misma familia porque el resultado final es parecido: un usuario local con pocos privilegios podría convertirse en root.&lt;/p&gt;
&lt;p&gt;Pero desde el punto de vista operativo no conviene tratarlas como una sola vulnerabilidad. Sus módulos de entrada, rutas de activación, mitigaciones y ritmos de parcheo son distintos. Una lectura más precisa es que exponen un riesgo común en la frontera compleja entre la caché de páginas de Linux, &lt;code&gt;splice&lt;/code&gt;, socket buffers y rutas criptográficas.&lt;/p&gt;
&lt;p&gt;Este artículo solo analiza riesgos y respuesta. No incluye pasos reproducibles de explotación.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-cada-vulnerabilidad&#34;&gt;Qué Es Cada Vulnerabilidad
&lt;/h2&gt;&lt;h3 id=&#34;dirty-frag-cve-2026-43284&#34;&gt;Dirty Frag: CVE-2026-43284
&lt;/h3&gt;&lt;p&gt;Dirty Frag apunta principalmente a un problema de escritura en la caché de páginas dentro de la ruta de red del kernel de Linux. En los análisis públicos suele aparecer junto con dos problemas: el lado &lt;code&gt;xfrm-ESP&lt;/code&gt;, CVE-2026-43284, y el lado &lt;code&gt;rxrpc&lt;/code&gt;, CVE-2026-43500.&lt;/p&gt;
&lt;p&gt;CVE-2026-43284 está relacionado con el descifrado in-place cuando ESP maneja fragmentos &lt;code&gt;skb&lt;/code&gt; compartidos. La clave no es que el atacante modifique directamente un archivo en disco, sino que el kernel escribe en páginas compartidas que no debería modificar y termina afectando el contenido del archivo en la caché de páginas.&lt;/p&gt;
&lt;p&gt;Desde operaciones, lo importante es recordar que Dirty Frag toca &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt; y &lt;code&gt;rxrpc&lt;/code&gt;, un conjunto de módulos del kernel y rutas del subsistema de red. Está ligado a IPsec, ESP y RxRPC, por lo que la mitigación temporal también gira alrededor de esos módulos.&lt;/p&gt;
&lt;h3 id=&#34;copy-fail-cve-2026-31431&#34;&gt;Copy Fail: CVE-2026-31431
&lt;/h3&gt;&lt;p&gt;Copy Fail es una vulnerabilidad de escalada local de privilegios en el kernel de Linux divulgada por Theori / Xint Code. Su entrada no está en la ruta de red de IPsec, sino en la API criptográfica de espacio de usuario del kernel alrededor de &lt;code&gt;algif_aead&lt;/code&gt; / &lt;code&gt;AF_ALG&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Las explicaciones públicas la atribuyen a una optimización in-place introducida en 2017. En algunos casos, el kernel no copiaba datos como se esperaba y colocaba páginas de la caché en una ruta de destino escribible. Un atacante puede combinar &lt;code&gt;AF_ALG&lt;/code&gt; con &lt;code&gt;splice()&lt;/code&gt; para realizar una pequeña escritura controlada sobre páginas respaldadas por la caché.&lt;/p&gt;
&lt;p&gt;Su riesgo está en la alta explotabilidad y en el impacto sobre varias distribuciones principales. A diferencia de Dirty Frag, la mitigación temporal de Copy Fail se centra en restringir o desactivar &lt;code&gt;algif_aead&lt;/code&gt;, y en limitar la creación de sockets &lt;code&gt;AF_ALG&lt;/code&gt; en entornos de contenedores y CI.&lt;/p&gt;
&lt;h3 id=&#34;fragnesia-cve-2026-46300&#34;&gt;Fragnesia: CVE-2026-46300
&lt;/h3&gt;&lt;p&gt;Fragnesia es otra vulnerabilidad de escalada local de privilegios en el kernel de Linux divulgada por V12 Security, dentro de una superficie de ataque parecida a Dirty Frag. No es el mismo bug que Dirty Frag, pero sigue girando alrededor de módulos relacionados con IPsec ESP / &lt;code&gt;rxrpc&lt;/code&gt; y efectos de escritura en la caché de páginas.&lt;/p&gt;
&lt;p&gt;AlmaLinux la describe como el tercer problema de local-root en la misma zona amplia del código. El punto clave es que &lt;code&gt;skb_try_coalesce()&lt;/code&gt; no conservaba correctamente el marcador de fragment compartido al combinar fragmentos de socket buffer, lo que podía permitir que la ruta de recepción XFRM ESP-in-TCP descifrara in-place sobre páginas externas de la caché.&lt;/p&gt;
&lt;p&gt;En resumen, Fragnesia está más cerca de Dirty Frag. Ambas giran alrededor de &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt;, &lt;code&gt;rxrpc&lt;/code&gt;, fragmentos &lt;code&gt;skb&lt;/code&gt; y rutas de descifrado ESP. Sus mitigaciones temporales también se solapan bastante.&lt;/p&gt;
&lt;h2 id=&#34;similitudes-por-qué-son-peligrosas&#34;&gt;Similitudes: Por Qué Son Peligrosas
&lt;/h2&gt;&lt;p&gt;El punto común no es que el código exacto esté en el mismo lugar, sino que el resultado del ataque y el modelo de riesgo son muy parecidos.&lt;/p&gt;
&lt;p&gt;Primero, las tres son escaladas locales de privilegios. Normalmente el atacante necesita primero ejecutar código local como usuario normal y luego intentar convertirse en root. En un escritorio de un solo usuario no es una intrusión remota de un clic; en servidores multiusuario, CI runners, hosts de contenedores, máquinas de desarrollo compartidas y VPS con SSH expuesto, las entradas de bajo privilegio no son raras.&lt;/p&gt;
&lt;p&gt;Segundo, las tres se relacionan con escrituras en la caché de páginas. El atacante no siempre modifica de forma permanente el archivo en disco; puede afectar la copia en memoria. Esto reduce la fiabilidad de las revisiones tradicionales de integridad: el hash del disco puede parecer normal mientras la ruta de ejecución lee contenido contaminado desde la caché.&lt;/p&gt;
&lt;p&gt;Tercero, se parecen más a bugs lógicos deterministas que a condiciones de carrera sensibles al tiempo. Los materiales públicos insisten en que no requieren ganar una race condition. Los defensores no deberían subestimar la fiabilidad de explotación por experiencia con fallos más antiguos.&lt;/p&gt;
&lt;p&gt;Cuarto, amplifican el riesgo en entornos de contenedores y automatización. Código de bajo privilegio dentro de contenedores, jobs de CI, scripts de compilación o plugins de terceros puede convertir un &amp;ldquo;problema local&amp;rdquo; en un problema de plataforma si alcanza las interfaces relevantes del kernel del host.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-una-mitigación-no-cubre-todo&#34;&gt;Diferencias: Una Mitigación No Cubre Todo
&lt;/h2&gt;&lt;p&gt;La mayor diferencia está en el módulo de entrada.&lt;/p&gt;
&lt;p&gt;La entrada crítica de Copy Fail es &lt;code&gt;algif_aead&lt;/code&gt; / &lt;code&gt;AF_ALG&lt;/code&gt;, parte de la API criptográfica de espacio de usuario del kernel. Su defensa temporal se centra en desactivar o restringir &lt;code&gt;algif_aead&lt;/code&gt;, y usar seccomp para impedir que los contenedores creen sockets &lt;code&gt;AF_ALG&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La entrada crítica de Dirty Frag está en &lt;code&gt;xfrm-ESP&lt;/code&gt; y &lt;code&gt;rxrpc&lt;/code&gt;. Está más cerca de las rutas de protocolo y manejo de socket buffers. La defensa temporal suele considerar desactivar &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt; y &lt;code&gt;rxrpc&lt;/code&gt;, pero eso puede afectar IPsec, VPN, túneles o capacidades de red relacionadas.&lt;/p&gt;
&lt;p&gt;Fragnesia también está en una zona cercana a Dirty Frag, pero el problema concreto es que &lt;code&gt;skb_try_coalesce()&lt;/code&gt; no conservaba el marcador de fragment compartido. Es más bien otra rama de la superficie de riesgo de Dirty Frag, no un problema de la API criptográfica de Copy Fail.&lt;/p&gt;
&lt;p&gt;Por eso, haber tratado Copy Fail no significa que Dirty Frag y Fragnesia estén cubiertas. Del mismo modo, desactivar &lt;code&gt;esp4&lt;/code&gt; / &lt;code&gt;esp6&lt;/code&gt; no elimina automáticamente Copy Fail. Hay que confirmar por separado el estado de parches y la estrategia de mitigación.&lt;/p&gt;
&lt;h2 id=&#34;cómo-evaluar-la-exposición&#34;&gt;Cómo Evaluar la Exposición
&lt;/h2&gt;&lt;p&gt;Para estas vulnerabilidades no basta con mirar el nombre de la distribución ni la versión mayor del kernel. Las distribuciones hacen backport de correcciones, los proveedores cloud mantienen ramas propias del kernel y las distribuciones empresariales pueden llevar parches adicionales.&lt;/p&gt;
&lt;p&gt;Un orden más seguro es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Revisar el aviso de seguridad de la distribución y el changelog del paquete del kernel.&lt;/li&gt;
&lt;li&gt;Confirmar si el paquete de kernel actual corrige el CVE correspondiente.&lt;/li&gt;
&lt;li&gt;En servidores cloud, hosts de contenedores y nodos de CI, revisar también avisos del proveedor o de la plataforma.&lt;/li&gt;
&lt;li&gt;Para mitigaciones temporales, confirmar si el negocio depende del módulo afectado.&lt;/li&gt;
&lt;li&gt;Después de actualizar el kernel, programar reinicio y comprobar que el kernel en ejecución cambió.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La trampa más común es &amp;ldquo;el paquete está actualizado, pero la máquina no se reinició&amp;rdquo;. Las vulnerabilidades del kernel no son como actualizaciones de servicios de espacio de usuario. Hasta arrancar con el nuevo kernel, el kernel viejo puede seguir ejecutándose.&lt;/p&gt;
&lt;h2 id=&#34;prioridad-operativa&#34;&gt;Prioridad Operativa
&lt;/h2&gt;&lt;p&gt;Los sistemas más urgentes no son todas las máquinas Linux por igual. Hay que empezar donde es más probable que exista ejecución de código con pocos privilegios.&lt;/p&gt;
&lt;p&gt;Entornos de prioridad alta:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Servidores de login multiusuario&lt;/li&gt;
&lt;li&gt;CI / CD runners&lt;/li&gt;
&lt;li&gt;Máquinas de compilación y empaquetado de artefactos&lt;/li&gt;
&lt;li&gt;Hosts de contenedores y nodos Kubernetes&lt;/li&gt;
&lt;li&gt;Máquinas de desarrollo compartidas&lt;/li&gt;
&lt;li&gt;Servidores cloud y VPS con SSH expuesto&lt;/li&gt;
&lt;li&gt;Plataformas que ejecutan scripts, plugins o colas de tareas de terceros&lt;/li&gt;
&lt;li&gt;Máquinas con vulnerabilidades web, contraseñas débiles o señales históricas de compromiso&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las máquinas cerradas, de un solo usuario y sin entrada externa de ejecución de código siguen teniendo riesgo si son vulnerables, pero normalmente pueden ir después.&lt;/p&gt;
&lt;h2 id=&#34;cómo-entender-la-mitigación-temporal&#34;&gt;Cómo Entender la Mitigación Temporal
&lt;/h2&gt;&lt;p&gt;La mitigación temporal no reemplaza al parche. Su valor es reducir la exposición cuando no se puede reiniciar de inmediato o mientras se esperan paquetes de la distribución.&lt;/p&gt;
&lt;p&gt;Para Copy Fail, el foco está en &lt;code&gt;algif_aead&lt;/code&gt; y &lt;code&gt;AF_ALG&lt;/code&gt;. Si el negocio no usa la interfaz criptográfica AF_ALG del kernel, se puede evaluar desactivar el módulo relacionado. En contenedores, conviene revisar primero las políticas seccomp para que cargas no confiables no puedan crear libremente el socket correspondiente.&lt;/p&gt;
&lt;p&gt;Para Dirty Frag y Fragnesia, el foco está en &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt; y &lt;code&gt;rxrpc&lt;/code&gt;. Si el sistema no depende de IPsec ESP, VPN relacionadas, túneles o RxRPC, se puede evaluar una desactivación temporal. No debe hacerse a ciegas en producción porque esos módulos pueden sostener cargas de red reales.&lt;/p&gt;
&lt;p&gt;El camino final sigue siendo actualizar el kernel. La mitigación temporal reduce superficie de ataque, pero no demuestra que el sistema sea completamente seguro.&lt;/p&gt;
&lt;h2 id=&#34;qué-nos-dicen-estos-tres-fallos&#34;&gt;Qué Nos Dicen Estos Tres Fallos
&lt;/h2&gt;&lt;p&gt;La advertencia importante no es solo el número de CVE. Estos fallos se concentran en rutas del kernel muy complejas: zero-copy, &lt;code&gt;splice&lt;/code&gt;, socket buffers, caché de páginas, interfaces criptográficas y optimizaciones de pila de protocolos.&lt;/p&gt;
&lt;p&gt;Estas rutas dan grandes beneficios de rendimiento, pero también vuelven más difícil mantener los límites de propiedad. Si un fragment está compartido, si una página puede escribirse in-place o si una optimización realmente solo reduce copias se convierte en parte del límite de seguridad.&lt;/p&gt;
&lt;p&gt;Para equipos de seguridad y operaciones, las conclusiones son prácticas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tratar la escalada local de privilegios como un amplificador de entradas ya existentes de bajo privilegio.&lt;/li&gt;
&lt;li&gt;Los contenedores no son una frontera natural de aislamiento frente a vulnerabilidades del kernel.&lt;/li&gt;
&lt;li&gt;Las revisiones de integridad no pueden mirar solo el contenido del disco.&lt;/li&gt;
&lt;li&gt;CI, máquinas de compilación y plataformas de plugins deben ser activos de alta prioridad.&lt;/li&gt;
&lt;li&gt;En parches de kernel hay que verificar tanto &amp;ldquo;instalado&amp;rdquo; como &amp;ldquo;en ejecución&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Dirty Frag, Copy Fail y Fragnesia son eventos recientes de alta prioridad en la escalada local de privilegios de Linux, pero no son tres nombres del mismo fallo.&lt;/p&gt;
&lt;p&gt;Copy Fail pasa por la ruta criptográfica &lt;code&gt;algif_aead&lt;/code&gt; / &lt;code&gt;AF_ALG&lt;/code&gt;. Dirty Frag pasa por &lt;code&gt;xfrm-ESP&lt;/code&gt; y &lt;code&gt;rxrpc&lt;/code&gt;. Fragnesia, en una superficie cercana a Dirty Frag, vuelve a disparar riesgo de escritura en la caché de páginas por el manejo de marcadores de fragmentos &lt;code&gt;skb&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La respuesta más sólida es actualizar el kernel según los avisos de la distribución y reiniciar. En sistemas que no puedan actualizarse de inmediato, evaluar la desactivación temporal de módulos o reglas seccomp más estrictas según la entrada real de cada vulnerabilidad. Priorizar entornos multi-tenant, CI, hosts de contenedores y desarrollo compartido.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Notas de Theori sobre Copy Fail: &lt;a class=&#34;link&#34; href=&#34;https://github.com/theori-io/copy-fail-CVE-2026-31431&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/theori-io/copy-fail-CVE-2026-31431&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Aviso de CERT-EU sobre Copy Fail: &lt;a class=&#34;link&#34; href=&#34;https://cert.europa.eu/publications/security-advisories/2026-005/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://cert.europa.eu/publications/security-advisories/2026-005/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Notas de AlmaLinux sobre Dirty Frag: &lt;a class=&#34;link&#34; href=&#34;https://almalinux.org/blog/2026-05-07-dirty-frag/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://almalinux.org/blog/2026-05-07-dirty-frag/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Notas de AlmaLinux sobre Fragnesia: &lt;a class=&#34;link&#34; href=&#34;https://almalinux.org/blog/2026-05-13-fragnesia-cve-2026-46300/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://almalinux.org/blog/2026-05-13-fragnesia-cve-2026-46300/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Notas del PoC de V12 Security sobre Fragnesia: &lt;a class=&#34;link&#34; href=&#34;https://github.com/v12-security/pocs/tree/main/fragnesia&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/v12-security/pocs/tree/main/fragnesia&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Fragnesia (CVE-2026-46300): impacto y mitigación de una escalada local de privilegios en el kernel de Linux</title>
        <link>https://knightli.com/es/2026/05/15/linux-kernel-fragnesia-local-privilege-escalation/</link>
        <pubDate>Fri, 15 May 2026 13:18:01 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/15/linux-kernel-fragnesia-local-privilege-escalation/</guid>
        <description>&lt;p&gt;El kernel de Linux acaba de sumar otra vulnerabilidad de escalada local de privilegios en una superficie de ataque cercana a Dirty Frag: Fragnesia (CVE-2026-46300).&lt;/p&gt;
&lt;p&gt;Según la divulgación de V12 Security, Fragnesia es una vulnerabilidad local de Linux. El atacante no necesita privilegios elevados previos en el host. Si puede ejecutar código local, podría aprovechar un fallo lógico en el subsistema XFRM ESP-in-TCP del kernel para modificar, byte a byte, contenido de archivos de solo lectura a través de la caché de páginas y terminar obteniendo un root shell.&lt;/p&gt;
&lt;p&gt;Fuente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Notas del PoC de V12 Security: &lt;a class=&#34;link&#34; href=&#34;https://github.com/v12-security/pocs/blob/main/fragnesia/README.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/v12-security/pocs/blob/main/fragnesia/README.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este artículo no cubre pasos reproducibles de explotación. Se centra en los riesgos y la respuesta operativa.&lt;/p&gt;
&lt;h2 id=&#34;relación-con-dirty-frag&#34;&gt;Relación con Dirty Frag
&lt;/h2&gt;&lt;p&gt;V12 Security clasifica Fragnesia dentro de la familia de vulnerabilidades Dirty Frag. No es el mismo bug que Dirty Frag, sino otro problema en una superficie de ataque relacionada: XFRM ESP-in-TCP en el kernel de Linux.&lt;/p&gt;
&lt;p&gt;XFRM es el marco del kernel de Linux para procesar IPsec. ESP-in-TCP está relacionado con transportar tráfico ESP cifrado sobre TCP. El problema de Fragnesia está en la lógica de fragmentos de página compartidos y la combinación de socket buffers: en ciertas condiciones, el kernel puede perder la pista de que un fragment sigue compartido y dejar una zona de escritura controlable.&lt;/p&gt;
&lt;p&gt;Este tipo de fallo recuerda a Dirty Pipe / Dirty Frag y otros problemas de escritura en la caché de páginas. El código concreto no es el mismo, pero el efecto vuelve a caer sobre la copia en caché de un archivo de solo lectura.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-es-grave&#34;&gt;Por Qué Es Grave
&lt;/h2&gt;&lt;p&gt;Fragnesia es peligrosa por tres razones.&lt;/p&gt;
&lt;p&gt;Primero, es una escalada local de privilegios. Si un atacante ya puede ejecutar código como usuario normal, podría elevarse a root. Esto es especialmente sensible en servidores multiusuario, hosts de contenedores, CI runners, máquinas de desarrollo compartidas, VPS y entornos que exponen acceso shell.&lt;/p&gt;
&lt;p&gt;Segundo, no depende de una condición de carrera tradicional. Las notas de V12 describen una ruta que fuerza el procesamiento ESP-in-TCP sobre páginas de archivo ya incorporadas a un socket buffer mediante &lt;code&gt;splice&lt;/code&gt;, lo que permite influir byte a byte en el contenido de la caché de páginas. Eso hace que el riesgo sea práctico, no solo teórico.&lt;/p&gt;
&lt;p&gt;Tercero, modifica la caché de páginas, no el archivo en disco. El ejemplo público usa &lt;code&gt;/usr/bin/su&lt;/code&gt; como objetivo. Tras una explotación correcta, el archivo en disco no queda modificado de forma permanente; el cambio vive en la memoria. Las revisiones que solo comparan hashes o integridad del disco pueden no ver nada extraño.&lt;/p&gt;
&lt;p&gt;Ese es el punto incómodo para los administradores: el archivo parece intacto, pero al ejecutar la copia contaminada desde la caché de páginas puede activarse la escalada.&lt;/p&gt;
&lt;h2 id=&#34;alcance-conocido&#34;&gt;Alcance Conocido
&lt;/h2&gt;&lt;p&gt;V12 Security indica que los kernels afectados por Dirty Frag y sin los parches relevantes del 13 de mayo de 2026 también están afectados por Fragnesia. Los entornos verificados públicamente incluyen Ubuntu 22.04, Ubuntu 24.04 y kernels como &lt;code&gt;6.8.0-111-generic&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Hay dos matices importantes.&lt;/p&gt;
&lt;p&gt;Primero, no basta con mirar la versión mayor de la distribución. Que Ubuntu 22.04 / 24.04 esté afectado depende del estado real de parches del kernel, no solo del nombre de la distribución.&lt;/p&gt;
&lt;p&gt;Segundo, no conviene confiar únicamente en las restricciones predeterminadas de AppArmor para namespaces de usuario sin privilegios. En Ubuntu pueden elevar la barrera, pero la divulgación las trata como un problema adicional de bypass, no como una corrección del fallo.&lt;/p&gt;
&lt;p&gt;La forma fiable de decidir sigue siendo revisar los avisos de seguridad de la distribución y las actualizaciones del paquete del kernel.&lt;/p&gt;
&lt;h2 id=&#34;mitigación-temporal&#34;&gt;Mitigación Temporal
&lt;/h2&gt;&lt;p&gt;Si un sistema no puede actualizar el kernel de inmediato, primero hay que evaluar si depende de los módulos de protocolo relacionados.&lt;/p&gt;
&lt;p&gt;La mitigación indicada por V12 es la misma que para Dirty Frag: si el sistema no depende de IPsec ESP ni de RxRPC, se puede evaluar desactivar módulos como &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt; y &lt;code&gt;rxrpc&lt;/code&gt;. Esto puede afectar capacidades de red, así que no debe aplicarse a ciegas en producción. Antes hay que confirmar si el negocio usa IPsec, VPN, túneles o funciones relacionadas del kernel.&lt;/p&gt;
&lt;p&gt;Un orden de respuesta más seguro es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Confirmar si la distribución ya publicó una actualización de seguridad del kernel.&lt;/li&gt;
&lt;li&gt;Instalar primero el parche del kernel y programar el reinicio.&lt;/li&gt;
&lt;li&gt;Si no se puede actualizar de inmediato, evaluar la desactivación temporal de módulos.&lt;/li&gt;
&lt;li&gt;Priorizar sistemas multiusuario y entornos de CI / compilación.&lt;/li&gt;
&lt;li&gt;Revisar cuentas locales innecesarias, shell, superficie de escape de contenedores y entradas de ejecución de bajo privilegio.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;No hay que tratar la desactivación de módulos como corrección final. Es una reducción temporal de exposición.&lt;/p&gt;
&lt;h2 id=&#34;si-se-sospecha-explotación&#34;&gt;Si Se Sospecha Explotación
&lt;/h2&gt;&lt;p&gt;Una característica de Fragnesia es la contaminación de la caché de páginas. V12 señala que, tras la explotación, la copia del archivo objetivo en la caché puede contener contenido inyectado, y ejecuciones posteriores pueden seguir comportándose de forma anómala hasta que la página sea expulsada o el sistema se reinicie.&lt;/p&gt;
&lt;p&gt;Si se sospecha que el sistema fue explotado, conviene al menos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Preservar logs y registros de auditoría cuanto antes.&lt;/li&gt;
&lt;li&gt;Revisar inicios de sesión locales anómalos, actividad de usuarios de bajo privilegio, procesos sospechosos y rastros de root shell.&lt;/li&gt;
&lt;li&gt;Limpiar la caché de páginas relevante o reiniciar directamente.&lt;/li&gt;
&lt;li&gt;Actualizar a un kernel corregido.&lt;/li&gt;
&lt;li&gt;Verificar binarios críticos, pero sin depender solo de hashes del disco.&lt;/li&gt;
&lt;li&gt;Rotar credenciales y claves potencialmente expuestas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En servidores de producción, es mejor tratarlo como un posible incidente de escalada local de privilegios, no solo como una actualización rutinaria.&lt;/p&gt;
&lt;h2 id=&#34;qué-máquinas-priorizar&#34;&gt;Qué Máquinas Priorizar
&lt;/h2&gt;&lt;p&gt;La prioridad no debe repartirse por igual entre todas las máquinas Linux. Hay que empezar por los lugares donde un atacante tiene más probabilidades de obtener ejecución de código con pocos privilegios.&lt;/p&gt;
&lt;p&gt;Entornos de mayor prioridad:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Servidores de login multiusuario&lt;/li&gt;
&lt;li&gt;CI / CD runners&lt;/li&gt;
&lt;li&gt;Máquinas de compilación&lt;/li&gt;
&lt;li&gt;Máquinas de desarrollo compartidas&lt;/li&gt;
&lt;li&gt;Hosts de contenedores&lt;/li&gt;
&lt;li&gt;VPS y servidores cloud&lt;/li&gt;
&lt;li&gt;Nodos de borde con SSH expuesto&lt;/li&gt;
&lt;li&gt;Plataformas que ejecutan scripts o plugins de terceros&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las máquinas cerradas, de un solo usuario y sin entrada externa de ejecución de código siguen teniendo riesgo si son vulnerables, pero la urgencia puede ser menor.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Fragnesia merece atención no por tener un nombre nuevo, sino porque vuelve a llevar la escalada local de privilegios en Linux a una frontera compleja: la caché de páginas y los subsistemas de red del kernel.&lt;/p&gt;
&lt;p&gt;Para administradores, lo importante no es estudiar los detalles de explotación, sino confirmar el estado de parches del kernel, evaluar si se depende de ESP / RxRPC, actualizar primero las máquinas más expuestas y entender que &amp;ldquo;el archivo en disco no cambió&amp;rdquo; no significa &amp;ldquo;el sistema no fue afectado&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Si el sistema está afectado, la respuesta final sigue siendo instalar cuanto antes la actualización del kernel ofrecida por la distribución. Desactivar módulos temporalmente es solo una medida puente, no un reemplazo del parche.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Dirty Frag CVE-2026-43284: riesgo de escalada local en Linux y guía de mitigación</title>
        <link>https://knightli.com/es/2026/05/09/dirty-frag-cve-2026-43284-linux-lpe-mitigation/</link>
        <pubDate>Sat, 09 May 2026 07:25:55 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/09/dirty-frag-cve-2026-43284-linux-lpe-mitigation/</guid>
        <description>&lt;p&gt;Dirty Frag es un conjunto de vulnerabilidades de escalada local de privilegios en el kernel Linux, divulgadas en mayo de 2026 y con indicios de explotación activa. Microsoft la describe como un riesgo post-compromiso: después de que un atacante consigue ejecución con pocos privilegios, puede usar el fallo para escalar a root. Ubuntu también clasifica CVE-2026-43284 como High.&lt;/p&gt;
&lt;p&gt;El peligro no está en un “compromiso remoto de un clic”. El peligro está en que, una vez dentro, el atacante puede ampliar el control rápidamente. Si consigue ejecución local mediante credenciales SSH débiles, una web shell, escape de contenedor, una cuenta de servicio con pocos privilegios o acceso remoto tras phishing, Dirty Frag puede permitir root y luego desactivar herramientas de seguridad, leer credenciales, manipular logs, moverse lateralmente o persistir.&lt;/p&gt;
&lt;h2 id=&#34;qué-cve-están-implicados&#34;&gt;Qué CVE están implicados
&lt;/h2&gt;&lt;p&gt;La información pública asocia Dirty Frag principalmente con dos identificadores:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;CVE-2026-43284&lt;/code&gt;: relacionado con la ruta xfrm/ESP del kernel Linux. Las referencias de Microsoft a &lt;code&gt;esp4&lt;/code&gt; y &lt;code&gt;esp6&lt;/code&gt; pertenecen a esta zona de riesgo.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;CVE-2026-43500&lt;/code&gt;: Microsoft indica que está relacionado con &lt;code&gt;rxrpc&lt;/code&gt;, pero al 8 de mayo de 2026 el CVE aún no estaba publicado en NVD y el estado de parches seguía evolucionando.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por eso no conviene mirar solo un CVE. Es más seguro revisar si &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt;, &lt;code&gt;rxrpc&lt;/code&gt; y funciones relacionadas con xfrm/IPsec están activas, son necesarias y ya tienen parche de la distribución.&lt;/p&gt;
&lt;h2 id=&#34;explicación-técnica-resumida&#34;&gt;Explicación técnica resumida
&lt;/h2&gt;&lt;p&gt;Según Microsoft y Ubuntu, CVE-2026-43284 afecta al manejo de red y fragmentos de memoria del kernel Linux, especialmente al tratamiento de fragmentos de página compartidos en la ruta ESP/IPsec.&lt;/p&gt;
&lt;p&gt;En términos simples, páginas de datos pueden adjuntarse a buffers de red mediante mecanismos como splice. Si rutas posteriores del kernel tratan esos fragmentos como datos privados que se pueden modificar in-place, puede producirse descifrado o modificación in-place donde no debería. Un atacante puede manipular el comportamiento de page cache y acabar logrando escalada local.&lt;/p&gt;
&lt;p&gt;Esto se parece a CopyFail (&lt;code&gt;CVE-2026-31431&lt;/code&gt;): ambos giran en torno a page cache de Linux, rutas de datos del kernel y escalada local. Dirty Frag es peligroso porque introduce más rutas de ataque y puede ser más fiable que exploits LPE tradicionales dependientes de ventanas de carrera estrechas.&lt;/p&gt;
&lt;h2 id=&#34;entornos-prioritarios&#34;&gt;Entornos prioritarios
&lt;/h2&gt;&lt;p&gt;Dirty Frag es una vulnerabilidad local, así que el atacante ya debe poder ejecutar código en la máquina. Prioriza:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Servidores Linux con SSH expuesto.&lt;/li&gt;
&lt;li&gt;Servidores web donde pueda escribirse una web shell.&lt;/li&gt;
&lt;li&gt;Hosts multiusuario, bastiones, máquinas de desarrollo y runners CI/CD.&lt;/li&gt;
&lt;li&gt;Hosts de contenedores, nodos Kubernetes y nodos OpenShift.&lt;/li&gt;
&lt;li&gt;Sistemas que usen IPsec, VPN, xfrm o funcionalidad relacionada con RxRPC.&lt;/li&gt;
&lt;li&gt;Servidores con Ubuntu, RHEL, CentOS Stream, AlmaLinux, Fedora, openSUSE y otras distribuciones comunes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si un servidor no tiene usuarios locales, contenedores ni rutas de aplicación expuestas, el riesgo es menor. Pero cualquier sistema donde un atacante pueda conseguir una shell de bajo privilegio debe tratar esto como un problema de kernel de alta prioridad.&lt;/p&gt;
&lt;h2 id=&#34;primero-parchear&#34;&gt;Primero parchear
&lt;/h2&gt;&lt;p&gt;La corrección más segura es instalar la actualización de seguridad del kernel de tu distribución y reiniciar con el kernel nuevo.&lt;/p&gt;
&lt;p&gt;La página de Ubuntu indica que &lt;code&gt;CVE-2026-43284&lt;/code&gt; se publicó el 8 de mayo de 2026 y se clasifica como High. Microsoft también dice que Linux Kernel Organization publicó correcciones para &lt;code&gt;CVE-2026-43284&lt;/code&gt; y recomienda aplicar parches cuanto antes.&lt;/p&gt;
&lt;p&gt;Empieza revisando el sistema:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uname -a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat /etc/os-release
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después actualiza el kernel según la distribución:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt full-upgrade
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;O:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo dnf update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Tras actualizar, confirma que el sistema arrancó con el kernel nuevo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uname -r
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Instalar paquetes de kernel sin reiniciar deja el kernel antiguo ejecutándose, así que la vulnerabilidad puede seguir presente.&lt;/p&gt;
&lt;h2 id=&#34;mitigación-temporal-desactivar-módulos-relacionados&#34;&gt;Mitigación temporal: desactivar módulos relacionados
&lt;/h2&gt;&lt;p&gt;Si aún no hay parches, o producción no puede reiniciarse de inmediato, evalúa si puedes desactivar temporalmente los módulos relacionados. La mitigación de Ubuntu bloquea la carga de &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt; y &lt;code&gt;rxrpc&lt;/code&gt;, y los descarga si ya están cargados.&lt;/p&gt;
&lt;p&gt;Crear reglas modprobe:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;install esp4 /bin/false&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /etc/modprobe.d/dirty-frag.conf
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;install esp6 /bin/false&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee -a /etc/modprobe.d/dirty-frag.conf
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;install rxrpc /bin/false&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee -a /etc/modprobe.d/dirty-frag.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Actualizar initramfs para evitar carga temprana:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo update-initramfs -u -k all
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Descargar módulos ya cargados:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rmmod esp4 esp6 rxrpc 2&amp;gt;/dev/null
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Comprobar si siguen cargados:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;grep -qE &lt;span class=&#34;s1&#34;&gt;&amp;#39;^(esp4|esp6|rxrpc) &amp;#39;&lt;/span&gt; /proc/modules &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Affected modules are loaded&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Affected modules are NOT loaded&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si un módulo está en uso, puede no descargarse. En ese caso, la regla de bloqueo probablemente solo surtirá efecto tras reiniciar.&lt;/p&gt;
&lt;h2 id=&#34;evalúa-impacto-antes-de-desactivar&#34;&gt;Evalúa impacto antes de desactivar
&lt;/h2&gt;&lt;p&gt;No pegues esos comandos a ciegas. &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt; y funciones xfrm/IPsec pueden usarse en VPN, túneles, redes cifradas, redes Kubernetes/contenedores o configuraciones empresariales. &lt;code&gt;rxrpc&lt;/code&gt; también puede afectar cargas que dependan de ese protocolo.&lt;/p&gt;
&lt;p&gt;Antes de ejecutar en producción, revisa al menos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;lsmod &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -E &lt;span class=&#34;s1&#34;&gt;&amp;#39;^(esp4|esp6|rxrpc|xfrm)&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ip xfrm state
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ip xfrm policy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si dependes de IPsec VPN o funciones relacionadas del kernel, desactivar módulos puede cortar conectividad. En ese caso, es mejor programar parcheo del kernel y ventana de mantenimiento que depender mucho tiempo del bloqueo de módulos.&lt;/p&gt;
&lt;h2 id=&#34;no-omitas-comprobaciones-post-compromiso&#34;&gt;No omitas comprobaciones post-compromiso
&lt;/h2&gt;&lt;p&gt;Microsoft recuerda que la mitigación no necesariamente revierte cambios ya introducidos por explotación exitosa. Si el atacante ya obtuvo root, puede haber dejado persistencia, modificado archivos, alterado logs o accedido a datos de sesión.&lt;/p&gt;
&lt;p&gt;Comprueba al menos:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;journalctl -k --since &lt;span class=&#34;s2&#34;&gt;&amp;#34;24 hours ago&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -Ei &lt;span class=&#34;s2&#34;&gt;&amp;#34;dirty|frag|exploit|segfault|xfrm|rxrpc|esp&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;last -a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;lastlog
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo find /tmp /var/tmp /dev/shm -type f -mtime -3 -ls
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo find / -perm -4000 -type f -mtime -7 -ls 2&amp;gt;/dev/null
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;También revisa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lanzamientos anómalos de &lt;code&gt;su&lt;/code&gt;, &lt;code&gt;sudo&lt;/code&gt; o procesos SUID/SGID.&lt;/li&gt;
&lt;li&gt;Ejecutables ELF creados recientemente.&lt;/li&gt;
&lt;li&gt;Archivos PHP, JSP o ASP sospechosos en directorios web.&lt;/li&gt;
&lt;li&gt;Cambios en SSH authorized_keys.&lt;/li&gt;
&lt;li&gt;Persistencia nueva en systemd services, cron o rc.local.&lt;/li&gt;
&lt;li&gt;Contenedores privilegiados o montajes sospechosos en hosts de contenedores.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si sospechas explotación, aísla el host, conserva evidencias, rota credenciales y luego limpia. No asumas que descargar módulos o limpiar cachés hace seguro el sistema.&lt;/p&gt;
&lt;h2 id=&#34;sobre-drop_caches&#34;&gt;Sobre drop_caches
&lt;/h2&gt;&lt;p&gt;Microsoft menciona que en algunos escenarios de verificación de integridad post-explotación puede evaluarse limpiar caché:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;3&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /proc/sys/vm/drop_caches
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto no es una corrección de la vulnerabilidad ni un comando de limpieza de incidente. Limpiar cachés puede aumentar I/O de disco y afectar rendimiento en producción. Úsalo solo como paso auxiliar tras entender el impacto. La corrección real sigue siendo parchear, reiniciar, verificar integridad y revisar persistencia.&lt;/p&gt;
&lt;h2 id=&#34;orden-recomendado-de-respuesta&#34;&gt;Orden recomendado de respuesta
&lt;/h2&gt;&lt;p&gt;Para producción, una secuencia razonable es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Inventariar activos Linux y versiones de kernel.&lt;/li&gt;
&lt;li&gt;Priorizar sistemas con SSH expuesto, workloads web, hosts de contenedores y acceso multiusuario.&lt;/li&gt;
&lt;li&gt;Parchear y reiniciar cuanto antes los sistemas que puedan reiniciarse.&lt;/li&gt;
&lt;li&gt;En sistemas que aún no puedan parchearse o reiniciarse, evaluar desactivar &lt;code&gt;esp4&lt;/code&gt;, &lt;code&gt;esp6&lt;/code&gt; y &lt;code&gt;rxrpc&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Aumentar monitorización de &lt;code&gt;su&lt;/code&gt;, SUID/SGID, ELF sospechosos, web shells e indicadores de escape de contenedor.&lt;/li&gt;
&lt;li&gt;Ejecutar comprobaciones post-compromiso y rotar credenciales en hosts sospechosos.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Dirty Frag no es una vulnerabilidad “remote one-click”, pero aumenta mucho el riesgo tras una intrusión. Si un atacante puede ejecutar código local con pocos privilegios, &lt;code&gt;CVE-2026-43284&lt;/code&gt; y la superficie asociada a &lt;code&gt;rxrpc&lt;/code&gt; pueden permitir escalada a root.&lt;/p&gt;
&lt;p&gt;Para administradores, la prioridad no es estudiar PoC. La prioridad es confirmar exposición del kernel, instalar actualizaciones de seguridad de la distribución y reiniciar, evaluar mitigaciones de bloqueo de módulos antes de la ventana de parcheo, e inspeccionar sistemas expuestos o sospechosos en busca de problemas de integridad y persistencia.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.microsoft.com/en-us/security/blog/2026/05/08/active-attack-dirty-frag-linux-vulnerability-expands-post-compromise-risk/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Microsoft Security Blog: Active attack: Dirty Frag Linux vulnerability expands post-compromise risk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://ubuntu.com/security/CVE-2026-43284&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Ubuntu: CVE-2026-43284&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://ubuntu.com/blog/dirty-frag-linux-vulnerability-fixes-available&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Ubuntu: Dirty Frag Linux kernel local privilege escalation vulnerability mitigations&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Guía de Btrfs Scrub: verificación de datos, reparación automática y mantenimiento periódico</title>
        <link>https://knightli.com/es/2026/05/09/btrfs-scrub-check-repair-guide/</link>
        <pubDate>Sat, 09 May 2026 07:11:01 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/09/btrfs-scrub-check-repair-guide/</guid>
        <description>&lt;p&gt;Btrfs scrub es una de las funciones de mantenimiento más importantes y más malentendidas de Btrfs. No es fsck en el sentido tradicional. Es una pasada de validación online que lee datos y metadata del filesystem, verifica checksums, superblocks, metadata block headers y errores de lectura del disco, e intenta reparar daños cuando existe una réplica buena conocida.&lt;/p&gt;
&lt;p&gt;Si usas Btrfs en un NAS, servidor doméstico, disco de backup o array multidispositivo, scrub debería formar parte del mantenimiento periódico. Su valor no es “ejecutarlo después del desastre”, sino detectar corrupción silenciosa temprano, mientras los discos aún se pueden leer y todavía existen réplicas buenas.&lt;/p&gt;
&lt;h2 id=&#34;qué-comprueba-scrub&#34;&gt;Qué comprueba scrub
&lt;/h2&gt;&lt;p&gt;Según la documentación oficial de Btrfs, scrub recorre datos y metadata del filesystem y comprueba principalmente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Errores de checksum en bloques de datos.&lt;/li&gt;
&lt;li&gt;Errores básicos de super block.&lt;/li&gt;
&lt;li&gt;Errores básicos de metadata block header.&lt;/li&gt;
&lt;li&gt;Errores de lectura de disco.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En filesystems que usan perfiles de block group replicados, como RAID1, scrub sobre un montaje read-write puede reparar automáticamente algunos daños. La reparación no es recuperación mágica. Btrfs copia datos buenos verificados desde otra réplica.&lt;/p&gt;
&lt;p&gt;Este punto es clave: la reparación de scrub depende de que exista una copia buena conocida. En un disco único con una sola copia de los datos, scrub puede detectar errores de checksum, pero normalmente no puede restaurar el contenido original por sí mismo.&lt;/p&gt;
&lt;h2 id=&#34;comandos-comunes&#34;&gt;Comandos comunes
&lt;/h2&gt;&lt;p&gt;Iniciar scrub sobre un punto de montaje:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs scrub start /
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ejecutarlo en foreground, útil para observar manualmente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs scrub start -B /
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ver estado:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs scrub status /
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cancelar un scrub en ejecución:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs scrub cancel /
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Reanudar un scrub interrumpido:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs scrub resume /
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si especificas una ruta montada de Btrfs, Btrfs hace scrub de todos los dispositivos del filesystem en paralelo. Si especificas un dispositivo, solo se hace scrub de ese dispositivo. Pero si la réplica del dispositivo indicado no puede leerse o verificarse, Btrfs intenta leer una copia buena desde otro dispositivo.&lt;/p&gt;
&lt;h2 id=&#34;scrub-no-es-fsck&#34;&gt;Scrub no es fsck
&lt;/h2&gt;&lt;p&gt;Este es el error más común. Scrub no es &lt;code&gt;btrfs check&lt;/code&gt; ni un comprobador tradicional de filesystem.&lt;/p&gt;
&lt;p&gt;Scrub puede:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Usar checksums para detectar corrupción de datos o metadata.&lt;/li&gt;
&lt;li&gt;Reparar automáticamente cuando existe otra réplica fiable.&lt;/li&gt;
&lt;li&gt;Detectar errores de lectura de disco y algunos errores estructurales básicos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Scrub no puede:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Reconstruir datos cuando no existe una réplica buena.&lt;/li&gt;
&lt;li&gt;Sustituir una comprobación offline del filesystem.&lt;/li&gt;
&lt;li&gt;Reparar toda corrupción compleja de estructuras de árbol.&lt;/li&gt;
&lt;li&gt;Garantizar que el contenido a nivel de aplicación sea correcto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si las estructuras del filesystem están gravemente dañadas, pueden necesitarse herramientas como &lt;code&gt;btrfs check&lt;/code&gt; bajo guía experta. No trates scrub como un comando universal de reparación.&lt;/p&gt;
&lt;h2 id=&#34;riesgos-de-archivos-nocow&#34;&gt;Riesgos de archivos NOCOW
&lt;/h2&gt;&lt;p&gt;La documentación de Btrfs advierte de un punto importante: al establecer el atributo &lt;code&gt;NOCOW&lt;/code&gt; con &lt;code&gt;chattr +C&lt;/code&gt;, la implementación actual también activa implícitamente &lt;code&gt;NODATASUM&lt;/code&gt;. Eso significa que los datos del archivo no tienen checksum.&lt;/p&gt;
&lt;p&gt;Scrub aún puede validar y reparar la metadata de esos archivos, pero no puede validar el contenido de sus datos. Esto es especialmente arriesgado en configuraciones con varias réplicas: si una copia de un archivo NOCOW se daña, Btrfs no tiene checksum de datos para saber qué réplica es buena, así que puede devolver contenido dañado a user space.&lt;/p&gt;
&lt;p&gt;Algunas aplicaciones usan &lt;code&gt;+C&lt;/code&gt; por defecto por rendimiento. systemd journal y algunos escenarios de libvirt storage pool son ejemplos conocidos. Para imágenes de VM, bases de datos y directorios de logs puede tener sentido por rendimiento, pero significa que no puedes esperar que scrub proteja sus datos igual que protege archivos COW normales.&lt;/p&gt;
&lt;h2 id=&#34;read-only-scrub-todavía-puede-escribir&#34;&gt;Read-only scrub todavía puede escribir
&lt;/h2&gt;&lt;p&gt;Otro punto contraintuitivo: ejecutar read-only scrub en un filesystem montado read-write puede causar algunas escrituras.&lt;/p&gt;
&lt;p&gt;La documentación oficial explica que se debe a una limitación de diseño para evitar carreras entre marcar block groups como read-only y escribir de vuelta block group items. En otras palabras, si quieres que scrub no escriba nada, debes ejecutar read-only scrub sobre un filesystem montado read-only. Añadir una opción de read-only scrub sobre un montaje read-write no basta.&lt;/p&gt;
&lt;p&gt;Para usuarios normales, esto significa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El scrub online rutinario puede ejecutarse sobre un montaje read-write.&lt;/li&gt;
&lt;li&gt;Para forense, análisis de fallos o comprobaciones muy conservadoras, confirma antes el estado del montaje.&lt;/li&gt;
&lt;li&gt;No interpretes read-only scrub como cero escrituras absolutas.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;interrupción-y-reanudación&#34;&gt;Interrupción y reanudación
&lt;/h2&gt;&lt;p&gt;En kernels recientes, scrub puede ser interrumpido por eventos como suspend, hibernate, filesystem freezing, cgroup freezing y pending signals. Tras una interrupción, el scrub en ejecución se cancela, pero puede reanudarse con &lt;code&gt;btrfs scrub resume&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;El estado de scrub se registra en:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/var/lib/btrfs/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Los nombres suelen parecerse a:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scrub.status.UUID
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;scrub.progress.UUID
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El archivo de estado se actualiza periódicamente. Un scrub reanudado continúa desde la última posición guardada, no desde el principio.&lt;/p&gt;
&lt;h2 id=&#34;cada-cuánto-ejecutarlo&#34;&gt;Cada cuánto ejecutarlo
&lt;/h2&gt;&lt;p&gt;La recomendación oficial es una vez al mes. En la práctica, ajusta según la importancia de los datos y el estado de los discos.&lt;/p&gt;
&lt;p&gt;Calendarios comunes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;NAS doméstico: una vez al mes.&lt;/li&gt;
&lt;li&gt;Discos de backup: tras sesiones largas conectados o una vez al mes.&lt;/li&gt;
&lt;li&gt;Arrays multidispositivo importantes: una vez al mes, o más a menudo si hace falta.&lt;/li&gt;
&lt;li&gt;Migración a disco nuevo o sospecha de fallo: ejecutar justo después de migrar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Scrub puede usar alrededor del 80% del ancho de banda del dispositivo en un filesystem inactivo, así que no conviene ejecutarlo en horas pico. En arrays HDD, la latencia puede subir notablemente durante scrub. En SSD también añade read amplification y presión de fondo.&lt;/p&gt;
&lt;h2 id=&#34;limitar-ancho-de-banda-de-scrub&#34;&gt;Limitar ancho de banda de scrub
&lt;/h2&gt;&lt;p&gt;Antes se usaba &lt;code&gt;ionice&lt;/code&gt; para reducir el impacto de scrub sobre I/O foreground. La documentación oficial advierte que no todos los I/O schedulers lo soportan igual. CFQ ya no está disponible de forma general. BFQ soporta el comportamiento de prioridad relacionado, pero conviene entenderlo antes de usarlo. Para schedulers comunes como &lt;code&gt;mq-deadline&lt;/code&gt;, suele ser mejor usar cgroup2 I/O controller o límites específicos de Btrfs.&lt;/p&gt;
&lt;p&gt;Ejemplo con systemd para limitar ancho de banda de lectura:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemd-run -p &lt;span class=&#34;s2&#34;&gt;&amp;#34;IOReadBandwidthMax=/dev/sdx 10M&amp;#34;&lt;/span&gt; btrfs scrub start -B /
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Desde Linux 5.14, Btrfs puede establecer límites de scrub por dispositivo mediante sysfs:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; 100m &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /sys/fs/btrfs/FSID/devinfo/DEVID/scrub_speed_max
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Mostrar límites actuales:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs scrub limit /
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esta configuración no es persistente y desaparece al desmontar el filesystem. Sustituye &lt;code&gt;FSID&lt;/code&gt; y &lt;code&gt;DEVID&lt;/code&gt; por los valores reales de tu sistema. Puedes empezar comprobando:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs filesystem show /
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ls /sys/fs/btrfs/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;flujo-práctico-de-mantenimiento&#34;&gt;Flujo práctico de mantenimiento
&lt;/h2&gt;&lt;p&gt;Un flujo razonable de mantenimiento Btrfs puede ser:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs scrub start -B /
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs scrub status /
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo btrfs device stats /
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dmesg -T &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -Ei &lt;span class=&#34;s2&#34;&gt;&amp;#34;btrfs|checksum|i/o error|read error&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si scrub informa corrected errors, Btrfs reparó datos desde una réplica buena, pero no debes ignorarlo. Sigue revisando SMART, cables, alimentación, controladores y Btrfs device stats.&lt;/p&gt;
&lt;p&gt;Si scrub informa uncorrectable errors, Btrfs no encontró una copia buena. Haz backup cuanto antes de lo que aún pueda leerse, identifica archivos o dispositivos afectados, y reemplaza hardware o restaura desde backup según corresponda.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Btrfs scrub tiene un papel claro: verificación online de datos y reparación desde réplicas. No es fsck y no es backup.&lt;/p&gt;
&lt;p&gt;Funciona mejor en filesystems Btrfs con checksums y réplicas redundantes, donde puede encontrar corrupción silenciosa de forma periódica y restaurar desde copias buenas. No puede proteger datos de archivos NOCOW sin checksum, ni recuperar contenido dañado si no hay una réplica buena.&lt;/p&gt;
&lt;p&gt;Si guardas datos importantes en Btrfs, ejecuta scrub mensualmente y úsalo junto con SMART, device stats, backups y alertas. La seguridad de datos fiable viene de checksums, redundancia, monitorización y backups trabajando juntos, no de un solo comando.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://btrfs.readthedocs.io/en/latest/Scrub.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Documentación oficial de Btrfs: Scrub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>¿F2FS congela un HC620 SMR? Guía de diagnóstico para discos SMR en Linux</title>
        <link>https://knightli.com/es/2026/05/08/hc620-smr-f2fs-io-wait-freeze/</link>
        <pubDate>Fri, 08 May 2026 22:34:39 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/08/hc620-smr-f2fs-io-wait-freeze/</guid>
        <description>&lt;p&gt;Cuando un HC620 de helio con SMR se usa con F2FS, síntomas como congelamientos del sistema, aplicaciones sin respuesta y &lt;code&gt;iowait&lt;/code&gt; alto durante mucho tiempo normalmente no se deben a una sola opción mal configurada. Son el resultado de un choque entre las características del dispositivo y la política del filesystem.&lt;/p&gt;
&lt;p&gt;Western Digital Ultrastar DC HC620 es un disco Host-managed SMR. Encaja mejor con escrituras secuenciales, cargas zoned-aware y stacks de software que entienden las restricciones del dispositivo. F2FS es un filesystem log-structured diseñado para flash. Aunque puede reorganizar muchas escrituras aleatorias como escrituras secuenciales, la falta de espacio libre, el GC frecuente o las actualizaciones intensas de metadata pueden llevar a un disco mecánico SMR a ciclos internos largos de mantenimiento.&lt;/p&gt;
&lt;h2 id=&#34;primero-confirma-si-es-este-problema&#34;&gt;Primero confirma si es este problema
&lt;/h2&gt;&lt;p&gt;Empieza con estas comprobaciones:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;iostat -x &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;iotop -oPa
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dmesg -T &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep -Ei &lt;span class=&#34;s2&#34;&gt;&amp;#34;f2fs|blk|zoned|reset|timeout|I/O error&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si &lt;code&gt;%util&lt;/code&gt; se mantiene cerca de 100%, &lt;code&gt;await&lt;/code&gt; es alto y muchos procesos quedan en estado &lt;code&gt;D&lt;/code&gt;, el cuello de botella probablemente está en el I/O del dispositivo de bloques.&lt;/p&gt;
&lt;p&gt;Luego confirma si el disco aparece como dispositivo zoned:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;lsblk -o NAME,MODEL,SIZE,ROTA,ZONED,SCHED,MOUNTPOINTS
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat /sys/block/sdX/queue/zoned
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si es Host-managed SMR, un filesystem normal y cargas con escrituras aleatorias pueden rendir muy mal. A diferencia de muchos SMR de escritorio gestionados por el propio disco, esta clase depende más de que el software del host entienda las reglas de escritura.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-f2fs-puede-amplificar-el-bloqueo&#34;&gt;Por qué F2FS puede amplificar el bloqueo
&lt;/h2&gt;&lt;p&gt;El problema de SMR es que no puede sobrescribir ubicaciones arbitrarias tan libremente como un disco CMR. Las pistas se superponen para aumentar capacidad. Cuando las escrituras se vuelven aleatorias, las sobrescrituras son frecuentes o la caché se agota, el disco necesita mover y reorganizar datos.&lt;/p&gt;
&lt;p&gt;F2FS fue creado para NAND flash. Usa escrituras log-structured y recupera espacio mediante segment cleaning y garbage collection. En SSD esto suele ser natural porque no hay seek mecánico. En discos mecánicos, especialmente SMR, las lecturas y escrituras generadas por GC pueden convertirse en tail latency severa.&lt;/p&gt;
&lt;p&gt;Cuando background GC de F2FS, escrituras foreground, checkpoints, actualizaciones de metadata y la limpieza SMR interna del disco se superponen, la cola de I/O puede permanecer saturada durante mucho tiempo. En espacio de usuario, copiar archivos, borrar directorios, descargar, descomprimir o escribir en bases de datos puede hacer que el sistema parezca congelado.&lt;/p&gt;
&lt;h2 id=&#34;empieza-con-opciones-de-montaje-conservadoras&#34;&gt;Empieza con opciones de montaje conservadoras
&lt;/h2&gt;&lt;p&gt;Si no puedes migrar inmediatamente, ajusta primero &lt;code&gt;/etc/fstab&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;UUID=xxxx  /data  f2fs  defaults,nodiscard,active_logs=2,gc_merge,flush_merge,lazytime  0  0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Qué hace cada opción:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nodiscard&lt;/code&gt;: desactiva discard en tiempo real. Los discos mecánicos normalmente no necesitan TRIM/discard frecuente como un SSD.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;active_logs=2&lt;/code&gt;: F2FS admite 2, 4 o 6 active logs; el valor por defecto suele ser 6. Bajar a 2 puede reducir presión de seek por logs concurrentes.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gc_merge&lt;/code&gt;: permite que el hilo de background GC gestione algunas peticiones de foreground GC, reduciendo bloqueos cuando un proceso dispara GC lento.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;flush_merge&lt;/code&gt;: fusiona peticiones de cache flush, útil si el dispositivo maneja flush lentamente.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lazytime&lt;/code&gt;: reduce escrituras de metadata causadas por algunas actualizaciones de tiempo de acceso.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No trates &lt;code&gt;checkpoint=disable&lt;/code&gt; como una opción normal de rendimiento. Puede reducir presión de checkpoint, pero aumenta el riesgo tras cortes de energía o fallos. La documentación del kernel también indica que el filesystem sigue necesitando GC mientras checkpoint está desactivado para garantizar espacio utilizable. Si no entiendes bien el coste, no lo uses como solución permanente.&lt;/p&gt;
&lt;h2 id=&#34;ajusta-el-io-scheduler&#34;&gt;Ajusta el I/O scheduler
&lt;/h2&gt;&lt;p&gt;Los discos mecánicos y SMR suelen necesitar fusión de peticiones y control de latencia. Mira primero el scheduler actual:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat /sys/block/sdX/queue/scheduler
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Puedes probar &lt;code&gt;mq-deadline&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; mq-deadline &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /sys/block/sdX/queue/scheduler
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para uso de escritorio, también merece probar &lt;code&gt;bfq&lt;/code&gt;. No mires solo throughput secuencial. Observa si bajan los bloqueos, si &lt;code&gt;await&lt;/code&gt; mejora y si el sistema se siente más estable.&lt;/p&gt;
&lt;h2 id=&#34;limita-el-background-gc-de-f2fs&#34;&gt;Limita el background GC de F2FS
&lt;/h2&gt;&lt;p&gt;La ruta sysfs de F2FS depende del nombre real del dispositivo. Compruébalo primero:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ls /sys/fs/f2fs/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego ajusta el intervalo de GC para el dispositivo correspondiente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;60000&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /sys/fs/f2fs/sdX/gc_min_sleep_time
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;120000&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /sys/fs/f2fs/sdX/gc_max_sleep_time
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Aquí &lt;code&gt;sdX&lt;/code&gt; es solo un ejemplo. El nombre real puede ser &lt;code&gt;sda1&lt;/code&gt;, &lt;code&gt;dm-0&lt;/code&gt; u otro. Aumentar GC sleep time reduce la frecuencia con la que background GC compite por I/O, pero la recuperación de espacio será más lenta. Si el disco está casi lleno, puede volver a dispararse foreground GC, así que conviene dejar espacio libre suficiente.&lt;/p&gt;
&lt;h2 id=&#34;mejores-opciones-a-largo-plazo&#34;&gt;Mejores opciones a largo plazo
&lt;/h2&gt;&lt;p&gt;Si el disco guarda datos importantes, la opción más segura a largo plazo es hacer backup y cambiar de filesystem, o usar un disco más adecuado.&lt;/p&gt;
&lt;p&gt;Para discos mecánicos grandes, considera:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;XFS: adecuado para archivos grandes, discos de backup, bibliotecas multimedia, archivos y escrituras secuenciales.&lt;/li&gt;
&lt;li&gt;EXT4: compatible, estable y con mucha documentación de diagnóstico.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si el disco es Host-managed SMR, confirma también que kernel, controlador, filesystem y aplicaciones soportan realmente zoned block devices. De lo contrario, usarlo como un disco normal de escrituras aleatorias puede provocar bloqueos largos e impredecibles.&lt;/p&gt;
&lt;h2 id=&#34;consejos-prácticos&#34;&gt;Consejos prácticos
&lt;/h2&gt;&lt;p&gt;Este tipo de disco encaja mejor con datos fríos, archivos, backups, multimedia y escrituras secuenciales. No es buena opción para cachés de descarga, imágenes de contenedores, discos de VM, bases de datos, descompresión frecuente o escrituras aleatorias de archivos pequeños.&lt;/p&gt;
&lt;p&gt;Si debes seguir usando F2FS, al menos haz esto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Desactiva discard en tiempo real.&lt;/li&gt;
&lt;li&gt;Usa &lt;code&gt;active_logs=2&lt;/code&gt; para reducir logs concurrentes.&lt;/li&gt;
&lt;li&gt;Activa &lt;code&gt;gc_merge&lt;/code&gt; y &lt;code&gt;flush_merge&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Mantén bastante espacio libre.&lt;/li&gt;
&lt;li&gt;Evita colocar descargas, bases de datos e imágenes de VM en este disco.&lt;/li&gt;
&lt;li&gt;Observa &lt;code&gt;iostat -x 1&lt;/code&gt;, no solo la velocidad media.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En resumen, los congelamientos de HC620 + F2FS aparecen cuando se combinan las restricciones de escritura de SMR, el GC de F2FS y la tail latency de un disco mecánico. La mitigación a corto plazo es ajustar opciones de montaje, scheduler y background GC. La solución a largo plazo es migrar a XFS/EXT4 o usar el SMR solo para cargas secuenciales de archivo.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.kernel.org/filesystems/f2fs.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Linux Kernel Documentation: F2FS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://documents.westerndigital.com/content/dam/doc-library/en_us/assets/public/western-digital/product/data-center-drives/ultrastar-dc-hc600-series/data-sheet-ultrastar-dc-hc620.pdf&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Western Digital Ultrastar DC HC620 Data Sheet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Hoja de ruta de Canonical para Ubuntu AI: inferencia local primero, sin integración forzada</title>
        <link>https://knightli.com/es/2026/05/08/ubuntu-ai-roadmap-local-inference-opt-in/</link>
        <pubDate>Fri, 08 May 2026 22:23:46 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/08/ubuntu-ai-roadmap-local-inference-opt-in/</guid>
        <description>&lt;p&gt;La hoja de ruta de Canonical para AI en Ubuntu no destaca por “meter AI en todas partes”, sino por intentar una vía más prudente: funciones por capas, desactivadas por defecto, activadas solo cuando el usuario lo elige explícitamente y con inferencia local como prioridad.&lt;/p&gt;
&lt;p&gt;Esto contrasta con parte de la polémica alrededor de la AI a nivel de sistema en Windows y macOS. Ubuntu no apunta a una capa global de AI imposible de evitar ni a un único interruptor general. La idea es separar las capacidades de AI en herramientas relativamente independientes, para que el usuario decida si las instala, si las activa, qué modelo usa y si los datos salen de la máquina.&lt;/p&gt;
&lt;h2 id=&#34;primero-la-fecha-no-es-ubuntu-2604-lts&#34;&gt;Primero, la fecha: no es Ubuntu 26.04 LTS
&lt;/h2&gt;&lt;p&gt;La hoja de ruta apunta sobre todo a Ubuntu 26.10 “Questing Quokka”, previsto para el 9 de octubre de 2026. Canonical planea introducir algunas herramientas de AI como previews experimentales, no como funciones por defecto dentro de Ubuntu 26.04 LTS.&lt;/p&gt;
&lt;p&gt;Este punto es clave. Las versiones LTS priorizan estabilidad, despliegues empresariales y mantenimiento de seguridad. No sería razonable convertir funciones de AI de escritorio aún exploratorias en experiencia predeterminada de una LTS. Lo más lógico es probarlas primero en una versión regular como 26.10, recibir feedback de desarrolladores y usuarios tempranos, y decidir después qué debe llegar a futuras versiones de soporte prolongado.&lt;/p&gt;
&lt;h2 id=&#34;inferencia-local-primero-la-nube-no-es-la-opción-por-defecto&#34;&gt;Inferencia local primero; la nube no es la opción por defecto
&lt;/h2&gt;&lt;p&gt;Uno de los principios centrales es local inference first: por defecto, la inferencia debe ejecutarse en la máquina del usuario. Las peticiones solo deberían salir del equipo si el usuario configura explícitamente un proveedor cloud, un servidor propio o un servicio empresarial de modelos.&lt;/p&gt;
&lt;p&gt;La razón es práctica. La AI a nivel de sistema puede tocar salidas de comandos, logs, rutas de archivos, errores y configuración del sistema. Enviar esa información automáticamente a la nube, aunque sea para explicar un error, crea riesgos claros de privacidad y cumplimiento.&lt;/p&gt;
&lt;p&gt;Por eso, la dirección de Ubuntu no parece ser una puerta de entrada a AI en la nube, sino una capa de inferencia intercambiable. El usuario puede elegir un modelo local, un servicio interno de la empresa o, si lo necesita, un servicio gestionado por Canonical. Lo importante es no quedar atado a un solo proveedor de modelos.&lt;/p&gt;
&lt;h2 id=&#34;ai-cli-empezar-por-la-terminal&#34;&gt;AI CLI: empezar por la terminal
&lt;/h2&gt;&lt;p&gt;Una de las primeras funciones prácticas podría ser AI Command Line Helper, conocido como &lt;code&gt;ai-cli&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;No pretende reemplazar el shell ni ejecutar comandos peligrosos automáticamente. Su función es ayudar a entender comandos, logs, unidades systemd, salidas de error y estado del sistema. Por ejemplo, puede explicar por qué falló un servicio o aclarar el significado de una opción de línea de comandos.&lt;/p&gt;
&lt;p&gt;Este punto encaja bien con la base de usuarios de Ubuntu. Muchos usuarios de Ubuntu Desktop y Server ya trabajan en la terminal. En vez de empezar con una ventana de chat llamativa, tiene sentido ubicar la AI en diagnóstico de errores, explicación de comandos y ayuda operativa.&lt;/p&gt;
&lt;p&gt;Pero los límites de seguridad deben ser claros. Los logs pueden contener tokens, direcciones internas, nombres de usuario, rutas, fragmentos de claves o información de negocio. Aunque la inferencia local sea el valor por defecto, la herramienta debería animar a redactar datos sensibles. Si el usuario elige un backend cloud, debe quedar claro qué se enviará.&lt;/p&gt;
&lt;h2 id=&#34;settings-agent-configuración-del-sistema-con-lenguaje-natural&#34;&gt;Settings Agent: configuración del sistema con lenguaje natural
&lt;/h2&gt;&lt;p&gt;Otra dirección es Settings Agent, una forma de consultar o cambiar configuración del sistema con lenguaje natural.&lt;/p&gt;
&lt;p&gt;Suena sencillo, pero es fácil hacerlo mal. Un Settings Agent maduro no debería leer la pantalla, adivinar botones y simular clics. Debería usar APIs internas controladas: qué puede leer, qué puede modificar, cuándo requiere confirmación y cómo revierte errores.&lt;/p&gt;
&lt;p&gt;Por eso parece más una línea de trabajo posterior a 26.10 que una función completa inmediata. Si se hace bien, puede reducir mucho la fricción para configurar Linux de escritorio. Si se hace de forma agresiva, puede convertirse en un nuevo riesgo de seguridad.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-no-hace-falta-empezar-por-un-interruptor-total-de-ai&#34;&gt;Por qué no hace falta empezar por un “interruptor total” de AI
&lt;/h2&gt;&lt;p&gt;Muchos usuarios temen que, cuando un sistema operativo incorpora AI, esta aparezca por todas partes y sea difícil desactivarla por completo. Por eso surge una pregunta natural: ¿debería Ubuntu tener un kill switch global para AI?&lt;/p&gt;
&lt;p&gt;La respuesta de Canonical parece ser que, si las funciones de AI son opt-in, están separadas por capas y se pueden instalar y configurar de forma independiente, un interruptor global no es la primera prioridad. Es decir, el diseño intenta evitar el patrón de “activado por defecto, integrado profundamente y luego el usuario debe desactivarlo”.&lt;/p&gt;
&lt;p&gt;Que eso sea suficiente dependerá de la implementación. Si las herramientas de AI no se activan por defecto, no se conectan remotamente por defecto, no recopilan datos automáticamente y cada función tiene controles claros, el usuario no debería tener que buscar opciones ocultas para apagar AI.&lt;/p&gt;
&lt;h2 id=&#34;qué-significa-para-desarrolladores-y-empresas&#34;&gt;Qué significa para desarrolladores y empresas
&lt;/h2&gt;&lt;p&gt;Para desarrolladores, el valor práctico de herramientas como AI CLI es reducir el tiempo dedicado a documentación, lectura de logs y diagnóstico de problemas del sistema. No sustituye el criterio técnico; automatiza muchas tareas de “ayúdame a entender esta salida”.&lt;/p&gt;
&lt;p&gt;Para empresas, la inferencia local y los backends intercambiables son todavía más importantes. Muchas organizaciones no pueden enviar código fuente, logs, datos de clientes o información de infraestructura a servicios públicos de modelos. Si Ubuntu conecta la AI de sistema con modelos locales, servicios privados de inferencia y permisos empresariales, puede ofrecer asistencia controlable en entornos regulados.&lt;/p&gt;
&lt;p&gt;También es una oportunidad para el escritorio y la estación de trabajo Linux. Windows y macOS pueden convertir la AI en parte del ecosistema del proveedor. La ventaja de Ubuntu está en ser abierto, auditable, reemplazable y autohospedable. Si Canonical mantiene esos principios, la AI puede reforzar la experiencia profesional en Linux.&lt;/p&gt;
&lt;h2 id=&#34;no-conviene-sobreinterpretar&#34;&gt;No conviene sobreinterpretar
&lt;/h2&gt;&lt;p&gt;Todavía es pronto para afirmar que Ubuntu vaya a preinstalar un modelo pequeño concreto, que Ubuntu 26.04 incluya un modo de auditoría de AI o que exista un comando fijo llamado &lt;code&gt;ubuntu-ai&lt;/code&gt;. Lo más claro en la información pública es la dirección, no la forma final del producto.&lt;/p&gt;
&lt;p&gt;La lectura más prudente es esta: Canonical está preparando un marco de herramientas AI a nivel de sistema para Ubuntu, empezando por ayuda en la línea de comandos, asistencia de configuración, inferencia local y elección de backend. La postura por defecto es que elija el usuario, no el sistema.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Lo interesante de la hoja de ruta de AI de Ubuntu no es que Ubuntu “se sume a la ola de AI”, sino que intenta definir una forma más contenida de integrar AI en un sistema operativo open source: la inteligencia puede ser infraestructura, pero privacidad, control y elección del usuario deben ir primero.&lt;/p&gt;
&lt;p&gt;Si las funciones experimentales de 26.10 cumplen esos principios, Ubuntu puede seguir un camino distinto al de los sistemas de consumo: AI no como un espacio inevitable dentro del sistema, sino como una capa de productividad seleccionable, reemplazable y auditable.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.tomshardware.com/software/operating-systems/ubuntus-ai-roadmap-revealed-universal-ai-kill-switch-and-forced-ai-integration-are-not-part-of-the-plan-cloud-tracking-local-inference-and-agentic-system-tools-take-center-stage&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Tom&amp;rsquo;s Hardware: Ubuntu&amp;rsquo;s AI roadmap revealed&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://discourse.ubuntu.com/t/the-future-of-ai-in-ubuntu/81130&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Ubuntu Discourse: The future of AI in Ubuntu&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Como elegir una distribucion Linux de escritorio en 2026: comparativa entre Ubuntu, Deepin/UOS, Linux Mint y Fedora</title>
        <link>https://knightli.com/es/2026/05/07/linux-desktop-distro-comparison-2026/</link>
        <pubDate>Thu, 07 May 2026 21:17:11 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/07/linux-desktop-distro-comparison-2026/</guid>
        <description>&lt;p&gt;Al elegir una distribucion Linux de escritorio en 2026, lo importante no es cual es la mas &amp;ldquo;pura&amp;rdquo; ni la mas &amp;ldquo;avanzada&amp;rdquo;, sino cual puedes usar todos los dias con comodidad.&lt;/p&gt;
&lt;p&gt;Linux de escritorio es distinto de Linux para servidores. En servidores pesan mas el ciclo de vida, la estabilidad de paquetes y las normas de operacion. En el escritorio tambien importan la interfaz, los controladores, la tienda de aplicaciones, los metodos de entrada, el software de oficina, la tarjeta grafica, Bluetooth, el audio, el panel tactil, los monitores externos y todas esas pequenas molestias del uso diario.&lt;/p&gt;
&lt;p&gt;Si quieres pelearte menos con el sistema, empieza mirando Ubuntu, Linux Mint y Deepin/UOS. Si eres desarrollador y aceptas usar una pila de software mas nueva con un ritmo tecnologico mas rapido, Fedora merece atencion.&lt;/p&gt;
&lt;h2 id=&#34;conclusion-rapida&#34;&gt;Conclusion rapida
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Distribucion&lt;/th&gt;
          &lt;th&gt;Mas adecuada para&lt;/th&gt;
          &lt;th&gt;Fortalezas principales&lt;/th&gt;
          &lt;th&gt;Puntos a tener en cuenta&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Ubuntu 26.04 LTS&lt;/td&gt;
          &lt;td&gt;Principiantes, desarrolladores, equipo principal&lt;/td&gt;
          &lt;td&gt;Mucha documentacion, ecosistema completo, buen soporte de hardware y software&lt;/td&gt;
          &lt;td&gt;GNOME por defecto requiere adaptacion; la estrategia de Snap no gusta a todos&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Deepin / UOS&lt;/td&gt;
          &lt;td&gt;Usuarios chinos, entornos localizados, quienes valoran la experiencia visual&lt;/td&gt;
          &lt;td&gt;Bonita y facil de usar, buena localizacion china, fuerte compatibilidad con software domestico y empresarial&lt;/td&gt;
          &lt;td&gt;La edicion comunitaria y la comercial tienen posiciones distintas; conviene entender su estrategia de actualizaciones&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Linux Mint&lt;/td&gt;
          &lt;td&gt;Migracion de Windows a Linux, usuarios que priorizan estabilidad&lt;/td&gt;
          &lt;td&gt;Interfaz familiar, muy facil de usar, escritorio Cinnamon estable&lt;/td&gt;
          &lt;td&gt;Ritmo mas lento en tecnologias nuevas; la pila por defecto no es agresiva&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Fedora&lt;/td&gt;
          &lt;td&gt;Desarrolladores y usuarios que quieren tecnologia Linux reciente&lt;/td&gt;
          &lt;td&gt;Kernel nuevo, GNOME nuevo, adopcion rapida de nuevas tecnologias&lt;/td&gt;
          &lt;td&gt;Actualizaciones frecuentes; menos comoda que una LTS para usuarios conservadores&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;En una frase:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Principiantes y escritorio principal&lt;/strong&gt;: Ubuntu 26.04 LTS.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Experiencia china y localizacion&lt;/strong&gt;: Deepin / UOS.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Migracion suave desde Windows&lt;/strong&gt;: Linux Mint.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Desarrolladores y exploracion de tecnologias nuevas&lt;/strong&gt;: Fedora.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;ubuntu-2604-lts-el-escritorio-todoterreno&#34;&gt;Ubuntu 26.04 LTS: el escritorio todoterreno
&lt;/h2&gt;&lt;p&gt;Ubuntu 26.04 LTS &lt;code&gt;Resolute Raccoon&lt;/code&gt; se publico en abril de 2026. Como version LTS, es adecuada para un escritorio principal de largo plazo.&lt;/p&gt;
&lt;p&gt;La ventaja de Ubuntu es muy directa: tiene mas documentacion, mas tutoriales y es mas facil encontrar respuestas cuando algo falla. Si quieres instalar VS Code, Docker, controladores NVIDIA, Steam, Chrome, Slack, JetBrains, CUDA, Python o Node.js, Ubuntu suele ser uno de los objetivos prioritarios para fabricantes y comunidad.&lt;/p&gt;
&lt;p&gt;Ubuntu 26.04 LTS es adecuada para:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;quienes usan Linux de escritorio en serio por primera vez;&lt;/li&gt;
&lt;li&gt;usuarios que quieren un sistema principal de largo plazo;&lt;/li&gt;
&lt;li&gt;desarrolladores que necesitan un entorno Linux estable;&lt;/li&gt;
&lt;li&gt;usuarios que necesitan muchos tutoriales, controladores y soporte de software comercial;&lt;/li&gt;
&lt;li&gt;quienes quieren conectar el ecosistema de escritorio, servidor y WSL.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Sus fortalezas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ciclo de vida LTS largo;&lt;/li&gt;
&lt;li&gt;imagenes oficiales y documentacion maduras;&lt;/li&gt;
&lt;li&gt;escritorio GNOME moderno, con buena experiencia en panel tactil y multiples monitores;&lt;/li&gt;
&lt;li&gt;ecosistema completo de controladores, nube, contenedores y herramientas de desarrollo;&lt;/li&gt;
&lt;li&gt;bajo coste de busqueda cuando aparece un problema.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El punto principal es que Ubuntu usa GNOME por defecto, y su logica no es igual a la de Windows. Los principiantes pueden necesitar acostumbrarse a la vista de actividades, el Dock, los espacios de trabajo y el lanzador de aplicaciones. Ubuntu tambien sigue impulsando Snap, y algunos usuarios no aprecian su velocidad de arranque, su modelo de gestion de paquetes o su estrategia de ecosistema.&lt;/p&gt;
&lt;p&gt;Mi lectura: si no sabes que distribucion de escritorio elegir, Ubuntu 26.04 LTS sigue siendo la respuesta por defecto mas segura. No es la mejor en cada aspecto aislado, pero su puntuacion global es la mas alta.&lt;/p&gt;
&lt;h2 id=&#34;deepin--uos-experiencia-de-escritorio-china-y-compatibilidad-localizada&#34;&gt;Deepin / UOS: experiencia de escritorio china y compatibilidad localizada
&lt;/h2&gt;&lt;p&gt;La fortaleza de Deepin y UOS es que entienden mejor a los usuarios chinos de escritorio.&lt;/p&gt;
&lt;p&gt;Deepin 25 se publico en 2025 y sigue recibiendo actualizaciones en 2026 mediante versiones como deepin 25.1. Las notas oficiales de deepin 25 destacan mejoras del escritorio DDE, UOS AI, el sistema inmutable Solid, la compatibilidad de aplicaciones Linyaps, el subsistema Distrobox y la vista previa del compositor de ventanas Treeland.&lt;/p&gt;
&lt;p&gt;Estas direcciones muestran que Deepin/UOS no se limita a crear una piel bonita para Linux. Intenta resolver dolores historicos del escritorio chino:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;instalacion de aplicaciones y conflictos de dependencias;&lt;/li&gt;
&lt;li&gt;compatibilidad con software domestico;&lt;/li&gt;
&lt;li&gt;calidad visual y facilidad de uso del escritorio;&lt;/li&gt;
&lt;li&gt;rollback cuando fallan las actualizaciones del sistema;&lt;/li&gt;
&lt;li&gt;entrada en chino, trabajo de oficina y ecosistema de software empresarial;&lt;/li&gt;
&lt;li&gt;compatibilidad y transicion desde aplicaciones Windows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Deepin / UOS es adecuado para:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;usuarios que valoran mas la interfaz china, los metodos de entrada, el trabajo de oficina y la localizacion;&lt;/li&gt;
&lt;li&gt;quienes quieren un escritorio Linux bonito y listo para usar;&lt;/li&gt;
&lt;li&gt;personas que trabajan en entornos de hardware y software localizados;&lt;/li&gt;
&lt;li&gt;usuarios que necesitan software de oficina empresarial, software domestico, CPU domesticas o certificaciones de compatibilidad;&lt;/li&gt;
&lt;li&gt;quienes no quieren configurar GNOME/KDE desde cero.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Fortalezas de Deepin:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;interfaz DDE unificada y cuidada;&lt;/li&gt;
&lt;li&gt;mejores detalles para usuarios chinos;&lt;/li&gt;
&lt;li&gt;tienda de aplicaciones y configuracion del sistema mas cercanas a los habitos de usuarios comunes;&lt;/li&gt;
&lt;li&gt;Linyaps, Distrobox y enfoques similares ayudan a reducir problemas de compatibilidad de aplicaciones Linux;&lt;/li&gt;
&lt;li&gt;la edicion comercial UOS tiene valor practico en escenarios de localizacion y empresa.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La advertencia clave es que la edicion comunitaria de Deepin y la edicion comercial de UOS no tienen exactamente el mismo posicionamiento. Deepin encaja mejor con la experiencia personal y los usuarios de comunidad. UOS se orienta mas a gobierno, empresa, localizacion, servicios comerciales y entornos certificados. Para entornos de oficina en produccion, hay que revisar hardware, software y requisitos de la organizacion, no solo la interfaz.&lt;/p&gt;
&lt;p&gt;Mi lectura: si eres usuario chino y te importan especialmente la apariencia, el metodo de entrada, el software domestico y la experiencia de oficina, Deepin/UOS resulta atractivo. Pero si eres un desarrollador intensivo y dependes del ecosistema Linux upstream mas estandar, Ubuntu o Fedora pueden sentirse mas fluidos.&lt;/p&gt;
&lt;h2 id=&#34;linux-mint-lo-mas-parecido-a-windows-y-lo-mas-comodo&#34;&gt;Linux Mint: lo mas parecido a Windows y lo mas comodo
&lt;/h2&gt;&lt;p&gt;La posicion de Linux Mint siempre ha sido estable: hacer que Linux sea facil para usuarios normales.&lt;/p&gt;
&lt;p&gt;En 2026, la linea principal de Linux Mint sigue alrededor de la serie 22.x y se basa en Ubuntu 24.04 LTS. Linux Mint 22.3 &lt;code&gt;Zena&lt;/code&gt; se publico a comienzos de 2026. No es una vitrina de la tecnologia mas nueva, sino un sistema de escritorio estable, familiar y con bajo coste de aprendizaje.&lt;/p&gt;
&lt;p&gt;Linux Mint es especialmente adecuado para usuarios de Windows que migran a Linux, sobre todo con el escritorio Cinnamon:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;menu en la esquina inferior izquierda;&lt;/li&gt;
&lt;li&gt;barra de tareas;&lt;/li&gt;
&lt;li&gt;bandeja del sistema;&lt;/li&gt;
&lt;li&gt;logica familiar para minimizar y maximizar ventanas;&lt;/li&gt;
&lt;li&gt;panel de configuracion;&lt;/li&gt;
&lt;li&gt;gestor de archivos;&lt;/li&gt;
&lt;li&gt;gestor de actualizaciones.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Estos detalles hacen que se parezca mucho a un escritorio Windows tradicional. Para usuarios que no quieren adaptarse al flujo de GNOME, Linux Mint es mas facil de empezar que Ubuntu.&lt;/p&gt;
&lt;p&gt;Linux Mint es adecuado para:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;usuarios que migran de Windows a Linux;&lt;/li&gt;
&lt;li&gt;instalar Linux para padres, familiares o usuarios no tecnicos;&lt;/li&gt;
&lt;li&gt;quienes quieren un escritorio estable sin perseguir tecnologias nuevas;&lt;/li&gt;
&lt;li&gt;uso de navegador, oficina, video, gestion de archivos y desarrollo ligero;&lt;/li&gt;
&lt;li&gt;personas a las que no les gusta GNOME y no quieren ajustar KDE.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Sus fortalezas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;escritorio Cinnamon intuitivo;&lt;/li&gt;
&lt;li&gt;gestor de actualizaciones amable;&lt;/li&gt;
&lt;li&gt;sistema conservador y estable;&lt;/li&gt;
&lt;li&gt;mejor trato a equipos antiguos;&lt;/li&gt;
&lt;li&gt;mucha documentacion de comunidad y relativamente pocas sorpresas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El punto clave es que Linux Mint no prioriza tecnologias nuevas. Wayland, PipeWire, los GNOME/KDE mas recientes, los kernels mas nuevos y Mesa de ultima generacion normalmente no llegan primero alli. Su objetivo es &amp;ldquo;trabajar de forma fiable hoy&amp;rdquo;, no &amp;ldquo;usar inmediatamente la tecnologia Linux de escritorio mas nueva&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Mi lectura: si quieres convertir un portatil Windows en Linux sin explicar demasiados conceptos, Linux Mint es una de las opciones mas seguras. No tiene el ecosistema comercial de Ubuntu ni la frescura de Fedora, pero la experiencia diaria es muy solida.&lt;/p&gt;
&lt;h2 id=&#34;fedora-desarrolladores-y-tecnologias-nuevas-primero&#34;&gt;Fedora: desarrolladores y tecnologias nuevas primero
&lt;/h2&gt;&lt;p&gt;Fedora es una de las primeras lineas de la tecnologia Linux de escritorio.&lt;/p&gt;
&lt;p&gt;En mayo de 2026, la version principal actual es Fedora Linux 44. Fedora Workstation lleva mucho tiempo siendo una de las distribuciones donde GNOME, Wayland, PipeWire, Mesa, el kernel, systemd y otras tecnologias aterrizan pronto.&lt;/p&gt;
&lt;p&gt;Fedora es adecuada para:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;desarrolladores Linux;&lt;/li&gt;
&lt;li&gt;usuarios de GNOME;&lt;/li&gt;
&lt;li&gt;quienes quieren kernels, Mesa, compiladores y cadenas de herramientas nuevos antes;&lt;/li&gt;
&lt;li&gt;usuarios que quieren probar pilas modernas de escritorio Linux como Wayland, PipeWire y Flatpak;&lt;/li&gt;
&lt;li&gt;quienes no temen actualizar cada seis meses.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Fortalezas de Fedora:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;adopcion rapida de tecnologias nuevas;&lt;/li&gt;
&lt;li&gt;sistema por defecto relativamente limpio;&lt;/li&gt;
&lt;li&gt;experiencia GNOME cercana a upstream;&lt;/li&gt;
&lt;li&gt;cadena de desarrollo mas reciente;&lt;/li&gt;
&lt;li&gt;integracion estrecha con Flatpak y el ecosistema de escritorio open source;&lt;/li&gt;
&lt;li&gt;soporte generalmente activo para hardware moderno.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sus advertencias tambien son claras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ciclo de vida mas corto y necesidad de actualizar con regularidad;&lt;/li&gt;
&lt;li&gt;no es ideal para personas que no quieren mantener el sistema en absoluto;&lt;/li&gt;
&lt;li&gt;NVIDIA, codecs propietarios y parte del software comercial requieren repositorios adicionales;&lt;/li&gt;
&lt;li&gt;si quieres &amp;ldquo;instalarlo y no tocarlo durante cinco anos&amp;rdquo;, Fedora encaja peor que una distribucion LTS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mi lectura: Fedora es excelente para desarrolladores, entusiastas de Linux y usuarios de tecnologias nuevas. No es el escritorio mas sencillo para usuarios corrientes, pero permite ver antes hacia donde puede ir el futuro de Linux de escritorio.&lt;/p&gt;
&lt;h2 id=&#34;como-elegir&#34;&gt;Como elegir
&lt;/h2&gt;&lt;h3 id=&#34;primera-instalacion-de-linux-para-principiantes&#34;&gt;Primera instalacion de Linux para principiantes
&lt;/h3&gt;&lt;p&gt;Elige primero Ubuntu 26.04 LTS o Linux Mint.&lt;/p&gt;
&lt;p&gt;Ubuntu destaca por documentacion y ecosistema. Linux Mint destaca por parecerse a Windows y por su bajo coste de aprendizaje. Si estas dispuesto a adaptarte a GNOME, elige Ubuntu. Si quieres que se parezca a Windows tanto como sea posible, elige Linux Mint.&lt;/p&gt;
&lt;h3 id=&#34;oficina-china-y-entornos-localizados&#34;&gt;Oficina china y entornos localizados
&lt;/h3&gt;&lt;p&gt;Mira primero Deepin / UOS.&lt;/p&gt;
&lt;p&gt;Si necesitas software de oficina domestico, navegadores domesticos, sistemas gubernamentales o empresariales, CPU domesticas o entornos de compatibilidad exigidos por la organizacion, UOS tiene mas valor practico. Los usuarios personales que quieran un escritorio chino bonito pueden mirar Deepin.&lt;/p&gt;
&lt;h3 id=&#34;equipo-principal-para-desarrolladores&#34;&gt;Equipo principal para desarrolladores
&lt;/h3&gt;&lt;p&gt;Ubuntu 26.04 LTS y Fedora merecen atencion.&lt;/p&gt;
&lt;p&gt;Si valoras estabilidad, tutoriales y soporte de software comercial, elige Ubuntu. Si quieres kernels nuevos, GNOME nuevo, toolchains recientes y la frontera de las tecnologias open source, elige Fedora.&lt;/p&gt;
&lt;h3 id=&#34;equipos-antiguos-o-domesticos&#34;&gt;Equipos antiguos o domesticos
&lt;/h3&gt;&lt;p&gt;Linux Mint es mas adecuado.&lt;/p&gt;
&lt;p&gt;Su interfaz tradicional, uso de recursos relativamente amable y baja presion de mantenimiento lo hacen mejor para equipos antiguos, maquinas domesticas de navegacion y escritorios de oficina ligera que el enfoque de Fedora en tecnologias nuevas.&lt;/p&gt;
&lt;h3 id=&#34;aigpucadenas-de-herramientas-de-desarrollo&#34;&gt;AI/GPU/cadenas de herramientas de desarrollo
&lt;/h3&gt;&lt;p&gt;Elige primero Ubuntu.&lt;/p&gt;
&lt;p&gt;NVIDIA drivers, CUDA, PyTorch, TensorFlow, Docker, VS Code, JetBrains y herramientas similares siguen usando Ubuntu con mucha frecuencia en guias oficiales y tutoriales. Fedora tambien puede funcionar, pero resolver problemas suele requerir mas experiencia con Linux.&lt;/p&gt;
&lt;h2 id=&#34;que-revisar-antes-de-elegir&#34;&gt;Que revisar antes de elegir
&lt;/h2&gt;&lt;p&gt;No juzgues Linux de escritorio solo por capturas de pantalla. La experiencia real depende de estos detalles:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;si los controladores graficos son estables, sobre todo NVIDIA;&lt;/li&gt;
&lt;li&gt;si Wi-Fi, Bluetooth, huella digital y camara funcionan correctamente;&lt;/li&gt;
&lt;li&gt;si monitores externos, escalado y configuracion multimonitor resultan comodos;&lt;/li&gt;
&lt;li&gt;si los metodos de entrada en chino funcionan bien;&lt;/li&gt;
&lt;li&gt;si las aplicaciones comunes tienen paquetes oficiales o versiones Flatpak;&lt;/li&gt;
&lt;li&gt;si las actualizaciones del sistema son faciles de entender;&lt;/li&gt;
&lt;li&gt;si es facil encontrar soluciones cuando aparecen problemas;&lt;/li&gt;
&lt;li&gt;si puedes aceptar el flujo de trabajo del escritorio por defecto.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Mucha gente fracasa al cambiar a Linux no porque el kernel sea debil, sino porque el metodo de entrada, el escalado, WeChat, la banca online, la impresora o los controladores graficos se sienten mal en el uso diario.&lt;/p&gt;
&lt;h2 id=&#34;mis-recomendaciones&#34;&gt;Mis recomendaciones
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Escenario&lt;/th&gt;
          &lt;th&gt;Recomendacion&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Escritorio principal para principiantes&lt;/td&gt;
          &lt;td&gt;Ubuntu 26.04 LTS&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Migracion desde Windows&lt;/td&gt;
          &lt;td&gt;Linux Mint&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Escritorio chino bonito&lt;/td&gt;
          &lt;td&gt;Deepin&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Oficina localizada / entorno gubernamental y empresarial&lt;/td&gt;
          &lt;td&gt;UOS&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Entorno estable para desarrolladores&lt;/td&gt;
          &lt;td&gt;Ubuntu 26.04 LTS&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Experiencia con tecnologia Linux reciente&lt;/td&gt;
          &lt;td&gt;Fedora Linux 44&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Equipo antiguo para oficina ligera&lt;/td&gt;
          &lt;td&gt;Linux Mint&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Desarrollo AI/GPU&lt;/td&gt;
          &lt;td&gt;Ubuntu 26.04 LTS&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;conclusion-breve&#34;&gt;Conclusion breve
&lt;/h2&gt;&lt;p&gt;Ubuntu 26.04 LTS es la opcion de escritorio todoterreno mas segura en 2026, adecuada para principiantes, desarrolladores y equipos principales.&lt;/p&gt;
&lt;p&gt;Deepin/UOS es fuerte en experiencia china, diseno visual y compatibilidad localizada, adecuado para usuarios que valoran la experiencia local y los entornos gubernamentales o empresariales.&lt;/p&gt;
&lt;p&gt;Linux Mint es extremadamente facil de usar y estable, especialmente para una migracion suave de Windows a Linux.&lt;/p&gt;
&lt;p&gt;Fedora destaca en tecnologia nueva y experiencia para desarrolladores, y encaja con usuarios dispuestos a seguir la vanguardia del escritorio Linux.&lt;/p&gt;
&lt;p&gt;La calidad de un sistema de escritorio depende al final de si quieres seguir usandolo cada dia despues de encender el ordenador. Una distribucion con la que puedas vivir comodamente importa mas que una que se vea mejor en una tabla de parametros.&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Ubuntu 26.04 LTS: &lt;a class=&#34;link&#34; href=&#34;https://releases.ubuntu.com/26.04/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://releases.ubuntu.com/26.04/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;deepin 25 Release Note: &lt;a class=&#34;link&#34; href=&#34;https://www.deepin.org/en/deepin-25-release/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.deepin.org/en/deepin-25-release/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;deepin 25.1.0 Release Note: &lt;a class=&#34;link&#34; href=&#34;https://www.deepin.org/en/deepin-25-1-release/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.deepin.org/en/deepin-25-1-release/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Linux Mint website: &lt;a class=&#34;link&#34; href=&#34;https://linuxmint.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://linuxmint.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fedora Workstation: &lt;a class=&#34;link&#34; href=&#34;https://fedoraproject.org/workstation/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://fedoraproject.org/workstation/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Fedora Release Notes: &lt;a class=&#34;link&#34; href=&#34;https://docs.fedoraproject.org/en-US/fedora/latest/release-notes/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.fedoraproject.org/en-US/fedora/latest/release-notes/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Como elegir una distribucion Linux para servidores en 2026: comparativa entre Debian, Rocky Linux, AlmaLinux y Ubuntu Server</title>
        <link>https://knightli.com/es/2026/05/07/linux-server-distro-comparison-2026/</link>
        <pubDate>Thu, 07 May 2026 21:03:12 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/07/linux-server-distro-comparison-2026/</guid>
        <description>&lt;p&gt;Al elegir una distribucion Linux para servidores en 2026, la pregunta clave no es &amp;ldquo;cual es la mejor&amp;rdquo;, sino &amp;ldquo;cual encaja con tu modelo de operaciones&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Si necesitas la distribucion comunitaria mas estable, Debian sigue siendo una de las mejores opciones. Si necesitas el ecosistema compatible con RHEL pero no quieres comprar RHEL directamente, Rocky Linux y AlmaLinux son los sucesores mas naturales de CentOS. Si lo que mas te importa son las imagenes cloud, la documentacion, el despliegue rapido y paquetes mas recientes, Ubuntu Server sigue siendo el camino mas sencillo.&lt;/p&gt;
&lt;p&gt;A continuacion va una comparativa practica desde la perspectiva de servidor.&lt;/p&gt;
&lt;h2 id=&#34;conclusion-rapida&#34;&gt;Conclusion rapida
&lt;/h2&gt;&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Distribucion&lt;/th&gt;
          &lt;th&gt;Mas adecuada para&lt;/th&gt;
          &lt;th&gt;Fortalezas principales&lt;/th&gt;
          &lt;th&gt;Puntos a tener en cuenta&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Debian&lt;/td&gt;
          &lt;td&gt;Estabilidad a largo plazo, self-hosting, servicios basicos&lt;/td&gt;
          &lt;td&gt;Estable, limpia, comunidad fuerte, profunda tradicion de software libre&lt;/td&gt;
          &lt;td&gt;Los paquetes por defecto son conservadores; el soporte comercial empresarial es menos explicito que en RHEL/Ubuntu&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Rocky Linux&lt;/td&gt;
          &lt;td&gt;Entornos de produccion compatibles con RHEL&lt;/td&gt;
          &lt;td&gt;Cerca de los habitos de RHEL, adecuada para migraciones empresariales desde CentOS&lt;/td&gt;
          &lt;td&gt;Cadencia de paquetes conservadora; el escritorio y la experiencia con tecnologias nuevas no son el foco&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;AlmaLinux&lt;/td&gt;
          &lt;td&gt;Produccion compatible con RHEL, cloud, reemplazo empresarial&lt;/td&gt;
          &lt;td&gt;Compatible con RHEL, comunidad activa, ciclo de vida claro&lt;/td&gt;
          &lt;td&gt;Aun tiene algunas diferencias frente a RHEL; conviene leer las notas de version&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Ubuntu Server&lt;/td&gt;
          &lt;td&gt;Servidores cloud, contenedores, despliegue de desarrollo&lt;/td&gt;
          &lt;td&gt;Buen soporte cloud, mucha documentacion, despliegue rapido, largo ciclo LTS&lt;/td&gt;
          &lt;td&gt;Snap, kernels HWE y PPAs necesitan reglas de equipo&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;En una frase:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Eleccion general mas segura&lt;/strong&gt;: Debian.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reemplazo del ecosistema RHEL empresarial&lt;/strong&gt;: Rocky Linux / AlmaLinux.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloud y eficiencia de desarrollo primero&lt;/strong&gt;: Ubuntu Server.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;debian-estabilidad-a-prueba-de-anos&#34;&gt;Debian: estabilidad a prueba de anos
&lt;/h2&gt;&lt;p&gt;En mayo de 2026, la version estable actual de Debian es Debian 13 &lt;code&gt;trixie&lt;/code&gt;. Debian 12 &lt;code&gt;bookworm&lt;/code&gt; paso a oldstable y sigue recibiendo seguridad y soporte LTS, pero los despliegues nuevos de servidor normalmente deberian partir de Debian 13.&lt;/p&gt;
&lt;p&gt;Las caracteristicas de Debian siempre han sido claras:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;seleccion conservadora de paquetes por defecto;&lt;/li&gt;
&lt;li&gt;estructura de sistema limpia;&lt;/li&gt;
&lt;li&gt;sin una fuerte dependencia de un proveedor comercial;&lt;/li&gt;
&lt;li&gt;gobernanza comunitaria madura;&lt;/li&gt;
&lt;li&gt;muy adecuada para servicios basicos de larga duracion.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Debian se siente comoda si tus servidores ejecutan principalmente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nginx / Apache;&lt;/li&gt;
&lt;li&gt;PostgreSQL / MariaDB / Redis;&lt;/li&gt;
&lt;li&gt;Docker / Podman;&lt;/li&gt;
&lt;li&gt;WireGuard / Tailscale;&lt;/li&gt;
&lt;li&gt;servicios de archivos, copias de seguridad y monitorizacion;&lt;/li&gt;
&lt;li&gt;pequenas aplicaciones self-hosted.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La ventaja de Debian no es ser &amp;ldquo;la mas nueva&amp;rdquo;, sino exigir menos pelea. Muchos servidores pueden funcionar durante anos con actualizaciones normales de seguridad y mantenimiento menor.&lt;/p&gt;
&lt;p&gt;Debian es adecuada cuando:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;quieres que el sistema siga siendo simple y no quede demasiado condicionado por la estrategia de un proveedor;&lt;/li&gt;
&lt;li&gt;conoces &lt;code&gt;apt&lt;/code&gt;, systemd y la disposicion de archivos de Debian;&lt;/li&gt;
&lt;li&gt;aceptas que las versiones de software no sean las mas recientes;&lt;/li&gt;
&lt;li&gt;valoras mas estabilidad, actualizaciones de seguridad y upgrades predecibles.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Debian es menos adecuada cuando:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;un proveedor solo certifica RHEL o Ubuntu;&lt;/li&gt;
&lt;li&gt;necesitas soporte comercial empresarial con SLA;&lt;/li&gt;
&lt;li&gt;dependes del kernel mas nuevo, una pila GPU reciente o soporte para hardware muy nuevo;&lt;/li&gt;
&lt;li&gt;tu equipo ya construyo sus estandares de operacion alrededor del ecosistema RHEL.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Mi lectura: para servidores personales, self-hosting, SaaS ligero e infraestructura de equipos pequenos, Debian sigue siendo una excelente primera opcion.&lt;/p&gt;
&lt;h2 id=&#34;rocky-linux-un-sucesor-estable-de-centos&#34;&gt;Rocky Linux: un sucesor estable de CentOS
&lt;/h2&gt;&lt;p&gt;Rocky Linux tiene una posicion clara: sirve a usuarios que necesitan el ecosistema compatible con RHEL y continua el papel que CentOS Linux tuvo en entornos empresariales de produccion.&lt;/p&gt;
&lt;p&gt;En 2026, tanto Rocky Linux 9 como Rocky Linux 10 estan dentro de sus periodos de soporte. Rocky Linux 9 encaja mejor en entornos de produccion mas conservadores, mientras que Rocky Linux 10 es mas adecuado para proyectos nuevos, hardware mas reciente y una pista de futuro mas larga.&lt;/p&gt;
&lt;p&gt;Rocky Linux encaja en escenarios como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;entornos empresariales que antes usaban CentOS 7 / CentOS 8;&lt;/li&gt;
&lt;li&gt;estructura de directorios, nombres de paquetes y habitos de operacion estilo RHEL;&lt;/li&gt;
&lt;li&gt;dependencia de &lt;code&gt;dnf&lt;/code&gt;, RPM, SELinux y firewalld;&lt;/li&gt;
&lt;li&gt;proveedores de software que soportan explicitamente distribuciones compatibles con RHEL;&lt;/li&gt;
&lt;li&gt;scripts internos de automatizacion escritos alrededor de Enterprise Linux.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Su ventaja es la baja friccion de migracion. Muchos equipos tienen anos de playbooks Ansible, reglas de monitorizacion, scripts de auditoria y lineas base de seguridad basadas en CentOS. Migrar a Rocky Linux resulta mentalmente mucho mas sencillo que migrar a Debian o Ubuntu.&lt;/p&gt;
&lt;p&gt;Cosas a tener en cuenta sobre Rocky Linux:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;los paquetes son conservadores por diseno; es una caracteristica de Enterprise Linux, no un defecto;&lt;/li&gt;
&lt;li&gt;componentes de espacio de usuario muy nuevos pueden requerir EPEL, repositorios de terceros o contenedores;&lt;/li&gt;
&lt;li&gt;compatibilidad con RHEL no significa que todo proveedor comercial ofrezca automaticamente soporte formal, asi que revisa las listas de certificacion;&lt;/li&gt;
&lt;li&gt;Rocky Linux 10 tiene nuevas bases de hardware y requisitos de ecosistema, por lo que conviene validarlo antes de produccion.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mi lectura: si tu entorno de servidores ya se basa en CentOS / RHEL, Rocky Linux es un reemplazo muy natural, especialmente para entornos de produccion estables y servicios empresariales internos.&lt;/p&gt;
&lt;h2 id=&#34;almalinux-una-ruta-compatible-con-rhel-mas-proactiva&#34;&gt;AlmaLinux: una ruta compatible con RHEL mas proactiva
&lt;/h2&gt;&lt;p&gt;AlmaLinux es otro sucesor importante de CentOS. Tambien es de grado empresarial, con soporte a largo plazo y compatible con RHEL.&lt;/p&gt;
&lt;p&gt;Comparte muchos rasgos con Rocky Linux:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ambas apuntan al ecosistema compatible con RHEL;&lt;/li&gt;
&lt;li&gt;ambas encajan en entornos de produccion de servidores;&lt;/li&gt;
&lt;li&gt;ambas tienen lineas 8, 9 y 10 con soporte a largo plazo;&lt;/li&gt;
&lt;li&gt;ambas son adecuadas para migrar desde CentOS;&lt;/li&gt;
&lt;li&gt;ambas pueden usar gran parte de las herramientas del ecosistema Enterprise Linux.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La diferencia es que AlmaLinux es mas proactiva documentando y gestionando diferencias upstream mientras mantiene compatibilidad con RHEL. Por ejemplo, AlmaLinux 10 ofrece una opcion de arquitectura &lt;code&gt;x86-64-v2&lt;/code&gt; para hardware mas antiguo y documenta claramente sus diferencias frente a RHEL en las notas de version.&lt;/p&gt;
&lt;p&gt;Esto resulta util para algunos usuarios: quieren permanecer en el ecosistema RHEL, pero tambien desean una distribucion comunitaria con mas flexibilidad alrededor de soporte de hardware, builds de paquetes y compatibilidad con EPEL.&lt;/p&gt;
&lt;p&gt;AlmaLinux es adecuada cuando:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;necesitas compatibilidad con RHEL pero no quieres quedar completamente limitado por la estrategia de lanzamientos de RHEL;&lt;/li&gt;
&lt;li&gt;valoras la gobernanza comunitaria y notas de version transparentes;&lt;/li&gt;
&lt;li&gt;necesitas una base estable para plataformas cloud, imagenes de contenedor y cargas empresariales;&lt;/li&gt;
&lt;li&gt;quieres una migracion suave desde CentOS o Enterprise Linux antiguo.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;La advertencia clave: AlmaLinux no es &amp;ldquo;identica a RHEL con los ojos cerrados&amp;rdquo;. En escenarios de cumplimiento estricto, certificacion de proveedor, certificacion de bases de datos o certificacion de hardware, confirma si el proveedor soporta AlmaLinux explicitamente.&lt;/p&gt;
&lt;p&gt;Mi lectura: Rocky Linux y AlmaLinux pueden reemplazar CentOS. Si prefieres una historia mas conservadora y tradicional al estilo CentOS, mira Rocky. Si valoras transparencia comunitaria y una ruta de compatibilidad mas flexible, mira AlmaLinux.&lt;/p&gt;
&lt;h2 id=&#34;ubuntu-server-el-mejor-soporte-cloud-y-eficiencia-de-despliegue&#34;&gt;Ubuntu Server: el mejor soporte cloud y eficiencia de despliegue
&lt;/h2&gt;&lt;p&gt;La ventaja de Ubuntu Server es practica: plataformas cloud, documentacion, tutoriales de comunidad, imagenes, herramientas de automatizacion y ecosistema de desarrollo son todos fuertes.&lt;/p&gt;
&lt;p&gt;Para despliegues nuevos de servidor en 2026, la opcion principal sigue siendo Ubuntu 24.04 LTS. Ubuntu LTS suele tener 5 anos de soporte estandar y puede extenderse mediante ESM. Para servidores cloud, hosts de contenedores, entornos de desarrollo y nodos CI/CD, Ubuntu Server suele ser la forma mas rapida de ponerse en marcha.&lt;/p&gt;
&lt;p&gt;Ubuntu Server encaja con:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;AWS, Azure, Google Cloud, Oracle Cloud, Alibaba Cloud, Tencent Cloud y otros servidores cloud;&lt;/li&gt;
&lt;li&gt;Docker, Kubernetes, GitLab Runner, CI/CD;&lt;/li&gt;
&lt;li&gt;entornos de desarrollo AI / GPU / CUDA;&lt;/li&gt;
&lt;li&gt;equipos que necesitan muchos tutoriales y recetas de comunidad;&lt;/li&gt;
&lt;li&gt;entornos donde desarrollo y produccion deberian mantenerse parecidos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Fortalezas de Ubuntu:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;imagenes cloud de alta calidad;&lt;/li&gt;
&lt;li&gt;mucha documentacion oficial y de terceros;&lt;/li&gt;
&lt;li&gt;soporte para hardware nuevo a menudo mas activo;&lt;/li&gt;
&lt;li&gt;cadencia LTS clara;&lt;/li&gt;
&lt;li&gt;actualizaciones comodas de toolchains para desarrolladores;&lt;/li&gt;
&lt;li&gt;muchos proveedores comerciales publican primero instrucciones de instalacion para Ubuntu.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cosas a vigilar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;no a todos los equipos les gusta Snap en servidores, asi que conviene decidir la politica por adelantado;&lt;/li&gt;
&lt;li&gt;los PPAs son comodos, pero abusar de ellos en produccion aumenta el riesgo de mantenimiento;&lt;/li&gt;
&lt;li&gt;elige claramente entre kernel HWE, kernel cloud y kernel estandar;&lt;/li&gt;
&lt;li&gt;para puristas de estabilidad minima, el sistema por defecto de Ubuntu se siente mas cargado que Debian.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mi lectura: si ejecutas sobre todo servidores cloud, contenedores, despliegues de desarrollo o toolchains de AI, Ubuntu Server suele ser la opcion mas eficiente. No es la distribucion mas &amp;ldquo;pura&amp;rdquo;, pero reduce mucho el tiempo de busqueda y la friccion en muchas tareas.&lt;/p&gt;
&lt;h2 id=&#34;como-elegir-entre-las-cuatro&#34;&gt;Como elegir entre las cuatro
&lt;/h2&gt;&lt;h3 id=&#34;vps-personal--self-hosting&#34;&gt;VPS personal / self-hosting
&lt;/h3&gt;&lt;p&gt;Debian o Ubuntu Server primero.&lt;/p&gt;
&lt;p&gt;Si quieres estabilidad, bajo mantenimiento y menos complicaciones, elige Debian. Si sigues tutoriales a menudo para desplegar proyectos nuevos o necesitas una pila de software mas reciente, elige Ubuntu Server.&lt;/p&gt;
&lt;h3 id=&#34;produccion-empresarial&#34;&gt;Produccion empresarial
&lt;/h3&gt;&lt;p&gt;Rocky Linux, AlmaLinux o RHEL primero.&lt;/p&gt;
&lt;p&gt;Si la empresa usaba CentOS antes, migrar a Rocky / Alma es el camino mas barato. Si hay bases de datos comerciales, certificacion de hardware, cumplimiento de seguridad o soporte de proveedor, revisa primero las listas de certificacion.&lt;/p&gt;
&lt;h3 id=&#34;cloud-native-y-hosts-de-contenedores&#34;&gt;Cloud native y hosts de contenedores
&lt;/h3&gt;&lt;p&gt;Ubuntu Server, Debian y Rocky / Alma pueden funcionar.&lt;/p&gt;
&lt;p&gt;Si el equipo valora eficiencia de desarrollo, elige Ubuntu Server. Si quieres estabilidad minima, elige Debian. Si el estandar empresarial se basa en RHEL, elige Rocky / Alma.&lt;/p&gt;
&lt;h3 id=&#34;servidores-ai--gpu&#34;&gt;Servidores AI / GPU
&lt;/h3&gt;&lt;p&gt;Mira primero Ubuntu Server, luego Rocky / Alma.&lt;/p&gt;
&lt;p&gt;La razon es simple: NVIDIA, CUDA, PyTorch, TensorFlow, tutoriales de instalacion de drivers y experiencia de comunidad suelen ser mas abundantes en Ubuntu. Los clusters GPU empresariales construidos alrededor del ecosistema RHEL pueden elegir Rocky / Alma, pero drivers, CUDA, runtime de contenedores y herramientas de monitorizacion deberian validarse por adelantado.&lt;/p&gt;
&lt;h3 id=&#34;sistemas-de-negocio-tradicionales&#34;&gt;Sistemas de negocio tradicionales
&lt;/h3&gt;&lt;p&gt;Rocky Linux / AlmaLinux primero.&lt;/p&gt;
&lt;p&gt;Java tradicional, bases de datos, middleware, software comercial, auditoria y estandares de operacion suelen inclinarse hacia el ecosistema RHEL. En ese caso, Rocky / Alma encaja con sistemas existentes mas facilmente que Debian / Ubuntu.&lt;/p&gt;
&lt;h2 id=&#34;que-revisar-antes-de-elegir&#34;&gt;Que revisar antes de elegir
&lt;/h2&gt;&lt;p&gt;No elijas solo por el nombre de la distribucion. Para seleccionar un servidor, juzga con estas preguntas:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Ciclo de vida&lt;/strong&gt;: hasta que ano se mantiene esta version?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ruta de upgrade&lt;/strong&gt;: el upgrade de version mayor esta maduro? Hay migracion fluida?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fuentes de software&lt;/strong&gt;: dependes de repositorios de terceros? Quien los mantiene?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Actualizaciones de seguridad&lt;/strong&gt;: estan claros los avisos de seguridad, la cadencia de parches y el manejo de CVE?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Soporte de hardware&lt;/strong&gt;: se validaron CPU, NIC, RAID, GPU y controladoras de almacenamiento?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Experiencia del equipo&lt;/strong&gt;: el equipo conoce mejor &lt;code&gt;apt&lt;/code&gt; o &lt;code&gt;dnf&lt;/code&gt;? Sistemas estilo Debian o estilo RHEL?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Certificacion de proveedores&lt;/strong&gt;: el software de negocio soporta explicitamente esta distribucion?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Activos de automatizacion&lt;/strong&gt;: se pueden reutilizar scripts existentes de Ansible, Terraform y construccion de imagenes?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;El coste real no suele ser la ISO de instalacion. Son los upgrades, auditorias, diagnosticos y traspasos durante los proximos cinco anos.&lt;/p&gt;
&lt;h2 id=&#34;mis-recomendaciones-por-defecto&#34;&gt;Mis recomendaciones por defecto
&lt;/h2&gt;&lt;p&gt;Si tuviera que dar una guia de seleccion de servidores para 2026:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Escenario&lt;/th&gt;
          &lt;th&gt;Recomendacion&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;VPS personal, self-hosting&lt;/td&gt;
          &lt;td&gt;Debian 13&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Servidor cloud, despliegue rapido&lt;/td&gt;
          &lt;td&gt;Ubuntu Server 24.04 LTS&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Migracion desde CentOS&lt;/td&gt;
          &lt;td&gt;Rocky Linux 9 / AlmaLinux 9&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Proyecto empresarial nuevo&lt;/td&gt;
          &lt;td&gt;Rocky Linux 10 / AlmaLinux 10, tras validar el ecosistema&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Desarrollo AI / GPU&lt;/td&gt;
          &lt;td&gt;Ubuntu Server 24.04 LTS&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Produccion comercial con cumplimiento estricto&lt;/td&gt;
          &lt;td&gt;RHEL, o Rocky / Alma tras confirmar soporte de proveedor&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;conclusion-breve&#34;&gt;Conclusion breve
&lt;/h2&gt;&lt;p&gt;Las palabras clave de Debian son estabilidad, simplicidad, comunidad y tradicion de software libre. Es adecuada para servidores base de larga duracion.&lt;/p&gt;
&lt;p&gt;Rocky Linux y AlmaLinux tratan sobre compatibilidad con RHEL, produccion empresarial y reemplazo de CentOS. Encajan con equipos que ya tienen sistemas de operacion basados en Enterprise Linux.&lt;/p&gt;
&lt;p&gt;Ubuntu Server trata sobre cloud, documentacion, eficiencia de desarrollo y ecosistema completo. Encaja con despliegue rapido, contenedores, AI/GPU y servidores cloud.&lt;/p&gt;
&lt;p&gt;No existe una distribucion correcta para siempre. Solo existe la distribucion que mejor encaja con tu equipo, negocio, hardware y ciclo de vida. La mejor eleccion de servidor no suele ser la mas popular, sino la que seguiras dispuesto a mantener dentro de cinco anos.&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Debian Releases: &lt;a class=&#34;link&#34; href=&#34;https://www.debian.org/releases/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.debian.org/releases/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Ubuntu Releases: &lt;a class=&#34;link&#34; href=&#34;https://releases.ubuntu.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://releases.ubuntu.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Rocky Linux Release and Version Guide: &lt;a class=&#34;link&#34; href=&#34;https://wiki.rockylinux.org/rocky/version/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://wiki.rockylinux.org/rocky/version/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;AlmaLinux Release Notes: &lt;a class=&#34;link&#34; href=&#34;https://wiki.almalinux.org/release-notes/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://wiki.almalinux.org/release-notes/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cómo controlar el orden de borrado en fdupes: conservar duplicados por prioridad de directorio</title>
        <link>https://knightli.com/es/2026/05/06/fdupes-delete-duplicates-by-directory-priority/</link>
        <pubDate>Wed, 06 May 2026 09:23:09 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/06/fdupes-delete-duplicates-by-directory-priority/</guid>
        <description>&lt;p&gt;Al usar &lt;code&gt;fdupes&lt;/code&gt; para eliminar archivos duplicados entre tres directorios, como &lt;code&gt;a&lt;/code&gt;, &lt;code&gt;b&lt;/code&gt; y &lt;code&gt;c&lt;/code&gt;, si quieres conservar primero &lt;code&gt;a&lt;/code&gt;, luego &lt;code&gt;b&lt;/code&gt;, y eliminar primero los duplicados de &lt;code&gt;c&lt;/code&gt;, la clave no es una regla compleja. Es el orden de los argumentos de directorio.&lt;/p&gt;
&lt;p&gt;En modo de borrado no interactivo, &lt;code&gt;fdupes&lt;/code&gt; conserva el primer archivo que ve en cada grupo de duplicados y elimina los duplicados posteriores. Por tanto, los argumentos de directorio deben ordenarse de mayor prioridad de conservación a menor.&lt;/p&gt;
&lt;p&gt;En otras palabras, para lograr &amp;ldquo;eliminar primero de c, luego de b, y conservar a tanto como sea posible&amp;rdquo;, escribe el comando así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;fdupes -rdN a b c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El orden de escaneo es &lt;code&gt;a -&amp;gt; b -&amp;gt; c&lt;/code&gt;. Cuando el mismo archivo existe en los tres directorios, el archivo de &lt;code&gt;a&lt;/code&gt; se encuentra primero y se conserva, mientras que los duplicados de &lt;code&gt;b&lt;/code&gt; y &lt;code&gt;c&lt;/code&gt; se eliminan. Si solo &lt;code&gt;b&lt;/code&gt; y &lt;code&gt;c&lt;/code&gt; contienen duplicados, se conserva &lt;code&gt;b&lt;/code&gt; y se elimina &lt;code&gt;c&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;significado-de-los-parámetros&#34;&gt;Significado de los parámetros
&lt;/h2&gt;&lt;p&gt;Los parámetros comunes son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-r&lt;/code&gt;: escanear subdirectorios de forma recursiva.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-d&lt;/code&gt;: eliminar archivos duplicados.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-N&lt;/code&gt;: cuando se usa con &lt;code&gt;-d&lt;/code&gt;, omitir la confirmación interactiva, conservar el primer archivo de cada grupo de duplicados y eliminar el resto.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Por tanto, el formato básico para eliminación automática de duplicados es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;fdupes -rdN 目录A 目录B 目录C
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cuanto antes aparece un directorio, mayor es su prioridad de conservación. Cuanto más tarde aparece, más probable es que sus archivos duplicados sean eliminados.&lt;/p&gt;
&lt;h2 id=&#34;previsualizar-antes-de-eliminar&#34;&gt;Previsualizar antes de eliminar
&lt;/h2&gt;&lt;p&gt;Usar &lt;code&gt;-dN&lt;/code&gt; elimina archivos directamente, así que es mejor previsualizar primero los grupos de duplicados:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;fdupes -r a b c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La salida se agrupa por archivos duplicados. En cada grupo, el archivo mostrado antes es el que más probablemente se conservará en modo de borrado no interactivo.&lt;/p&gt;
&lt;p&gt;También puedes ver información de resumen:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;fdupes -rm a b c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si los datos son importantes, guarda el resultado e inspecciónalo manualmente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;fdupes -r a b c &amp;gt; duplicates.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después de confirmar que el orden dentro de cada grupo de duplicados coincide con lo esperado, ejecuta:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;fdupes -rdN a b c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;cómo-se-manejan-los-subdirectorios&#34;&gt;Cómo se manejan los subdirectorios
&lt;/h2&gt;&lt;p&gt;Mientras &lt;code&gt;-r&lt;/code&gt; esté activado, &lt;code&gt;fdupes&lt;/code&gt; escanea recursivamente todos los archivos bajo los directorios que pasas. La prioridad de conservación sigue determinada por el orden en que las rutas aparecen en el comando.&lt;/p&gt;
&lt;p&gt;Por ejemplo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;fdupes -rdN dir_a dir_b dir_c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto significa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;dir_a&lt;/code&gt; tiene la prioridad más alta.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dir_b&lt;/code&gt; viene después.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;dir_c&lt;/code&gt; tiene la prioridad más baja.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si &lt;code&gt;dir_a/sub1/file.txt&lt;/code&gt; y &lt;code&gt;dir_c/sub1/file.txt&lt;/code&gt; tienen contenido idéntico, se conserva el archivo bajo &lt;code&gt;dir_a&lt;/code&gt;. Si &lt;code&gt;dir_a/x/y/file.txt&lt;/code&gt; y &lt;code&gt;dir_c/file.txt&lt;/code&gt; tienen contenido idéntico, el archivo bajo &lt;code&gt;dir_a&lt;/code&gt; también se conserva primero. &lt;code&gt;fdupes&lt;/code&gt; compara contenido de archivos; los nombres y la profundidad de directorio no tienen que coincidir.&lt;/p&gt;
&lt;h2 id=&#34;controlar-con-precisión-la-prioridad-de-subdirectorios&#34;&gt;Controlar con precisión la prioridad de subdirectorios
&lt;/h2&gt;&lt;p&gt;Si solo pasas directorios padre, el orden de escaneo dentro de subdirectorios depende del comportamiento de recorrido de &lt;code&gt;fdupes&lt;/code&gt;. Esto basta en la mayoría de casos. Pero si quieres que un subdirectorio específico tenga más prioridad, escríbelo explícitamente antes de su directorio padre.&lt;/p&gt;
&lt;p&gt;Por ejemplo, supón que quieres conservar primero &lt;code&gt;dir_a&lt;/code&gt;, luego &lt;code&gt;dir_b/special&lt;/code&gt;, después procesar el resto de &lt;code&gt;dir_b&lt;/code&gt;, y finalmente procesar &lt;code&gt;dir_c&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;fdupes -rdN dir_a dir_b/special dir_b dir_c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Esto hace que &lt;code&gt;dir_b/special&lt;/code&gt; se escanee antes que &lt;code&gt;dir_b&lt;/code&gt;. Cuando &lt;code&gt;dir_b&lt;/code&gt; se escanea después, los archivos bajo &lt;code&gt;special&lt;/code&gt; ya han sido registrados, así que ese subdirectorio tiene efectivamente mayor prioridad que el resto de &lt;code&gt;dir_b&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Este patrón es útil cuando:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;a&lt;/code&gt; es el directorio base más importante.&lt;/li&gt;
&lt;li&gt;Un subdirectorio dentro de &lt;code&gt;b&lt;/code&gt; es más importante que el resto de &lt;code&gt;b&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;c&lt;/code&gt; es principalmente un directorio de respaldo de baja prioridad.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El orden de rutas puede extenderse más:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;fdupes -rdN a b/important b c/keep-first c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La regla sigue siendo la misma: cuanto antes aparece, más probable es que se conserve.&lt;/p&gt;
&lt;h2 id=&#34;usar-una-lista-para-muchos-directorios&#34;&gt;Usar una lista para muchos directorios
&lt;/h2&gt;&lt;p&gt;Si hay muchos directorios y subdirectorios, escribir manualmente un comando largo es propenso a errores. Puedes escribir las rutas en un archivo de texto como &lt;code&gt;folders.txt&lt;/code&gt;, ordenadas por prioridad:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir_a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir_b/sub_important
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir_b
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir_c/sub_1
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir_c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego pásalas a &lt;code&gt;fdupes&lt;/code&gt; con &lt;code&gt;xargs&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat folders.txt &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; xargs fdupes -rdN
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si las rutas pueden contener espacios, usa entrada separada por nulos para mayor seguridad:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tr &lt;span class=&#34;s1&#34;&gt;&amp;#39;\n&amp;#39;&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;\0&amp;#39;&lt;/span&gt; &amp;lt; folders.txt &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; xargs -0 fdupes -rdN
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;límites-importantes&#34;&gt;Límites importantes
&lt;/h2&gt;&lt;p&gt;Primero, &lt;code&gt;fdupes&lt;/code&gt; compara contenido de archivos, no nombres. Dos archivos con nombres completamente distintos pueden tratarse como duplicados si su contenido es idéntico.&lt;/p&gt;
&lt;p&gt;Segundo, si el directorio &lt;code&gt;a&lt;/code&gt; contiene duplicados internamente, &lt;code&gt;fdupes -rdN a b c&lt;/code&gt; también puede eliminar duplicados posteriores dentro de &lt;code&gt;a&lt;/code&gt;. Este comando significa &amp;ldquo;conservar el primer archivo según el orden global de escaneo&amp;rdquo;, no &amp;ldquo;no eliminar nunca nada bajo a&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Tercero, por defecto, &lt;code&gt;fdupes&lt;/code&gt; no sigue enlaces simbólicos. Si necesitas manejar archivos detrás de symlinks, confirma si necesitas &lt;code&gt;-s&lt;/code&gt; y si eso coincide con tus expectativas de seguridad de datos.&lt;/p&gt;
&lt;p&gt;Cuarto, &lt;code&gt;fdupes&lt;/code&gt; solo elimina archivos duplicados. No limpia directorios vacíos. Después de eliminar, si &lt;code&gt;b&lt;/code&gt; y &lt;code&gt;c&lt;/code&gt; contienen carpetas vacías, puedes ejecutar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;find b c -type d -empty -delete
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;hábito-de-operación-más-seguro&#34;&gt;Hábito de operación más seguro
&lt;/h2&gt;&lt;p&gt;Si los directorios contienen datos importantes, no empieces con &lt;code&gt;-rdN&lt;/code&gt;. Un flujo más seguro es:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Ejecutar primero &lt;code&gt;fdupes -r a b c&lt;/code&gt; para ver grupos de duplicados.&lt;/li&gt;
&lt;li&gt;Confirmar que el primer archivo de cada grupo es el que quieres conservar.&lt;/li&gt;
&lt;li&gt;Luego ejecutar &lt;code&gt;fdupes -rdN a b c&lt;/code&gt; para eliminación automática.&lt;/li&gt;
&lt;li&gt;Después de eliminar, revisar si hay que limpiar directorios vacíos.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Si te preocupa mucho eliminar archivos bajo &lt;code&gt;a&lt;/code&gt; por accidente, primero limpia un rango más pequeño de directorios de baja prioridad, o exporta los resultados y fíltralos manualmente. El orden de directorios en &lt;code&gt;fdupes&lt;/code&gt; es útil, pero no es una regla de control de acceso. Una vez que una ruta entra en el escaneo, los archivos duplicados dentro de ella pueden participar en decisiones de eliminación.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Para eliminar archivos duplicados con &lt;code&gt;fdupes&lt;/code&gt; por prioridad, coloca antes los directorios que quieres conservar y después los directorios de los que quieres eliminar.&lt;/p&gt;
&lt;p&gt;Para conservar &lt;code&gt;a&lt;/code&gt;, luego &lt;code&gt;b&lt;/code&gt;, y eliminar primero de &lt;code&gt;c&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;fdupes -rdN a b c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para dar mayor prioridad a un subdirectorio, escríbelo antes de su directorio padre:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;fdupes -rdN a b/important b c
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;La frase clave es simple: &lt;code&gt;fdupes -dN&lt;/code&gt; conserva los archivos duplicados que aparecen primero y elimina los duplicados que aparecen después. El orden de directorios es tu prioridad de conservación.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Cuál es la diferencia entre Snap, Flatpak y apt</title>
        <link>https://knightli.com/es/2026/05/02/snap-flatpak-apt-differences/</link>
        <pubDate>Sat, 02 May 2026 11:22:26 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/02/snap-flatpak-apt-differences/</guid>
        <description>&lt;p&gt;Al instalar software en Ubuntu, a menudo aparecen tres nombres: &lt;code&gt;apt&lt;/code&gt;, Snap y Flatpak. Todos pueden instalar aplicaciones, pero resuelven problemas distintos.&lt;/p&gt;
&lt;p&gt;En resumen:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Herramienta&lt;/th&gt;
          &lt;th&gt;Rol principal&lt;/th&gt;
          &lt;th&gt;Mejor para&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;apt&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Gestor de paquetes tradicional de Ubuntu/Debian&lt;/td&gt;
          &lt;td&gt;Componentes del sistema, herramientas de línea de comandos, software mantenido por la distribución&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Snap&lt;/td&gt;
          &lt;td&gt;Formato de empaquetado promovido por Canonical&lt;/td&gt;
          &lt;td&gt;Apps de escritorio en Ubuntu, herramientas de servidor, software con actualización automática&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Flatpak&lt;/td&gt;
          &lt;td&gt;Formato entre distribuciones centrado en apps de escritorio&lt;/td&gt;
          &lt;td&gt;Apps gráficas, apps sandboxed, ecosistema Flathub&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;apt-parte-del-sistema&#34;&gt;apt: parte del sistema
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;apt&lt;/code&gt; es el gestor de paquetes tradicional de sistemas Debian y Ubuntu. Instala paquetes &lt;code&gt;.deb&lt;/code&gt; desde repositorios de la distribución, con dependencias mantenidas por la propia distribución.&lt;/p&gt;
&lt;p&gt;Uso típico:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install firefox
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;apt&lt;/code&gt; tiene estas características:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Se integra más profundamente con el sistema.&lt;/li&gt;
&lt;li&gt;Las dependencias se gestionan de forma centralizada por la distribución.&lt;/li&gt;
&lt;li&gt;Las versiones de software suelen seguir el ciclo de lanzamiento de la distribución.&lt;/li&gt;
&lt;li&gt;Es muy adecuado para bibliotecas del sistema, drivers, herramientas de línea de comandos y componentes de servidor.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Su desventaja también es clara: las versiones pueden ser antiguas. Las distribuciones priorizan estabilidad, así que no siempre envían inmediatamente la última versión upstream.&lt;/p&gt;
&lt;h2 id=&#34;snap-aplicación-y-dependencias-en-un-solo-paquete&#34;&gt;Snap: aplicación y dependencias en un solo paquete
&lt;/h2&gt;&lt;p&gt;Snap es un formato de empaquetado promovido por Canonical. Empaqueta una app con muchas de sus dependencias de runtime, reduciendo la dependencia de versiones exactas de bibliotecas del sistema.&lt;/p&gt;
&lt;p&gt;La instalación se ve parecida:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo snap install firefox
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ventajas de Snap:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El mismo paquete puede ejecutarse más fácilmente entre versiones de Ubuntu.&lt;/li&gt;
&lt;li&gt;Las apps pueden actualizarse de forma independiente a las actualizaciones del sistema.&lt;/li&gt;
&lt;li&gt;Hay cierto aislamiento y control de permisos por defecto.&lt;/li&gt;
&lt;li&gt;Funciona bien para apps de escritorio que necesitan actualizaciones rápidas y algunas herramientas de servidor.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Quejas comunes incluyen arranque más lento, mayor uso de disco, integración de temas menos natural y un modelo de actualización que da menos control al usuario que &lt;code&gt;apt&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;flatpak-más-orientado-a-apps-de-escritorio&#34;&gt;Flatpak: más orientado a apps de escritorio
&lt;/h2&gt;&lt;p&gt;Flatpak también es un formato de empaquetado entre distribuciones, pero está más centrado en apps de escritorio Linux. Muchas apps Flatpak vienen de Flathub.&lt;/p&gt;
&lt;p&gt;Instalación típica:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;flatpak install flathub org.mozilla.firefox
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Flatpak tiene estas características:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Fuerte soporte entre distribuciones.&lt;/li&gt;
&lt;li&gt;Foco en distribución de apps de escritorio.&lt;/li&gt;
&lt;li&gt;Usa runtimes para compartir dependencias base.&lt;/li&gt;
&lt;li&gt;Modelo de sandbox y permisos más claro.&lt;/li&gt;
&lt;li&gt;Gran selección de software en Flathub.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Flatpak también usa espacio extra, especialmente al instalar un runtime por primera vez. Cuando varias apps comparten un runtime, el sobrecoste se vuelve menos derrochador.&lt;/p&gt;
&lt;h2 id=&#34;la-mayor-diferencia-dependencias&#34;&gt;La mayor diferencia: dependencias
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;apt&lt;/code&gt; se parece más a integrar software en el sistema. Las apps dependen de bibliotecas ya presentes en el sistema, y varios paquetes comparten las mismas dependencias.&lt;/p&gt;
&lt;p&gt;Snap y Flatpak se parecen más a enviar una app con su propio entorno de runtime. La app lleva parte de lo que necesita, reduciendo problemas causados por distintas versiones del sistema.&lt;/p&gt;
&lt;p&gt;Eso crea un compromiso:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Enfoque&lt;/th&gt;
          &lt;th&gt;Pros&lt;/th&gt;
          &lt;th&gt;Contras&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;apt&lt;/code&gt; comparte dependencias del sistema&lt;/td&gt;
          &lt;td&gt;Ahorra espacio, se integra bien, mantenimiento centralizado&lt;/td&gt;
          &lt;td&gt;Las versiones están atadas a la distribución&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Snap/Flatpak llevan piezas de runtime&lt;/td&gt;
          &lt;td&gt;Entre versiones, entre distribuciones, actualizaciones más fáciles&lt;/td&gt;
          &lt;td&gt;Paquetes más grandes, posible arranque más lento, integración más débil&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;aislamiento-y-permisos&#34;&gt;Aislamiento y permisos
&lt;/h2&gt;&lt;p&gt;El software instalado con &lt;code&gt;apt&lt;/code&gt; suele ejecutarse directamente en el entorno del sistema. Se integra de forma natural, pero tiene menos aislamiento.&lt;/p&gt;
&lt;p&gt;Snap y Flatpak usan ideas de sandbox. Las apps no pueden acceder libremente a todos los recursos del sistema por defecto; necesitan interfaces de permiso para archivos, cámara, red, notificaciones de escritorio y otros recursos.&lt;/p&gt;
&lt;p&gt;Eso no las vuelve absolutamente seguras, pero da un límite de permisos más claro. Para apps de escritorio de fuentes mixtas, eso importa.&lt;/p&gt;
&lt;h2 id=&#34;las-actualizaciones-funcionan-distinto&#34;&gt;Las actualizaciones funcionan distinto
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;apt&lt;/code&gt; suele seguir las actualizaciones del sistema:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt upgrade
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Snap se actualiza automáticamente. Es cómodo, pero también controvertido: los usuarios no tienen que gestionar versiones, pero también tienen menos control.&lt;/p&gt;
&lt;p&gt;Flatpak puede actualizarse manualmente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;flatpak update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Así que si te importa cuándo ocurren las actualizaciones, &lt;code&gt;apt&lt;/code&gt; y Flatpak suelen sentirse más controlables. Si quieres que las apps se mantengan actuales automáticamente, Snap es más desatendido.&lt;/p&gt;
&lt;h2 id=&#34;cuál-deberías-usar&#34;&gt;Cuál deberías usar
&lt;/h2&gt;&lt;p&gt;Elige por escenario:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Herramientas del sistema, drivers y componentes de servidor: prefiere &lt;code&gt;apt&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Apps de escritorio recomendadas por Ubuntu: Snap está bien.&lt;/li&gt;
&lt;li&gt;Apps de escritorio más nuevas, especialmente entre distribuciones: Flatpak suele ser buena opción.&lt;/li&gt;
&lt;li&gt;Si la misma app existe en los tres formatos: compara estabilidad, velocidad de arranque, integración de temas y necesidades de actualización.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Un enfoque conservador es: usar &lt;code&gt;apt&lt;/code&gt; para la capa del sistema, y luego elegir Snap o Flatpak para apps de escritorio según haga falta.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;apt&lt;/code&gt;, Snap y Flatpak no se reemplazan completamente entre sí. Son modelos de distribución distintos.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;apt&lt;/code&gt; es mejor para mantener el sistema. Snap enfatiza dependencias empaquetadas y actualizaciones automáticas. Flatpak es mejor para apps de escritorio entre distribuciones y entrega sandboxed.&lt;/p&gt;
&lt;p&gt;Para uso diario, no hace falta obsesionarse con cuál es mejor. Usa &lt;code&gt;apt&lt;/code&gt; para software del sistema. Para apps de escritorio, sigue la recomendación de tu distribución y tu propia experiencia: funcionamiento estable, actualizaciones controladas y permisos claros son lo que importa.&lt;/p&gt;
&lt;p&gt;Referencia:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.reddit.com/r/Ubuntu/comments/9awvip/eli5_snap_and_flatpak_how_are_they_differ_from_apt/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.reddit.com/r/Ubuntu/comments/9awvip/eli5_snap_and_flatpak_how_are_they_differ_from_apt/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cambios del driver NTFS en Linux 7.0 y 7.1, explicados</title>
        <link>https://knightli.com/es/2026/05/02/linux-7-0-7-1-ntfs-driver/</link>
        <pubDate>Sat, 02 May 2026 10:46:20 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/02/linux-7-0-7-1-ntfs-driver/</guid>
        <description>&lt;p&gt;Después de Linux 7.0, Linux 7.1 entró en la siguiente ventana de integración de funciones. Un cambio llamativo es un nuevo driver NTFS para el kernel.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Nuevo&amp;rdquo; no significa que Linux admita NTFS por primera vez, ni que &lt;code&gt;ntfs3&lt;/code&gt; vaya a ser reemplazado. Más exactamente, Linux 7.1 añade un nuevo driver NTFS opcional de lectura y escritura dentro del kernel. Está basado en el antiguo driver &lt;code&gt;ntfs&lt;/code&gt; del kernel, modernizado y ampliado con soporte de escritura más completo.&lt;/p&gt;
&lt;h2 id=&#34;resumen-rápido&#34;&gt;Resumen rápido
&lt;/h2&gt;&lt;p&gt;Linux tiene ahora tres caminos principales para NTFS:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Opción&lt;/th&gt;
          &lt;th&gt;Ubicación&lt;/th&gt;
          &lt;th&gt;Soporte lectura-escritura&lt;/th&gt;
          &lt;th&gt;Mejor para&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;ntfs-3g&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;FUSE en espacio de usuario&lt;/td&gt;
          &lt;td&gt;Lectura-escritura&lt;/td&gt;
          &lt;td&gt;Priorizar estabilidad; valor por defecto histórico en muchas distribuciones&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;&lt;code&gt;ntfs3&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Espacio de kernel&lt;/td&gt;
          &lt;td&gt;Lectura-escritura&lt;/td&gt;
          &lt;td&gt;Integración más directa con el kernel y rendimiento&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Nuevo &lt;code&gt;ntfs&lt;/code&gt;&lt;/td&gt;
          &lt;td&gt;Espacio de kernel&lt;/td&gt;
          &lt;td&gt;Lectura-escritura&lt;/td&gt;
          &lt;td&gt;Implementación opcional añadida en Linux 7.1&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Esto no es una migración forzada. Simplemente añade otra opción. La mayoría de usuarios puede seguir usando por ahora los valores por defecto de su distribución.&lt;/p&gt;
&lt;h2 id=&#34;relación-entre-70-y-71&#34;&gt;Relación entre 7.0 y 7.1
&lt;/h2&gt;&lt;p&gt;Linux 7.0 solo marca el paso a la serie 7.x del kernel. No significa que el soporte NTFS se reescribiera de golpe en 7.0. El cambio relacionado con NTFS aparece en el ciclo de funciones de Linux 7.1.&lt;/p&gt;
&lt;p&gt;NTFS sigue siendo importante para usuarios de escritorio Linux porque sistemas dual-boot, discos externos, unidades USB y discos de datos de Windows suelen usarlo. La parte delicada es la escritura: si un driver de sistema de archivos tiene un bug, los datos del usuario pueden verse afectados directamente. Por eso los cambios en drivers NTFS se tratan con cuidado.&lt;/p&gt;
&lt;h2 id=&#34;ntfs-3g-ntfs3-y-el-nuevo-ntfs&#34;&gt;&lt;code&gt;ntfs-3g&lt;/code&gt;, &lt;code&gt;ntfs3&lt;/code&gt; y el nuevo &lt;code&gt;ntfs&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;ntfs-3g&lt;/code&gt; es un driver FUSE en espacio de usuario. Durante mucho tiempo ha gestionado el soporte de lectura y escritura NTFS en Linux. Puede no ser siempre la opción más rápida, pero es maduro, compatible y bien documentado.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ntfs3&lt;/code&gt; es el driver NTFS dentro del kernel aportado por Paragon Software y ya integrado en Linux. Tiene una ruta más corta, se integra de forma más directa con VFS y puede ofrecer mejor rendimiento. Pero los drivers de sistemas de archivos requieren una disciplina fuerte de mantenimiento, y &lt;code&gt;ntfs3&lt;/code&gt; ha generado discusión sobre ritmo de mantenimiento y calidad de código tras su integración.&lt;/p&gt;
&lt;p&gt;El nuevo driver &lt;code&gt;ntfs&lt;/code&gt; de Linux 7.1 está mantenido por Namjae Jeon. No está escrito desde cero; moderniza el antiguo driver &lt;code&gt;ntfs&lt;/code&gt; del kernel, añade soporte de escritura y coexiste con &lt;code&gt;ntfs3&lt;/code&gt; como otra implementación opcional.&lt;/p&gt;
&lt;p&gt;En resumen:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;ntfs-3g&lt;/code&gt;: conservador, maduro, en espacio de usuario.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ntfs3&lt;/code&gt;: opción mainline existente dentro del kernel.&lt;/li&gt;
&lt;li&gt;Nuevo &lt;code&gt;ntfs&lt;/code&gt;: nueva opción dentro del kernel en 7.1, todavía digna de observación.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;cuál-usar&#34;&gt;Cuál usar
&lt;/h2&gt;&lt;p&gt;No hace falta cambiar de inmediato. Un orden conservador sería:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Seguir usando el valor por defecto de la distribución para datos importantes, normalmente &lt;code&gt;ntfs-3g&lt;/code&gt; o un &lt;code&gt;ntfs3&lt;/code&gt; ya probado.&lt;/li&gt;
&lt;li&gt;Probar &lt;code&gt;ntfs3&lt;/code&gt; cuando el rendimiento importe.&lt;/li&gt;
&lt;li&gt;Probar el nuevo driver &lt;code&gt;ntfs&lt;/code&gt; primero con datos temporales, de prueba o recuperables.&lt;/li&gt;
&lt;li&gt;Hacer copia de seguridad de particiones NTFS importantes antes de escribir.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Para montar manualmente con &lt;code&gt;ntfs3&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo mount -t ntfs3 /dev/sdX1 /mnt/ntfs
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para acceso temporal de solo lectura:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo mount -o ro /dev/sdX1 /mnt/ntfs
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para comprobar qué driver se está usando:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;findmnt -T /mnt/ntfs
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mount &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep ntfs
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;notas-para-dual-boot&#34;&gt;Notas para dual-boot
&lt;/h2&gt;&lt;p&gt;Si una partición NTFS viene de un disco de sistema Windows, asegúrate de que Windows esté completamente apagado antes de escribir en ella. Fast Startup e hibernación pueden dejar el volumen NTFS en un estado incompleto, y las escrituras desde Linux podrían causar problemas de consistencia.&lt;/p&gt;
&lt;p&gt;Comprueba primero:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Desactivar Windows Fast Startup.&lt;/li&gt;
&lt;li&gt;Asegurarse de que la partición no esté hibernada.&lt;/li&gt;
&lt;li&gt;Confirmar que BitLocker u otro cifrado no bloquea el acceso.&lt;/li&gt;
&lt;li&gt;Expulsar de forma segura unidades externas desde Windows.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Estas reglas aplican tanto si usas &lt;code&gt;ntfs-3g&lt;/code&gt;, &lt;code&gt;ntfs3&lt;/code&gt; o el nuevo driver &lt;code&gt;ntfs&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-existen-varios-drivers-ntfs&#34;&gt;Por qué existen varios drivers NTFS
&lt;/h2&gt;&lt;p&gt;No es raro que Linux tenga varias implementaciones para el mismo sistema de archivos. Implementaciones antiguas, nuevas, de proveedor y de comunidad pueden coexistir hasta que el estado de mantenimiento y la experiencia real aclaren el camino preferido.&lt;/p&gt;
&lt;p&gt;NTFS es especialmente adecuado para un enfoque conservador:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;El riesgo para datos de usuario es alto.&lt;/li&gt;
&lt;li&gt;Los casos de compatibilidad son complejos.&lt;/li&gt;
&lt;li&gt;Las implementaciones difieren en sus compromisos entre rendimiento y estabilidad.&lt;/li&gt;
&lt;li&gt;Las distribuciones necesitan tiempo para validar valores por defecto.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Así que el nuevo driver &lt;code&gt;ntfs&lt;/code&gt; de Linux 7.1 no vuelve obsoletos de inmediato a &lt;code&gt;ntfs-3g&lt;/code&gt; ni a &lt;code&gt;ntfs3&lt;/code&gt;. Da a la comunidad del kernel otra opción mantenible.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;El nuevo driver &lt;code&gt;ntfs&lt;/code&gt; de Linux 7.1 es una implementación NTFS opcional de lectura y escritura dentro del kernel. Coexiste con &lt;code&gt;ntfs-3g&lt;/code&gt; y &lt;code&gt;ntfs3&lt;/code&gt;; no reemplaza directamente a ninguno.&lt;/p&gt;
&lt;p&gt;Los usuarios normales pueden seguir usando los valores por defecto de su distribución. Quienes quieran probar rendimiento o cambios de sistemas de archivos del kernel pueden observar &lt;code&gt;ntfs3&lt;/code&gt; y el nuevo &lt;code&gt;ntfs&lt;/code&gt;, pero los datos importantes deben respaldarse antes de cambiar de driver.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>sudo vs sudo-rs: qué cambia con la versión de sudo en Rust</title>
        <link>https://knightli.com/es/2026/05/01/sudo-vs-sudo-rs-rust-linux-command/</link>
        <pubDate>Fri, 01 May 2026 19:27:08 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/sudo-vs-sudo-rs-rust-linux-command/</guid>
        <description>&lt;p&gt;&lt;code&gt;sudo&lt;/code&gt; es uno de los comandos más familiares para los usuarios de Linux.
Permite que un usuario normal ejecute temporalmente comandos con privilegios más altos dentro de un alcance autorizado, por ejemplo instalar software, cambiar la configuración del sistema o reiniciar servicios.&lt;/p&gt;
&lt;p&gt;Recientemente, &lt;code&gt;sudo-rs&lt;/code&gt; ha recibido más atención porque Ubuntu 25.10 empieza a usar de forma predeterminada la implementación en Rust &lt;code&gt;sudo-rs&lt;/code&gt; para sustituir al sudo clásico.
Para los usuarios comunes, en la superficie se sigue escribiendo &lt;code&gt;sudo&lt;/code&gt;.
El cambio real está por debajo: la implementación que se ejecuta puede ser ya la versión de sudo escrita en Rust.&lt;/p&gt;
&lt;p&gt;Esto plantea dos preguntas naturales:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;¿Hay algún problema con el sudo clásico?&lt;/li&gt;
&lt;li&gt;¿Afectará sudo-rs al uso diario y a la configuración de servidores?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La conclusión breve es: los usuarios de escritorio comunes básicamente no tienen que preocuparse; si mantienes servidores, has escrito reglas sudoers complejas o dependes de comportamientos especiales de sudo, conviene probarlo con cuidado.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-sudo-rs&#34;&gt;Qué es sudo-rs
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;sudo-rs&lt;/code&gt; es una implementación de sudo / su escrita en Rust.
Su objetivo no es crear un comando nuevo completamente distinto, sino reimplementar las funciones principales del sudo clásico mientras aprovecha las propiedades de seguridad de memoria de Rust para reducir riesgos de seguridad habituales.&lt;/p&gt;
&lt;p&gt;El sudo clásico está escrito principalmente en C. Tiene una larga historia y un conjunto de funciones muy completo.
Esa madurez aporta estabilidad, pero también carga de mantenimiento.
Gran parte del código viene de escenarios Unix/Linux muy antiguos, y con el tiempo se le añadieron muchas rutas de compatibilidad, extensiones y tratamientos de casos límite.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo-rs&lt;/code&gt; opta por reimplementarlo por varias razones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;reducir problemas de seguridad de memoria con Rust;&lt;/li&gt;
&lt;li&gt;usar una estructura de código más moderna para facilitar el mantenimiento;&lt;/li&gt;
&lt;li&gt;eliminar algunas funciones históricas y comportamientos predeterminados de alto riesgo;&lt;/li&gt;
&lt;li&gt;atraer a nuevos colaboradores familiarizados con Rust;&lt;/li&gt;
&lt;li&gt;proporcionar una base más fácil de auditar para futuras herramientas de elevación de privilegios.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sin embargo, &lt;code&gt;sudo-rs&lt;/code&gt; no es un reemplazo 100% compatible del sudo clásico.
Todavía está en desarrollo. Algunas funciones tradicionales aún no se han implementado, y otras quizá nunca se implementen.&lt;/p&gt;
&lt;h2 id=&#34;qué-notarán-los-usuarios-comunes&#34;&gt;Qué notarán los usuarios comunes
&lt;/h2&gt;&lt;p&gt;Para los usuarios comunes, cambia muy poco.&lt;/p&gt;
&lt;p&gt;Se sigue usando así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;O así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl restart nginx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En Ubuntu 25.10, &lt;code&gt;sudo&lt;/code&gt; apunta a &lt;code&gt;sudo-rs&lt;/code&gt;.
Los usuarios no tienen que cambiar el comando a &lt;code&gt;sudo-rs&lt;/code&gt;, y las llamadas habituales a &lt;code&gt;sudo&lt;/code&gt; en scripts no deberían fallar inmediatamente por un cambio de nombre del comando.&lt;/p&gt;
&lt;p&gt;El cambio más visible es la retroalimentación al escribir la contraseña.
&lt;code&gt;sudo-rs&lt;/code&gt; muestra asteriscos de forma predeterminada mientras se introduce la contraseña.
El sudo clásico también puede configurarse para comportarse así, pero muchas distribuciones no muestran ningún carácter por defecto.&lt;/p&gt;
&lt;p&gt;Algunos mensajes de error y advertencia también pueden tener textos distintos.
Por ejemplo, los fallos de contraseña, los problemas de permisos o una configuración incompatible pueden mostrar avisos que no son exactamente iguales a los anteriores.
Esto afecta poco a los usuarios humanos, pero si algunos scripts analizan la salida de error de sudo, habrá que revisarlos.&lt;/p&gt;
&lt;h2 id=&#34;qué-deben-vigilar-los-administradores&#34;&gt;Qué deben vigilar los administradores
&lt;/h2&gt;&lt;p&gt;Quienes realmente deben prestar atención son los administradores de sistemas y los usuarios avanzados.&lt;/p&gt;
&lt;p&gt;El ecosistema del sudo clásico es grande, y muchos servidores tienen configuraciones sudoers complejas.
Estas configuraciones pueden incluir coincidencia de argumentos de comandos, control de variables de entorno, registros, notificaciones por correo, comportamiento de PAM y políticas para distintos grupos de hosts.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo-rs&lt;/code&gt; tiene actualmente algunas diferencias frente al sudo clásico.
Por ejemplo, el artículo original señala que &lt;code&gt;sudo-rs&lt;/code&gt; no incluye el soporte de sendmail del sudo clásico.
Algunos entornos usaban sendmail para enviar notificaciones de uso de sudo, y esas configuraciones necesitarán otra solución al migrar.&lt;/p&gt;
&lt;p&gt;En autenticación, &lt;code&gt;sudo-rs&lt;/code&gt; usa PAM.
Esto significa que comportamientos como límites de recursos y umask deberían configurarse más a través de PAM, en lugar de depender por completo del archivo sudoers.
Si antes gestionabas muchos detalles en sudoers, verifica antes del cambio que esas reglas sigan funcionando.&lt;/p&gt;
&lt;p&gt;Otro cambio importante es el soporte de comodines en posiciones de argumentos de comando.
&lt;code&gt;sudo-rs&lt;/code&gt; no admite comodines en argumentos de comandos para evitar errores comunes de configuración en archivos sudoers.
Esto es bueno para la seguridad, pero puede afectar a reglas existentes.&lt;/p&gt;
&lt;h2 id=&#34;cómo-maneja-ubuntu-sudo-y-sudo-rs&#34;&gt;Cómo maneja Ubuntu sudo y sudo-rs
&lt;/h2&gt;&lt;p&gt;A partir de Ubuntu 25.10, el sistema usa &lt;code&gt;sudo-rs&lt;/code&gt; de forma predeterminada.
Los usuarios siguen escribiendo &lt;code&gt;sudo&lt;/code&gt;, mientras por debajo se ejecuta la implementación en Rust.&lt;/p&gt;
&lt;p&gt;El sudo clásico no desaparece de inmediato.
Durante la transición de Ubuntu, el sudo clásico se conserva como &lt;code&gt;sudo-ws&lt;/code&gt;.
Si realmente necesitas la implementación tradicional, puedes usar &lt;code&gt;sudo-ws&lt;/code&gt; o cambiar el sudo predeterminado mediante el mecanismo de alternatives.&lt;/p&gt;
&lt;p&gt;El comando de cambio se parece a este:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo update-alternatives --config sudo
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Dicho esto, no se recomienda que los usuarios comunes vuelvan activamente al sudo clásico.
Si no has personalizado sudoers y no dependes de comportamientos especiales, seguir la opción predeterminada de la distribución es más sencillo.&lt;/p&gt;
&lt;p&gt;Si quieres probarlo en versiones anteriores de Ubuntu, &lt;code&gt;sudo-rs&lt;/code&gt; está disponible desde Ubuntu 24.04 en el repositorio universe.
Otras distribuciones también pueden ofrecer paquetes, pero los nombres de comandos y la integración pueden variar.&lt;/p&gt;
&lt;h2 id=&#34;por-qué-sudo-rs-usa-rust&#34;&gt;Por qué sudo-rs usa Rust
&lt;/h2&gt;&lt;p&gt;sudo es una herramienta de altos privilegios.
Si una herramienta de este tipo tiene una vulnerabilidad, las consecuencias pueden ser mucho más graves que en un comando común.
Históricamente, sudo también ha tenido varias vulnerabilidades de elevación de privilegios.&lt;/p&gt;
&lt;p&gt;La ventaja de Rust es la seguridad de memoria.
Mediante ownership, borrow checking y el sistema de tipos, reduce problemas comunes como punteros colgantes, accesos fuera de límites y use-after-free.
Esto no garantiza que el programa sea absolutamente seguro, pero puede reducir una clase de vulnerabilidades muy común en proyectos C/C++.&lt;/p&gt;
&lt;p&gt;Para una herramienta como sudo, que lleva mucho tiempo en una posición sensible de seguridad, reescribirla en un lenguaje más seguro tiene sentido práctico.
No es &amp;ldquo;Rust por Rust&amp;rdquo;, sino un intento de reducir los costes de mantenimiento y auditoría.&lt;/p&gt;
&lt;p&gt;Por supuesto, el lenguaje no resuelve todos los problemas de seguridad.
La lógica de comprobación de permisos, el análisis de configuración, la interacción con PAM, el manejo de variables de entorno, los registros y la experiencia de usuario siguen requiriendo un diseño riguroso y pruebas prolongadas.&lt;/p&gt;
&lt;h2 id=&#34;sudo-rs-no-es-la-única-alternativa&#34;&gt;sudo-rs no es la única alternativa
&lt;/h2&gt;&lt;p&gt;En el ecosistema de sudo siempre ha habido otras alternativas.&lt;/p&gt;
&lt;p&gt;Un ejemplo común es &lt;code&gt;doas&lt;/code&gt;.
Procede de OpenBSD y está diseñado para ser más simple, con una superficie de configuración más pequeña.
Algunos usuarios lo prefieren porque no es tan complejo como sudo.&lt;/p&gt;
&lt;p&gt;También existen algunas alternativas relacionadas con Rust o systemd, como RootAsRole y &lt;code&gt;run0&lt;/code&gt; de systemd.
Sin embargo, estas herramientas no tienen exactamente los mismos objetivos ni los mismos escenarios de uso.&lt;/p&gt;
&lt;p&gt;Para la mayoría de distribuciones Linux, sudo sigue siendo la opción predeterminada.
La importancia de &lt;code&gt;sudo-rs&lt;/code&gt; es que intenta mantener los hábitos de los usuarios mientras sustituye la implementación subyacente por una base de código más moderna.&lt;/p&gt;
&lt;h2 id=&#34;qué-revisar-antes-de-migrar&#34;&gt;Qué revisar antes de migrar
&lt;/h2&gt;&lt;p&gt;Si solo eres un usuario de escritorio personal, puedes seguir la configuración predeterminada de la distribución.&lt;/p&gt;
&lt;p&gt;Si mantienes servidores o estaciones de trabajo, conviene revisar estos puntos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Si existen reglas complejas en &lt;code&gt;/etc/sudoers&lt;/code&gt; o &lt;code&gt;/etc/sudoers.d/&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Si se usan comodines en argumentos de comandos.&lt;/li&gt;
&lt;li&gt;Si se depende de notificaciones de correo de sudo.&lt;/li&gt;
&lt;li&gt;Si hay scripts que analizan la salida de error de sudo.&lt;/li&gt;
&lt;li&gt;Si sudoers controla umask, límites de recursos o variables de entorno.&lt;/li&gt;
&lt;li&gt;Si existen integraciones de autenticación con LDAP, PAM, SSSD u otros sistemas.&lt;/li&gt;
&lt;li&gt;Si scripts de automatización o despliegue asumen el comportamiento del sudo clásico.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Primero puedes verificarlo en una máquina de pruebas:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo -l
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Después ejecuta los comandos clave de mantenimiento y confirma que permisos, variables de entorno y registros se comporten como esperas.&lt;/p&gt;
&lt;h2 id=&#34;deberías-cambiar-manualmente-a-sudo-rs&#34;&gt;¿Deberías cambiar manualmente a sudo-rs?
&lt;/h2&gt;&lt;p&gt;Si tu distribución ya lo usa de forma predeterminada, los usuarios comunes pueden aceptarlo directamente.
Si usas un servidor o un entorno de producción, no conviene reemplazar sudo manualmente solo para experimentar.&lt;/p&gt;
&lt;p&gt;Un proceso más prudente sería:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;instalar &lt;code&gt;sudo-rs&lt;/code&gt; en un entorno de pruebas;&lt;/li&gt;
&lt;li&gt;verificar punto por punto la configuración sudoers existente;&lt;/li&gt;
&lt;li&gt;revisar PAM, registros, auditoría y scripts de automatización;&lt;/li&gt;
&lt;li&gt;confirmar la ruta de reversión;&lt;/li&gt;
&lt;li&gt;migrar después de que la distribución ofrezca una integración estable.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este tipo de herramienta está en la cadena de privilegios, así que no basta con juzgarla por si puede ejecutar unos cuantos comandos.
La verdadera validación está en las condiciones de borde y en los casos de fallo.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;sudo-rs&lt;/code&gt; es una implementación en Rust del sudo clásico, cuyo objetivo es mantener las funciones principales de sudo sobre una base de código más moderna y segura.
Que Ubuntu 25.10 lo active por defecto muestra que las distribuciones principales están empezando a impulsar seriamente esta dirección.&lt;/p&gt;
&lt;p&gt;Para los usuarios comunes, el cambio es pequeño.
Sigues escribiendo &lt;code&gt;sudo&lt;/code&gt;; solo puede haber cambiado la implementación subyacente a &lt;code&gt;sudo-rs&lt;/code&gt;.
Como mucho, notarás asteriscos al escribir la contraseña o mensajes de error ligeramente distintos.&lt;/p&gt;
&lt;p&gt;Para los administradores de sistemas, la clave es la compatibilidad.
Si el sistema tiene reglas sudoers complejas, notificaciones sendmail, integración PAM, comodines en argumentos o scripts que dependen de la salida de sudo, hay que probar antes de actualizar.&lt;/p&gt;
&lt;p&gt;Reescribir en Rust no es una cura mágica, pero para una herramienta sensible de seguridad como sudo, reducir riesgos de seguridad de memoria y complejidad de mantenimiento es una dirección que merece atención.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://itsfoss.com/sudo-vs-sudo-rs/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;It&amp;rsquo;s FOSS: sudo vs sudo-rs: What You Need to Know&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/trifectatechfoundation/sudo-rs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Proyecto sudo-rs en GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>X11 y Wayland: diferencias, ventajas, desventajas y cuándo elegir cada uno</title>
        <link>https://knightli.com/es/2026/05/01/x11-vs-wayland-differences-pros-cons/</link>
        <pubDate>Fri, 01 May 2026 19:23:01 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/x11-vs-wayland-differences-pros-cons/</guid>
        <description>&lt;p&gt;En el escritorio Linux aparecen con frecuencia dos nombres: &lt;code&gt;X11&lt;/code&gt; y &lt;code&gt;Wayland&lt;/code&gt;.
Ambos están relacionados con la visualización gráfica, pero pertenecen a épocas distintas y siguen ideas de arquitectura y experiencia de uso muy diferentes.&lt;/p&gt;
&lt;p&gt;En pocas palabras, X11 es el protocolo y ecosistema de visualización más antiguo. Es completo y muy compatible, pero su arquitectura es compleja y su modelo de seguridad está bastante envejecido.
Wayland es el protocolo de visualización más moderno. Su objetivo es reducir capas intermedias, mejorar la seguridad y hacer que el escritorio se sienta más fluido, aunque todavía hay software y flujos de trabajo que necesitan adaptación.&lt;/p&gt;
&lt;p&gt;Para el uso diario, la conclusión breve es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;en una instalación nueva de escritorio Linux, prueba primero Wayland;&lt;/li&gt;
&lt;li&gt;si necesitas software antiguo, escritorio remoto complejo, dispositivos de entrada especiales o ciertas herramientas profesionales, X11 puede seguir siendo más estable;&lt;/li&gt;
&lt;li&gt;para juegos y trabajo de oficina normal, Wayland ya es cada vez más usable;&lt;/li&gt;
&lt;li&gt;si encuentras problemas de compatibilidad, puedes volver a X11. No hace falta convertirlo en una cuestión de fe.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;qué-es-x11&#34;&gt;Qué es X11
&lt;/h2&gt;&lt;p&gt;X11, también llamado X Window System o Xorg, es el sistema gráfico que los escritorios Linux y Unix han usado durante muchos años.
Su diseño viene del entorno de computación en red de las primeras décadas: un programa podía ejecutarse en una máquina y mostrar su ventana en otra.&lt;/p&gt;
&lt;p&gt;La estructura típica de X11 es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;las aplicaciones dibujan el contenido de las ventanas;&lt;/li&gt;
&lt;li&gt;el X Server gestiona la pantalla, la entrada y las operaciones básicas de ventana;&lt;/li&gt;
&lt;li&gt;el gestor de ventanas controla bordes, movimiento y apilamiento;&lt;/li&gt;
&lt;li&gt;el compositor se encarga de sombras, transparencias, animaciones, control de tearing y efectos similares.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta arquitectura es flexible y permitió que X11 acumulara una gran cantidad de herramientas y extensiones.
Pero con el paso del tiempo sus problemas se hicieron evidentes: muchos componentes, rutas largas, límites de permisos poco estrictos y muchas necesidades modernas mantenidas mediante extensiones y parches.&lt;/p&gt;
&lt;h2 id=&#34;qué-es-wayland&#34;&gt;Qué es Wayland
&lt;/h2&gt;&lt;p&gt;Wayland no es un servidor de visualización completo en el sentido tradicional, sino un protocolo de visualización más moderno.
En Wayland, el compositor suele asumir también el papel de servidor de visualización.
Mutter de GNOME, KWin de KDE y los compositores basados en wlroots pueden actuar como compositores Wayland.&lt;/p&gt;
&lt;p&gt;La estructura típica de Wayland es más corta:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;las aplicaciones renderizan su propio contenido de ventana;&lt;/li&gt;
&lt;li&gt;el compositor recibe los buffers enviados por las aplicaciones;&lt;/li&gt;
&lt;li&gt;el compositor gestiona de forma centralizada ventanas, entrada, salidas de pantalla y composición;&lt;/li&gt;
&lt;li&gt;la imagen final se entrega directamente a la pila gráfica del kernel para mostrarse.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este diseño reduce los rodeos entre X Server, gestor de ventanas y compositor que existen en la arquitectura tradicional de X11.
También hace que el control de permisos sea más claro: por defecto, las aplicaciones no pueden leer libremente el contenido de otras ventanas ni escuchar sin restricciones la entrada global del teclado.&lt;/p&gt;
&lt;h2 id=&#34;diferencias-de-arquitectura&#34;&gt;Diferencias de arquitectura
&lt;/h2&gt;&lt;p&gt;La diferencia central está en el reparto de responsabilidades.&lt;/p&gt;
&lt;p&gt;En X11, el X Server ocupa la posición central y muchas aplicaciones pueden interactuar con él.
Los gestores de ventanas, compositores, métodos de entrada, herramientas de captura y herramientas de control remoto pueden obtener mucha información a través de las interfaces abiertas de X11.
Esto aporta una compatibilidad muy fuerte, pero también problemas de seguridad.&lt;/p&gt;
&lt;p&gt;En Wayland, el centro es el compositor.
Las aplicaciones no pueden acceder directamente al contenido de otras ventanas ni escuchar todo el teclado por defecto.
Funciones como capturas de pantalla, grabación, compartir pantalla, atajos globales y control remoto deben pasar por portales de escritorio, PipeWire o interfaces controladas ofrecidas por el compositor.&lt;/p&gt;
&lt;p&gt;Puedes entenderlo así:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Punto&lt;/th&gt;
          &lt;th&gt;X11&lt;/th&gt;
          &lt;th&gt;Wayland&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Época de diseño&lt;/td&gt;
          &lt;td&gt;Más antigua&lt;/td&gt;
          &lt;td&gt;Más reciente&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Componente central&lt;/td&gt;
          &lt;td&gt;X Server&lt;/td&gt;
          &lt;td&gt;Compositor&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Papel del compositor&lt;/td&gt;
          &lt;td&gt;Opcional o componente adicional&lt;/td&gt;
          &lt;td&gt;Componente central&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Aislamiento entre aplicaciones&lt;/td&gt;
          &lt;td&gt;Más débil&lt;/td&gt;
          &lt;td&gt;Más fuerte&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Visualización remota&lt;/td&gt;
          &lt;td&gt;Concepto nativo más fuerte&lt;/td&gt;
          &lt;td&gt;Depende de herramientas más nuevas&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Compatibilidad&lt;/td&gt;
          &lt;td&gt;Muy fuerte&lt;/td&gt;
          &lt;td&gt;Todavía se está completando&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Experiencia de escritorio moderna&lt;/td&gt;
          &lt;td&gt;Depende de extensiones y parches&lt;/td&gt;
          &lt;td&gt;Diseñada más cerca de las necesidades actuales&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;ventajas-de-x11&#34;&gt;Ventajas de X11
&lt;/h2&gt;&lt;p&gt;La mayor ventaja de X11 es su madurez.
Lleva muchos años en uso, y casi todos los programas gráficos de Linux funcionan bajo X11.
Herramientas antiguas, software profesional, métodos de entrada especiales, soluciones de control remoto y scripts de automatización suelen dar soporte primero a X11.&lt;/p&gt;
&lt;p&gt;Otra ventaja de X11 es su gran operabilidad.
Muchas herramientas pueden leer ventanas directamente, simular entrada, capturar la pantalla, mover ventanas y escuchar pulsaciones de teclas.
Esto resulta práctico para automatización, asistencia remota, scripts de gestión de ventanas y algunos flujos de trabajo especiales.&lt;/p&gt;
&lt;p&gt;Si tus necesidades incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;usar software GUI antiguo;&lt;/li&gt;
&lt;li&gt;depender de &lt;code&gt;xrandr&lt;/code&gt;, &lt;code&gt;xinput&lt;/code&gt;, &lt;code&gt;xdotool&lt;/code&gt; o &lt;code&gt;wmctrl&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;usar escritorio remoto tradicional o reenvío de ventanas;&lt;/li&gt;
&lt;li&gt;necesitar herramientas especiales de captura, grabación o macros de teclado y ratón;&lt;/li&gt;
&lt;li&gt;ejecutar una aplicación que todavía no es estable bajo Wayland;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;entonces X11 sigue siendo una opción muy realista.&lt;/p&gt;
&lt;h2 id=&#34;desventajas-de-x11&#34;&gt;Desventajas de X11
&lt;/h2&gt;&lt;p&gt;Las desventajas de X11 vienen sobre todo de su carga histórica.&lt;/p&gt;
&lt;p&gt;La primera es su modelo de seguridad antiguo.
En una sesión tradicional de X11, una aplicación normal a menudo puede escuchar la entrada de otras ventanas, capturar el contenido de la pantalla y simular acciones de teclado y ratón.
Desde una perspectiva moderna de seguridad de escritorio, esto es difícil de aceptar.&lt;/p&gt;
&lt;p&gt;La segunda es la complejidad de la ruta de renderizado.
X11 pasó por muchas extensiones: Composite, GLX, DRI, RandR, Present y otras.
Estas extensiones le permitieron seguir soportando escritorios modernos, pero también hicieron más compleja la pila gráfica.
En escenarios con altas tasas de refresco, varios monitores, escalado mixto, DPI mixto y entrada de baja latencia, X11 es más propenso a problemas de borde.&lt;/p&gt;
&lt;p&gt;Además, el foco de mantenimiento de X11 se ha desplazado gradualmente hacia la compatibilidad.
Los escritorios principales todavía soportan X11, pero las nuevas funciones y optimizaciones suelen llegar primero a Wayland.&lt;/p&gt;
&lt;h2 id=&#34;ventajas-de-wayland&#34;&gt;Ventajas de Wayland
&lt;/h2&gt;&lt;p&gt;Las ventajas de Wayland están sobre todo en la experiencia de escritorio moderna.&lt;/p&gt;
&lt;p&gt;Su ruta de renderizado es más directa.
Las aplicaciones renderizan buffers y el compositor se encarga de la composición y visualización unificadas, reduciendo los rodeos de la arquitectura tradicional de X11.
En animaciones, movimiento de ventanas, altas tasas de refresco, varios monitores, gestos de touchpad y escalado fraccionario, Wayland suele permitir una implementación más limpia.&lt;/p&gt;
&lt;p&gt;La seguridad también es una ventaja importante de Wayland.
Por defecto, las aplicaciones no pueden capturar otras ventanas libremente ni escuchar sin condiciones la entrada global del teclado.
Las capturas, la grabación y el uso compartido de pantalla requieren autorización del usuario y normalmente se gestionan mediante portales de escritorio y PipeWire.&lt;/p&gt;
&lt;p&gt;Wayland también se adapta mejor al hardware moderno.
Gestos de touchpad, HiDPI, frecuencia de refresco variable y distintos factores de escalado por monitor suelen ser más naturales bajo Wayland.
GNOME y KDE también han concentrado muchas mejoras de experiencia de escritorio en sus sesiones Wayland durante los últimos años.&lt;/p&gt;
&lt;h2 id=&#34;desventajas-de-wayland&#34;&gt;Desventajas de Wayland
&lt;/h2&gt;&lt;p&gt;El problema de Wayland no es que &amp;ldquo;no se pueda usar&amp;rdquo;, sino que el ecosistema todavía está migrando.&lt;/p&gt;
&lt;p&gt;Algunas herramientas dependían históricamente de las capacidades abiertas de X11, como escuchar teclas globales, enumerar ventanas, hacer clic automáticamente, capturar pantalla o mover ventanas.
En Wayland eso no se puede copiar directamente: debe implementarse mediante portales, protocolos del compositor o API del entorno de escritorio.
Por eso algunas herramientas antiguas dejan de funcionar, o solo funcionan en determinados entornos de escritorio.&lt;/p&gt;
&lt;p&gt;El escritorio remoto es un caso típico.
X11 nació con una idea de transparencia de red. Aunque la experiencia moderna no siempre sea perfecta, muchas herramientas ya maduraron a su alrededor.
Bajo Wayland, el escritorio remoto necesita PipeWire, RDP, VNC, portales de escritorio o soporte del compositor, y la experiencia concreta depende de GNOME, KDE, Sway u otros entornos.&lt;/p&gt;
&lt;p&gt;Los métodos de entrada también fueron un punto doloroso.
Hoy Fcitx5 e IBus han mejorado claramente en los escritorios Wayland principales, pero ciertas aplicaciones Electron, programas antiguos o combinaciones especiales todavía pueden tener problemas con la posición de la ventana de candidatos, el foco o los atajos.&lt;/p&gt;
&lt;p&gt;NVIDIA también fue durante mucho tiempo uno de los obstáculos para Wayland.
En los últimos años, el soporte de los drivers NVIDIA y de los entornos de escritorio ha mejorado mucho, pero si usas una GPU antigua, un driver antiguo o una configuración multimonitor poco común, X11 todavía puede ser más estable.&lt;/p&gt;
&lt;h2 id=&#34;qué-hace-xwayland&#34;&gt;Qué hace Xwayland
&lt;/h2&gt;&lt;p&gt;Mucha gente cree que, al pasar a Wayland, las aplicaciones X11 dejan de funcionar por completo.
En realidad no es así.&lt;/p&gt;
&lt;p&gt;Los escritorios Wayland suelen usar &lt;code&gt;Xwayland&lt;/code&gt; para ejecutar aplicaciones X11 antiguas.
La aplicación cree que se está ejecutando sobre X11, pero el contenido de su ventana se entrega después al compositor Wayland para mostrarse.&lt;/p&gt;
&lt;p&gt;Esto suaviza mucho la migración:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;las aplicaciones Wayland nativas usan Wayland;&lt;/li&gt;
&lt;li&gt;las aplicaciones X11 antiguas usan Xwayland;&lt;/li&gt;
&lt;li&gt;el usuario puede ejecutar ambos tipos de programas en la misma sesión de escritorio.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sin embargo, Xwayland no lo resuelve todo.
Si una herramienta depende de escuchar entrada global, scripts de gestión de ventanas o extensiones X11 de bajo nivel, puede seguir encontrando restricciones.&lt;/p&gt;
&lt;h2 id=&#34;cuál-rinde-mejor&#34;&gt;Cuál rinde mejor
&lt;/h2&gt;&lt;p&gt;No se puede decir simplemente que Wayland siempre sea más rápido que X11, ni que X11 siempre sea más estable.
El rendimiento real depende del entorno de escritorio, el driver gráfico, el tipo de aplicación y el escenario de uso.&lt;/p&gt;
&lt;p&gt;En general:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;para animaciones normales de escritorio y pantallas de alta tasa de refresco, Wayland suele sentirse más fluido;&lt;/li&gt;
&lt;li&gt;para DPI mixto y escalado en varios monitores, Wayland tiene ventaja;&lt;/li&gt;
&lt;li&gt;para aplicaciones antiguas y herramientas especiales, X11 suele dar menos sorpresas;&lt;/li&gt;
&lt;li&gt;en juegos, Wayland ya está bastante maduro gracias a Xwayland y al soporte nativo, aunque algunos juegos o herramientas de captura todavía pueden preferir X11;&lt;/li&gt;
&lt;li&gt;para gráficos profesionales, control remoto y scripts de automatización, conviene probar herramienta por herramienta.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para la mayoría de usuarios comunes, el rendimiento no es la diferencia principal.
Lo que realmente decide la experiencia es la compatibilidad, los límites de seguridad, la configuración de monitores y el soporte de dispositivos de entrada.&lt;/p&gt;
&lt;h2 id=&#34;capturas-grabación-y-uso-compartido-de-pantalla&#34;&gt;Capturas, grabación y uso compartido de pantalla
&lt;/h2&gt;&lt;p&gt;Esta es una de las partes de Wayland que más se malinterpreta.&lt;/p&gt;
&lt;p&gt;En X11, las herramientas de captura y grabación normalmente pueden capturar la pantalla directamente.
Es cómodo, pero también significa que un programa malicioso puede espiar la pantalla con más facilidad.&lt;/p&gt;
&lt;p&gt;En Wayland, las aplicaciones no pueden capturar la pantalla libremente.
Las capturas, la grabación, las transmisiones y el uso compartido en reuniones suelen tener que pasar por portales de escritorio y PipeWire, con autorización del usuario.
Esto es más seguro, pero exige que las aplicaciones soporten las interfaces nuevas.&lt;/p&gt;
&lt;p&gt;Así que si una aplicación de reuniones, una herramienta de grabación o una herramienta de captura no funciona bien bajo Wayland, no significa necesariamente que Wayland &amp;ldquo;no lo soporte&amp;rdquo;.
Es más probable que la aplicación no se haya adaptado bien a los portales o a PipeWire.&lt;/p&gt;
&lt;h2 id=&#34;qué-deberían-elegir-los-jugadores&#34;&gt;Qué deberían elegir los jugadores
&lt;/h2&gt;&lt;p&gt;Los juegos en Linux ya no son exclusivos de X11.
Steam, Proton, Mesa, KDE, GNOME, Gamescope y Xwayland han hecho que la experiencia de juego en Wayland mejore mucho.&lt;/p&gt;
&lt;p&gt;Si usas una GPU AMD o Intel, Wayland normalmente ya puede servir como entorno de juego diario.
Si usas NVIDIA, los drivers nuevos también son cada vez más usables, aunque conviene mantener actualizados el driver y el entorno de escritorio.&lt;/p&gt;
&lt;p&gt;Los jugadores pueden elegir así:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;juegos normales de Steam / Proton: prueba primero Wayland;&lt;/li&gt;
&lt;li&gt;si hay problemas de grabación, transmisión, overlays o latencia de entrada: compara con X11;&lt;/li&gt;
&lt;li&gt;si usas Gamescope: el ecosistema Wayland encaja mejor;&lt;/li&gt;
&lt;li&gt;si usas una GPU o driver antiguos: X11 puede ser más cómodo.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;escritorio-remoto-y-automatización&#34;&gt;Escritorio remoto y automatización
&lt;/h2&gt;&lt;p&gt;Si tu flujo de trabajo depende de escritorio remoto, automatización de ventanas o control global de teclado y ratón, conviene ser más prudente.&lt;/p&gt;
&lt;p&gt;X11 tiene muchas herramientas y un comportamiento directo en estos escenarios.
Por ejemplo, controlar ventanas con scripts, simular clics o capturar el contenido de una ventana concreta suele ser más fácil bajo X11.&lt;/p&gt;
&lt;p&gt;Por diseño de seguridad, Wayland no permite que una aplicación normal controle libremente otras ventanas.
Esto significa que las herramientas de automatización deben usar interfaces proporcionadas por el entorno de escritorio, o bien implementaciones específicas de escritorio remoto.
GNOME y KDE están completando estas capacidades, pero la consistencia entre escritorios todavía no alcanza la de X11.&lt;/p&gt;
&lt;p&gt;Si eres un usuario común de escritorio, Wayland está bien.
Si dependes mucho del control remoto, las pruebas automatizadas o scripts de gestión de ventanas, X11 todavía puede encajar mejor.&lt;/p&gt;
&lt;h2 id=&#34;cómo-saber-cuál-estás-usando&#34;&gt;Cómo saber cuál estás usando
&lt;/h2&gt;&lt;p&gt;Puedes revisar el tipo de sesión actual con una variable de entorno:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$XDG_SESSION_TYPE&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si la salida es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wayland
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;significa que estás en una sesión Wayland.&lt;/p&gt;
&lt;p&gt;Si la salida es:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;x11
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;significa que estás en una sesión X11.&lt;/p&gt;
&lt;p&gt;En GNOME, KDE y otros escritorios similares, normalmente puedes cambiar entre X11 y Wayland desde el menú de engranaje o selector de sesión en la pantalla de inicio de sesión.&lt;/p&gt;
&lt;h2 id=&#34;recomendaciones-de-elección&#34;&gt;Recomendaciones de elección
&lt;/h2&gt;&lt;p&gt;Puedes decidir de esta forma:&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;Escenario&lt;/th&gt;
          &lt;th&gt;Recomendación&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;Equipo nuevo, distribución principal, oficina normal&lt;/td&gt;
          &lt;td&gt;Preferir Wayland&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Versiones recientes de GNOME / KDE&lt;/td&gt;
          &lt;td&gt;Preferir Wayland&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Varios monitores, HiDPI, alta tasa de refresco&lt;/td&gt;
          &lt;td&gt;Preferir Wayland&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Software antiguo, GPU antigua, driver antiguo&lt;/td&gt;
          &lt;td&gt;Preferir X11&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Escritorio remoto, scripts de ventanas, pruebas automatizadas&lt;/td&gt;
          &lt;td&gt;Preferir X11 o probar Wayland punto por punto&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Juegos&lt;/td&gt;
          &lt;td&gt;Probar Wayland primero; si hay problemas, cambiar a X11&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Compartir pantalla en reuniones, grabación&lt;/td&gt;
          &lt;td&gt;Depende del soporte de PipeWire / portales en el software&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;Escritorio sensible a seguridad o multiusuario&lt;/td&gt;
          &lt;td&gt;Preferir Wayland&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Wayland es la dirección de futuro, pero X11 no va a desaparecer de inmediato.
Ambos seguirán coexistiendo durante un tiempo.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Las fortalezas de X11 son su madurez, compatibilidad y gran ecosistema de herramientas.
Encaja bien con software antiguo, escritorio remoto, automatización de ventanas y algunos flujos de trabajo especiales.
Sus puntos débiles son límites de seguridad pobres, una arquitectura compleja y una adaptación menos limpia a pantallas modernas con varios monitores, alta tasa de refresco y escalado mixto.&lt;/p&gt;
&lt;p&gt;Las fortalezas de Wayland son una arquitectura más moderna, mejor seguridad, una ruta de visualización más directa y mejor soporte para HiDPI, gestos de touchpad, varios monitores y experiencias de escritorio modernas.
Sus puntos débiles son los costes de adaptación en algunas herramientas antiguas, control remoto, capturas y grabación, y escenarios de métodos de entrada.&lt;/p&gt;
&lt;p&gt;Los usuarios comunes pueden tomar Wayland como opción predeterminada.
Si una aplicación o un periférico no se comporta bien, vuelve a X11 y compara.
Para el escritorio Linux, no se trata de tomar partido, sino de elegir la opción que resulte más cómoda según tu hardware, software y flujo de trabajo.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://wayland.freedesktop.org/architecture.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Wayland Architecture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://wayland.freedesktop.org/faq.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Wayland FAQ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://wayland.freedesktop.org/xserver.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Xwayland Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://wiki.archlinux.org/title/Wayland&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;ArchWiki: Wayland&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Resumen de novedades de Linux Kernel 7.0</title>
        <link>https://knightli.com/es/2026/05/01/linux-kernel-7-0-new-features/</link>
        <pubDate>Fri, 01 May 2026 14:46:07 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/05/01/linux-kernel-7-0-new-features/</guid>
        <description>&lt;p&gt;Los números de versión del kernel Linux nunca han seguido versionado semántico. Un salto de versión mayor suele tener más que ver con el ritmo de mantenimiento continuo del proyecto.
En el mensaje de lanzamiento, Linus Torvalds también describió 7.0 como una versión normal: la última semana estuvo compuesta sobre todo por pequeñas correcciones en red, código de arquitectura, herramientas, selftests y drivers.&lt;/p&gt;
&lt;p&gt;Lo que realmente merece atención es el conjunto de cambios incrementales.
Linux 7.0 cubre sistemas de archivos, gestión de memoria, soporte de hardware, aislamiento de seguridad, soporte de Rust y limpieza de drivers.&lt;/p&gt;
&lt;h2 id=&#34;sistemas-de-archivos-xfs-ext4-y-ntfs3-cambiaron&#34;&gt;Sistemas de archivos: XFS, EXT4 y NTFS3 cambiaron
&lt;/h2&gt;&lt;p&gt;Los sistemas de archivos son una de las áreas más visibles de Linux 7.0.&lt;/p&gt;
&lt;p&gt;XFS introduce capacidades relacionadas con autorreparación.
Junto con un nuevo mecanismo genérico de reporte de errores de sistemas de archivos, los sistemas de archivos pueden reportar corrupción de metadatos y errores de I/O al espacio de usuario de una forma más unificada.
Con soporte adecuado de servicios del sistema, XFS puede manejar automáticamente algunos flujos de reparación mientras el sistema de archivos sigue montado.
Esto no significa que cualquier problema de corrupción de disco pueda resolverse sin dolor, pero para servidores y sistemas de larga ejecución, la ruta de detección y reparación queda más completa.&lt;/p&gt;
&lt;p&gt;EXT4 continúa mejorando el rendimiento de escrituras directas concurrentes.
Si una máquina suele ejecutar copias de seguridad, builds, descargas, bases de datos o tareas de logs que escriben en disco al mismo tiempo, estas optimizaciones deberían volver más estable la ruta de escrituras concurrentes.
No es el tipo de cambio que todo usuario de escritorio notará de inmediato, pero importa en escenarios de I/O pesada.&lt;/p&gt;
&lt;p&gt;NTFS3 también recibe una actualización mayor del driver, incluida asignación diferida, operaciones de archivo basadas en iomap y mejor readahead para escaneos de directorios grandes.
Si accedes a menudo a particiones Windows o discos NTFS externos desde Linux, estas mejoras merecen atención.&lt;/p&gt;
&lt;p&gt;Además, exFAT mejora las lecturas secuenciales multi-cluster, lo que puede acelerar la lectura secuencial en algunos dispositivos con clusters pequeños.&lt;/p&gt;
&lt;h2 id=&#34;memoria-y-swap-mejor-comportamiento-bajo-presión-de-memoria&#34;&gt;Memoria y swap: mejor comportamiento bajo presión de memoria
&lt;/h2&gt;&lt;p&gt;Linux 7.0 continúa el trabajo de limpieza del subsistema swap de versiones recientes.
Un foco es mejorar la ruta para leer páginas de vuelta desde swap, especialmente cuando varios procesos comparten las mismas páginas expulsadas.
En esos casos, el throughput debería mejorar.&lt;/p&gt;
&lt;p&gt;Para usuarios de escritorio, quizá no se sienta como si el sistema se volviera más rápido de golpe.
Pero en sistemas con poca memoria, hosts densos de contenedores, servicios tipo Redis con persistencia activada o configuraciones zram respaldadas por disco, estos cambios pueden reducir jitter bajo presión de memoria.&lt;/p&gt;
&lt;p&gt;Las rutas de zram también reciben optimizaciones.
Antes, en algunos casos, el kernel necesitaba descomprimir páginas zram antes de escribirlas en un dispositivo de respaldo.
La nueva ruta puede escribir datos comprimidos directamente, reduciendo procesamiento innecesario.&lt;/p&gt;
&lt;h2 id=&#34;cpu-y-rendimiento-intel-tsx-auto-hilos-y-operaciones-de-archivo-más-rápidas&#34;&gt;CPU y rendimiento: Intel TSX auto, hilos y operaciones de archivo más rápidas
&lt;/h2&gt;&lt;p&gt;Linux 7.0 ajusta la política predeterminada para Intel TSX.
Por problemas de seguridad pasados, TSX estaba desactivado por defecto en muchos procesadores.
El kernel ahora usa una política &lt;code&gt;auto&lt;/code&gt; más precisa: las CPU afectadas lo mantienen desactivado, mientras las no afectadas o adecuadas pueden activarlo automáticamente.&lt;/p&gt;
&lt;p&gt;Esto puede ayudar a algunas cargas multihilo, especialmente aplicaciones que dependen de extensiones de sincronización transaccional.
No es un interruptor universal de aceleración; el beneficio real sigue dependiendo del modelo de CPU y de si la aplicación usa la función.&lt;/p&gt;
&lt;p&gt;Linux 7.0 también incluye optimizaciones para asignación de PID, creación y destrucción de hilos, y rutas de apertura/cierre de archivos.
Estas optimizaciones normalmente no se convierten en titulares por sí solas, pero se acumulan en pequeñas mejoras de respuesta del sistema y servicios de alta concurrencia.&lt;/p&gt;
&lt;h2 id=&#34;soporte-de-hardware-nuevas-plataformas-y-mejoras-de-dispositivos-existentes&#34;&gt;Soporte de hardware: nuevas plataformas y mejoras de dispositivos existentes
&lt;/h2&gt;&lt;p&gt;Linux 7.0 continúa una gran cantidad de trabajo de habilitación de hardware.
Estas actualizaciones suelen caer en dos grupos: preparación para plataformas que aún no están ampliamente disponibles y mejoras para dispositivos que ya están en manos de usuarios.&lt;/p&gt;
&lt;p&gt;Para plataformas nuevas, Linux 7.0 incluye más preparación para Intel Nova Lake, Intel Crescent Island, nueva IP gráfica de AMD y AMD Zen 6.
Estos cambios quizá no importen a usuarios comunes de inmediato, pero determinan si el nuevo hardware podrá recibir soporte en mainline más rápido después del lanzamiento.&lt;/p&gt;
&lt;p&gt;En ARM64 y computadoras de placa única, la decodificación de video por hardware H.264/H.265 para Rockchip RK3588/RK3576 entra en el alcance de soporte mainline.
Esto significa que dispositivos como Orange Pi 5 y Radxa ROCK 5 ya no necesitan depender por completo de kernels BSP del fabricante para decodificación por hardware.&lt;/p&gt;
&lt;p&gt;También hay muchas mejoras detalladas para portátiles y periféricos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ASUS WMI mejora soporte de retroiluminación, iluminación de teclado y hotkeys de ventilador para modelos ROG y TUF.&lt;/li&gt;
&lt;li&gt;HP WMI agrega control manual de ventilador para algunos modelos Victus y corrige luces indicadoras de audio.&lt;/li&gt;
&lt;li&gt;Lenovo WMI expone más información de monitoreo HWMON para dispositivos Legion.&lt;/li&gt;
&lt;li&gt;El driver gráfico Intel Xe expone más sensores de temperatura.&lt;/li&gt;
&lt;li&gt;Las GPU discretas Intel Arc serie B pueden entrar en estados PCIe de ahorro de energía más profundos.&lt;/li&gt;
&lt;li&gt;Las guitarras Bluetooth de Rock Band 4 y el teclado Bluetooth Logitech K980 reciben mejor soporte del kernel.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cada cambio es pequeño por separado, pero para usuarios de portátiles, dispositivos de juego, placas de desarrollo y periféricos, un soporte mainline más completo facilita el mantenimiento futuro de las distribuciones.&lt;/p&gt;
&lt;h2 id=&#34;seguridad-y-aislamiento-io_uring-puede-usar-filtrado-bpf&#34;&gt;Seguridad y aislamiento: io_uring puede usar filtrado BPF
&lt;/h2&gt;&lt;p&gt;Linux 7.0 agrega soporte de filtrado BPF a &lt;code&gt;io_uring&lt;/code&gt;.
Esto importa para contenedores, sandboxes y entornos con requisitos altos de seguridad.&lt;/p&gt;
&lt;p&gt;En el pasado, algunos administradores desactivaban &lt;code&gt;io_uring&lt;/code&gt; por completo para reducir superficie de ataque.
Con filtrado BPF, ahora pueden restringir operaciones permitidas de forma más precisa, en lugar de elegir solo entre totalmente habilitado o totalmente deshabilitado.&lt;/p&gt;
&lt;p&gt;Esto no hace que los riesgos de &lt;code&gt;io_uring&lt;/code&gt; desaparezcan automáticamente, pero da a administradores y frameworks de runtime una herramienta de aislamiento más controlable.&lt;/p&gt;
&lt;h2 id=&#34;el-soporte-de-rust-ya-no-es-solo-una-etiqueta-experimental&#34;&gt;El soporte de Rust ya no es solo una etiqueta experimental
&lt;/h2&gt;&lt;p&gt;En Linux 7.0, el estado de Rust para Linux se vuelve más estable.
Esto no significa que el kernel vaya a reescribirse masivamente en Rust, ni que C esté siendo reemplazado.&lt;/p&gt;
&lt;p&gt;Más precisamente, la infraestructura para Rust dentro del kernel ha entrado en una etapa más formal.
Futuros drivers, subsistemas o parte de código sensible a seguridad podrán elegir Rust donde encaje.
Es una ruta gradual: estabilizar primero interfaces, sistema de build, documentación y proceso de mantenimiento, y luego dejar que el código real crezca con el tiempo.&lt;/p&gt;
&lt;h2 id=&#34;eliminación-de-funcionalidad-antigua-desaparece-laptop_mode&#34;&gt;Eliminación de funcionalidad antigua: desaparece laptop_mode
&lt;/h2&gt;&lt;p&gt;Linux 7.0 elimina &lt;code&gt;laptop_mode&lt;/code&gt;.
Era una función de ahorro de energía de larga historia, diseñada sobre todo para la era de portátiles con disco duro, reduciendo despertares de disco para ahorrar energía.&lt;/p&gt;
&lt;p&gt;Los portátiles modernos son mayoritariamente SSD, y las rutas de reclaim de memoria, dispositivos de bloque y sistemas de archivos del kernel han cambiado mucho.
Mantener este mecanismo antiguo aumenta el costo de mantenimiento, y su cobertura de pruebas no era ideal.
Eliminarlo reduce el impacto de código viejo sobre rutas modernas.&lt;/p&gt;
&lt;h2 id=&#34;teclas-relacionadas-con-ia-preparación-para-una-nueva-generación-de-interacción-de-teclado&#34;&gt;Teclas relacionadas con IA: preparación para una nueva generación de interacción de teclado
&lt;/h2&gt;&lt;p&gt;Linux 7.0 agrega varios nuevos keycodes HID para interacción contextual con IA, como actuar sobre contenido seleccionado, insertar contenido generado por contexto e iniciar consultas contextuales.&lt;/p&gt;
&lt;p&gt;Esto no es funcionalidad de IA integrada en el kernel.
Se parece más a reservar definiciones de eventos de entrada para futuros teclados y periféricos, de modo que entornos de escritorio, aplicaciones o herramientas de fabricantes puedan reconocer esas teclas.
Lo que hagan realmente seguirá dependiendo de la distribución, el entorno de escritorio y la integración a nivel de aplicación.&lt;/p&gt;
&lt;h2 id=&#34;conviene-actualizar-de-inmediato&#34;&gt;¿Conviene actualizar de inmediato?
&lt;/h2&gt;&lt;p&gt;Si usas una distribución rolling, Linux 7.0 probablemente llegará de forma natural mediante actualizaciones del sistema.
Si usas una distribución nueva como Ubuntu 26.04 LTS, 7.0 también podría aparecer como versión de kernel predeterminada o principal.&lt;/p&gt;
&lt;p&gt;Pero si tu máquina es un servidor de producción, NAS, host de virtualización o depende de drivers cerrados y módulos propietarios de kernel, no actualices manualmente solo porque el número de versión pasó a 7.0.
Un enfoque más seguro es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;esperar a que la distribución proporcione paquetes oficiales de kernel;&lt;/li&gt;
&lt;li&gt;comprobar compatibilidad de tarjetas gráficas, tarjetas de red, ZFS, VirtualBox, VMware y módulos DKMS;&lt;/li&gt;
&lt;li&gt;probar primero en una máquina de pruebas o entorno con snapshot;&lt;/li&gt;
&lt;li&gt;observar las versiones puntuales 7.0.x.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Según el directorio v7.x de kernel.org, ya se publicaron 7.0.1, 7.0.2 y 7.0.3.
Si planeas compilar o probar manualmente, prefiere la última versión estable 7.0.x en lugar de enfocarte solo en el tarball inicial 7.0.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Linux Kernel 7.0 no es una versión que reescriba todo solo porque cambió el número mayor.
Se parece más a una actualización regular amplia del kernel: los sistemas de archivos son más confiables, swap e I/O siguen mejorando, el soporte de hardware avanza, y Rust, el aislamiento de &lt;code&gt;io_uring&lt;/code&gt; y las definiciones de entrada HID completan infraestructura necesaria para la evolución a largo plazo.&lt;/p&gt;
&lt;p&gt;Para usuarios comunes de escritorio, los cambios más prácticos quizá vengan del soporte de hardware, drivers gráficos, ahorro de energía y reparación de sistemas de archivos.
Para servidores y desarrolladores, el reporte de errores y autorreparación de XFS, el filtrado BPF de &lt;code&gt;io_uring&lt;/code&gt;, la optimización de swap y el soporte de nuevas plataformas merecen más atención.&lt;/p&gt;
&lt;p&gt;Referencias:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.kernel.org/pub/linux/kernel/v7.x/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;kernel.org: directorio Linux kernel v7.x&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.spinics.net/lists/kernel/msg6151145.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Espejo del mensaje de lanzamiento de Linux 7.0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.phoronix.com/news/Linux-7.0-Released&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Phoronix: Linux 7.0 Released With New Hardware Support, Optimizations &amp;amp; Self-Healing XFS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.omgubuntu.co.uk/2026/04/linux-7-0-kernel-features&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;OMG! Ubuntu: Linux 7.0 kernel brings faster swap &amp;amp; Rock Band 4 controller support&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Actualizaciones de hardware y GPU Ubuntu 26.04 LTS: CUDA, ROCm, DPC&#43;&#43; y más cambios de plataforma</title>
        <link>https://knightli.com/es/2026/04/26/ubuntu-26-04-lts-gpu-hardware-ai-updates/</link>
        <pubDate>Sun, 26 Apr 2026 19:35:57 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/26/ubuntu-26-04-lts-gpu-hardware-ai-updates/</guid>
        <description>&lt;p&gt;Si el artículo anterior funcionó como una descripción general centrada en el escritorio de &lt;code&gt;Ubuntu 26.04 LTS&lt;/code&gt;, es mejor leer este como su seguimiento del hardware y la computación. En este ciclo &lt;code&gt;26.04&lt;/code&gt;, Ubuntu impulsó una serie de cambios en IA, computación GPU y compatibilidad de plataforma en el archivo principal o alcance de soporte formal.&lt;/p&gt;
&lt;p&gt;La versión corta es esta: la parte más importante de esta ronda no son solo las actualizaciones de escritorio y kernel, sino que &lt;strong&gt;Ubuntu está incorporando pilas de computación de GPU Intel, NVIDIA y AMD a la distribución de una manera más sistemática&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;1-intel-dpc-y-componentes-relacionados-ahora-están-en-ubuntu-archive&#34;&gt;1. Intel DPC++ y componentes relacionados ahora están en Ubuntu Archive
&lt;/h2&gt;&lt;p&gt;A partir de &lt;code&gt;26.04&lt;/code&gt;, el compilador de código abierto &lt;code&gt;oneAPI DPC++&lt;/code&gt; de Intel está disponible directamente desde Ubuntu Archive para crear código &lt;code&gt;SYCL&lt;/code&gt;. Su tiempo de ejecución también incluye adaptadores para GPU Intel.&lt;/p&gt;
&lt;p&gt;Ahora también están disponibles dos componentes relacionados en los repositorios de Ubuntu:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;oneDPL&lt;/code&gt;, la biblioteca DPC++, que proporciona API de desarrollador de mayor productividad&lt;/li&gt;
&lt;li&gt;&lt;code&gt;oneDNN&lt;/code&gt;, creado con &lt;code&gt;dpclang-6&lt;/code&gt;, que puede ejecutarse en GPU Intel&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Eso significa que si ya está trabajando con &lt;code&gt;SYCL&lt;/code&gt;, computación heterogénea o cargas de trabajo de IA en GPU Intel, Ubuntu ahora ofrece una ruta más directa en lugar de obligarlo a mantener una pila externa separada para todo.&lt;/p&gt;
&lt;p&gt;Ubuntu también señala un requisito práctico: los usuarios deben estar en el grupo &amp;ldquo;renderizar&amp;rdquo; para utilizar realmente estas capacidades relacionadas con la GPU Intel.&lt;/p&gt;
&lt;h2 id=&#34;2-el-kit-de-herramientas-nvidia-cuda-ahora-se-puede-instalar-directamente-con-apt&#34;&gt;2. El kit de herramientas NVIDIA CUDA ahora se puede instalar directamente con &lt;code&gt;apt&lt;/code&gt;
&lt;/h2&gt;&lt;p&gt;Para muchos desarrolladores y operadores, este puede ser uno de los cambios más útiles de inmediato en las notas.&lt;/p&gt;
&lt;p&gt;A partir de &lt;code&gt;26.04&lt;/code&gt;, el &lt;code&gt;kit de herramientas NVIDIA CUDA&lt;/code&gt; ahora se puede instalar directamente desde Ubuntu Archive:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install cuda-toolkit
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;El valor aquí es mayor que simplemente guardar algunos pasos de configuración.&lt;/p&gt;
&lt;p&gt;Para los desarrolladores que envían software en Ubuntu, este nuevo modelo significa que pueden simplemente declarar una dependencia del &amp;ldquo;tiempo de ejecución CUDA&amp;rdquo;, mientras que Ubuntu gestiona la instalación y la compatibilidad a nivel de distribución. Eso hace que CUDA se sienta más como una capacidad nativa del sistema en Ubuntu, en lugar de una capa de software adicional que siempre debe mantenerse por separado.&lt;/p&gt;
&lt;h2 id=&#34;3-amd-rocm-710-ya-está-en-universe&#34;&gt;3. AMD ROCm 7.1.0 ya está en Universe
&lt;/h2&gt;&lt;p&gt;Por el lado de AMD, Ubuntu Universe ahora incluye &lt;code&gt;ROCm 7.1.0&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Estas bibliotecas proporcionan principalmente:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;infraestructura backend para entrenamiento e inferencia de IA en GPU AMD&lt;/li&gt;
&lt;li&gt;fundamentos de software para el aprendizaje automático y la informática de alto rendimiento&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Canonical también señala que los componentes relacionados con ROCm se prueban continuamente en su canal de CI/CD. Más allá de &amp;ldquo;autopkgtests&amp;rdquo;, eso incluye varias aplicaciones de espacio de usuario como:&lt;/p&gt;
&lt;p&gt;-&lt;code&gt;llama.cpp&lt;/code&gt;
-&lt;code&gt;pytorch&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;licuadora&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Servidor de limonada&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ese detalle es importante, porque muestra que Ubuntu no se limita a colocar paquetes en el archivo. Está validando ROCm como una pila de software mantenible.&lt;/p&gt;
&lt;h2 id=&#34;4-la-historia-más-importante-es-que-los-tres-ecosistemas-de-gpu-están-aterrizando&#34;&gt;4. La historia más importante es que los tres ecosistemas de GPU están aterrizando
&lt;/h2&gt;&lt;p&gt;Es más fácil ver la dirección de &lt;code&gt;26.04&lt;/code&gt; cuando &lt;code&gt;DPC++&lt;/code&gt;, &lt;code&gt;CUDA&lt;/code&gt; y &lt;code&gt;ROCm&lt;/code&gt; se ven juntos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Intel: incorporando componentes &lt;code&gt;SYCL&lt;/code&gt;/&lt;code&gt;oneAPI&lt;/code&gt; a repositorios oficiales&lt;/li&gt;
&lt;li&gt;NVIDIA: dando al &lt;code&gt;kit de herramientas CUDA&lt;/code&gt; una ruta de instalación administrada por distribución&lt;/li&gt;
&lt;li&gt;AMD: lanzando &lt;code&gt;ROCm 7.1.0&lt;/code&gt; en Universe con pruebas en curso&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si trabaja con este tipo de cargas de trabajo en Ubuntu, esta versión probablemente le resultará más relevante:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;inferencia local LLM&lt;/li&gt;
&lt;li&gt;Entrenamiento o ajuste acelerado por GPU&lt;/li&gt;
&lt;li&gt;Blender, informática científica y HPC.&lt;/li&gt;
&lt;li&gt;entornos de desarrollo que necesitan moverse a través de diferentes plataformas GPU&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En otras palabras, Ubuntu ya no es sólo &amp;ldquo;un sistema donde puedes instalar un controlador de GPU&amp;rdquo;. Está comenzando a tener una &lt;strong&gt;pila de software de espacio de usuario más completa para computación con IA y GPU&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id=&#34;5-nvidia-dynamic-boost-está-habilitado-de-forma-predeterminada&#34;&gt;5. NVIDIA Dynamic Boost está habilitado de forma predeterminada
&lt;/h2&gt;&lt;p&gt;Desde el &amp;ldquo;25.04&amp;rdquo;, &amp;ldquo;Dynamic Boost&amp;rdquo; se ha habilitado de forma predeterminada en las computadoras portátiles NVIDIA compatibles.&lt;/p&gt;
&lt;p&gt;La idea es sencilla: dependiendo de la carga del sistema, la energía se puede cambiar dinámicamente entre la CPU y la GPU. En escenarios de juegos, eso generalmente significa darle más potencia a la GPU cuando sea necesario para extraer más rendimiento.&lt;/p&gt;
&lt;p&gt;Sólo se aplica bajo dos condiciones:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la computadora portátil está conectada a la alimentación de CA&lt;/li&gt;
&lt;li&gt;la carga de la GPU es lo suficientemente alta&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No se activa mientras el sistema está funcionando con batería.&lt;/p&gt;
&lt;h2 id=&#34;6-la-compatibilidad-con-las-nuevas-gpu-intel-integradas-y-discretas-sigue-avanzando&#34;&gt;6. La compatibilidad con las nuevas GPU Intel integradas y discretas sigue avanzando
&lt;/h2&gt;&lt;p&gt;Ubuntu también continúa ampliando el soporte para nuevas GPU Intel, que incluyen:&lt;/p&gt;
&lt;p&gt;Integrado:&lt;/p&gt;
&lt;p&gt;-&lt;code&gt;Intel Core Ultra Xe2&lt;/code&gt;
-&lt;code&gt;Intel Core Ultra Xe3&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Discreto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Intel Arco 5 B570&lt;/code&gt;
-&lt;code&gt;Intel Arc 5 B580&lt;/code&gt;
-&lt;code&gt;Intel Arc Pro B50&lt;/code&gt;
-&lt;code&gt;Intel Arc Pro B60&lt;/code&gt;
-&lt;code&gt;Intel Arc Pro B65&lt;/code&gt;
-&lt;code&gt;Intel Arc Pro B70&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ubuntu también destaca varias características que ya están disponibles en estos dispositivos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;rendimiento mejorado del trazado de rayos de GPU y CPU a través de Intel Embree, beneficiando aplicaciones como &lt;code&gt;Blender 4.2+&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;codificación de vídeo por hardware para &lt;code&gt;AVC&lt;/code&gt;, &lt;code&gt;JPEG&lt;/code&gt;, &lt;code&gt;HEVC&lt;/code&gt; y &lt;code&gt;AV1&lt;/code&gt; en dispositivos &amp;ldquo;Battlemage&amp;rdquo;&lt;/li&gt;
&lt;li&gt;una nueva optimización &lt;code&gt;CCS&lt;/code&gt; en Intel Compute Runtime&lt;/li&gt;
&lt;li&gt;soporte de depuración habilitado para GPU Intel Xe&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si está viendo las versiones de seguimiento, &amp;ldquo;25.10&amp;rdquo; también continúa incorporando más capacidades, que incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;soporte inicial para la plataforma de cliente de próxima generación de Intel con nombre en código &lt;code&gt;Panther Lake&lt;/code&gt; hasta &lt;code&gt;Linux kernel 6.17&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;IOMMU mejorado, subsistema PCIe y compatibilidad con múltiples GPU&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Mesa 25.2.3&lt;/code&gt; habilitando &lt;code&gt;VK_KHR_shader_bfloat16&lt;/code&gt; para Battlemage y Panther Lake&lt;/li&gt;
&lt;li&gt;&lt;code&gt;intel-media-driver 25.3.0&lt;/code&gt; agrega soporte de decodificación Panther Lake y codificación &lt;code&gt;VP9&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;intel-compute-runtime 25.31&lt;/code&gt; ajusta el comportamiento de asignación de eventos de memoria del dispositivo local y del grupo &lt;code&gt;USM&lt;/code&gt; de nivel cero&lt;/li&gt;
&lt;li&gt;&lt;code&gt;level-zero 1.24&lt;/code&gt; y &lt;code&gt;level-zero-raytracing 1.1.0&lt;/code&gt; brindan compatibilidad con especificaciones más amplias y extensión RTAS&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;7-suspender-y-reanudar-también-es-más-estable-en-las-computadoras-de-escritorio-nvidia&#34;&gt;7. Suspender y reanudar también es más estable en las computadoras de escritorio Nvidia
&lt;/h2&gt;&lt;p&gt;A partir de &lt;code&gt;25.10&lt;/code&gt;, Ubuntu habilita el soporte de suspensión y reanudación en el controlador propietario &lt;code&gt;Nvidia&lt;/code&gt; para reducir la corrupción y la congelación al activar un sistema de escritorio.&lt;/p&gt;
&lt;p&gt;Este no es el tipo de cambio más visible, pero es muy importante en el uso diario, especialmente en computadoras de escritorio que permanecen encendidas durante períodos prolongados y que se suspenden y reanudan con frecuencia.&lt;/p&gt;
&lt;h2 id=&#34;8-arm-raspberry-pi-risc-v-e-ibm-z-también-reciben-cambios-más-difíciles-a-nivel-de-plataforma&#34;&gt;8. ARM, Raspberry Pi, RISC-V e IBM Z también reciben cambios más difíciles a nivel de plataforma
&lt;/h2&gt;&lt;p&gt;Más allá de la pila de software de GPU, las notas de la versión también incluyen varios cambios a nivel de plataforma que vale la pena mencionar por separado.&lt;/p&gt;
&lt;h3 id=&#34;plataformas-de-escritorio-arm64&#34;&gt;Plataformas de escritorio ARM64
&lt;/h3&gt;&lt;p&gt;A partir de &lt;code&gt;25.10&lt;/code&gt;, el kernel &lt;code&gt;linux-generic&lt;/code&gt; &lt;code&gt;ARM64&lt;/code&gt; proporciona una compatibilidad de escritorio más amplia para las plataformas de escritorio ARM64 que arrancan a través de &lt;code&gt;UEFI&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;un-nuevo-diseño-de-arranque-de-raspberry-pi&#34;&gt;Un nuevo diseño de arranque de Raspberry Pi
&lt;/h3&gt;&lt;p&gt;Un cambio introducido en &lt;code&gt;25.10&lt;/code&gt; y refinado en &lt;code&gt;26.04&lt;/code&gt; es un nuevo diseño de partición de arranque para sistemas Raspberry Pi.
Su objetivo es mejorar la confiabilidad del arranque: los recursos de arranque recién escritos primero se &amp;ldquo;prueban&amp;rdquo; antes de confirmarlos como el nuevo conjunto &amp;ldquo;bueno conocido&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Los requisitos de fecha del firmware son la parte que la mayoría de los usuarios querrán recordar:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Pi 3 / 3+ / CM3+ / Zero 2W&lt;/code&gt;: no se requiere ninguna acción adicional, el firmware de arranque está en la propia imagen&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Pi 4/400/CM4&lt;/code&gt;: el firmware de arranque no debe tener una fecha anterior a &lt;code&gt;2022-11-25&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Pi 5/500/CM5&lt;/code&gt;: el firmware de arranque no debe tener una fecha anterior a &lt;code&gt;2025-02-11&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Puedes comprobarlo con:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rpi-eeprom-update
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si el firmware es demasiado antiguo y está utilizando &amp;ldquo;Ubuntu 24.04 LTS&amp;rdquo; o más reciente, puede actualizarlo de esta manera:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rpi-eeprom-update -a
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo reboot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;las-imágenes-de-escritorio-de-raspberry-pi-ahora-usan-escritorio-mínimo&#34;&gt;Las imágenes de escritorio de Raspberry Pi ahora usan escritorio mínimo
&lt;/h3&gt;&lt;p&gt;Desde &amp;ldquo;25.10&amp;rdquo;, las imágenes de escritorio de Ubuntu para Raspberry Pi se basan en &amp;ldquo;desktop-minimal&amp;rdquo; en lugar de en la semilla de &amp;ldquo;escritorio&amp;rdquo; completa.&lt;/p&gt;
&lt;p&gt;Ubuntu ofrece aquí un beneficio muy concreto: el conjunto de aplicaciones predeterminado es más pequeño, lo que ahorra alrededor de &amp;ldquo;777 MB&amp;rdquo; en la imagen sin comprimir y en los sistemas instalados.&lt;/p&gt;
&lt;p&gt;Si desea eliminar esa aplicación predeterminada configurada de forma masiva después de la actualización, puede usar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt purge ubuntu-desktop --autoremove
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si desea conservar algunas de esas aplicaciones, primero márquelas como instaladas manualmente con &amp;ldquo;apt&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;el-intercambio-en-raspberry-pi-ahora-lo-maneja-cloud-init&#34;&gt;El intercambio en Raspberry Pi ahora lo maneja cloud-init
&lt;/h3&gt;&lt;p&gt;Desde &amp;ldquo;25.10&amp;rdquo;, la creación de archivos de intercambio en imágenes de escritorio de Raspberry Pi se maneja mediante &amp;ldquo;cloud-init&amp;rdquo;.&lt;br&gt;
Si desea personalizar el tamaño del intercambio antes del primer inicio, puede editar los &amp;ldquo;datos de usuario&amp;rdquo; directamente en la partición de inicio.&lt;/p&gt;
&lt;h3 id=&#34;los-requisitos-de-risc-v-han-aumentado&#34;&gt;Los requisitos de RISC-V han aumentado
&lt;/h3&gt;&lt;p&gt;A partir de &lt;code&gt;25.10&lt;/code&gt;, la compilación &lt;code&gt;RISC-V&lt;/code&gt; de &lt;code&gt;Ubuntu 26.04 LTS&lt;/code&gt; requiere hardware que implemente el &lt;code&gt;perfil ISA RVA23S64&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Los sistemas que no cumplan con ese requisito ya no podrán ejecutar &amp;ldquo;Ubuntu 26.04 LTS&amp;rdquo;. Si todavía tiene placas basadas en núcleos de procesador &amp;ldquo;RVA20&amp;rdquo; anteriores, debe permanecer en la línea de soporte proporcionada por &amp;ldquo;Ubuntu 24.04 LTS&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Según Ubuntu, a partir de &amp;ldquo;abril de 2026&amp;rdquo;, todavía no hay hardware &amp;ldquo;RVA23S64&amp;rdquo; real disponible. Por lo tanto, la única plataforma actualmente compatible es efectivamente un entorno virtualizado &amp;ldquo;QEMU&amp;rdquo; configurado con &amp;ldquo;-cpu rva23s64&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;ibm-z-ahora-requiere-z15-como-mínimo&#34;&gt;IBM Z ahora requiere z15 como mínimo
&lt;/h3&gt;&lt;p&gt;A partir de &lt;code&gt;26.04&lt;/code&gt;, el requisito mínimo para la arquitectura &lt;code&gt;s390x&lt;/code&gt; pasó a &lt;code&gt;z15&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Eso significa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;z14&lt;/code&gt; / &lt;code&gt;LinuxONE II&lt;/code&gt; y sistemas más antiguos ya no pueden instalar &lt;code&gt;Ubuntu 26.04 LTS&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;z15&lt;/code&gt; / &lt;code&gt;LinuxONE III&lt;/code&gt; y los sistemas más nuevos deberían tener un mejor rendimiento&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;9-quién-debería-leer-esto-primero&#34;&gt;9. ¿Quién debería leer esto primero?
&lt;/h2&gt;&lt;p&gt;Este artículo es más útil que la descripción general del escritorio si se encuentra en alguno de estos casos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;usas Ubuntu para &lt;code&gt;CUDA&lt;/code&gt;, &lt;code&gt;ROCm&lt;/code&gt;, &lt;code&gt;SYCL&lt;/code&gt; o inferencia de IA local&lt;/li&gt;
&lt;li&gt;realiza trabajos de desarrollo o computación en GPU Intel, NVIDIA o AMD&lt;/li&gt;
&lt;li&gt;mantiene Raspberry Pi, ARM64, RISC-V, IBM Z u otras plataformas x86 no estándar&lt;/li&gt;
&lt;li&gt;eres especialmente sensible a la disponibilidad del repositorio, el comportamiento del controlador, los tiempos de ejecución y los requisitos de la plataforma después de una actualización&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;10-comida-para-llevar-de-una-línea&#34;&gt;10. Comida para llevar de una línea
&lt;/h2&gt;&lt;p&gt;El punto clave de &amp;ldquo;Ubuntu 26.04 LTS&amp;rdquo; en el lado del hardware y la pila de IA no es que un proveedor de GPU haya obtenido una actualización destacada. Es que &lt;strong&gt;DPC++ de Intel, CUDA de NVIDIA y ROCm de AMD están ingresando al ecosistema Ubuntu de una manera más oficial, en repositorio y mantenible&lt;/strong&gt;.
Si solía pensar en Ubuntu como &amp;ldquo;primero el sistema, luego yo mismo ensamblo el entorno de GPU&amp;rdquo;, &lt;code&gt;26.04&lt;/code&gt; comienza a parecerse más a una distribución que está dispuesta a transportar activamente IA y cargas de trabajo informáticas heterogéneas.&lt;/p&gt;
</description>
        </item>
        <item>
        <title>Lanzamiento de Ubuntu 26.04 LTS: importantes actualizaciones de escritorio con GNOME 50 y Linux 7.0</title>
        <link>https://knightli.com/es/2026/04/26/ubuntu-26-04-lts-release-notes/</link>
        <pubDate>Sun, 26 Apr 2026 16:10:25 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/26/ubuntu-26-04-lts-release-notes/</guid>
        <description>&lt;p&gt;&lt;code&gt;Ubuntu 26.04 LTS&lt;/code&gt; se lanzó el &lt;strong&gt;23 de abril de 2026&lt;/strong&gt;, con el nombre en clave &lt;code&gt;Resolute Raccoon&lt;/code&gt;. Esta es la nueva versión de soporte a largo plazo, con soporte estándar hasta &lt;strong&gt;abril de 2031&lt;/strong&gt;. Si utiliza &lt;code&gt;Ubuntu Pro&lt;/code&gt;, el mantenimiento de la seguridad se puede extender a &lt;strong&gt;10 años&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Si está actualizando desde &lt;code&gt;Ubuntu 24.04 LTS&lt;/code&gt;, esto es más que una versión de rutina. También incluye los principales cambios introducidos en &lt;code&gt;24.10&lt;/code&gt;, &lt;code&gt;25.04&lt;/code&gt; y &lt;code&gt;25.10&lt;/code&gt;. Por lo tanto, este artículo funciona mejor como guía rápida sobre lo que vale la pena comprobar antes de actualizar.&lt;/p&gt;
&lt;p&gt;Si solo desea obtener las conclusiones más importantes de este lanzamiento, recuerde primero estos cuatro puntos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GNOME 50&lt;/code&gt; ha llegado a una versión LTS, aportando mejoras más claras a la experiencia de escritorio y soporte de pantalla&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Linux kernel 7.0&lt;/code&gt; se convierte en la nueva base, actualizando tanto el soporte de hardware como la base de mantenimiento a largo plazo.&lt;/li&gt;
&lt;li&gt;Ubuntu Desktop ahora se ha trasladado completamente a &lt;code&gt;Wayland&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;El conjunto de aplicaciones predeterminado se ha actualizado en todos los ámbitos, con actualizaciones importantes para &lt;code&gt;Firefox&lt;/code&gt;, &lt;code&gt;LibreOffice&lt;/code&gt;, &lt;code&gt;Thunderbird&lt;/code&gt; y &lt;code&gt;GIMP&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;1-comience-con-las-actualizaciones-clave&#34;&gt;1. Comience con las actualizaciones clave
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Ubuntu 26.04 LTS&lt;/code&gt; es una versión de soporte a largo plazo con soporte estándar hasta &lt;code&gt;2031-04&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;El entorno de escritorio se ha actualizado a &lt;code&gt;GNOME 50&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;El kernel genérico se ha movido a &lt;code&gt;Linux kernel 7.0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Ubuntu Desktop ahora proporciona sólo una sesión &lt;code&gt;Wayland&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Las versiones anteriores no pueden saltar directamente a &lt;code&gt;26.04&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si todavía está en &lt;code&gt;Ubuntu 22.04 LTS&lt;/code&gt; o &lt;code&gt;25.04&lt;/code&gt;, la recomendación oficial es actualizar primero a &lt;code&gt;Ubuntu 24.04 LTS&lt;/code&gt; o &lt;code&gt;25.10&lt;/code&gt; y luego continuar a &lt;code&gt;26.04 LTS&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;2-mayor-cambio-1-gnome-50-ahora-está-en-lts&#34;&gt;2. Mayor cambio #1: GNOME 50 ahora está en LTS
&lt;/h2&gt;&lt;p&gt;El cambio más visible en el lado del escritorio esta vez es que &lt;code&gt;GNOME 50&lt;/code&gt; finalmente entró en una versión LTS. Para la mayoría de los usuarios, el valor no es una característica llamativa e independiente, sino una experiencia de escritorio más fluida en general:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mejor usabilidad en pantallas pequeñas y ventanas estrechas&lt;/li&gt;
&lt;li&gt;Las notificaciones se pueden agrupar por aplicación.&lt;/li&gt;
&lt;li&gt;Mejoras continuas en HDR, VRR y escalado fraccional&lt;/li&gt;
&lt;li&gt;Mejor fluidez y estabilidad en escenarios relacionados con escritorio remoto, Wayland y NVIDIA&lt;/li&gt;
&lt;li&gt;Mayor soporte de accesibilidad, incluidas actualizaciones claras del lector de pantalla &amp;ldquo;Orca&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ubuntu también ha agregado algunos cambios prácticos propios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;La búsqueda global de GNOME Shell puede encontrar directamente aplicaciones &lt;code&gt;snap&lt;/code&gt; disponibles&lt;/li&gt;
&lt;li&gt;Las búsquedas web también se pueden activar directamente desde la búsqueda.&lt;/li&gt;
&lt;li&gt;El tema &lt;code&gt;Yaru&lt;/code&gt; continúa acercándose al estilo original de GNOME.&lt;/li&gt;
&lt;li&gt;Los permisos, el acceso a archivos y el comportamiento de arrastrar y soltar para aplicaciones &amp;ldquo;snap&amp;rdquo; se sienten más naturales en el escritorio&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si utiliza principalmente la edición de escritorio, el verdadero objetivo de este LTS no es una revisión visual dramática. Es que muchas pequeñas fricciones del pasado se han eliminado juntas.&lt;/p&gt;
&lt;h2 id=&#34;3-mayor-cambio-nº-2-las-aplicaciones-predeterminadas-obtuvieron-una-amplia-actualización&#34;&gt;3. Mayor cambio n.º 2: las aplicaciones predeterminadas obtuvieron una amplia actualización
&lt;/h2&gt;&lt;p&gt;En comparación con &lt;code&gt;24.04 LTS&lt;/code&gt;, la aplicación integrada configurada en &lt;code&gt;26.04 LTS&lt;/code&gt; se ha actualizado en gran medida:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Firefox&lt;/code&gt; pasa a &lt;code&gt;150&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LibreOffice&lt;/code&gt; pasa de &lt;code&gt;24.2&lt;/code&gt; a &lt;code&gt;25.8&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Thunderbird&lt;/code&gt; pasa a &lt;code&gt;140&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GIMP&lt;/code&gt; salta de &lt;code&gt;2.10&lt;/code&gt; a &lt;code&gt;3.2&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;También existen varios reemplazos que son importantes en el uso diario:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El visor de PDF ahora es &amp;ldquo;Papers&amp;rdquo;, reemplazando a &amp;ldquo;Evince&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;El visor de imágenes ahora es &amp;ldquo;Lupa&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;La terminal ahora es &lt;code&gt;Ptyxis&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;El monitor del sistema ahora es &amp;ldquo;Recursos&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;El reproductor de vídeo predeterminado ahora es &amp;ldquo;Showtime&amp;rdquo;.
La dirección detrás de estos cambios es clara: Ubuntu se está inclinando más hacia una nueva generación de aplicaciones GNOME construidas sobre &lt;code&gt;GTK4&lt;/code&gt;, &lt;code&gt;libadwaita&lt;/code&gt; y, en algunos casos, reescrituras basadas en Rust.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;4-mayor-cambio-n-3-wayland-ahora-es-la-única-sesión-de-escritorio&#34;&gt;4. Mayor cambio n.° 3: Wayland ahora es la única sesión de escritorio
&lt;/h2&gt;&lt;p&gt;Este es el cambio más importante para muchos usuarios veteranos.&lt;/p&gt;
&lt;p&gt;El cambio que comenzó en &lt;code&gt;25.10&lt;/code&gt; ahora está completamente establecido en &lt;code&gt;26.04 LTS&lt;/code&gt;: Ubuntu Desktop se ejecuta solo en el backend &lt;code&gt;Wayland&lt;/code&gt;, porque &lt;code&gt;GNOME Shell&lt;/code&gt; ya no puede ejecutarse como una sesión &lt;code&gt;X.org&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Eso no significa que las aplicaciones antiguas dejen de funcionar repentinamente. Las notas oficiales dejan claro que las aplicaciones &amp;ldquo;X.org&amp;rdquo; aún pueden ejecutarse a través de la capa de compatibilidad &amp;ldquo;XWayland&amp;rdquo;. Pero si su flujo de trabajo aún depende de controladores de gráficos más antiguos, ciertos métodos de escritorio remoto, herramientas de grabación de pantalla o detalles del método de entrada, esto es algo que aún debe verificar antes de actualizar.&lt;/p&gt;
&lt;h2 id=&#34;5-mayor-cambio-nº-4-el-kernel-de-linux-70-y-la-pila-inferior-avanzan-juntos&#34;&gt;5. Mayor cambio n.º 4: el kernel de Linux 7.0 y la pila inferior avanzan juntos
&lt;/h2&gt;&lt;p&gt;La pila genérica GA en &lt;code&gt;Ubuntu 26.04 LTS&lt;/code&gt; pasa de &lt;code&gt;Linux 6.8&lt;/code&gt; a &lt;code&gt;Linux 7.0&lt;/code&gt;, y la pila HWE también se unifica en &lt;code&gt;7.0&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Entre los cambios de nivel inferior destacados por Ubuntu, los más relevantes para usuarios y operadores en general son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;El volcado por caída está habilitado de forma predeterminada tanto en el escritorio como en el servidor.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sched_ext&lt;/code&gt; introduce un nuevo modelo de extensión de programación que permite a los desarrolladores implementar políticas de programación con eBPF&lt;/li&gt;
&lt;li&gt;El paquete binario &lt;code&gt;linux-lowlatency&lt;/code&gt; está siendo retirado y reemplazado por &lt;code&gt;linux-generic&lt;/code&gt; más el paquete de espacio de usuario &lt;code&gt;lowlatency-kernel&lt;/code&gt; para ajuste de baja latencia.&lt;/li&gt;
&lt;li&gt;La variante de arquitectura &lt;code&gt;amd64v3&lt;/code&gt; está disponible como opción, pero aún está habilitada de forma predeterminada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si su máquina es relativamente nueva, vale la pena vigilar &amp;ldquo;amd64v3&amp;rdquo;. Las notas oficiales dan este método de habilitación:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;APT::Architecture-Variants &amp;#34;amd64v3&amp;#34;;&amp;#39;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /etc/apt/apt.conf.d/99enable-amd64v3
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt upgrade
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Dicho esto, no se habilita automáticamente. Ubuntu todavía prioriza la compatibilidad primero.&lt;/p&gt;
&lt;h2 id=&#34;6-requisitos-de-hardware-y-línea-base-de-instalación&#34;&gt;6. Requisitos de hardware y línea base de instalación
&lt;/h2&gt;&lt;p&gt;La base de referencia oficial recomendada para Ubuntu Desktop 26.04 LTS es:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un procesador de doble núcleo de &lt;code&gt;2 GHz&lt;/code&gt; o mejor&lt;/li&gt;
&lt;li&gt;Al menos &lt;code&gt;6 GB de RAM&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Al menos &amp;ldquo;25 GB&amp;rdquo; de almacenamiento disponible&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si su máquina es más ligera, la recomendación oficial es considerar versiones de Ubuntu como &lt;code&gt;Xubuntu&lt;/code&gt; o &lt;code&gt;Lubuntu&lt;/code&gt;.&lt;br&gt;
La edición de servidor tiene un piso inferior. La documentación señala que puede comenzar desde &amp;ldquo;1,5 GB de RAM&amp;rdquo; y &amp;ldquo;4 GB&amp;rdquo; de almacenamiento, aunque el requisito real aún depende de su carga de trabajo.&lt;/p&gt;
&lt;h2 id=&#34;7-quién-debería-priorizar-la-actualización&#34;&gt;7. ¿Quién debería priorizar la actualización?
&lt;/h2&gt;&lt;p&gt;Si ya está en &lt;code&gt;24.04 LTS&lt;/code&gt; y desea lo siguiente, vale la pena echarle un vistazo a &lt;code&gt;26.04 LTS&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Una actualización de la pila de escritorio de generación completa en lugar de parches menores&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Wayland&lt;/code&gt; más maduro y soporte de visualización&lt;/li&gt;
&lt;li&gt;Un conjunto de aplicaciones predeterminado más actualizado&lt;/li&gt;
&lt;li&gt;Un kernel más nuevo con una pista de soporte más larga.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pero si todavía depende en gran medida de flujos de trabajo &lt;code&gt;X11&lt;/code&gt; antiguos, controladores especiales o extensiones de escritorio personalizadas, o si su entorno de producción es extremadamente conservador con respecto a los cambios, es mejor realizar una prueba de compatibilidad antes de actualizar.&lt;/p&gt;
&lt;h2 id=&#34;8-resumen-de-una-línea&#34;&gt;8. Resumen de una línea
&lt;/h2&gt;&lt;p&gt;El valor de &amp;ldquo;Ubuntu 26.04 LTS&amp;rdquo; no es una característica especialmente llamativa. Es que Ubuntu ha incorporado dos años de progreso de escritorio, kernel, aplicaciones y compatibilidad a una nueva línea base LTS, todo a la vez.
Si desea el juicio más breve posible, es este: &lt;strong&gt;esta es una versión LTS de Ubuntu que se siente más nueva y más estable en su conjunto, en lugar de una basada en una única característica destacada.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;enlaces-relacionados&#34;&gt;Enlaces relacionados
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Notas de la versión oficial: &lt;code&gt;https://documentation.ubuntu.com/release-notes/26.04/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Resumen para usuarios de LTS: &lt;code&gt;https://documentation.ubuntu.com/release-notes/26.04/summary-for-lts-users/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Comprensión del marco de trabajo de nftables: tablas, cadenas, reglas y conjuntos</title>
        <link>https://knightli.com/es/2026/04/18/nftables-framework-concepts/</link>
        <pubDate>Sat, 18 Apr 2026 10:31:12 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/18/nftables-framework-concepts/</guid>
        <description>&lt;p&gt;Al aprender &lt;code&gt;nftables&lt;/code&gt;, es fácil comenzar con los detalles del comando: cómo agregar una regla, cómo eliminar un identificador o cómo escribir una coincidencia de puerto. Los comandos son importantes, pero si primero comprende el marco, leer reglas, solucionar problemas y diseñar conjuntos de reglas será mucho más fácil.&lt;/p&gt;
&lt;p&gt;Puedes pensar en nftables como una estructura en capas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;table&lt;/code&gt; aísla los espacios de nombres de reglas.&lt;/li&gt;
&lt;li&gt;La &amp;ldquo;familia&amp;rdquo; decide a qué protocolos de red se aplican las reglas.&lt;/li&gt;
&lt;li&gt;&amp;ldquo;cadena&amp;rdquo; decide en qué etapa se ejecutan las reglas.&lt;/li&gt;
&lt;li&gt;La &lt;code&gt;regla&lt;/code&gt; define el partido y la acción reales.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;set&lt;/code&gt;, &lt;code&gt;map&lt;/code&gt; y &lt;code&gt;verdict map&lt;/code&gt; reducen las reglas repetidas y facilitan el mantenimiento de los conjuntos de reglas.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Las siguientes secciones explican estos conceptos capa por capa.&lt;/p&gt;
&lt;h2 id=&#34;tabla-espacio-de-nombres-de-reglas&#34;&gt;tabla: espacio de nombres de reglas
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;table&lt;/code&gt; es el contenedor de reglas más externo en nftables. Las diferentes tablas están aisladas entre sí, por lo que una práctica común es colocar reglas relacionadas en la misma tabla.&lt;/p&gt;
&lt;p&gt;Por ejemplo, puede separar reglas de filtrado, reglas NAT o reglas de prueba personalizadas. Esto mantiene los límites claros: al depurar, sabes qué grupo de reglas estás cambiando; Al limpiar, es menos probable que elimines por error contenido no relacionado.&lt;/p&gt;
&lt;p&gt;Una tabla en sí misma no procesa paquetes directamente. Los objetos de cadena y regla dentro de la tabla son los que realmente participan en el procesamiento de paquetes.&lt;/p&gt;
&lt;h2 id=&#34;familia-a-qué-protocolos-se-aplican-las-reglas&#34;&gt;familia: a qué protocolos se aplican las reglas
&lt;/h2&gt;&lt;p&gt;Al crear una tabla, debe elegir una &amp;ldquo;familia&amp;rdquo;. Determina a qué tipo de paquetes se aplican las reglas de la tabla.&lt;/p&gt;
&lt;p&gt;Las familias comunes se pueden entender de esta manera:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ip&lt;/code&gt;: solo maneja IPv4.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ip6&lt;/code&gt;: solo maneja IPv6.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;inet&lt;/code&gt;: maneja tanto IPv4 como IPv6.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;arp&lt;/code&gt;: maneja ARP.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bridge&lt;/code&gt;: maneja el tráfico de la capa de puente.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;netdev&lt;/code&gt;: más cercano a la ruta de ingreso del dispositivo de red, adecuado para manejar el tráfico en una etapa anterior.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Para las reglas de firewall ordinarias, se utiliza comúnmente &amp;ldquo;inet&amp;rdquo;. Le permite mantener las reglas de IPv4 e IPv6 en la misma tabla y evita mantener dos estructuras de reglas similares.&lt;/p&gt;
&lt;h2 id=&#34;cadena-dónde-se-ejecutan-las-reglas&#34;&gt;cadena: Dónde se ejecutan las reglas
&lt;/h2&gt;&lt;p&gt;&amp;ldquo;cadena&amp;rdquo; es una lista de reglas. Después de que un paquete ingresa a un gancho, pasa por las reglas de la cadena en orden.&lt;/p&gt;
&lt;p&gt;Las cadenas se pueden dividir a grandes rasgos en dos tipos:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Cadena base: adjunta a un gancho en la ruta de la red del kernel y llamada activamente por el flujo de paquetes.&lt;/li&gt;
&lt;li&gt;Cadena normal: no unida directamente a un gancho; debe ser llamado mediante saltos de otras reglas.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Una cadena base suele especificar varias propiedades clave:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tipo&lt;/code&gt;: el propósito de la cadena, como &lt;code&gt;filtro&lt;/code&gt;, &lt;code&gt;nat&lt;/code&gt; o &lt;code&gt;ruta&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hook&lt;/code&gt;: la etapa de procesamiento, como &lt;code&gt;prerouting&lt;/code&gt;, &lt;code&gt;input&lt;/code&gt;, &lt;code&gt;forward&lt;/code&gt;, &lt;code&gt;output&lt;/code&gt; o &lt;code&gt;postrouting&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prioridad&lt;/code&gt;: cuando existen varias cadenas en el mismo gancho, esto decide cuál se ejecuta primero.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;política&lt;/code&gt;: la acción predeterminada cuando no coincide ninguna regla, comúnmente &lt;code&gt;aceptar&lt;/code&gt; o &lt;code&gt;eliminar&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;El punto clave es que las reglas no entran en vigor en cualquier lugar. La misma regla tiene un significado completamente diferente cuando se coloca en &amp;ldquo;entrada&amp;rdquo;, &amp;ldquo;adelante&amp;rdquo; o &amp;ldquo;salida&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;regla-coincidir-condiciones-más-acciones&#34;&gt;regla: Coincidir condiciones más acciones
&lt;/h2&gt;&lt;p&gt;La &amp;ldquo;regla&amp;rdquo; es donde nftables realmente toma decisiones. Suele constar de dos partes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Condiciones de coincidencia: IP de origen, IP de destino, protocolo, puerto, interfaz, estado de conexión, etc.&lt;/li&gt;
&lt;li&gt;Acciones: &lt;code&gt;aceptar&lt;/code&gt;, &lt;code&gt;soltar&lt;/code&gt;, &lt;code&gt;rechazar&lt;/code&gt;, &lt;code&gt;contrarrestar&lt;/code&gt;, &lt;code&gt;saltar&lt;/code&gt;, &lt;code&gt;regresar&lt;/code&gt;, etc.
Las reglas se evalúan en orden. Después de que un paquete coincide con una acción que finaliza el procesamiento, las reglas posteriores ya no se evalúan. Si nada coincide, la evaluación continúa hasta que finaliza la cadena o se activa la política predeterminada.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Esta es la razón por la que el orden de las reglas es importante: las reglas más específicas generalmente deben aparecer antes que las reglas más amplias; de lo contrario, es posible que nunca tengan la oportunidad de ejecutarse.&lt;/p&gt;
&lt;h2 id=&#34;set-agrupar-valores&#34;&gt;set: Agrupar valores
&lt;/h2&gt;&lt;p&gt;Si necesita hacer coincidir muchas direcciones IP, puertos o interfaces, escribir muchas reglas separadas resulta difícil de mantener. &lt;code&gt;set&lt;/code&gt; te permite administrar un grupo de valores del mismo tipo en un solo lugar.&lt;/p&gt;
&lt;p&gt;Por ejemplo, un grupo de IP confiables, un grupo de puertos bloqueados o un grupo de direcciones que necesitan limitación de velocidad se pueden almacenar en un conjunto. La regla sólo necesita comprobar si un valor pertenece a ese conjunto.&lt;/p&gt;
&lt;p&gt;Los beneficios del conjunto son:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Menos reglas.&lt;/li&gt;
&lt;li&gt;Mejor legibilidad.&lt;/li&gt;
&lt;li&gt;Adiciones y eliminaciones de elementos más sencillas posteriormente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cuando un conjunto de reglas contiene muchas condiciones repetidas, generalmente es el momento de considerar el conjunto.&lt;/p&gt;
&lt;h2 id=&#34;map-asignar-un-valor-coincidente-a-un-resultado&#34;&gt;map: asignar un valor coincidente a un resultado
&lt;/h2&gt;&lt;p&gt;&amp;ldquo;mapa&amp;rdquo; puede entenderse como una tabla de búsqueda. Devuelve un resultado basado en un valor de entrada.&lt;/p&gt;
&lt;p&gt;Por ejemplo, diferentes puertos pueden asignarse a diferentes marcas, o diferentes direcciones pueden asignarse a diferentes parámetros de procesamiento. En comparación con escribir muchas reglas de estilo if/else, el mapa está más centralizado y es más fácil de mantener.&lt;/p&gt;
&lt;p&gt;establecer respuestas &amp;ldquo;¿está este valor en la colección?&amp;rdquo;; el mapa responde &amp;ldquo;qué resultado corresponde a este valor&amp;rdquo;.&lt;/p&gt;
&lt;h2 id=&#34;mapa-de-veredicto-asignar-un-valor-coincidente-a-una-acción&#34;&gt;mapa de veredicto: asignar un valor coincidente a una acción
&lt;/h2&gt;&lt;p&gt;El &amp;ldquo;mapa de veredicto&amp;rdquo; es un uso importante del mapa: asigna un valor coincidente a un veredicto, lo que significa una acción de regla.&lt;/p&gt;
&lt;p&gt;Por ejemplo, diferentes rangos de IP pueden corresponder a &amp;ldquo;aceptar&amp;rdquo;, &amp;ldquo;eliminar&amp;rdquo; o saltos a diferentes cadenas. Esto puede comprimir muchas ramas en una sola estructura.&lt;/p&gt;
&lt;p&gt;Cuando un conjunto de reglas se vuelve más complejo, el mapa de veredictos es muy útil. Reduce las reglas repetidas y expresa la política más como una tabla que como una larga lista de declaraciones condicionales.&lt;/p&gt;
&lt;h2 id=&#34;diseñar-reglas-a-partir-de-los-conceptos&#34;&gt;Diseñar reglas a partir de los conceptos
&lt;/h2&gt;&lt;p&gt;Al diseñar reglas de nftables, puedes pensar en este orden:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Primero decida a qué &amp;ldquo;familia&amp;rdquo; pertenecen las reglas.&lt;/li&gt;
&lt;li&gt;Luego decida en qué &amp;ldquo;tabla&amp;rdquo; deberían entrar.&lt;/li&gt;
&lt;li&gt;Elija el &amp;ldquo;gancho&amp;rdquo; y la &amp;ldquo;cadena&amp;rdquo; adecuados.&lt;/li&gt;
&lt;li&gt;Escribe la &amp;ldquo;regla&amp;rdquo; concreta.&lt;/li&gt;
&lt;li&gt;Si hay muchas condiciones repetidas, introduzca &amp;ldquo;conjunto&amp;rdquo;, &amp;ldquo;mapa&amp;rdquo; o &amp;ldquo;mapa de veredicto&amp;rdquo;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Las reglas escritas de esta manera son más fáciles de mantener y de solucionar problemas.&lt;/p&gt;
&lt;h2 id=&#34;resumen&#34;&gt;Resumen
&lt;/h2&gt;&lt;p&gt;Los conceptos de nftables no son complicados, pero la jerarquía importa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;la tabla define los límites de las reglas.&lt;/li&gt;
&lt;li&gt;la familia define el alcance del protocolo.&lt;/li&gt;
&lt;li&gt;la cadena define la posición de ejecución.&lt;/li&gt;
&lt;li&gt;la regla define la coincidencia y la acción.&lt;/li&gt;
&lt;li&gt;establecer, mapear y veredicto gestionar la complejidad.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Primero comprenda estos conceptos y luego observe los comandos concretos. Esto es más confiable que memorizar comandos directamente. Especialmente después de que un conjunto de reglas crece, los conceptos claros lo ayudan a determinar si un problema está en el alcance del protocolo, la etapa de ejecución, el orden de las reglas o la condición de coincidencia en sí.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/10/html/configuring_firewalls_and_packet_filters/concepts-in-the-nftables-framework&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/10/html/configuring_firewalls_and_packet_filters/concepts-in-the-nftables-framework&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Inicio rápido de nftables: tablas, cadenas, reglas y operaciones comunes</title>
        <link>https://knightli.com/es/2026/04/18/nftables-quick-start/</link>
        <pubDate>Sat, 18 Apr 2026 10:22:07 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/18/nftables-quick-start/</guid>
        <description>&lt;p&gt;&lt;code&gt;nftables&lt;/code&gt; es una herramienta común de administración de reglas de firewall y filtrado de paquetes en Linux. Si solo necesita control de acceso al dispositivo, contadores de tráfico, coincidencia de puertos o limitación de velocidad básica, no necesita aprender todo el sistema de reglas de una vez. Comience con tres conceptos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;table&lt;/code&gt;: un contenedor de reglas.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cadena&lt;/code&gt;: donde se evalúan las reglas, generalmente unidas a un gancho.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;regla&lt;/code&gt;: la condición y acción coincidentes reales.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Este artículo describe un flujo de trabajo mínimo que es adecuado para realizar pruebas primero en un entorno seguro.&lt;/p&gt;
&lt;h2 id=&#34;estructura-básica&#34;&gt;Estructura básica
&lt;/h2&gt;&lt;p&gt;Prepare algunas variables primero. Los siguientes comandos los reutilizan:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;table&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;customtable
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;chain&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;custom_control
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;target&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;drop
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;ip&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;192.168.18.251
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;mac&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;00:00:01:02:03:04
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cree una tabla &lt;code&gt;inet&lt;/code&gt; que admita IPv4 e IPv6:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add table inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego cree una cadena adjunta a la etapa &amp;ldquo;adelante&amp;rdquo;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add chain inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;type&lt;/span&gt; filter hook forward priority 0&lt;span class=&#34;se&#34;&gt;\;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Aquí, &amp;ldquo;tipo filtro&amp;rdquo; significa que se trata de una cadena de reglas de filtrado y &amp;ldquo;enganche hacia adelante&amp;rdquo; significa que procesa paquetes reenviados.&lt;/p&gt;
&lt;h2 id=&#34;métodos-de-coincidencia-comunes&#34;&gt;Métodos de coincidencia comunes
&lt;/h2&gt;&lt;p&gt;Coincidencia por IP de origen. Esto suele ser útil para la dirección de carga:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; ip saddr &lt;span class=&#34;nv&#34;&gt;$ip&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$target&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Coincidencia por IP de destino. Esto suele ser útil para la dirección de descarga:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; ip daddr &lt;span class=&#34;nv&#34;&gt;$ip&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$target&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Cuando se hace coincidir por dirección MAC, se puede usar &lt;code&gt;ether saddr&lt;/code&gt; para controlar el tráfico ascendente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; ether saddr &lt;span class=&#34;nv&#34;&gt;$mac&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$target&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Tenga en cuenta que en redes que implican puenteo, reenvío o traducción de direcciones, es posible que los paquetes descendentes no siempre se filtren de manera confiable por MAC de destino. Para el control de acceso al dispositivo, comience validando primero &lt;code&gt;ether saddr&lt;/code&gt; o las reglas basadas en IP.&lt;/p&gt;
&lt;p&gt;Para hacer coincidir los puertos, puede cubrir tanto TCP como UDP:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt; tcp, udp &lt;span class=&#34;o&#34;&gt;}&lt;/span&gt; dport &lt;span class=&#34;m&#34;&gt;22&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$target&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Para hacer coincidir un rango de puertos, utilice una expresión de comparación:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; tcp dport &lt;span class=&#34;se&#34;&gt;\&amp;gt;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1024&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$target&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;contar-el-tráfico-para-un-dispositivo&#34;&gt;Contar el tráfico para un dispositivo
&lt;/h2&gt;&lt;p&gt;Si solo desea contar el tráfico de carga y descarga para una dirección IP, utilice &amp;ldquo;contrarretorno&amp;rdquo;. Después de una coincidencia, registra el contador y regresa, lo que puede reducir aún más los gastos generales de coincidencia cuando existan más reglas estadísticas más adelante.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; ip saddr &lt;span class=&#34;nv&#34;&gt;$ip&lt;/span&gt; counter &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; ip daddr &lt;span class=&#34;nv&#34;&gt;$ip&lt;/span&gt; counter &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Ver las estadísticas:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft list chain inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si necesita ver el &amp;ldquo;identificador&amp;rdquo; de cada regla, agregue &amp;ldquo;-a&amp;rdquo;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft -a list chain inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;handle&lt;/code&gt; es importante porque nftables generalmente depende de él para eliminar una sola regla.&lt;/p&gt;
&lt;h2 id=&#34;limitación-de-tasa-básica&#34;&gt;Limitación de tasa básica
&lt;/h2&gt;&lt;p&gt;La limitación de la tasa se puede realizar con &amp;ldquo;tasa límite superior&amp;rdquo;. Por ejemplo, limite el tráfico a una velocidad específica por dirección MAC:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;rate&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;unit&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;mbytes
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft add rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; ether saddr &lt;span class=&#34;nv&#34;&gt;$mac&lt;/span&gt; limit rate over &lt;span class=&#34;nv&#34;&gt;$rate&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$unit&lt;/span&gt;/second drop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Aquí, &amp;ldquo;mbytes&amp;rdquo; y &amp;ldquo;kbytes&amp;rdquo; pueden entenderse como las unidades habituales M y K. No es necesario multiplicar manualmente por 8. En la práctica, comience con un valor más relajado, confirme la dirección y el efecto correspondientes y luego apriételo si es necesario.&lt;/p&gt;
&lt;h2 id=&#34;eliminar-y-limpiar-reglas&#34;&gt;Eliminar y limpiar reglas
&lt;/h2&gt;&lt;p&gt;Primera lista de reglas con valores de &lt;code&gt;control&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft -a list chain inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Luego elimine una regla por identificador:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft delete rule inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt; handle &amp;lt;handle&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Lavar una cadena:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft flush chain inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Eliminar una cadena:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft delete chain inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;$chain&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Eliminar toda la tabla:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nft delete table inet &lt;span class=&#34;nv&#34;&gt;$table&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Durante la depuración diaria, limpie únicamente la tabla que creó usted mismo. Evite cambiar directamente las tablas generadas automáticamente por el sistema u otros servicios. Esto facilita la reversión incluso si una regla está escrita incorrectamente.&lt;/p&gt;
&lt;h2 id=&#34;notas-de-uso&#34;&gt;Notas de uso
&lt;/h2&gt;&lt;p&gt;Cuando se utilizan nftables, suele ser más seguro crear primero su propia tabla y cadena independientes. Esto tiene dos beneficios:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Es menos probable que sus reglas se mezclen con las reglas del sistema existente.&lt;/li&gt;
&lt;li&gt;La depuración, el vaciado y la eliminación son más seguros.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Después de escribir reglas, utilice siempre &lt;code&gt;nft list chain&lt;/code&gt; para verificar el comportamiento de coincidencia real. Las reglas de MAC, interfaz, puerto y límite de velocidad pueden comportarse de manera diferente entre dispositivos, configuraciones de puente y versiones del sistema. Las pruebas de pequeño alcance son más seguras que escribir reglas complejas todas a la vez.&lt;/p&gt;
&lt;h2 id=&#34;referencias&#34;&gt;Referencias
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.right.com.cn/forum/thread-8369750-1-1.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.right.com.cn/forum/thread-8369750-1-1.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Ubicación predeterminada de modelos de Ollama y método de migración (para evitar llenar la unidad C)</title>
        <link>https://knightli.com/es/2026/04/06/ollama-model-storage-path-and-migration/</link>
        <pubDate>Mon, 06 Apr 2026 09:38:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/06/ollama-model-storage-path-and-migration/</guid>
        <description>&lt;p&gt;Cuando ejecutas modelos grandes localmente, lo primero que suele quedarse sin espacio es la unidad del sistema. Ollama descarga los modelos de forma predeterminada en el directorio del usuario o en un directorio del sistema. Si no planificas la ruta con antelación, la unidad C puede llenarse muy rápido.&lt;/p&gt;
&lt;h2 id=&#34;directorios-predeterminados-habituales-de-modelos-de-ollama&#34;&gt;Directorios predeterminados habituales de modelos de Ollama
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Windows: &lt;code&gt;C:\Users\&amp;lt;用户名&amp;gt;\.ollama\models&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;macOS: &lt;code&gt;~/.ollama/models&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Linux: &lt;code&gt;/usr/share/ollama/.ollama/models&lt;/code&gt; (puede variar según el método de instalación)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;windows-migrar-el-directorio-de-modelos-a-una-unidad-que-no-sea-del-sistema&#34;&gt;Windows: migrar el directorio de modelos a una unidad que no sea del sistema
&lt;/h2&gt;&lt;p&gt;Se recomienda mover el directorio de modelos, por ejemplo, a &lt;code&gt;D:\OllamaModels&lt;/code&gt;. El método clave es configurar la variable de entorno del sistema &lt;code&gt;OLLAMA_MODELS&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;1-crear-el-directorio-de-destino&#34;&gt;1. Crear el directorio de destino
&lt;/h2&gt;&lt;p&gt;Por ejemplo, crea primero: &lt;code&gt;D:\OllamaModels&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;2-configurar-la-variable-de-entorno-del-sistema&#34;&gt;2. Configurar la variable de entorno del sistema
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Nombre de variable: &lt;code&gt;OLLAMA_MODELS&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Valor de variable: &lt;code&gt;D:\OllamaModels&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Puedes añadirla desde &amp;ldquo;Propiedades del sistema -&amp;gt; Opciones avanzadas -&amp;gt; Variables de entorno&amp;rdquo;, o configurarla con la línea de comandos (PowerShell como administrador):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;no&#34;&gt;System.Environment&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]::&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SetEnvironmentVariable&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;OLLAMA_MODELS&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;D:\OllamaModels&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Machine&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;3-reiniciar-ollama-o-reiniciar-el-sistema&#34;&gt;3. Reiniciar Ollama (o reiniciar el sistema)
&lt;/h2&gt;&lt;p&gt;Después de que la variable de entorno entre en vigor, reinicia el servicio o la aplicación de Ollama. Si no estás seguro de si ya se aplicó, reiniciar el equipo es la opción más estable.&lt;/p&gt;
&lt;h2 id=&#34;4-verificar-que-el-nuevo-directorio-esté-activo&#34;&gt;4. Verificar que el nuevo directorio esté activo
&lt;/h2&gt;&lt;p&gt;Después de descargar o hacer pull de cualquier modelo, comprueba si aparecen archivos nuevos bajo &lt;code&gt;D:\OllamaModels&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;5-limpiar-el-directorio-antiguo-después-de-confirmar&#34;&gt;5. Limpiar el directorio antiguo (después de confirmar)
&lt;/h2&gt;&lt;p&gt;Cuando confirmes que los modelos funcionan correctamente en el nuevo directorio, elimina el contenido del directorio antiguo para recuperar espacio en la unidad C.&lt;/p&gt;
&lt;h2 id=&#34;preguntas-frecuentes&#34;&gt;Preguntas frecuentes
&lt;/h2&gt;&lt;h3 id=&#34;qué-hacer-si-después-de-configurarlo-sigue-escribiendo-en-la-unidad-c&#34;&gt;Qué hacer si después de configurarlo sigue escribiendo en la unidad C
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Confirma que la variable de entorno sea una &amp;ldquo;variable del sistema&amp;rdquo;, no una variable temporal de la sesión actual.&lt;/li&gt;
&lt;li&gt;Confirma que el proceso de Ollama se haya reiniciado.&lt;/li&gt;
&lt;li&gt;Comprueba que el nombre de la variable sea exacto: debe ser &lt;code&gt;OLLAMA_MODELS&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;hay-que-migrar-los-archivos-de-modelos-antiguos&#34;&gt;Hay que migrar los archivos de modelos antiguos
&lt;/h3&gt;&lt;p&gt;Si no quieres volver a descargarlos, puedes detener Ollama, copiar manualmente los modelos antiguos al nuevo directorio y después iniciar Ollama para verificar.&lt;/p&gt;
&lt;!-- ollama-related-links:start --&gt;
</description>
        </item>
        <item>
        <title>Desinstalar Ollama por completo en Linux (incluida la limpieza de residuos)</title>
        <link>https://knightli.com/es/2026/04/06/uninstall-ollama-on-linux/</link>
        <pubDate>Mon, 06 Apr 2026 09:16:29 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/04/06/uninstall-ollama-on-linux/</guid>
        <description>&lt;p&gt;Si necesitas eliminar Ollama por completo en Linux, puedes seguir el orden siguiente. Este artículo limpia el servicio, el ejecutable, el directorio de modelos y también el usuario y grupo &lt;code&gt;ollama&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;avisos-antes-de-desinstalar&#34;&gt;Avisos antes de desinstalar
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Los comandos siguientes eliminarán los archivos de modelos locales de Ollama (normalmente en &lt;code&gt;/usr/share/ollama&lt;/code&gt;). Confirma antes si necesitas hacer una copia de seguridad.&lt;/li&gt;
&lt;li&gt;Los comandos usan &lt;code&gt;sudo&lt;/code&gt; por defecto. Asegúrate de que la cuenta actual tenga permisos de administrador.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;1-detener-y-eliminar-el-servicio-systemd&#34;&gt;1. Detener y eliminar el servicio systemd
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl stop ollama
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl disable ollama
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rm -f /etc/systemd/system/ollama.service
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl daemon-reload
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;2-eliminar-el-ejecutable-de-ollama&#34;&gt;2. Eliminar el ejecutable de Ollama
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OLLAMA_BIN&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;command&lt;/span&gt; -v ollama&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt; -n &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$OLLAMA_BIN&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  sudo rm -f &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$OLLAMA_BIN&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;3-eliminar-directorios-de-bibliotecas-relacionados-con-ollama-si-existen&#34;&gt;3. Eliminar directorios de bibliotecas relacionados con Ollama (si existen)
&lt;/h2&gt;&lt;p&gt;Si tu método de instalación escribió archivos de Ollama en directorios &lt;code&gt;lib&lt;/code&gt;, puedes limpiarlos así:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; d in /usr/local/lib/ollama /usr/lib/ollama /lib/ollama&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt; -d &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$d&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo rm -rf &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$d&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;4-eliminar-el-directorio-de-modelos-y-datos&#34;&gt;4. Eliminar el directorio de modelos y datos
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rm -rf /usr/share/ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;5-eliminar-el-usuario-y-grupo-del-sistema-si-existen&#34;&gt;5. Eliminar el usuario y grupo del sistema (si existen)
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;id -u ollama &amp;gt;/dev/null 2&amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo userdel ollama
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;getent group ollama &amp;gt;/dev/null 2&amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo groupdel ollama
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;6-verificar-si-la-desinstalación-terminó&#34;&gt;6. Verificar si la desinstalación terminó
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;command&lt;/span&gt; -v ollama &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ollama binary not found&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;systemctl status ollama &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si las comprobaciones anteriores ya no encuentran &lt;code&gt;ollama&lt;/code&gt;, la desinstalación se ha completado.&lt;/p&gt;
&lt;!-- ollama-related-links:start --&gt;
</description>
        </item>
        <item>
        <title>rsync --delete Limpieza de directorios explicada y práctica</title>
        <link>https://knightli.com/es/2026/03/29/rsync-delete-explained/</link>
        <pubDate>Sun, 29 Mar 2026 11:00:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/03/29/rsync-delete-explained/</guid>
        <description>&lt;p&gt;El propósito principal de &lt;code&gt;rsync --delete&lt;/code&gt; es eliminar archivos en el directorio de destino que no existen en el directorio de origen, para que ambos lados permanezcan consistentes.&lt;/p&gt;
&lt;p&gt;Los casos de uso típicos incluyen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Limpieza de archivos obsoletos en el lado de destino durante la sincronización&lt;/li&gt;
&lt;li&gt;Vaciar rápidamente un directorio de destino sincronizando desde un directorio de origen vacío&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;sintaxis-básica&#34;&gt;Sintaxis básica
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rsync -a --delete source_dir/ target_dir/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-a&lt;/code&gt;: modo de archivo, conserva permisos, marcas de tiempo y otros atributos&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--delete&lt;/code&gt;: elimina archivos adicionales en el lado de destino&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nota importante: si &lt;code&gt;source_dir&lt;/code&gt; termina con &lt;code&gt;/&lt;/code&gt; cambia el comportamiento. Con &lt;code&gt;/&lt;/code&gt;, rsync sincroniza el contenido del directorio; sin &lt;code&gt;/&lt;/code&gt;, sincroniza el directorio mismo.&lt;/p&gt;
&lt;h2 id=&#34;vaciar-rápidamente-un-directorio-de-destino-con-un-origen-vacío&#34;&gt;Vaciar rápidamente un directorio de destino con un origen vacío
&lt;/h2&gt;&lt;p&gt;Si su objetivo es mantener la ruta del directorio pero borrar todo el contenido, use un directorio vacío como fuente:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 1) Create an empty directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mkdir -p /tmp/empty_dir
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 2) Sync and delete target-side content&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rsync -a --delete /tmp/empty_dir/ /path/to/target_dir/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;En escenarios de directorios grandes, esto suele ser más eficiente que eliminar archivos uno por uno y es más fácil de automatizar en scripts.&lt;/p&gt;
&lt;h2 id=&#34;opciones-extendidas-comunes&#34;&gt;Opciones extendidas comunes
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--delete-before&lt;/code&gt;: eliminar antes de la transferencia, lo que puede ser más rápido en algunos casos&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--progress&lt;/code&gt;: muestra el progreso de la transferencia y el procesamiento&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ejemplo (limpieza de un directorio de registro de Nginx):&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;rsync -a --delete --progress /tmp/empty_dir/ /var/log/nginx/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;recomendaciones&#34;&gt;Recomendaciones
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Ejecute primero con &lt;code&gt;--dry-run&lt;/code&gt; para verificar el alcance de la eliminación.&lt;/li&gt;
&lt;li&gt;Haga una copia de seguridad del directorio de destino antes de ejecutarlo en producción.&lt;/li&gt;
&lt;li&gt;Para rutas críticas, programe la ejecución durante las horas de menor actividad.&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Cómo Git rastrea el permiso ejecutable de archivos (&#43;x)</title>
        <link>https://knightli.com/es/2026/03/29/git-executable-permission-x/</link>
        <pubDate>Sun, 29 Mar 2026 10:00:00 +0800</pubDate>
        
        <guid>https://knightli.com/es/2026/03/29/git-executable-permission-x/</guid>
        <description>&lt;p&gt;En un entorno Linux, Git rastrea el bit ejecutable de un archivo (&lt;code&gt;+x&lt;/code&gt;).
Si desea que un script se conserve como un archivo ejecutable en el repositorio, debe registrar explícitamente ese cambio de permiso en Git.&lt;/p&gt;
&lt;h2 id=&#34;agregar-permiso-ejecutable-a-un-archivo&#34;&gt;Agregar permiso ejecutable a un archivo
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git update-index --chmod&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;+x script.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git commit -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;chore: mark script.sh as executable&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git push
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Este comando realiza el cambio de bit ejecutable para &lt;code&gt;script.sh&lt;/code&gt;. Después de confirmar y enviar, otros usuarios mantendrán el mismo estado de permiso cuando extraigan o clonen el repositorio.&lt;/p&gt;
&lt;h2 id=&#34;eliminar-el-permiso-ejecutable-de-un-archivo&#34;&gt;Eliminar el permiso ejecutable de un archivo
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git update-index --chmod&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;-x script.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git commit -m &lt;span class=&#34;s2&#34;&gt;&amp;#34;chore: remove executable bit from script.sh&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git push
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id=&#34;verificar-el-resultado&#34;&gt;Verificar el resultado
&lt;/h2&gt;&lt;p&gt;Utilice los siguientes comandos para verificar los permisos de archivos en su árbol de trabajo:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone xxxxxxxxxxxxxxx
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ls -l script.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Si ve algo como &lt;code&gt;-rwxr-xr-x&lt;/code&gt;, el archivo es ejecutable. Si ve &lt;code&gt;-rw-r--r--&lt;/code&gt;, no es ejecutable.&lt;/p&gt;
&lt;h2 id=&#34;notas&#34;&gt;Notas
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git update-index --chmod=+x/-x&lt;/code&gt; solo actualiza el modo de archivo registrado por Git; no reemplaza los cambios en el contenido del archivo.&lt;/li&gt;
&lt;li&gt;En los flujos de trabajo de equipo, es mejor realizar cambios de solo permiso por separado para facilitar la revisión y el seguimiento.&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
