Thỉnh thoảng bạn nên đọc Nghệ thuật lập trình Unix của Eric Raymond . Bạn dường như đang đưa ra giả định rằng các nhà thiết kế Unix sẽ sử dụng XML /etc/fstab
nếu họ biết về nó. Ngược lại, mặc dù XML đặc biệt chưa được phát minh, nhưng họ hoàn toàn biết về những người tiền nhiệm tương tự của nó và cố tình từ chối chúng cho các tệp cấu hình như thế nào /etc/fstab
.
Trích dẫn từ tiểu mục của mình về XML :
XML rất phù hợp với các định dạng dữ liệu phức tạp (loại những thứ mà truyền thống Unix trường học cũ sẽ sử dụng định dạng khổ thơ giống RFC-822) mặc dù quá mức cho những thứ đơn giản hơn. Điều này đặc biệt thích hợp cho các định dạng có cấu trúc phức tạp lồng nhau hoặc đệ quy của loại mà metaformat RFC 822 không xử lý tốt.
và xa hơn:
Vấn đề nghiêm trọng nhất với XML là nó không chơi tốt với các công cụ Unix truyền thống. Phần mềm muốn đọc định dạng XML cần có trình phân tích cú pháp XML; điều này có nghĩa là các chương trình cồng kềnh, phức tạp. Ngoài ra, XML là khá cồng kềnh; có thể khó nhìn thấy dữ liệu giữa tất cả các đánh dấu.
Triết lý của Unix là làm cho cấu hình dễ dàng được viết thành kịch bản và con người có thể đọc được bất cứ nơi nào có thể. Bạn sẽ có thể xử lý các tệp cấu hình bằng các công cụ như awk, grep, sed, tr và cắt, và dễ dàng phân tích chúng trong các ngôn ngữ kịch bản mà không cần các thư viện cồng kềnh. Đây là một lý do lớn đằng sau thành công của Unix và không nên đánh giá thấp.
Mặc dù Eric Raymond ca ngợi XML về khả năng xử lý "các định dạng có cấu trúc đệ quy phức tạp hoặc đệ quy phức tạp", /etc/fstab
chắc chắn không cần đến các định dạng đó và do đó, định dạng tệp đơn giản nhất có thể được chọn cho nó.
Vì vậy, mặc dù XML chắc chắn có công dụng của nó, bạn có thể muốn xem xét rằng một số lập trình viên thông minh nhất trên hành tinh tiên phong trong lĩnh vực này có thể đã biết họ đang làm gì. Có lẽ XML không phải lúc nào cũng phù hợp nhất cho các tệp cấu hình của riêng bạn.
/usr/lib/libxml.so
và/usr
trên phân vùng riêng biệt? Để phân tích/etc/fstab
hệ thống, sẽ phải gắn/usrz in order to load
libxml, but to do so it would have to parse
/ etc / fstab` để biết hệ thống tập tin nào sẽ được gắn kết. Để tránh điều này, trình phân tích cú pháp XML có thể phải là một phần của kernel không giống như ý tưởng tuyệt vời.