Почему / etc / fstab не использует XML или JSON?

Это больше похоже на общий вопрос о Linux / программировании, но я некоторое время программировал, и я привык использовать такой формат, как XML или JSON . на любой файл, который используется в целях конфигурации.

Будучи новичком в Linux, я понял, что в первом конфигурационном файле, который я наткнулся (/etc/fstab), используется какой-то формат таблицы. Так почему бы не XML или JSON?

22
задан 16.05.2020, 16:12

3 ответа

/etc/fstab значительно старше, чем XML и JSON, и поскольку довольно много программ использует, это изменяющий его формат был бы кошмар.

Помимо этого /etc/fstab потребности, которые будут проанализированы прежде, существуют функциональная система, поскольку она используется для монтирования всех существенных файловых систем. Следовательно формат /etc/fstab должен быть максимально простым, поскольку синтаксический анализатор не должен зависеть ни от кого внешнего, освобождает.

Парсинг XML является довольно трудным, и Вы действительно хотите избежать его, если Вы не можете передать на внешнем, освобождает. JSON является немного легче, но все еще довольно трудным.

семантика /etc/fstab довольно проста, они не включают древовидных структур данных или любого другого необычного материала. Все, в чем Вы нуждаетесь, является записями, состоящими из шести значений.

Whitepace-разделенные значения достаточно хороши для этого, и их легко проанализировать, даже если все, что Вы имеете, является стандартом C, освобождает.

, Таким образом, нет только никакой причины использовать JSON, XML или что-то подобное.

82
ответ дан 16.05.2020, 16:12
  • 1
    белые разделенные поля достаточны для того, что должен сделать fstab. don' t хотят сделать вещи более сложными просто ради выполнения его. – Anish 16.05.2020, 16:12
  • 2
    В зависимости от правил для заключения в кавычки, выходя и т.д. CSV могло быть немного легче проанализировать, поскольку разделитель всегда является одним символом вместо в настоящее время используемого разделителя переменной длины. Но текущий формат допускает лучшую человеческую удобочитаемость, которая является важным значением, также. – null 16.05.2020, 16:13
  • 3
    CSV был бы еще более простым и легким – 9to5ios 16.05.2020, 16:13
  • 4
    @ArtB, почему Вы думаете, изменяя разделитель, изменил бы сложность парсинга файла? – SaltyNuts 16.05.2020, 16:13

Главная причина, в которой я могу думать теперь:

18
ответ дан 16.05.2020, 16:13
  • 1
    @DanielBeck Так, мое предположение было к счастью верно до 1985. –  16.05.2020, 16:13
  • 2
    Этот ответ doesn' t на самом деле показывают, что fstab файл/формат так же стар как mount, который Вы, кажется, только подразумеваете. Согласно man fstab, " предок этого fstab формата файла появился в 4.0BSD. " (фраза BSDs это " fstab формат файла появился в 4.0BSD. "). 4.0BSD был выпущен в 1980 . – Community 16.05.2020, 16:14

Необходимо действительно считать Eric Raymond Искусство Программирования Unix когда-то. Вы, кажется, делаете предположение, что разработчики Unix использовали бы XML для /etc/fstab, если бы они знали об этом. Наоборот, хотя XML конкретно не был изобретен, они вполне знали о его подобных предшественниках, и сознательно отклонил их для конфигурационных файлов как /etc/fstab.

Заключение в кавычки от его подраздел на XML:

XML хорошо подходит для сложных форматов данных (вид вещей, для которых олдскульная традиция Unix использовала бы RFC-822-like формат строки файла конфигурации), хотя излишество для более простых. Это особенно подходит для форматов, которым вложили комплекс или рекурсивную структуру вида, который метаформат RFC 822 не обрабатывает хорошо.

и дальше вниз:

наиболее серьезная проблема с XML состоит в том, что он не играет хорошо с традиционными инструментами Unix. Для программного обеспечения, которое хочет считать формат XML, нужен синтаксический анализатор XML; это означает большие, сложные программы. Кроме того, XML является самостоятельно довольно большим; может быть трудно видеть данные среди всей разметки.

философия Unix должна сделать конфигурацию легко scriptable и человекочитаемой по мере возможности. Необходимо быть в состоянии обработать файлы конфигурации с инструментами как awk, grep, sed, TR, и сократить, и легко проанализировать их в языках сценариев без больших библиотек. Это - огромная причина позади успеха Unix и не должно быть недооценено.

, Хотя Eric Raymond хвалит XML за его способность обработать "форматы, которым вложили комплекс или рекурсивную структуру", /etc/fstab, конечно, не имеет никакой потребности в тех, и поэтому самый простой возможный формат файла был выбран для него.

Поэтому, хотя XML, конечно, имеет свое использование, Вы могли бы хотеть полагать, что некоторые самые умные программисты на планете, которые вели поле, возможно, знали то, что они делали. Возможно, XML является не всегда лучшим пригодным для Ваших собственных конфигурационных файлов.

32
ответ дан 16.05.2020, 16:14
  • 1
    Это должно быть принятым ответом. – Mr.A 16.05.2020, 16:14

Теги

Похожие вопросы