Isso é mais como uma questão geral de Linux / programação, mas estou programando há um tempo e estou acostumado a usar um formato como XML ou JSON em qualquer arquivo usado para fins de configuração.
Sendo novo no Linux, percebi que o primeiro arquivo de configuração em que encontrei ( /etc/fstab
) usa algum tipo de formato de tabela. Então, por que não XML ou JSON?
/usr/lib/libxml.so
e/usr
em uma partição separada? Para analisar o/etc/fstab
sistema, é necessário montar o/usrz in order to load
libxml, but to do so it would have to parse
/ etc / fstab` para saber qual sistema de arquivos montar. Para evitar isso, o analisador XML provavelmente teria que fazer parte do kernel, o que não parece uma idéia fantástica.UNIX & Linux Stack Exchange
unix.stackexchange.com. Ambos provavelmente estariam bem, e já existem respostas aqui, mas apenas jogá-lo fora para o futuro.Respostas:
/etc/fstab
é muito mais antigo que XML e JSON e, como muitos programas o utilizam, alterar seu formato seria um pesadelo.Além disso, ele
/etc/fstab
precisa ser analisado antes que exista um sistema funcional, pois ele é usado para montar todos os sistemas de arquivos essenciais. Portanto, o formato de/etc/fstab
deve ser o mais simples possível, pois o analisador não deve depender de nenhuma biblioteca externa.A análise de XML é bastante difícil e você realmente deseja evitá-lo se não puder retransmitir bibliotecas externas. JSON é um pouco mais fácil, mas ainda bastante difícil.
A semântica de
/etc/fstab
é bastante simples, não inclui nenhuma estrutura de dados semelhante a uma árvore ou qualquer outra coisa sofisticada. Tudo que você precisa é de registros consistindo em seis valores.Valores separados por espaço em branco são bons o suficiente para isso e são fáceis de analisar, mesmo se tudo o que você tiver são as bibliotecas padrão C.
Portanto, não há razão para usar JSON, XML ou algo semelhante.
fonte
Você deveria ler The Art of Unix Programming de Eric Raymond algum dia. Você parece estar assumindo que os designers do Unix usariam XML
/etc/fstab
se soubessem disso. Pelo contrário, embora o XML especificamente não tenha sido inventado, eles estavam cientes de seus antecessores similares e os rejeitaram deliberadamente em arquivos de configuração como/etc/fstab
.Citando sua subseção em XML :
e mais abaixo:
A filosofia do Unix é tornar a configuração facilmente programável e legível por humanos sempre que possível. Você deve poder processar arquivos de configuração com ferramentas como awk, grep, sed, tr e cut e analisá-los facilmente em linguagens de script sem bibliotecas volumosas. Esta é uma enorme razão por trás do sucesso do Unix e não deve ser subestimada.
Embora Eric Raymond elogie o XML por sua capacidade de lidar com "formatos que possuem uma estrutura aninhada ou recursiva complexa",
/etc/fstab
certamente não precisa deles e, portanto, o formato de arquivo mais simples possível foi escolhido.Portanto, embora o XML certamente tenha seus usos, você pode considerar que alguns dos programadores mais inteligentes do planeta que foram pioneiros no campo talvez soubessem o que estavam fazendo. Talvez o XML nem sempre seja o melhor para seus próprios arquivos de configuração.
fonte
A principal razão pela qual posso pensar agora é:
fstab
arquivo é mais comumente usado pelomount
comandomount
comando começou provavelmente antes de 1985fonte
fstab
arquivo / formato é tão antigo quanto omount
que você parece sugerir. De acordo comman fstab
" O ancestral deste formato de arquivo fstab apareceu no 4.0BSD. " (Os BSDs o denominam " O formato do arquivo fstab apareceu no 4.0BSD. "). 4.0BSD foi lançado em 1980 .