लिनक्स Linux आज के समय में अधिकतम प्रयोग यूज किया जाने वाला Operating System है, यह Unix Family का Operating system है। इसलिए कई जगह लिनक्स (Linux) की जगह Unix शब्द का प्रयोग किया जाता है। लिनक्स (Linux) को समझने से पहले Unix को समझना आवश्यक है।
यूनिक्स (Unix) क्या होता हैं?
यूनिक्स (Unix) एक मल्टीयूजर (Multiuser), मल्टीटास्किंग (Multitasking) Operating System है। वर्ष 1964 में जनरल इलेक्ट्रिक (General Electric – GE), एटी एण्ड टी (AT & T) बेल प्रयोगशाला और कुछ शोधकर्ताओं ने संयुक्त रूप से एक Operating System का विकास किया। इसका नाम मल्टिक्स (MULTICS: Multiplexed Information and Computing Service) रखा गया। बाद में वर्ष 1969 में केन थॉम्पसन (Ken Thompson) और डेनिस रिची (Dennis Ritchie) ने एटी एण्ड टी (AT & T) प्रयोगशाला में शोधकर्ताओं के साथ मिलकर इससे यूनिक्स (Unix) Operating System का विकास किया, जिसमें मल्टिक्स के बहुत से गुणों को सम्मिलित किया गया था।
इसमें एक से अधिक व्यक्ति एक समय में टर्मिनलों द्वारा जुड़कर एक कम्प्यूटर पर कार्य कर सकते हैं। जिससे वह सभी यूजर डाटा, प्रोग्राम्स एवं कम्प्यूटर के अन्य स्त्रोतों (Resource) को आपस में बाँट (Share) सकें। अत: यूनिक्स एक ऐसा Multiuser Operating System है, जो एक से अधिक लोगों को फाइलें, डाटा और प्रोग्राम आदि को बाँटने (Sharing) की आज्ञा करता है। इसमें एक मुख्य कम्प्यूटर या सर्वर (Server) होता है, जिससे कई टर्मिनल (Terminal) जुड़े रहते हैं। Unix में कई वर्षों तक विकास होता रहा था। यह निजी उत्पाद से परिवर्तित होकर सार्वजनिक बन गया। इसी क्रम में Microsoft ने Unix का एक पीसी संस्करण (PC Version) भी निकाला, जिसका नाम उन्होंने जेनिक्स (Zenix ) रखा।
लिनक्स (Linux) क्या है?
Linux वास्तव में Unix का ही दूसरा नाम है, जो स्वतंत्र रूप से विकसित किया गया है। इसकी शुरुआत लीनस टॉरवॉल्ड्स (Linus Torvalds) नाम विद्यार्थी ने हेलसिंकी विश्वविद्यालय में एक Project के रूप में किया था। वह शुरुआत में Unix के एक लघु संस्करण मिनिक्स (Minix) का उपयोग विद्यार्थियों को सिखाने के लिए करता था। इस Operating System की विशेषताओं से प्रभावित होकर, उन्होंने इसका एक अलग संस्करण निकालने और उसे सबको फ्री वितरित (Free Distribute) करने का निश्चय किया। इसी से Linux का विकास हुआ। इसमें Unix ही नहीं अन्य सभी Operating System की अधिकांश विशेषताएँ सम्मिलित हैं। उसने इसका पहला संस्करण 0.11, वर्ष 1991 में रिलीज किया था। इस संस्करण को इंटरनेट के माध्यम से लोगों में बाँटा गया था। आजकल अनेक कम्पनियाँ Linux को विभिन्न नामों से वितरित कर रही है। इनमें रैड हैट (Red Hat) सबसे अधिक प्रचलित और लोकप्रिय है। इसके विकास में दुनिया के सभी क्षेत्रों के लोगों ने योगदान दिया है।
Linux में Internet से सम्बन्धित प्राय: सभी सुविधाएँ उपलब्ध हैं। Linux Operating System का पूरा Source Code Internet पर उपलब्ध है। Linux Operating System में चलने वाले प्राय: सभी प्रकार के सॉफ्टवेयर भी आजकल सरलता से उपलब्ध हैं;
जैसे – वर्ड प्रोसेसर, स्प्रैडशीट, प्रेजेण्टेशन, डेस्कटॉप पब्लिशिंग, इमेज प्रोसेसिंग, ड्रॉइंग आदि।
Linux की विशेषताएँ (Features of Linux)
1. Multiuser – Linux एक मल्टीयूजर Operating System है। Linux में एक ही समय में एक से अधिक उपयोगकर्ता स्वतंत्र रूप से कार्य कर सकते हैं। और अपने-अपने प्रोग्राम चला सकते हैं।
2. Multitasking – Linux Operating System में एक समय में एक से अधिक कार्य किए जा सकते हैं जैसे – प्रिन्टर को निर्देश देने के साथ-साथ हम अन्य प्रोग्राम भी चला सकते हैं।
3. Portability – Linux का अधिकांश भाग C Language में एवं अन्य भाग असेम्बली भाषा में लिखा गया है। अत: केवल थोड़े परिवर्तन से ही इसे अन्य कम्प्यूटर पर चलाया (Run) जा सकता है।
4. Multi Programming – Linux एक मल्टी प्रोग्रामिंग Operating system भी है। यह विभिन्न उपयोगकर्ताओं के कई प्रोग्रामों को एक साथ संचालित कर सकता है। Linux में Multi programming सुविधा टाइम शेयरिंग (Time Sharing ) द्वारा उपलब्ध कराई गई है।
5. Security – यह Operating system हमें सिस्टम एवं फाइलों की सुरक्षा प्रदान करता है। इसमें प्रत्येक यूजर का Username व Password देने पर ही यूजर कम्प्यूटर पर Login हो सकता है। इस Operating System पर यूजर अपनी फाइल की मान्यता (Permission) निर्धारित कर सकता है। यह मान्यता Read – Write अथवा निष्पादित की होती है। अत: इसमें कोई भी अन्य यूजर किसी फाइल का उपयोग तभी कर सकता है, जब कि उसको फाइल का प्रयोग करने की आज्ञा हो।
6. Communication – Linux अपने साथ वाले Users से संचार करने की सुविधा भी प्रदान करता है। इसमें जुड़े यूजर एक दूसरे को Mail, Data एवं प्रोग्राम भेज सकता है।
Linux में फाइलों का नामकरण (File Names In Linux) -
1. Linux में फाइलों का नाम 14 Character तक दिया जा सकता है।
2. फाइल के नाम में किसी भी Character का प्रयोग किया जा सकता है।
3. सामान्यत: small letter में इसके Command होते हैं।
4. Linux Case Sensitive होता है। अर्थात्
5. Linux में Lower Case एवं Upper Case अक्षरों का अर्थ अलग-अलग होता है।
जैसे – BOBY, Boby एवं boby यूनिक्स में तीन अलग-अलग फाइलों के नाम एक ही डायरेक्टरी में हो सकते हैं।
फिल्टर्स (Filters) – Linux में प्रोग्रामों की एक बड़ी श्रंखला उपलब्ध रहती है, जो हमें कुछ Input या Output प्राप्त करने का काम करती है। जैसे – grep, tail, sort आदि प्रोग्राम फिल्टर्स कहलाते है।
लिनक्स (Linux) ऑपरेटिंग सिस्टम के अवयव (Components of Linux Operating System)
Linux Operating System दो भागों से मिलकर बना है-
1. कर्नल (Kernel)
2. शैल (Shell)
1. कर्नल (Kernel) – यह एक ऐसा प्रोग्राम होता है, जो कम्प्यूटर के समस्त स्त्रोतों (Resource) पर नियंत्रण का कार्य करता है। यह उन सभी यूजर्स का प्रबंधन करता है, जो इस सिस्टम (Linux System) से जुड़े होते हैं। यह एक फाइल सिस्टम भी उपलब्ध कराता है, जो लम्बे समय तक सूचना जैसे Data, Program एवं प्रलेखन (Document) संग्रहण के प्रबंधन का कार्य करता है अर्थात् Kernel Operating System का मस्तिष्क (Brain) होता है।
2. शैल (Shell) – शैल एक ऐसा प्रोग्राम होता है, जिससे यूजर सीधे (Direct) सम्पर्क (Connect) में आता है। शैल, यूजर द्वारा दिए कमाण्ड को कर्नल तक पहुंचाता है एवं कर्नल उस कार्य को संपादित करता है। शैल एक कमाण्ड इंटरप्रिटर का कार्य करता है। Linux में कई प्रकार के शैल (Shell) होते हैं। जैसे – Bourne shell, C Shell, Kom Shell आदि।
a) बोर्न शैल (Bourne Shell) – इसे Steve Bourne ने bell लैब में develop किया था, इसीलिए इसे Bourne shell कहते हैं। इसे “ sh” के नाम से जाना जाता है। यह Unix एवं Linux दोनों तरह के Operating system में प्रयोग की जाती है। Unix के लिए बनाई गई शैलों में यह पहली शैल है।
b) ‘C’ शैल (C Shell) - इस Shell में user script लिख सकते हैं। Script का Syntax कम्प्यूटर प्रोग्रामिंग भाषा ‘C’ से मिलता-जुलता होने के कारा इसे ‘C’ शैल कहते हैं।। इसे “”csh” के नाम से जाना जाता है।
c) TC शैल (TC Shell) – यह C शैल का ही expansion है। इसे “”tesh” के नाम से जाना जाता है।
d) कोर्न शैल (Korne Shell) – इसे Bell lab में David Korn द्वारा develop करने के कारण Korne shell कहते हैं। यह Bourne, C, एवं TC shell तीनों के features को एक ही पैकेज में उपलब्ध कराती है। इसे “”ksh” के नाम से जाना जाता है।
e) बोर्न-अगेन शैल (Bourne-Again Shell) – यह Bourne shell का ही updated version है, यह C, TC एवं korne shell के features प्रदान करती है।
Linux फाइल संरचना (Linux File Structure)-
Linux में विभिन्न उद्देश्यों (जैसे – Command, Data type, Documentation आदि) के अनुसार फाइलों को ग्रुप में व्यवस्थित किया जाता है। Linux का फाइल संरचना MS Dos के फाइल सिस्टम से मिलता-जुलता है। इसमें भी कम्प्यूटर पर Store की गई समस्त सूचनाओं को फाइलों में व्यवस्थित करके रखा जाता है। फाइलों को डायरेक्ट्रियों में Hierarchy के अनुसार व्यवस्थित किया जाता है। किसी डायरेक्ट्री में फाइलें तथा अन्य डायरेक्ट्रियाँ हो सकती हैं, जिन्हें उप-डायरेक्ट्री (Sub directory) कहा जाता है। इस प्रकार एक directory के अन्दर उसकी उप-डायरेक्ट्रियाँ स्टो करते हुए किसी भी उप-डायरेक्ट्री तक जा सकते हैं।
सबसे ऊपर की Directory को रूट डायरेक्ट्री (Root Directory) कहा जाता है। इसका कोई नाम नहीं होता, इसे एक स्लैश (/) से व्यक्त किया जाता है। अन्य सभी डायरेक्ट्रियों और फाइलों के नाम रखे जाते हैं।
Linux फाइल सिस्टम की प्रमुख डायरेक्ट्ररी निम्न हैं-
Note – Linux में किसी फाइल का पूरा सन्दर्भ उसके पाथ (Path) के साथ दिया जाता है। रूट डायरेक्ट्री से किसी फाइल तक पहुंचने में जिन-जिन डायरेक्ट्रियों से होकर जाना पड़ता है, उस फाइल का पाथ उन सबकी सूची होती है, जिन्हें स्लैश से अलग किया जाता है।
1. रूट डायरेक्ट्री (Root Directory) – Root directory से किसी एक फाइल के अतिरिक्त फाइल तक पहुंचने में जिन-जिन डायरेक्ट्रियों से होकर जाना पड़ता है, उन सबकी सूची को उस फाइल का पाथ (Path) कहते हैं। Linux के आदेशों में पाथ को कई बार देने की आवश्यकता होती है। यह रूट यूजर की होम डायरेक्टरी होती है।
2. उप डायरेक्ट्री् (Sub-directory) – Root directory को कई उप-डायरेक्ट्रियों में अलग-अलग प्रकार की विशेष फाइलें होती हैं। इनका संक्षिप्त विवरण निम्नलिखित है।
3. /Bin directory – इस directory में Linux Operating system में उपलब्ध आदेशों या यूटिलिटीज को Store किया जाता है; जैसे – CP, Cat, Pwd, Is, Sort, date, Ch mod आदि। ये सभी आदेश फाइलें या यूटिलिटीज बाइनरी (Binary) फार्मेट में होते हैं, इसलिए इनको bin directory में रखा जाता है।
4. /dev directory – इस डायरेक्ट्ररी से सिस्टम के सभी उपकरणों या डिवाइसों संबंधी फाइलों को रखा जाता है। इन उपकरणों में टर्मिनल (TTY), हार्डडिस्क (HD), रैम (RAM) आदि शामिल होते हैं। उपयोगकर्ता डिवाइस फाइलों के द्वारा इन डिवाइसों का सीधे उपयोग कर सकता है। इसमें बूट के दौरान प्रयोग होने वाली कमाण्ड आती है, जो normal user के काम आती है।
5. /etc directory – इस directory में सिस्टम के कॉन्फिगरेशन (Configuration) आदि से संबंधित फाइलों को Store किया जाता है। जैसे – पासवर्ड फाइल। ये फाइलें स्टिम को सुचारु रूप से चलाने के लिए आवश्यक होती है।
6. /lib directory – इस directory में ऐसे छोटे-छोटे प्रोग्राम को रखा जाता है, जिनकी आवश्यकता कम्पाइलर को होती है। इसे लाइब्रेरी कहा जाता है।
7. /home directory – इस directory में प्राय: सभी उपयोगकर्ताओं की होम या प्रमुख डायरेक्ट्रियों को रखा जाता है। इसमें यूजरों की होम डायरेक्टरी के साथ-साथ frp, HTTP, samba, goorge आदि भी होती है।
8. /boot directory – इस directory में Linux की कर्नल (Kernel) तथा बूट लोडर कॉन्फिगरेशन फाइलें होती हैं, जिनकी आवश्यकता सिस्टम को बूट करते समय होती है।
9. /usr directory – इस directory में Linux Operating system की उन फाइलों को रखा जाता है, जो बूट करते समय आवश्यक नहीं होती है। इसमें भी यूटिलिटीज को रखा जाता है।
10. /var directory – इस directory में ऐसी सूचनाओं को रखा जाता है, जो विभिन्न यूटिलिटीज के लिए विशेष रूप से आवश्यक होती है।
11. /Sbin directory – यह bin के समान ही है पर कमाण्ड को normal user की बजाय Linux के द्वारा run किया जाता है।
12. proc – यह फाइल सिस्टम डिस्क पर नहीं होता, यह एक virtual file system है।
13. include – ‘C’ language की header files आती है।
14. mnt – सिस्टम एडमिनिस्ट्रेटर द्वारा बनाए ए माउन्ट प्वाइन्टस्
15. man – Manual page
16. info – Inf. Document
17. local – Installed software
18. doc – documentation
19. tmp – Temporary files
Linux की मुख्य कमियाँ (Drawbacks of Main Linux) -
1. Linux की प्रमुख कमी यह है कि इस पर कार्य करना बहुत कठिन है।
2. Linux में सभी आदेशों को उनके प्रारूप (syntax) सहित याद रखना होता है।
3. Linux में स्थायित्व (Stability) की कमी होती है।
4. Linux में कोई भी Software Install करना या उसे हटाना कठिन होता है।
5. Linux में नया Hardware जोड़ना अत्यंत कठिन होता है, जबकि विण्डोज के साथ ऐसा नहीं है।
6. विण्डोज में Hardware के अधिकांश driver, Hardware निर्माता द्वारा ही तैयार किया जाता है।
7. Linux के लिए उपलब्ध विभिन्न सॉफ्टवेयरों की सूचना सामान्य उपयोगकर्ता को न होने के कारण अभी इसका प्रयोग सीमित है।
8. नए उपयोगकर्ता के लिए Command line सीखना कठिन है, क्योंकि Pointing या Clicking के स्थान उपयोगकर्ता को आदेश (Command) याद रखना होता है।
9. Linux Case Sensitive है अर्थात् इसमें अंग्रेजी वर्णमाला के छोटे और बड़े अक्षरों को अलग-अलग माना जाता है, इसलिए यदि गलती से किसी आदेश में छोटे अक्षर के स्थान कैपिटल अक्षर का प्रयोग कर लिया जाता है, तो आदेश गलत हो जाता है।
Linux में कार्य प्रारम्भ करना (To Start Working in Linux) -
Linux एक बहुउपयोगकर्ता (multi-user) Operating system है, इसलिए उसमें कार्य का प्रारम्भ लॉगइन (login) करके किया जाता है। जब कम्प्यूटर को ऑन किया जाता है, तो Linux प्रारम्भ हो जाता है औ स्क्रीन पर एक Dialog box में निम्नलिखित Prompt प्रदर्शित होता है।
Login इस Prompt के सम्मुख यूजर लॉगइन नेम (Login Name) या यूजरनेम (Username) टाइप करते हैं और Enter दबाते हैं। इसके बाद यूजर से पासवर्ड टाइप कराने के लिए Password Prompt दिया जाता है।
Password इसके सम्मुख यूजर अपना पासवर्ड टाइप करके Enter दबाते हैं। यूजर द्वारा टाइप किया हुआ पासवर्ड दिखाया नहीं जाता, उसके स्थान पर asterisk (*) दिखाई देते हैं, जिससे अन्य कोई उस पासवर्ड को देख न ले। Linux सभी username और पासवर्डों को अपनी फाइलों में लिखकर सुरक्षित रखता है। जब यूजर अपना यूजरनेम और पासवर्ड Enter करते हैं, तो वह अपनी फाइलों की जाँच करता है।
यदि यूजरनेम और पासवर्ड दोनों में से एक भी गलत या अशुद्ध होता है, तो यूजर को एक बार फिर लॉगइन (login) करने का अवसर दिया जाता है। यदि दोनों सही होते हैं, तो यूजर Linux पर आगे कार्य क सकते हैं। यह व्यवस्था अनधिकृत उपयोगकर्ताओं (Unauthorised Users) को कार्य करने से रोकने के लिए बनाई गई है। जब सही यूजरनेम और पासवर्ड Enter किया जाता है, तो एक डॉलर चिह्न ($) दिखाई देता है, जो शैल (shell) का Prompt होता है। यूजर इसके सामने ही Linux के आदेश टाइप कर सकते हैं।
लॉगआउट करना (Logout ) -
जब कार्य समाप्त हो जाता है और आप Linux से बाहर आना चाहते हैं, तो सिस्टम से लॉगआउट करना होता है। ऐसा करने के लिए कमाण्ड Prompt (shell prompt) $ पर निम्नलिखित आदेश टाइप किया जाता है।
$ Logout
अथवा
$ Exit
यह आदेश देकर Enter दबाने पर Linux से बाहर आ जाते हैं और स्क्रीन पर पुन: Login prompt दिखाई देता है, जिससे पता चलता है कि इस समय कोई उपयोगकर्ता लॉगइन किया हुआ नहीं है।
फाइलों की सुरक्षा के लिए कभी भी बिना लॉगआउट किए टर्मिनल छोड़कर नहीं जाना चाहिए।
Linux में फाइलों के प्रकार (Types of Files in Linux)-
Linux में हर प्रकार की सूचना का फाइल माना जाता है और उसे उसी रूप में प्रयोग किया जाता है। फाइलों को सामान्य रूप से तीन श्रेणियों में वर्गीकृत किया जाता है, जो निम्नलिखित है-
1. साधारण फाइलें (Ordinary Files) – ये वे फाइलें होती हैं, जो उपयोगकर्ता द्वारा बनाई जाती हैं; जैसे – डेटा फाइल, प्रोग्राम फाइल, ऑब्जेक्ट फाइल तथा सभी प्रकार की एग्जीक्यूटेबल (Executable) फाइल। उपयोगकर्ता इन फाइलों को अपनी सुविधा के अनुसार बदल सकता है।
2. डायरेक्ट्री फाइलें (Directory Files) – जब उपयोगकर्ता कोई directory बनाता है, तो Linux एक Directory फाइल बना देता है, जिसमें उस Directory में शामिल फाइलों के बारे में सूचनाएँ होती है। Directory file को उपयोगकर्ता द्वारा मॉडिफाई नहीं किया जा सकता, लेकिन जब भी उस directory में कोई नई फाइल जोड़ी जाती है या उप-डायरेक्ट्री बनाई जाती है, तो Linux स्वत: ही उस directory फाइल को मॉडिफाई कर देता है।
3. विशेष फाइलें (Special File) – ये वे फाइलें होती है, जो इनपुट/आउटपुट उपकरणों से संबंधित होती है और Standard Linux डायरेक्ट्रियों; जैसे- /dev तथा /etc में पाई जाती है। वास्तव में अधिकांश सिस्टम फाइलें विशेष फाइलें होती है। उपयोगकर्ता इन्हें मॉडिफाई नहीं कर सकते।