Ви дійсно повинні прочитати десь Еріка Реймонда «Мистецтво програмування Unix» . Здається, ви робите припущення, що дизайнери Unix використовували б XML, /etc/fstab
якби вони про це знали. Навпаки, хоча XML спеціально не був винайдений, вони були цілком обізнані з його аналогічними попередниками і навмисно відхиляли їх за такими файлами конфігурації /etc/fstab
.
Цитуючи його підрозділ на XML :
XML добре підходить для складних форматів даних (таких речей, для яких традиція старої школи Unix використовує формат строфи типу RFC-822), але надмірний рівень для більш простих. Особливо це підходить для форматів, які мають складну вкладену або рекурсивну структуру такого типу, з якою метаформат RFC 822 не справляється добре.
і далі вниз:
Найсерйозніша проблема XML полягає в тому, що він не дуже добре грає з традиційними інструментами Unix. Програмному забезпеченню, яке хоче прочитати формат XML, потрібен XML-аналізатор; це означає громіздкі, складні програми. Крім того, XML сам по собі досить об'ємний; може бути важко побачити дані серед усієї розмітки.
Філософія Unix полягає в тому, щоб зробити конфігурацію легко читаючою та зрозумілою для людей, де це можливо. Ви повинні мати можливість обробляти конфігураційні файли з такими інструментами, як awk, grep, sed, tr та cut, та легко розбирати їх у мовах сценаріїв без об'ємних бібліотек. Це величезна причина успіху Unix, і його не можна недооцінювати.
Хоча Ерік Реймонд хвалить XML за його здатність обробляти "формати, які мають складну вкладену або рекурсивну структуру", в них, /etc/fstab
звичайно, немає потреби, і тому для нього було обрано найпростіший можливий формат файлу.
Отже, хоча XML, безумовно, має своє використання, ви можете подумати, що деякі найрозумніші програмісти на планеті, які піонерували поле, могли б знати, що вони роблять. Можливо, XML не завжди найкраще підходить для ваших власних файлів конфігурації.
/usr/lib/libxml.so
та/usr
на ньому? Для того, щоб проаналізувати/etc/fstab
систему, слід було б змонтувати/usrz in order to load
libxml, but to do so it would have to parse
/ etc / fstab`, щоб знати, у яку файлову систему потрібно встановити. Щоб уникнути цього, XML-аналізатор, ймовірно, повинен бути частиною ядра, що не здається фантастичною ідеєю.