यूनिक्स क्या है।
डॉस तथा विंडो के जैसे ही यूनिक्स भी एक ऑपरेटिंग सिस्टम है, लेकिन यह उन दोनों से बिल्कुल अलग तथा कई गुना अधिक शक्तिशाली है। यूनिक्स का जन्म डॉस तथा विंडोज से कई दशक पहले हुआ था तथा डॉस और विंडोज के आविष्कार का श्रेय भी यूनिक्स को ही प्राप्त है।
यूनिक्स एक विशाल तथा व्यापक ऑपरेटिंग सिस्टम है और शक्ति के मामले में सभी ऑपरेटिंग सिस्टम से बहुत आगे है, इसमें वह सब कुछ है जो एक ऑपरेटिंग सिस्टम में होना चाहिए, और इसमें वह सब कुछ और भी है जो किसी ऑपरेटर सिस्टम में अब तक उपलब्ध नहीं है। अर्थात इसके कई ऐसे फीचर है जो अभी तक किसी भी ऑपरेटिंग सिस्टम में उपलब्ध नहीं है।
इसको समझने के लिए यूजर को कंप्यूटर विशेषज्ञ होने के बावजूद एक अलग प्रकार की प्रतिबद्धता आवश्यक है। यूनिक्स में कुछ ऐसी अवधारणाओं से परिचित कराया गया है जिससे Computing community पहले अपरिचित थी।
परंतु इसमे एक खामी भी है, यूनिक्स ऑपरेटिंग सिस्टम आपको यह नहीं बताता था कि आप कोई कार्य सही कर रहे हैं या गलत कर रहे हैं, तथा आपके द्वारा किए जा रहे कार्यों के परिणाम की चेतावनी भी नहीं देता। संभवतः इसका मूल कारण यही है कि इसका अभी भी एक बड़ी कंप्यूटिंग कम्युनिटी मैं साक्षात्कार नहीं हो पाया है।
यूनिक्स का इतिहास (History of UNIX)
यूनिक्स की शुरुआत 1969 में AT&T Bell Laboratories में हुई थी । यह तब की बात है जब AT&T ने अपनी टीम को Multics Project से हटा लिया तथा उनमें से कुछ लोगों ने Programming शोध को जारी रखने के लिए एक Computing environment के विकास पर कार्य करना शुरू किया Ken Thompson तथा Dennis Ritchie ने तब एक ऐसे छोटे मल्टीटास्किंग सिस्टम को डिजाइन किया तथा बनाया जो दो उपयोगकर्ता को सपोर्ट करता था। इस नए सिस्टम में एक बेहतरीन File system, Command interpreter तथा Utility का एक सेट था। उस टीम के एक सदस्य Brian Kerin जिनके दिमाग में मल्टिक्स था मजाक के अंदाज में इसका नाम Unics का प्रस्ताव दिया जिसका पूर्ण रूप “Uniplexed Information and Computing System” बताया, परन्तु सनं 1970 में ही Unics अतंतः UNIX बन गया।
यूनिक्स से पहले तक के सभी ऑपरेटिंग सिस्टम एक विशेष मशीन को दिमाग में रखकर डिजाइन किए जाते थे और इसी प्रकार कंप्यूटर भी एक विशेष ऑपरेटिंग सिस्टम के लिए ही बनाए जाते थे और उन्हें हमेशा असेंबलर में लिखा जाता था। जो हार्डवेयर को भली-भांति समझता था और एक्सेस कर सकता था तथा उसकी गति भी अच्छी होती थी। किंतु थॉमसन तथा रिच एक ऐसा सामान ऑपरेटिंग सिस्टम बनाना चाहते थे, जो विभिन्न प्रकार के हार्डवेयर पर चलने में सक्षम हो । इसके लिए High Level Language को उपयोग करने की आवश्यकता थी तथा यहीं पर थॉमसन तथा रिच ने एक ऐसा निर्णय लिया जिसके बाद व्यापक प्रभाव होने वाले थे तथा जो दुनिया को अंततः बदलने वाला था । उन लोगों ने यह तर्क दिया कि यदि सिस्टम Portability तथा Genetic Tools प्रदान करता है तो इससे कोई फर्क नहीं पड़ता कि वह थोड़ा धीमी गति से कार्य करें ।
सन् 1973 में मूलतः असेंबलर में लिखा गया यूनिक्स फिर से C Language में लिखा गया जिसे मूलतः Dennis Ritchie ने ही लिखा था। सी लैंग्वेज में इस ऑपरेटिंग सिस्टम को लिखने के कारण इसे maintain करना तथा अन्य हार्डवेयर प्लेटफार्म पर इसे ले जाना सरल हुआ, आज यूनिक्स का परफॉर्मेंस अत्यंत तेज है। वस्तुतः यूनिक्स पर चलने वाले सॉफ्टवेयर की गति अन्य ऑपरेटिंग सिस्टम तथा Windows NT इत्यादि पर चलने वाले सॉफ्टवेयर की गति से काफी तेज होती है।
यूनिक्स के फीचर्स (Features of UNIX)
यूनिक्स के फीचर्स की तो एक लंबी सूची उपलब्ध है इसमें लगभग सभी अच्छे फीचर्स हैं परंतु कुछ खराब भी है इसके कई फीचर्स अन्य ऑपरेटिंग सिस्टम विशेषकर Multics से लिए गए हैं। इसके मुख्य फीचर निम्न प्रकार हैं।
(1) मल्टी यूजर (Multi User)
एक ही सिस्टम पर एक से अधिक यूजर का कार्य करना अक्सर डॉस यूजर को भ्रमित कर देता है। क्योकि डॉस पूर्ण रूप से एक सिंगल यूजर ऑपरेटिंग सिस्टम है जहाँ मेमोरी सीपीयू तथा हार्ड डिस्क सभी एक अकेले यूजर को समर्पित होते है। परन्तु यूनिक्स में यह सभी संसाधन सभी यूजर के मध्य साझा होते हैं, चाहे वह मेमोरी हो, सीपीयू हो या हार्ड डिस्क हो, मल्टी यूजर प्रयोग की पूर्णता समाजवादी है जिसके पास सबके लिए समय है।
अवास्तविक प्रभाव बनाने के लिए कंप्यूटर समय की इकाई (unit of time) को कई खण्डो (segments ) में तोड़ता है, तथा प्रत्येक यूजर को एक खंड आवांटित (Allotted) करता है जिसके कारण किसी भी समय मशीन एक अकेले यूजर के लिए कार्य कर रहा होता है तथा जैसे ही आवंटित समय समाप्त होता है पिछला कार्य खाली जगह में रख दिया जाता है तथा अगले यूजर का कार्य शुरू कर दिया जाता है यह प्रक्रिया तब तक चलती रहती है जब तक घड़ी एक चक्र पूरा नहीं कर लेती उसके बाद पहले यूजर का कार्य फिर से दोबारा संभाल लिया जाता है इसको कर्नेल एक सेकंड में कई बार कर लेता है तथा सभी को इस चरण से अनजान रखकर खुश रखता है।
(2) मल्टी टास्किंग (Multi Tasking)
यूनिक्स का यह फीचर विंडो के फीचर से मिलता जुलता है विंडोज में आप एक साथ कई एप्लीकेशन को खोलकर उनके साथ कार्य कर सकते हैं उदाहरण के लिए आप माइक्रोसॉफ्ट वर्ड माइक्रोसॉफ्ट एक्सेल तथा माइक्रोसॉफ्ट एक्सेस के साथ एक समय में कार्य कर सकते हैं यह फीचर डॉस में उपलब्ध नहीं है डॉस में आपको नए कमांड को एग्जीक्यूट करवाने के लिए दिए गए कमांड के क्रियान्वयन के समाप्त होने तक प्रतीक्षा करना पड़ता है ।
यूनिक्स में single-user भी कई कार्यों को एक साथ रन कर सकता है, आप बैकग्राउंड तथा फोरग्राउंड कार्य को बदल सकते हैं उन्हें सस्पेंड कर सकते हैं तथा समाप्त भी कर सकते हैं ऐसा एक कार्य को समानयतः रन करके तथा शेष को बैकग्राउंड में रन कराकर कर किया जा सकता है ।
(3) पेटर्न मैचिंग (Pattern matching)
पेटर्न मैचिंग यूनिक्स का वह फीचर है जो इसके मूल यूजर के लिए एक आकर्षण है पेटर्न मैचिंग को समझने के लिए निम्न कमांड को देखें -
$ 1s chap*
chap1
chap2
chap3
उपरोक्त कमांड में एक विशेष करेक्टर है जिसका उपयोग सिस्टम के द्वारा यह दिखाने के लिए होता है कि यह एक्सप्रेशन कई फाइल के नाम के साथ मिल सकता है अगर आप अपनी फाइल के नाम का सावधानीपूर्वक चयन करें तो आप एक साधारण एक्सप्रेशन का उपयोग कर बहुत कुछ एक्सेस कर सकते हैं इसे Metacharacter कहा जाता है यह यूनिक्स सिस्टम के द्वारा उपयोग किया जाने वाला विशेष करेक्टर है। यूनिक्स में इस प्रकार के कई मेटाकैरेक्टर है। यूनिक्स फीचर्स उस पेटर्न मैचिंग स्कीम को विस्तारित करता है जो इस मेटाकैरेक्टर सेट से कई करैक्टर का उपयोग करती है । मैचिंग केवल फाइल के नाम तक ही सीमित नहीं है कई अत्यंत आधुनिक तथा उपयोगी टूल्स एक विशेष एक्सप्रेस का भी उपयोग करते हैं जिसे Regular expression कहा जाता है, जिसे इस सेट कैरेक्टरों के साथ फेम किया जाता है। जब आप एक अकेले एक्सप्रेशन का उपयोग इस प्रकार के कई पैटर्न को मिलाने के लिए करते हैं तब आप एक ही बार मे उन सभी के कार्य को पूरा कर सकते हैं ।
(4) टूल किट (Tool Kit )
यूनिक्स टूलों का एक संकलन है जिसकी सहायता से आप कई एप्लीकेशनों के साथ प्रोग्राम एक कार्य को पूरा करवा सकते हैं। यह एप्लीकेशन साधारण कार्य यथा फाइलो को कॉपी करना या मिटाना से लेकर उत्कृष्ट डाटाबेस ऑपरेशन तक को संपन्न करते हैं। जो कई टूलों को मिलाकर पूरा किया जा सकता है। फिल्टरस की शक्ति यूनिक्स में अद्भुत है तथा उन्हें मिलाकर लगभग असम्भव कार्यों को आसानी से किया जा सकता है। दुर्भाग्यवश इस शक्ति को पूरे हद तक अधिकतर यूज़र के द्वारा बढ़ावा नहीं दिया जाता है तथा ऐसे प्रोग्राम और आपको प्रायाः मिल जाते हैं जो सी प्रोग्राम के वैसे ही टूल विकसित स्वयं कर लेते हैं जो यूनिक्स के टूल किट में पहले से उपलब्ध है।
यह भी जानें - कंप्यूटर की मेमोरी को कितने भागो में विभाजित कर सकते है।
(5) प्रोग्रामिंग सुविधा
यूनिक्स उच्च स्तर का प्रोग्राम करने योग्य ऑपरेटिंग सिस्टम है बल्कि इसे प्रोग्रामों के लिए ही डिजाइन किया गया था । यूनिक्स का पूर्ण तरह से लाभ उठाने के लिए यह आवश्यक है कि इसका उपयोगकर्ता प्रोग्रामर हो, वह उपयोगकर्ता जो प्रोग्रामर नहीं है, इस बदलाव को निस्संदेह पूर्णतः उत्सुक करने वाला पायेगा । यूनिक्स शेल प्रोग्रामिंग भाषा में कंट्रोल स्ट्रक्चर, लूप, वेरिएबल की तरह सभी आवश्यक अवयव मौजूद हैं, जो इसे एक प्रोग्रामिंग भाषा के रूप में स्थापित करते हैं यद्यपि यह भाषा सीखना थोड़ा कठिन है, परंतु इसकी शक्ति व्यापक है।
(6) सिस्टम कॉल्स् तथा लाइब्रेरीज (System calls and libraries)
यूनिक्स सी लैंग्वेज में लिखा गया है यद्यपि कई सी कमांड है जो विशेष फंक्शन को हैंडल करते हैं वह सिस्टम कॉल्स् नामांक कुछ फंक्शन का उपयोग करते हैं। यह कॉल करने से बने होते हैं तथा सभी लाइब्रेरी फंक्शन तथा यूटिलिटीज उनका उपयोग करके ही लिखे जाते हैं। विश्व में यूनिक्स के कई ब्रांड उपलब्ध है तथा सभी में एक बात समान है वे सभी एक ही सिस्टम कॉल्स का उपयोग करते हैं। यदि कोई ऑपरेटिंग सिस्टम अन्य सिस्टम कॉल का उपयोग करता है तो वह यूनिक्स नहीं होगा ।
सिस्टम कॉल के माध्यम से interaction system के साथ कम्युनिकेशन के एक दक्ष साधन को व्यक्त करता है। कोई उपयोगकर्ता जो फाइल में लिखने की इच्छा रखता है write() सिस्टम कॉल का उपयोग बगैर इसके विवरण को जाने हुए करता है, यह सिस्टम कॉल्स इसी कोड का उपयोग कर डिवाइस तथा फाइल को एक्सेस करते हैं। open() सिस्टम कॉल का उपयोग डिवाइस तथा साधारण फाइल दोनों को खोलने में होता है।
यही सिस्टम कॉलम कॉल्स प्रत्येक सी प्रोग्रामर को भी उपलब्ध है जो अपना टूल विकसित करना चाहते हैं। जब यूनिक्स का कोई ब्रांड किसी अन्य मशीन पर ले जाया जाता है तो उसके लिए सिस्टम कॉल्स के इम्लीमेंटेशन भाग को ही दोबारा प्रोग्राम करने की आवश्यकता होती है इसके सिस्टम कॉल में छेड़छाड़ की आवश्यकता नहीं होती।
(7) विंडोइंग सिस्टम (Windowing System)
वर्तमान में यूनिक्स पूर्णतः व्यापारिक उत्पाद बन चुका है जिसका उपयोग विभिन्न बैकग्राउंड तथा मासिक कुशलता के अलग-अलग उपयोगकर्ता के द्वारा होता है । आरंभ में इसका एक अत्यंत कमजोर यूजर इंटरफेस था यह केवल डॉस की तरह कमांड पर चलता था माइक्रोसॉफ्ट विंडोज के साथ प्रतिस्पर्धा होने पर यह स्पष्ट था कि देर सवेर इसे अपने ग्राफिकल यूजर इंटरफेस को सम्मिलित करना ही था । एक्स विंडो सिस्टम एक ऐसा एनवायरमेंट उपलब्ध कराता है जिसकी सहायता से आप कई विंडोज की सेवा ले सकते हैं यहां पर आप प्रत्येक विंडो में अलग-अलग एप्लीकेशन चला सकते हैं। इसमें कमांड लाइन के बदले मेनू ऑइकन बटन तथा डायलॉग बॉक्स के रूप में ऑब्जेक्ट होते हैं । इससे डॉस के विपरीत तथा विंडो की तरह ही इसके बुनियादी कमांडो को याद रखने की आवश्यकता नहीं होती, केवल आपको ऑब्जेक्ट को तथा कार्य कार्य करने की आवश्यकता पड़ती है। आप ऑब्जेक्ट के रूप में फाइल डायरेक्टरी चित्र तथा सूची रख सकते हैं।
एक्स विंडो नेटवर्क एप्लीकेशन को सपोर्ट करता है ताकि वह एप्लीकेशन एक मशीन पर रन हो तथा उसका प्रदर्शन किसी अन्य मशीन पर हो सके। इस प्रकार एप्लीकेशन हार्डवेयर की एक बड़ी संख्या पर पोर्टेबल होने चाहिए जो यूनिक्स को सपोर्ट करता है। कई डाटाबेस फ्रंट एंड सॉफ्टवेयर जैसे की ऑरेकल डेवलपर 2000 फॉर्म तथा रिपोर्ट को रन करने के लिए एक्स विंडो सिस्टम का ही उपयोग करते हैं।
डॉक्यूमेंटेशन (Documentation)
यूनिक्स डॉक्यूमेंटेशन पहले की तरह अब मुश्किल नहीं है यधपि कभी-कभी यह एक पैटर्न के अनुसरण नहीं करता है, परंतु अधिकतर समय इसका व्यवहार अत्यंत स्पष्ट होता है, क्योंकि यूनिक्स को प्रोग्रामरों के द्वारा प्रोग्रामरों के लिए ही लिखा गया था। अक्सर इसका मैनुअल लगभग पूरे सिस्टम का पूरा ज्ञान देने के लिए उपयुक्त होता है, परंतु यह संभव है कि उपयोगकर्ता इस दुविधा में हो की कोई विशेष फीचर किसी कमांड के साथ उपलब्ध नहीं है, क्योंकि उस खंड में विशिष्ट रूप से इस पर चर्चा नहीं की गई है। मैनुअल बहुत ही बढ़िया पाठ्य सामग्री तब होती है जब आपने सिस्टम पर महारत हासिल कर लिया हो । आज यूनिक्स का कोई ऐसा फीचर नहीं है जिस पर एक अलग से पुस्तक उपलब्ध हो इस विषय पर व्यापक टैक्स तथा इंटरनेट पर उपलब्ध प्रशिक्षित कोर्स, सेमिनार डिस्कशन समूह के कारण आज यूनिक्स को नियंत्रित करना एक दशक से पहले की अपेक्षा अत्यंत आसान हो गया है।
यूनिक्स का आर्किटेक्चर (Architecture of UNIX Operating System)
यूनिक्स के आर्किटेक्चर कि यदि हम बात करें तो सबसे पहला नाम कर्नेल का आता है जो इस आर्किटेक्चर का आधार है कर्नेल यूनिक्स का हृदय कहा जाता है यह प्रोग्राम का एक संकलन है जो हार्डवेयर के साथ सीधे-सीधे इंटरेक्ट करता है ऑपरेटिंग सिस्टम में केवल एक कर्नल होता है यह यूनिक्स सिस्टम का वह भाग होता है जो सिस्टम के बूट होने पर मेमोरी में लोड होता है कर्नेल को यदि इसके कार्यों के आधार पर हम पूरा ऑपरेटिंग सिस्टम कह दे तो गलत नहीं होगा । इसके कार्यों में सिस्टम संसाधनों को व्यवस्थित करना यूजर तथा प्रोसेस के मध्य समय का बंटवारा करना प्रोसेस की प्राथमिकताओं को तय करना तथा और भी कई महत्वपूर्ण कार्य हैं। क्योंकि कर्नेल यूजर प्रोग्राम में अपने आपको अलग रखता है तथा यह प्रोग्राम उन हार्डवेयर से स्वतंत्र होते हैं जिनका वे उपभोग करते हैं इसलिए इन्हंर अन्य सिस्टम पर ले जाना आसान है प्रोग्राम को इस प्रकार उस डिवाइसों के बारे में भी जानना आवश्यक नहीं है जिनका वे उपयोग करते हैं ।
कर्नल के बाद यूनिक्स आर्किटेक्चर के सबसे महत्वपूर्ण भाग को शेल कहा जाता है सैल यूनिक्स की सोई हुई सुंदरता है यह वास्तविक रूप में यूजर तथा कर्नल के मध्य का वह इंटरफेस है जो उपयोगकर्ता से कर्नल फंक्शन की जानकारी को सुरक्षित रखता है। शैल वह कारक होता है जो > तथा 1 संकेतों के साथ रीडायरेक्शन के फिचरों का ख्याल रखता है इसकी अपनी प्रोग्राम क्षमता होती है इसके आर्किटेक्चर को आप चित्र में समझ सकते हैं-
यूनिक्स की मुख्य विशेषताएं
- यह एक बहु-उपयोगकर्ता प्रणाली है जहाँ समान संसाधनों को विभिन्न उपयोगकर्ताओं द्वारा साझा किया जा सकता है।
- यह मल्टी-टास्किंग प्रदान करता है, जिसमें प्रत्येक उपयोगकर्ता एक ही समय में कई प्रक्रियाओं को निष्पादित कर सकता है।
- यह पहला ऑपरेटिंग सिस्टम था जो उच्च-स्तरीय भाषा (सी लैंग्वेज) में लिखा गया था। इससे न्यूनतम अनुकूलन के साथ अन्य मशीनों को पोर्ट करना आसान हो गया।
- यह एक पदानुक्रमित फ़ाइल संरचना (Hierarchical file structure) प्रदान करता है जो डेटा के आसान उपयोग और रखरखाव की अनुमति देता है।
- यूनिक्स में अंतर्निहित नेटवर्किंग (Built-in networking) कार्य हैं ताकि विभिन्न उपयोगकर्ता आसानी से जानकारी का आदान-प्रदान कर सकें।
- यूनिक्स कार्यक्षमता को एक मानक प्रोग्रामिंग इंटरफेस पर निर्मित उपयोगकर्ता कार्यक्रमों के माध्यम से बढ़ाया जा सकता है।
लाभ
यूनिक्स एक न्यूनतम मात्रा में मेमोरी का उपयोग करते हुए सही मल्टी-यूजर, मल्टीटास्किंग, संरक्षित मेमोरी ऑपरेशन प्रदान करता है। यूनिक्स अपने खाता सत्यापन और प्रमाणीकरण के माध्यम से ठोस उपयोगकर्ता सुरक्षा भी प्रदान करता है। यूनिक्स में, सब कुछ एक फाइल है, जिसमें टर्मिनल और सभी डिवाइस शामिल हैं, जो इनपुट / आउटपुट ऑपरेशन को सरल करता है। यूनिक्स बहुत पोर्टेबल है, जिसका अर्थ है कि यह कई अलग-अलग हार्डवेयर प्लेटफार्मों पर चल सकता है, जिससे उपयोगकर्ताओं के लिए उपयोग किए जाने वाले हार्डवेयर को स्थापित करना आसान हो जाता है।
नुकसान
यूनिक्स सभी उपयोगकर्ता के अनुकूल ऑपरेटिंग सिस्टम नहीं है। इसका मूल इंटरफ़ेस कमांड लाइन है, और यहां तक कि अनुभवी उपयोगकर्ता इस इंटरफ़ेस का उपयोग करके गलतियां कर सकते हैं - और यूनिक्स में गलतियां विनाशकारी हो सकती हैं। कुछ कमांड, साथ ही साथ उनके विकल्प, गुप्त हो सकते हैं, और भले ही यूनिक्स प्लेटफार्मों के लिए कई उपयोगिताओं और अनुप्रयोग हैं - जो कि एक प्रकार का लाभ है - यह यूनिक्स के लिए किसी नए व्यक्ति के लिए बहुत अधिक हो सकता है । इसके अलावा, इन उपकरणों में से कई पर प्रलेखन मुश्किल है, और यह भी अक्सर अधूरा है।
भले ही आजकल लोग यह कहने लगे हो की यूनिक्स समाप्त हो गया है परंतु आज भी आप नेट तथा वेब पर जो देखते हैं उसकी शुरुआत का श्रेय यूनिक्स कमेटी के द्वारा किए गए कठिन तथा प्रेरक कार्य को ही जाता है। यूनिक्स को जाने बगैर आप यह नहीं जान पाएंगे कि, किस प्रकार Domain name IP Address में बदलता है। यूनिक्स को बगैर जाने आप यह भी नहीं जान पाएंगे कि किस प्रकार ईमेल संदेश भेजे जाते हैं तथा वे इंटरप्रेट होते हैं। सार्राशतः इंटरनेट यूनिक्स है तथा इंटरनेट के कार्य को समझने और लोकल इंट्रानेट के लिए इस प्रोधौगिकी को उपयोग में लाने के लिए यूनिक्स का जानना अत्यंत आवश्यक है।
No comments