Por que o / etc / fstab não usa XML ou JSON?

22

Isto é mais como uma questão geral de Linux / programação, mas eu tenho programado há algum tempo, e estou acostumado a usar um formato como XML ou JSON em qualquer arquivo que seja usado para fins de configuração.

Sendo novo no Linux, percebi que o primeiro arquivo de configuração que eu encontrei ( /etc/fstab ) usa algum tipo de formato de tabela. Então, por que não XML ou JSON?

    
por jzeus 16.03.2014 / 08:28

3 respostas

82

/etc/fstab é muito mais antigo que XML e JSON e, como muitos programas usam, alterar seu formato seria um pesadelo.

Além disso, /etc/fstab precisa ser analisado antes que haja um sistema funcional, pois é 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 bibliotecas externas.

Analisar XML é muito difícil e você realmente quer evitá-lo se não puder retransmitir em bibliotecas externas. O JSON é um pouco mais fácil, mas ainda assim bastante difícil.

A semântica de /etc/fstab é bem simples, não inclui nenhuma estrutura de dados semelhante a uma árvore ou qualquer outra coisa interessante. Tudo o que você precisa é de registros que consistam em seis valores.

Os valores separados por espaço em branco são bons o suficiente para isso e são fáceis de analisar, mesmo que você tenha apenas as bibliotecas padrão C.

Portanto, não há motivo para usar JSON, XML ou algo semelhante.

    
por Florian Diesch 16.03.2014 / 09:05
32

Você deve realmente ler a Programação da Arte do Unix de Eric Raymond em algum momento. Você parece estar supondo que os designers do Unix teriam usado XML para /etc/fstab se soubessem disso. Pelo contrário, embora o XML especificamente não tenha sido inventado, eles estavam bem cientes de seus predecessores similares, e deliberadamente os rejeitaram para arquivos de configuração como /etc/fstab .

Citando sua subseção sobre XML :

  

O XML é bem adequado para formatos de dados complexos (o tipo de coisas para as quais a tradição do Unix da velha escola usaria um formato de sub-rotina semelhante ao RFC-822), embora seja um exagero para os mais simples. É especialmente apropriado para formatos que possuem uma estrutura aninhada ou recursiva complexa do tipo que o meta-formato RFC 822 não manipula bem.

e mais abaixo:

  

O problema mais sério com o XML é que ele não funciona bem com as ferramentas tradicionais do Unix. O software que deseja ler um formato XML precisa de um analisador XML; Isso significa programas volumosos e complicados. Além disso, XML é em si bastante volumoso; pode ser difícil ver os dados em meio a todas as marcações.

A filosofia Unix é tornar a configuração facilmente legível e legível, sempre que possível. Você deve ser capaz de processar arquivos de configuração com ferramentas como awk, grep, sed, tr e cut, e facilmente analisá-los em linguagens de script sem bibliotecas volumosas. Este é um grande motivo por trás do sucesso do Unix e não deve ser subestimado.

Embora Eric Raymond elogie o XML por sua capacidade de lidar com "formatos que têm uma estrutura aninhada ou recursiva complexa", /etc/fstab certamente não precisa deles e, portanto, o formato de arquivo mais simples foi escolhido.

Portanto, embora o XML certamente tenha seus usos, talvez você queira considerar que alguns dos programadores mais inteligentes do planeta que foram pioneiros no campo podem ter sabido o que estavam fazendo. Talvez o XML nem sempre seja o melhor ajuste para seus próprios arquivos de configuração.

    
por Karl Bielefeldt 17.03.2014 / 16:28
18

A principal razão pela qual posso pensar agora é:

por Radu Rădeanu 16.03.2014 / 09:18

Tags