आज, अधिकांश डेटाबेस प्रबंधन प्रणाली (जैसे पोस्टग्रेक्यूएस , मोंगोडीबी , आदि ...) आंतरिक रूप से अपने डेटा को ओएस फाइलों के अंदर रखते हैं (अतीत में, कुछ डीबीएमएस सीधे कच्चे डिस्क विभाजन का उपयोग करते थे)।
हाल के कंप्यूटरों पर अभी भी कताई हार्ड डिस्क का उपयोग करते हुए , डिस्क इतनी धीमी है - सीपीयू या रैम के सापेक्ष - जो कुछ सॉफ़्टवेयर परतों को जोड़ना प्रासंगिक नहीं है। SSD तकनीक शायद बदल सकती है, और कुछ फ़ाइल सिस्टम SSDs के लिए अनुकूलित हैं।
फ़ाइलें (- संपादक, linkers - विशेष रूप से, सी compilers और सबसे उपकरणों में करना चाहते हैं फ़ाइलें, इसलिए वहाँ एक चिकन और अंडे की समस्या नहीं है) ऐतिहासिक और सामाजिक कारणों के लिए सामान्य रूप में सबसे OSes में मौजूद हैं, और क्योंकि वहाँ बहुत अच्छा के एक बहुत हैं फ़ाइल सिस्टम कार्यान्वयन।
BTW, कुछ आवश्यक सिस्टम सुविधाएं डेटाबेस का उपयोग कर सकती हैं। उदाहरण के लिए लिनक्स पीएएम को डेटाबेस में जानकारी का उपयोग करने के लिए कॉन्फ़िगर किया जा सकता है (लेकिन यह शायद ही कभी अभ्यास में किया जाता है)। इसके अलावा, कुछ मेल सर्वर अपने कुछ या अधिकांश डेटा डेटाबेस (जैसे एक्जिम ) में संग्रहीत कर सकते हैं ।
डेटाबेस की तुलना में फाइलें थोड़ी कम होती हैं, इसलिए उन्हें लागू करना आसान हो सकता है (चूंकि लिनक्स कर्नेल में फाइल सिस्टम और वीएफएस परत) और उपयोग करने में तेज। विशेष रूप से, डेटाबेस पर मौजूद फ़ाइलों की तुलना में फ़ाइलों का संचालन बहुत अधिक प्रतिबंधित है। वास्तव में, आप कुछ बहुत ही प्रतिबंधित डेटाबेस के रूप में फाइल या फाइल सिस्टम देख सकते थे!
आप किसी भी फाइल के बिना एक ऑपरेटिंग सिस्टम डिजाइन कर सकते हैं , लेकिन कुछ अन्य ऑर्थोगोनल दृढ़ता मशीनरी के साथ (जैसे कि हर प्रक्रिया लगातार हो रही है, तो आप भंडारण के बारे में बहुत स्पष्ट रूप से परवाह नहीं करते हैं , क्योंकि ओएस लगातार संसाधनों का प्रबंधन कर रहा है)। यह कई अकादमिक ऑपरेटिंग सिस्टम (1) में किया गया है (और 1980 के दशक की स्मालटाक और लिस्प मशीनों में भी, किसी तरह आईबीएम सिस्टम i , उर्फ AS / 400 में , और कुछ टॉय प्रोजेक्ट में ओसदेव से जुड़ा हुआ है )), लेकिन जब आप अपने ओएस को इस तरह से डिजाइन करते हैं तो आप कई मौजूदा उपकरणों पर लाभ नहीं उठा सकते हैं (जैसे कि आपको अपने कंपाइलर और अपने यूजर इंटरफेस को खरोंच से बनाने की आवश्यकता है, और यह बहुत काम का है)।
ध्यान दें कि फ़ाइल सिस्टम सिर्फ एप्लिकेशन सर्वर हैं (जैसे हर्ड ट्रांसलेटर्स यूजरलैंड में चल रहे हैं) , माइक्रो कर्नेल ऑपरेटिंग सिस्टम को कर्नेल परतों द्वारा प्रदान की गई फ़ाइलों की आवश्यकता नहीं हो सकती है । पर भी देखो unikernel आज के में दृष्टिकोण MirageOS
लिनक्स (और शायद विंडोज, जिसे वीएमएस और यूनिक्स से इसकी अधिकांश प्रेरणा मिली ) को काम करने के लिए फाइलों की आवश्यकता है। कम से कम, init प्रोग्राम (कर्नेल द्वारा शुरू किया पहला कार्यक्रम) एक निष्पादन एक फ़ाइल में संग्रहीत किया जाना चाहिए (अक्सर /sbin/init
, लेकिन यह किया जा सकता है systemd इन दिनों), और (लगभग) सभी अन्य कार्यक्रमों के साथ शुरू कर रहे हैं execve (2 ) syscall तो एक फ़ाइल में संग्रहीत किया जाना चाहिए। हालाँकि, FUSE आपको गैर-फ़ाइल चीज़ों को फ़ाइल-जैसे शब्दार्थ देने में सक्षम बनाता है।
यह भी देखें कि लिनक्स पर (और शायद विंडोज भी, जिसे मैं नहीं जानता और कभी इस्तेमाल नहीं किया गया) साइक्लाईट एक लाइब्रेरी है जो फाइलों में कुछ SQL डेटाबेस को प्रबंधित करता है और उसके लिए एक एपीआई प्रदान करता है। यह व्यापक रूप से जाना जाता है कि एंड्रॉइड (एक लिनक्स संस्करण) बहुत सीक्लाइट फ़ाइलों का उपयोग करता है (लेकिन इसमें अभी भी पॉसिक्स जैसी फ़ाइल सिस्टम है)।
एप्लिकेशन चेकपॉइंटिंग के बारे में भी पढ़ें (जो, कई वर्तमान ओएस पर, फ़ाइलों में प्रक्रिया स्थिति लिखने के लिए लागू किया गया है)। चरम पर पहुंच गया, उस दृष्टिकोण को मैन्युअल रूप से एप्लिकेशन फ़ाइलों को लिखने की आवश्यकता नहीं है (लेकिन केवल चेकपॉइंटिंग मशीनरी का उपयोग करके पूरी प्रक्रिया स्थिति को बनाए रखने के लिए)।
दरअसल, दिलचस्प सवाल यह है कि वर्तमान ऑपरेटिंग सिस्टम अभी भी फ़ाइलों का उपयोग क्यों करते हैं, और जवाब विरासत है, और आर्थिक और सांस्कृतिक कारण (दुख की बात है, अधिकांश प्रोग्रामिंग भाषाएं और पुस्तकालय आज भी फाइलें चाहते हैं)।
नोट 1: लगातार शैक्षिक OS में लिसाक और ग्रासहॉपर शामिल हैं , लेकिन ये शैक्षणिक परियोजनाएं निष्क्रिय लगती हैं। Http://tunes.org/ पर भी देखें ; यह निष्क्रिय है, लेकिन इस तरह के विषयों के बारे में बहुत सारे विचार विमर्श किया है।
नोट 2: फ़ाइल की धारणा व्यापक रूप से अधिक समय (देखो पर बदल गया है इस मेरी पहली प्रोग्रामिंग अनुभवों के बारे में जवाब): पहला MSDOS पर 1980 के दशक में आईबीएम पीसी (! कोई निर्देशिका), वीएमएस -ओं 1978 Vaxen - (दोनों अचल रिकॉर्ड था फ़ाइलें और अनुक्रमिक फ़ाइलें, एक आदिम संस्करण प्रणाली के साथ), 1970 के दशक के मेनफ्रेम ( OS / VS2 MVS के साथ IBM / 370 ) में फ़ाइलों और फ़ाइल सिस्टम की एक बहुत अलग धारणा थी (विशेष रूप से क्योंकि उनके समय में हार्ड डिस्क एक्सेस समय का अनुपात था) कोर मेमोरी एक्सेस का समय कुछ हज़ार था - इसलिए उस समय डिस्क आज की तुलना में अपेक्षाकृत तेज़ थी, भले ही आज के डिस्क बिल्कुल होंपिछली सदी की तुलना में, आज सीपीयू / डिस्क की गति का अनुपात लगभग एक मिलियन है; लेकिन हमारे पास अब एसएसडी हैं)। इसके अलावा, फ़ाइलें हैं कम (या नहीं) उपयोगी जब स्मृति लगातार है (के रूप में CAB500 चुंबकीय ड्रम, 1960; का उपयोग कर या भविष्य कंप्यूटर MRAM )