คุณควรอ่านอีริคเรย์มอนด์ศิลปะของ Unix Programmingบางครั้ง คุณดูเหมือนจะสมมุติว่าผู้ออกแบบ Unix จะใช้ XML สำหรับ/etc/fstab
พวกเขาหากพวกเขารู้ ในทางตรงกันข้ามแม้ XML โดยเฉพาะไม่ได้รับการคิดค้นพวกเขาค่อนข้างตระหนักของรุ่นก่อนที่คล้ายกันและจงใจ/etc/fstab
ปฏิเสธพวกเขาสำหรับแฟ้มการกำหนดค่าเช่น
การอ้างอิงจากส่วนย่อยของเขาบน XML :
XML เหมาะอย่างยิ่งสำหรับรูปแบบข้อมูลที่ซับซ้อน (การเรียงลำดับของสิ่งต่าง ๆ ซึ่งประเพณี Unix แบบโรงเรียนเก่าจะใช้รูปแบบ stanza RFC-822 เหมือน) แม้ว่า overkill สำหรับคนที่ง่ายกว่า มันเหมาะสมอย่างยิ่งสำหรับรูปแบบที่มีโครงสร้างซ้อนกันหรือเกิดซ้ำที่ซับซ้อนของการเรียงลำดับที่ metaformat RFC 822 ไม่จัดการได้ดี
และไกลออกไป:
ปัญหาที่ร้ายแรงที่สุดของ XML คือมันใช้งานไม่ได้กับเครื่องมือ Unix แบบดั้งเดิม ซอฟต์แวร์ที่ต้องการอ่านรูปแบบ XML จำเป็นต้องมีตัวแยกวิเคราะห์ XML นี่หมายถึงโปรแกรมขนาดใหญ่และซับซ้อน นอกจากนี้ XML นั้นค่อนข้างใหญ่ มันอาจเป็นเรื่องยากที่จะเห็นข้อมูลท่ามกลางมาร์กอัปทั้งหมด
ปรัชญา Unix คือการทำให้การกำหนดค่าสคริปต์ง่ายและมนุษย์อ่านได้ทุกที่ที่เป็นไปได้ คุณควรจะสามารถประมวลผลไฟล์กำหนดค่าด้วยเครื่องมือเช่น awk, grep, sed, tr และ cut และแยกวิเคราะห์ไฟล์เหล่านั้นในภาษาสคริปต์โดยไม่ต้องมีไลบรารีขนาดใหญ่ นี่เป็นเหตุผลใหญ่ที่อยู่เบื้องหลังความสำเร็จของ Unix และไม่ควรมองข้าม
แม้ว่า Eric Raymond จะชื่นชม 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 อาจจะต้องเป็นส่วนหนึ่งของเคอร์เนลซึ่งไม่ได้ฟังดูเหมือนเป็นแนวคิดที่ยอดเยี่ยม