¿Cuál es la alternativa a Regedit en Linux?

Ya sabéis que contesto a preguntas que me dejan en el formulario de contacto del blog como una forma para ayudar a los usuarios y contribuir. No están dejando demasiadas, supongo que por lo humilde que es el blog y por eso no lo conoce casi nadie. Pero de vez en cuando hay alguna. El problema es que de entre las pocas que hay, un alto porcentaje son cosas muy sencillas que no dan para un artículo y las contesto directamente sin hacer ninguna entrada sobre ello… otras son para pedirme consejo sobre cómo aprender sobre Linux, etc.

Esta vez, un tal David_14, ha dejado una que sí que da para un artículo. La pregunta era ¿Cuál es el equivalente a Regedit en Linux? Así que, aunque la respuesta es bastante rápida y sencilla, aprovecho para hablar sobre esta diferencia entre Windows y el mundo *nix. Así que vamos a ello…

¿Qué es Regedit.exe y el Registro de Windows?

Yo diría que es una cosa fea y con una jerarquía compleja con la que me tengo que pelear a veces cuando me traen ordenadores con Windows para reparar. Además, es algo bastante sensible que suele dar problemas como he podido comprobar con todos los equipos que me traen. Pero esa no es una descripción demasiado buena, así que si quieres conocer más te redirijo a la página de la Wikipedia sobre esto…

Es algo que ni entiendo ni entenderé, pero que si tenéis interés en aprender de verdad os recomiendo un super blog de una super persona que es este. Marcos sabe mucho, muchísimo sobre este tema y otros muchos como forense de datos. ¡Os gustará y aprenderéis mucho con este «minion»!

¿Existe alternativa a Regedit y el Registro en *nix?

Me gustaría hablar como administrador o técnico, no como experto en la materia. Es decir, de lo que puedo observar cuando «trasteo» en unos y otros sistemas. Por eso, con lo que he indagado con esos equipos que tengo que reparar (100% con Windows), te digo que:

La respuesta rápida es: No

La respuesta graciosa es: ¡Afortunadamente NO!

Y la respuesta desarrollada sería la siguiente: la configuración se mantiene en ficheros de texto, principalmente en /etc (también /usr/local/etc/) para la configuración global, o dentro de ~/ para la personal de cada usuario. Por otro lado, el estado del sistema se aloja bajo /var, los famosos logs o registros del sistema que también se almacenan en texto plano (excepto con systemd que usa un formato binario, con sus ventajas e inconvenientes). También tienes otras interfaces como /proc para los datos de los procesos y del kernel, y otros directorios que podrían variar en función del sistema operativo *nix en el que te encuentres…

Así que regedit.exe y el registro de Windows son solo exclusivos de Microsoft Windows y no de otros sistemas operativos. Si quieres hacer una transposición de una configuración del registro de Windows para una app concreta, como Mozilla Firefox, y quieres replicarla en Linux u otro *nix, tendrás que entender qué efecto tiene esa configuración para hacer imitarla con lo que tienes en otros sistemas operativos…

Mi humilde opinión

Seguramente muchos expertos (yo no lo soy), argumentarán miles de bondades del registro de Windows. Seguramente tenga cosas positivas el haber centralizado todo allí. Pero… si tan positivo es ¿por qué ningún otro sistema operativo lo usa? (bueno, ReactOS también lo imita puesto que pretende ser una implementación libre de Windows, y también lo encontrarás en Wine y derivados). ¿Todos son estúpidos menos Microsoft?

Bueno, al estar todo centralizado y con una estructura ordenada, para los desarrolladores o para ciertos casos será positivo. Otros quizás lo vean como un montón de porquería opaca binaria con una configuración basura y que, al hacer ciertos cambios, es una de las maneras más fáciles que tienes para romper las aplicaciones o al propio sistema operativo… ¿Por qué? Pues:

  • Es un punto crítico del sistema Windows, todo se centraliza allí y cualquier cambio podría significar un posible problema. Por eso casi todos los artículos que consultas sobre modificaciones de registro te dicen que los cambios los haces bajo tu responsabilidad y te avisan de los peligros. Además, al ser monolítico, cuando mueves una aplicación a otra ruta ruta, la configuración se irá al traste…
  • Opaco y binario, aunque de los archivos binarios parece que «hemos aprendido» en Linux con systemd… El formato binario tiende a corromperse en algunos casos y necesita de herramientas específicas para ver el contenido a diferencia del texto plano. Afortunadamente con systemd solo se ha convertido a binario algunos logs bajo /var. Si en Windows se corrompe podría evitar que arranque el sistema.
  • Debería estar sincronizado con el FS, porque cuando eliminas un software a la fuerza (sin usar la opción de Desinstalar) significa que deja el registro obsoleto. No todos los usuarios pierden el tiempo actualizándolo o haciendo un mantenimiento adecuado. Apps como CCleaner, Registry Repair, etc., son necesarias en Windows, mientras que no son necesarias en un *nix.
  • El registro de Windows es una base de datos que se almacena sobre NTFS y se fragmenta como cualquier otro archivo bajo este sistema. Por tanto, si se fragmenta puede resultar en operaciones de acceso (lectura) muy lentas.

La simplicidad al estilo UNIX, en mi opinión, supera a esta complejidad a nivel técnico y práctico. El enfoque de UNIX permite almacenar el software donde se quiera sin afectar a la configuración. Además, los ficheros de texto plano se pueden editar a mano sin que la aplicación deje de funcionar (siempre que se respete la sintaxis), y se pueden leer y entender de forma más sencilla. En el peor de los casos, si se comete un error de sintaxis dejará de funcionar dicha app, pero se puede resolver fácilmente.

Al parecer, Windows desarrolló el registro para resolver algunos problemas con sus antiguos archivos .ini que se almacenaban sin un control estricto de los valores de su contenido y sin una ubicación estándar. Cuando hice el máster de tecnología de motorsport para conseguir una beca para trabajar en Campos Racing, una de las cosas que se cumplen en F1 a raja tabla es que no debes modificar algo si eso va a comprometer otras áreas. Es más, solo se modifica algo si eso va a traer una mejora considerable en ese área y en otras. Pero eso es F1, no Microsoft… Microsoft resolvió el problema principal, pero creo que ha generado otros incluso peores.

A favor de Microsoft tengo que decir que el registro se originó en Windows NT 3.1, y los usuarios provenían de MS-DOS con discos en formato FAT (especialmente FAT16 con sus limitaciones de clusters por disco). Si tienes en cuenta eso y ciertas capacidades consideradas grandes en la época, dan bloques de 32K o 64K típicos. Los pequeños archivos .ini de aquella época solo ocupaban algunas decenas de bytes cada uno y si se tenían miles de ellos significaba importantes cantidades de espacio en disco desperdiciada. Y en aquel momento el MB no se pagaba como ahora…

Por otro lado, el uso que hacía Windows de los .ini era lento (sobre todo si eran de gran tamaño), ya que los abría y escaneaba para encontrar la sección y clave solicitada. Además, requerían de tiempo de CPU y RAM para algunas conversiones de ciertos valores. También se quería aplicar ACLs para el control de acceso a los datos de registro…

Entonces había que hacer algo y por eso idearon el registro centralizado. Almacenaba muchos de esos fragmentos antes esparcidos por muchos .ini en pocos archivos grandes. Al tener una estructura, la base de datos se podía recorrer más rápidamente para conseguir lo que necesitaba. Y al estar en binario todo era más sencillo.

Pero podían haber hecho las cosas mejor. Microsoft ha sabido crear un problema que el resto ya habían resuelto hace años. Es algo que me recuerda al dichoso BIOS del que han dependido los PCs por culpa de la dependencia de MS, y que ha venido a resolver UEFI. ¡Ojo! También en Linux y otros *nix se podrían haber hecho algunas cosas mejor, haciendo un poco de autocrítica. No hay más que ver la mostruosidad que es systemd, que es casi un sistema operativo en sí mismo para poder iniciar Linux. Y aunque existe SysV y otros métodos de inicialización de Linux y otros *nix, sigue siendo un dolor de cabeza.

Isaac

Apasionado de la computación y la tecnología en general. Siempre intentando desaprender para apreHender.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto:

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar