কেন / ইত্যাদি / fstab XML বা JSON ব্যবহার করে না?


22

এটি সাধারণ লিনাক্স / প্রোগ্রামিং প্রশ্নের মতোই তবে আমি কিছুক্ষণ প্রোগ্রামিং করে চলেছি এবং কনফিগারেশনের উদ্দেশ্যে ব্যবহৃত কোনও ফাইলের এক্সএমএল বা জেএসএনের মতো ফর্ম্যাট ব্যবহার করতে অভ্যস্ত

লিনাক্সে নতুন হওয়ার কারণে আমি বুঝতে পেরেছিলাম যে আমি যে কনফিগারেশন ফাইলটি প্রথমে টুকরো টুকরো করেছিলাম তা /etc/fstabকোনও ধরণের টেবিল বিন্যাস ব্যবহার করে। তাহলে এক্সএমএল বা জেএসওন কেন নয়?


7
যদি, বলে, আমরা গ্রন্থাগার 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` মাউন্ট করতে হবে। এটি এড়ানোর জন্য, এক্সএমএল পার্সার সম্ভবত কার্নেলের অংশ হতে হবে যা চমত্কার ধারণা মত শোনাচ্ছে না।
el.pescado

4
@ V0R73X, আপনি যদি মনে করেন যে এই প্রশ্নটি আরও সাধারণ লিনাক্সের প্রশ্ন, তবে সেখানে আরও একটি স্ট্যাক সাইট রয়েছে, যাকে বলা হয় UNIX & Linux Stack Exchange, ইউনিক্স.স্ট্যাকেক্সেঞ্জ ডটকম। উভয়ই সম্ভবত ঠিক আছে, এবং এখানে ইতিমধ্যে উত্তর আছে, কিন্তু কেবল ভবিষ্যতের জন্য এটি নিক্ষেপ।
ট্রিপসিস

8
এক্সএমএল এবং এর মতো সর্বদা ভাল ফর্ম্যাট হয় না। একটি টেবিল একটি টেবিল এবং এটি হিসাবে সংরক্ষণ করা উচিত। বস্তুত কিছু লোক মনে করে যে, এক্সএমএল কিছু জন্য ভাল নয় plus.google.com/+LinusTorvalds/posts/X2XVf9Q7MfV
alfC

2
JSON কনফিগারেশন ফাইলগুলির জন্য ব্যবহার করা উচিত নয়। এটি এমন মন্তব্যগুলিকে সমর্থন করে না যা কনফিগারেশনের বিকল্পগুলি ব্যাখ্যা করার জন্য এবং কনফিগারেশনের কিছু অংশ মন্তব্য করে চেষ্টা করার জন্য প্রয়োজনীয়।
আর্টব্রিস্টল

2
এক্সএমএল একটি নথি পরিবহণ ফর্ম্যাট, কোনও কনফিগারেশন ফাইল ফর্ম্যাট নয়।
ম্যাথু ইফে

উত্তর:


82

/etc/fstab এক্সএমএল এবং জেএসএনের চেয়ে অনেক বেশি পুরানো এবং প্রোগ্রামের প্রচুর পরিমাণ এটি রূপান্তর পরিবর্তন করা দুঃস্বপ্ন হতে ব্যবহার করে।

এটি ছাড়াও /etc/fstabএকটি কার্যকরী সিস্টেম হওয়ার আগে পার্স করা দরকার কারণ এটি সমস্ত প্রয়োজনীয় ফাইল সিস্টেম মাউন্ট করার জন্য ব্যবহৃত হয়। সুতরাং /etc/fstabপার্সারটি কোনও বাহ্যিক লিবের উপর নির্ভর করে না কারণ ফর্ম্যাটটি যথাসম্ভব সহজ হওয়া উচিত।

এক্সএমএল পার্সিং করা বেশ কঠিন এবং আপনি যদি বাহ্যিক স্তরে চাপ দিতে না পারেন তবে আপনি সত্যিই এড়াতে চান। জেএসএন কিছুটা সহজ তবে এখনও বেশ কঠিন।

এর শব্দার্থক শব্দগুলি /etc/fstabবেশ সহজ, এগুলিতে কোনও গাছের মতো ডেটা স্ট্রাকচার বা অন্য কোনও অভিনব স্টাফ অন্তর্ভুক্ত নয়। আপনার যা দরকার তা হ'ল ছয়টি মান সমন্বিত রেকর্ড।

হোয়াইটস্পেস-বিভাজিত মানগুলি এর জন্য যথেষ্ট ভাল এবং আপনার পার্সোনাল সি স্ট্যান্ডার্ড ল্যাবগুলি হলেও এগুলি পার্স করা সহজ।

সুতরাং জেএসএন, এক্সএমএল বা অনুরূপ কিছু ব্যবহার করার কোনও কারণ নেই।


সাদা বিচ্ছিন্ন ক্ষেত্রগুলি fstab করার জন্য পর্যাপ্ত। এটি করার স্বার্থে জিনিসগুলি আরও জটিল করে তুলতে চান না।
মাইকেল মার্টিনেজ

একটি সিএসভি আরও সহজ এবং সহজ হবে
স্লেড

3
@ আর্টবি আপনারা কেন মনে করেন যে ডিলিমিটারটি পরিবর্তন করলে ফাইল পার্সিংয়ের জটিলতা বদলে যাবে?
ড্যান নীলি

উদ্ধৃতি, পলায়ন ইত্যাদির নিয়মের উপর নির্ভর করে CSV পার্স করা কিছুটা সহজ হতে পারে কারণ ডিলিমিটারটি বর্তমানে ব্যবহৃত ভেরিয়েবল দৈর্ঘ্যের ডিলিমিটারের পরিবর্তে সর্বদা একটি চর থাকে। তবে বর্তমান ফর্ম্যাটটি আরও ভাল মানুষের পঠনযোগ্যতার জন্য অনুমতি দেয় যা একটি গুরুত্বপূর্ণ মানও value
ফ্লোরিয়ান ডিয়েশ

32

আপনার সত্যিকারের এরিক রেমন্ডের আর্ট অফ ইউনিক্স প্রোগ্রামিংটি পড়া উচিত । আপনি মনে করছেন যে ইউনিক্স ডিজাইনাররা /etc/fstabযদি এটি সম্পর্কে জানত তবে এক্সএমএল ব্যবহার করবেন । বিপরীতে, যদিও এক্সএমএলটি বিশেষভাবে আবিষ্কার করা হয়নি তবে তারা এর অনুরূপ পূর্বসূরিদের সম্পর্কে যথেষ্ট সচেতন ছিল এবং কনফিগারেশন ফাইলগুলির জন্য ইচ্ছাকৃতভাবে তাদের প্রত্যাখ্যান করেছিল /etc/fstab

এক্সএমএলে তার সাবসেকশন থেকে উদ্ধৃতি :

এক্সএমএল জটিল ডেটা ফর্ম্যাটগুলির জন্য (যে ধরণের জিনিসগুলির জন্য পুরানো-স্কুল ইউনিক্স traditionতিহ্যটি একটি আরএফসি -822 -র মতো স্তম্ভের ফর্ম্যাট ব্যবহার করবে) তবে সহজতর ওভারকিলের জন্য উপযুক্ত। আরএফসি 822 মেটাফর্ম্যাটটি হ্যান্ডেল করে না এমন ধরণের জটিল নেস্টেড বা পুনরাবৃত্ত কাঠামো রয়েছে এমন ফর্ম্যাটগুলির জন্য এটি উপযুক্ত।

এবং আরও নিচে:

এক্সএমএলের সবচেয়ে গুরুতর সমস্যা হ'ল এটি traditionalতিহ্যবাহী ইউনিক্স সরঞ্জামগুলির সাথে ভাল খেলছে না। একটি সফ্টওয়্যার যা এক্সএমএল ফর্ম্যাটটি পড়তে চায় তার একটি এক্সএমএল পার্সার প্রয়োজন; এর অর্থ বিশাল, জটিল প্রোগ্রাম। এছাড়াও, এক্সএমএল নিজেই বরং ভারী; সমস্ত মার্কআপের মধ্যে ডেটা দেখতে অসুবিধা হতে পারে।

ইউনিক্স দর্শন হ'ল কনফিগারেশনটি সহজে স্ক্রিপ্টযোগ্য এবং যেখানেই সম্ভব মানুষের পাঠযোগ্য। আপনি awk, গ্রেপ, সেড, ট্র, এবং কাট এর মতো সরঞ্জামগুলির সাথে কনফিগার করা ফাইলগুলি প্রক্রিয়া করতে সক্ষম হবেন এবং বিশাল লাইব্রেরি ছাড়াই স্ক্রিপ্টিং ভাষায় সহজেই তাদের পার্স করতে পারবেন। এটি ইউনিক্সের সাফল্যের পিছনে একটি বিশাল কারণ এবং এটি হ্রাস করা উচিত নয়।

যদিও এরিক রেমন্ড এক্সএমএলকে "এমন জটিল ফর্ম্যাটগুলি বা পুনরাবৃত্ত কাঠামোযুক্ত ফর্ম্যাটগুলি হ্যান্ডেল করার ক্ষমতার জন্য প্রশংসা /etc/fstabকরেছেন , অবশ্যই সেগুলির কোনও প্রয়োজন নেই, এবং তাই এর জন্য সহজতম ফাইল ফর্ম্যাটটি বেছে নেওয়া হয়েছিল।

সুতরাং যদিও এক্সএমএল এর অবশ্যই ব্যবহার রয়েছে তবে আপনি বিবেচনা করতে পারেন যে গ্রহে কিছু স্মার্ট স্মার্ট প্রোগ্রামার যারা এই ক্ষেত্রের পথিকৃত হয়েছিল তারা জেনে থাকতে পারে যে তারা কী করছে। সম্ভবত এক্সএমএল আপনার নিজের কনফিগারেশন ফাইলগুলির জন্য সর্বদা সেরা উপযুক্ত নয়।


18

আমি এখন যেভাবে ভাবতে পারি তার প্রধান কারণ হ'ল:


4
এই উত্তরটি আসলে fstabফাইল / ফর্ম্যাটটি হিসাবে পুরানো mountযা আপনাকে কেবল বোঝায় বলে মনে হয় না। মতে man fstab, " এই fstab ফাইল ফর্ম্যাটটির পূর্বপুরুষ 4.0BSD এ উপস্থিত হয়েছিল। " (BSDs এর বাক্যটি " fstab ফাইল ফর্ম্যাটটি 4.0BSD এ উপস্থিত হয়েছিল। ")। 4.0BSD মুক্তি পায় 1980
ড্যানিয়েল বেক

@ ড্যানিয়েলবেক সুতরাং, আমার অনুমান ভাগ্যক্রমে সত্য ছিল ১৯৮৫ সালের আগে।
রাদু রেডানু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.