Ini lebih seperti pertanyaan umum Linux / pemrograman, tapi saya sudah pemrograman untuk sementara waktu, dan saya terbiasa menggunakan format seperti XML atau JSON pada file apa pun yang digunakan untuk tujuan konfigurasi.
Menjadi orang baru di Linux, saya menyadari bahwa file konfigurasi pertama yang saya temui ( /etc/fstab
) menggunakan semacam format tabel. Jadi mengapa tidak XML atau JSON?
/usr/lib/libxml.so
dan/usr
di partisi terpisah? Untuk mengurai/etc/fstab
sistem harus me-mount/usrz in order to load
libxml, but to do so it would have to parse
/ etc / fstab` untuk mengetahui filesystem mana yang akan di-mount. Untuk menghindari hal ini, parser XML mungkin harus menjadi bagian dari kernel yang tidak terdengar seperti ide yang fantastis.UNIX & Linux Stack Exchange
, unix.stackexchange.com. Keduanya mungkin baik-baik saja, dan sudah ada jawaban di sini, tetapi hanya membuangnya untuk masa depan.Jawaban:
/etc/fstab
jauh lebih tua dari XML dan JSON, dan karena cukup banyak program menggunakannya mengubah formatnya akan menjadi mimpi buruk.Selain itu ini
/etc/fstab
perlu diuraikan sebelum ada sistem fungsional karena digunakan untuk me-mount semua sistem file penting. Oleh karena itu format/etc/fstab
harus sesederhana mungkin karena pengurai tidak harus bergantung pada lib eksternal.Parsing XML cukup sulit dan Anda benar-benar ingin menghindarinya jika Anda tidak dapat menyampaikan pada lib eksternal. JSON sedikit lebih mudah tetapi masih cukup sulit.
Semantiknya
/etc/fstab
cukup sederhana, mereka tidak menyertakan struktur data seperti pohon atau barang mewah lainnya. Yang Anda butuhkan adalah catatan yang terdiri dari enam nilai.Nilai yang dipisahkan oleh whitepace cukup baik untuk itu, dan mereka mudah diurai bahkan jika yang Anda miliki hanyalah lib standar C.
Jadi tidak ada alasan untuk menggunakan JSON, XML atau yang serupa.
sumber
Anda harus benar-benar membaca The Art of Unix Programming karya Eric Raymond suatu saat. Anda tampaknya membuat asumsi bahwa perancang Unix akan menggunakan XML
/etc/fstab
jika mereka tahu tentang hal itu. Sebaliknya, meskipun XML secara khusus belum ditemukan, mereka cukup menyadari pendahulunya yang serupa, dan sengaja menolaknya untuk file konfigurasi seperti/etc/fstab
.Mengutip dari sub- bagiannya pada XML :
dan lebih jauh ke bawah:
Filosofi Unix adalah membuat konfigurasi dengan mudah skrip dan dapat dibaca manusia jika memungkinkan. Anda harus dapat memproses file konfigurasi dengan alat-alat seperti awk, grep, sed, tr, dan cut, dan dengan mudah menguraikannya dalam bahasa scripting tanpa perpustakaan besar. Ini adalah alasan besar di balik kesuksesan Unix dan tidak boleh diremehkan.
Meskipun Eric Raymond memuji XML untuk kemampuannya menangani "format yang memiliki struktur bersarang atau rekursif yang kompleks,"
/etc/fstab
tentu saja tidak perlu untuk itu, dan oleh karena itu format file yang paling sederhana mungkin dipilih untuk itu.Jadi walaupun XML jelas memiliki kegunaannya, Anda mungkin ingin mempertimbangkan bahwa beberapa programmer paling pintar di planet ini yang memelopori bidang ini mungkin sudah tahu apa yang mereka lakukan. Mungkin XML tidak selalu paling cocok untuk file konfigurasi Anda sendiri.
sumber
Alasan utama yang bisa saya pikirkan sekarang adalah:
fstab
file yang paling umum digunakan olehmount
perintahmount
perintah dimulai mungkin sebelum tahun 1985sumber
fstab
file / format setuamount
, yang tampaknya Anda hanya menyiratkan. Menurutman fstab
, " Nenek moyang format file fstab ini muncul di 4.0BSD. " (Frasa BSD itu " Format file fstab muncul di 4.0BSD. "). 4.0BSD dirilis pada 1980 .