Esto es más como una pregunta general de Linux / programación, pero he estado programando por un tiempo, y estoy acostumbrado a usar un formato como XML o JSON en cualquier archivo que se use con fines de configuración.
Al ser nuevo en Linux, me di cuenta de que el primer archivo de configuración que encontré ( /etc/fstab
) usa algún tipo de formato de tabla. Entonces, ¿por qué no XML o JSON?
/usr/lib/libxml.so
y/usr
en una partición separada? Para analizar el/etc/fstab
sistema tendría que montar/usrz in order to load
libxml, but to do so it would have to parse
/ etc / fstab` para saber qué sistema de archivos montar. Para evitar esto, el analizador XML probablemente debería ser parte del núcleo, lo que no parece una idea fantástica.UNIX & Linux Stack Exchange
, unix.stackexchange.com. Ambos probablemente estarían bien, y ya hay respuestas aquí, pero solo lo descartamos para el futuro.Respuestas:
/etc/fstab
es mucho más antiguo que XML y JSON, y como muchos programas lo usan, cambiar su formato sería una pesadilla.Además, esto
/etc/fstab
debe analizarse antes de que haya un sistema funcional, ya que se utiliza para montar todos los sistemas de archivos esenciales. Por lo tanto, el formato de/etc/fstab
debe ser lo más simple posible ya que el analizador no debe depender de ninguna biblioteca externa.Analizar XML es bastante difícil y realmente quieres evitarlo si no puedes transmitir en libs externas. JSON es un poco más fácil pero aún bastante difícil.
La semántica de
/etc/fstab
es bastante simple, no incluye ninguna estructura de datos en forma de árbol ni ninguna otra cosa elegante. Todo lo que necesita son registros que constan de seis valores.Los valores separados por espacios en blanco son lo suficientemente buenos para eso, y son fáciles de analizar incluso si todo lo que tiene son las bibliotecas estándar de C.
Entonces, no hay razón para usar JSON, XML o algo similar.
fuente
Realmente deberías leer The Art of Unix Programming de Eric Raymond alguna vez. Parece que está asumiendo que los diseñadores de Unix habrían usado XML
/etc/fstab
si lo hubieran sabido. Por el contrario, aunque XML no se había inventado específicamente, eran muy conscientes de sus predecesores similares y los rechazaron deliberadamente para archivos de configuración como/etc/fstab
.Citando de su subsección en XML :
y más abajo
La filosofía de Unix es hacer que la configuración sea fácilmente programable y legible por humanos siempre que sea posible. Debería poder procesar archivos de configuración con herramientas como awk, grep, sed, tr y cut, y analizarlos fácilmente en lenguajes de script sin bibliotecas voluminosas. Esta es una gran razón detrás del éxito de Unix y no debe subestimarse.
Aunque Eric Raymond elogia a XML por su capacidad para manejar "formatos que tienen una estructura compleja anidada o recursiva",
/etc/fstab
ciertamente no los necesita y, por lo tanto, se eligió el formato de archivo más simple posible.Entonces, aunque XML ciertamente tiene sus usos, es posible que desee considerar que algunos de los programadores más inteligentes del planeta que fueron pioneros en el campo podrían haber sabido lo que estaban haciendo. Quizás XML no sea siempre el mejor para sus propios archivos de configuración.
fuente
La razón principal por la que puedo pensar ahora es:
fstab
archivo es usado más comúnmente por elmount
comandomount
mando comenzó probablemente antes de 1985fuente
fstab
archivo / formato sea tan antiguo comomount
parece, lo que parece implicar solo. Segúnman fstab
, " El antepasado de este formato de archivo fstab apareció en 4.0BSD " (la frase de BSD dice " El formato de archivo fstab apareció en 4.0BSD "). 4.0BSD fue lanzado en 1980 .