सिस्टम प्रोग्रामिंग: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{Short description|Developing programs for computer systems}} | {{Short description|Developing programs for computer systems}}प्रणाली प्रोग्रामिंग, या प्रणाली प्रोग्रामिंग, प्रोग्रामिंग<ref name=":0" /> [[कंप्यूटर]] [[सिस्टम सॉफ्ट्वेयर|प्रणाली सॉफ्ट्वेयर]] की गतिविधि है<ref name=":0" />। [[अनुप्रयोग प्रोग्रामिंग]] की तुलना में प्रणाली प्रोग्रामिंग की प्राथमिक विशिष्ट विशेषता यह है कि एप्लिकेशन प्रोग्रामिंग का उद्देश्य सॉफ़्टवेयर का उत्पादन करना है जो उपयोगकर्ता को सीधे सेवाएं प्रदान करता है (जैसे [[शब्द संसाधक]]), जबकि प्रणाली प्रोग्रामिंग का उद्देश्य सॉफ़्टवेयर और [[सॉफ्टवेयर मंच|सॉफ्टवेयर प्लेटफ़ॉर्म]] का उत्पादन करना है जो अन्य सॉफ़्टवेयर को सेवाएं प्रदान करते हैं, प्रदर्शन विवश हैं, या दोनों (जैसे [[ऑपरेटिंग सिस्टम|ऑपरेटिंग प्रणाली]], [[कम्प्यूटेशनल विज्ञान]] एप्लिकेशन, [[खेल यंत्र]], ऑटोमेशन या औद्योगिक स्वचालन, और सेवा अनुप्रयोगों के रूप में सॉफ़्टवेयर)।<ref name=":0">{{cite web|title=Panel: Systems Programming in 2014 and Beyond|url=https://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2014/Panel-Systems-Programming-Languages-in-2014-and-Beyond|publisher=Microsoft|access-date=4 December 2015}}</ref> | ||
प्रणाली प्रोग्रामिंग के लिए बड़ी मात्रा में हार्डवेयर जागरूकता की आवश्यकता होती है। इसका लक्ष्य उपलब्ध संसाधनों के कुशल उपयोग को प्राप्त करना है, या तो क्योंकि सॉफ्टवेयर स्वयं प्रदर्शन महत्वपूर्ण है या क्योंकि छोटे दक्षता सुधार सीधे समय या धन की महत्वपूर्ण बचत में परिवर्तित हो जाते हैं। | |||
== सिंहावलोकन == | == सिंहावलोकन == | ||
निम्नलिखित गुण | निम्नलिखित गुण प्रणाली प्रोग्रामिंग की विशेषता बताते हैं: | ||
* [[प्रोग्रामर]] हार्डवेयर और | * [[प्रोग्रामर]] हार्डवेयर और प्रणाली के अन्य गुणों के बारे में अनुमान लगा सकता है जिस पर प्रोग्राम चलता है, और अक्सर उन गुणों का फायदा उठाएगा, उदाहरण के लिए [[कलन विधि]] का उपयोग करके जो विशिष्ट हार्डवेयर के साथ उपयोग किए जाने पर कुशल होने के लिए जाना जाता है। | ||
* आमतौर पर [[निम्न-स्तरीय प्रोग्रामिंग भाषा]] या प्रोग्रामिंग भाषा की बोली का उपयोग किया जाता है ताकि: | * आमतौर पर [[निम्न-स्तरीय प्रोग्रामिंग भाषा]] या प्रोग्रामिंग भाषा की बोली का उपयोग किया जाता है ताकि: | ||
** प्रोग्राम संसाधन-विवश वातावरण में काम कर सकते हैं | ** प्रोग्राम संसाधन-विवश वातावरण में काम कर सकते हैं | ||
** प्रोग्राम थोड़े [[रन-टाइम सिस्टम]] ओवरहेड के साथ कुशल हो सकते हैं, संभवतः या तो छोटा [[क्रम पुस्तकालय]] हो या कोई भी न हो | ** प्रोग्राम थोड़े [[रन-टाइम सिस्टम|रन-टाइम प्रणाली]] ओवरहेड के साथ कुशल हो सकते हैं, संभवतः या तो छोटा [[क्रम पुस्तकालय]] हो या कोई भी न हो | ||
** प्रोग्राम मेमोरी एक्सेस और [[बहाव को काबू करें]] पर सीधे और कच्चे नियंत्रण का उपयोग कर सकते हैं | ** प्रोग्राम मेमोरी एक्सेस और [[बहाव को काबू करें]] पर सीधे और कच्चे नियंत्रण का उपयोग कर सकते हैं | ||
** प्रोग्रामर प्रोग्राम के कुछ हिस्सों को सीधे असेम्बली भाषा में लिख सकता है | ** प्रोग्रामर प्रोग्राम के कुछ हिस्सों को सीधे असेम्बली भाषा में लिख सकता है | ||
* अक्सर | * अक्सर प्रणाली प्रोग्राम को [[डिबगर]] में नहीं चलाया जा सकता है। [[कंप्यूटर सिमुलेशन]] में प्रोग्राम चलाना कभी-कभी इस समस्या को कम करने के लिए इस्तेमाल किया जा सकता है। | ||
प्रणाली प्रोग्रामिंग एप्लिकेशन प्रोग्रामिंग से काफी अलग है जो प्रोग्रामर एक या दूसरे में विशेषज्ञ होते हैं।{{Citation needed|date=December 2015}} | |||
प्रणाली प्रोग्रामिंग में, अक्सर सीमित प्रोग्रामिंग सुविधाएं उपलब्ध होती हैं। [[कचरा संग्रह (कंप्यूटर विज्ञान)]] का उपयोग आम नहीं है और [[डिबगिंग]] करना कभी-कभी कठिन होता है। रनटाइम लाइब्रेरी, यदि उपलब्ध हो, तो आमतौर पर बहुत कम शक्तिशाली होती है, और कम त्रुटि जाँच करती है। उन सीमाओं के कारण, [[सिस्टम निगरानी|प्रणाली निगरानी]] और [[डेटा प्रविष्ट कराना]] का अक्सर उपयोग किया जाता है; ऑपरेटिंग प्रणाली में अत्यंत विस्तृत लॉगिंग सबप्रणाली हो सकते हैं। | |||
ऑपरेटिंग | ऑपरेटिंग प्रणाली और नेटवर्किंग में कुछ भागों को लागू करने के लिए प्रणाली प्रोग्रामिंग की आवश्यकता होती है, उदाहरण के लिए ऑपरेटिंग प्रणाली के लिए पेजिंग ([[आभासी मेमोरी]]) या [[डिवाइस ड्राइवर]] को लागू करना। | ||
== इतिहास == | == इतिहास == | ||
मूल रूप से | मूल रूप से प्रणाली प्रोग्रामर हमेशा असेंबली भाषा में लिखते थे। 1960 के दशक के उत्तरार्ध में उच्च स्तरीय भाषाओं में हार्डवेयर समर्थन के साथ प्रयोग IBM PL/S | PL/S, [[BLISS]], [[BCPL]] जैसी भाषाओं का नेतृत्व करते हैं, और बरोज़ की बड़ी प्रणालियों के लिए [[ALGOL]] का विस्तार करते हैं। [[फोर्थ (प्रोग्रामिंग भाषा)]] में प्रणाली लैंग्वेज के रूप में भी एप्लिकेशन हैं। | ||
1970 के दशक में, C (प्रोग्रामिंग लैंग्वेज) [[यूनिक्स]] के विकास से सहायता प्राप्त करते हुए व्यापक हो गई। | 1970 के दशक में, C (प्रोग्रामिंग लैंग्वेज) [[यूनिक्स]] के विकास से सहायता प्राप्त करते हुए व्यापक हो गई। | ||
हाल ही में एंबेडेड [[सी ++]] कहे जाने वाले सी++ के उपसमुच्चय का कुछ उपयोग देखा गया है, उदाहरण के लिए इसका उपयोग मैकओएस के आई/ओ किट ड्राइवरों में किया जाता है।<ref>{{cite web|author1=Apple Inc|title=I/O Kit Device Driver Design Guidelines|url=https://developer.apple.com/library/mac/documentation/DeviceDrivers/Conceptual/WritingDeviceDriver/CPluPlusRuntime/CPlusPlusRuntime.html#//apple_ref/doc/uid/TP30000695-BAJIBFDE|website=developer.apple.com|publisher=Apple Inc|access-date=16 September 2014|date=14 August 2009}}</ref> | हाल ही में एंबेडेड [[सी ++]] कहे जाने वाले सी++ के उपसमुच्चय का कुछ उपयोग देखा गया है, उदाहरण के लिए इसका उपयोग मैकओएस के आई/ओ किट ड्राइवरों में किया जाता है।<ref>{{cite web|author1=Apple Inc|title=I/O Kit Device Driver Design Guidelines|url=https://developer.apple.com/library/mac/documentation/DeviceDrivers/Conceptual/WritingDeviceDriver/CPluPlusRuntime/CPlusPlusRuntime.html#//apple_ref/doc/uid/TP30000695-BAJIBFDE|website=developer.apple.com|publisher=Apple Inc|access-date=16 September 2014|date=14 August 2009}}</ref> | ||
== वैकल्पिक अर्थ == | == वैकल्पिक अर्थ == | ||
ऐतिहासिक कारणों से, कुछ संगठन जॉब फ़ंक्शन का वर्णन करने के लिए | ऐतिहासिक कारणों से, कुछ संगठन जॉब फ़ंक्शन का वर्णन करने के लिए प्रणाली प्रोग्रामर शब्द का उपयोग करते हैं जिसे अधिक सटीक रूप से [[सिस्टम प्रशासक|प्रणाली प्रशासक]] कहा जाएगा। यह उन संगठनों के लिए विशेष रूप से सच है जिनके कंप्यूटर संसाधनों पर ऐतिहासिक रूप से [[मेनफ़्रेम कंप्यूटर]]ों का प्रभुत्व रहा है, हालांकि इस शब्द का उपयोग उन कार्य कार्यों का वर्णन करने के लिए भी किया जाता है जिनमें मेनफ्रेम शामिल नहीं होते हैं। यह उपयोग उत्पन्न हुआ क्योंकि IBM मेनफ्रेम के प्रशासन में अक्सर कस्टम [[कोडांतरक कोड]] (IBM बेसिक असेंबली लैंग्वेज और उत्तराधिकारी | IBM की बेसिक असेंबली लैंग्वेज (BAL)) का लेखन शामिल होता है, जो OS / MVS, DOS / VSE या VM जैसे ऑपरेटिंग प्रणाली के साथ एकीकृत होता है। /सीएमएस। दरअसल, कुछ [[आईबीएम]] सॉफ्टवेयर उत्पादों में ग्राहक प्रोग्रामिंग स्टाफ से पर्याप्त कोड योगदान था। इस प्रकार की प्रोग्रामिंग उत्तरोत्तर कम आम है, लेकिन शब्द प्रणाली प्रोग्रामर अभी भी [[आईबीएम मेनफ्रेम]] को सीधे प्रशासित करने वाले कर्मचारियों के लिए वास्तविक नौकरी का शीर्षक है। | ||
== यह भी देखें == | == यह भी देखें == | ||
* ऑस्टरहॉट का द्विभाजन | * ऑस्टरहॉट का द्विभाजन | ||
* [[सिस्टम प्रोग्रामिंग भाषा]] | * [[सिस्टम प्रोग्रामिंग भाषा|प्रणाली प्रोग्रामिंग भाषा]] | ||
* [[भाषा का अंकन]] | * [[भाषा का अंकन]] | ||
* [[इंटरप्ट हैंडलर]] | * [[इंटरप्ट हैंडलर]] |
Revision as of 14:30, 2 March 2023
प्रणाली प्रोग्रामिंग, या प्रणाली प्रोग्रामिंग, प्रोग्रामिंग[1] कंप्यूटर प्रणाली सॉफ्ट्वेयर की गतिविधि है[1]। अनुप्रयोग प्रोग्रामिंग की तुलना में प्रणाली प्रोग्रामिंग की प्राथमिक विशिष्ट विशेषता यह है कि एप्लिकेशन प्रोग्रामिंग का उद्देश्य सॉफ़्टवेयर का उत्पादन करना है जो उपयोगकर्ता को सीधे सेवाएं प्रदान करता है (जैसे शब्द संसाधक), जबकि प्रणाली प्रोग्रामिंग का उद्देश्य सॉफ़्टवेयर और सॉफ्टवेयर प्लेटफ़ॉर्म का उत्पादन करना है जो अन्य सॉफ़्टवेयर को सेवाएं प्रदान करते हैं, प्रदर्शन विवश हैं, या दोनों (जैसे ऑपरेटिंग प्रणाली, कम्प्यूटेशनल विज्ञान एप्लिकेशन, खेल यंत्र, ऑटोमेशन या औद्योगिक स्वचालन, और सेवा अनुप्रयोगों के रूप में सॉफ़्टवेयर)।[1]
प्रणाली प्रोग्रामिंग के लिए बड़ी मात्रा में हार्डवेयर जागरूकता की आवश्यकता होती है। इसका लक्ष्य उपलब्ध संसाधनों के कुशल उपयोग को प्राप्त करना है, या तो क्योंकि सॉफ्टवेयर स्वयं प्रदर्शन महत्वपूर्ण है या क्योंकि छोटे दक्षता सुधार सीधे समय या धन की महत्वपूर्ण बचत में परिवर्तित हो जाते हैं।
सिंहावलोकन
निम्नलिखित गुण प्रणाली प्रोग्रामिंग की विशेषता बताते हैं:
- प्रोग्रामर हार्डवेयर और प्रणाली के अन्य गुणों के बारे में अनुमान लगा सकता है जिस पर प्रोग्राम चलता है, और अक्सर उन गुणों का फायदा उठाएगा, उदाहरण के लिए कलन विधि का उपयोग करके जो विशिष्ट हार्डवेयर के साथ उपयोग किए जाने पर कुशल होने के लिए जाना जाता है।
- आमतौर पर निम्न-स्तरीय प्रोग्रामिंग भाषा या प्रोग्रामिंग भाषा की बोली का उपयोग किया जाता है ताकि:
- प्रोग्राम संसाधन-विवश वातावरण में काम कर सकते हैं
- प्रोग्राम थोड़े रन-टाइम प्रणाली ओवरहेड के साथ कुशल हो सकते हैं, संभवतः या तो छोटा क्रम पुस्तकालय हो या कोई भी न हो
- प्रोग्राम मेमोरी एक्सेस और बहाव को काबू करें पर सीधे और कच्चे नियंत्रण का उपयोग कर सकते हैं
- प्रोग्रामर प्रोग्राम के कुछ हिस्सों को सीधे असेम्बली भाषा में लिख सकता है
- अक्सर प्रणाली प्रोग्राम को डिबगर में नहीं चलाया जा सकता है। कंप्यूटर सिमुलेशन में प्रोग्राम चलाना कभी-कभी इस समस्या को कम करने के लिए इस्तेमाल किया जा सकता है।
प्रणाली प्रोग्रामिंग एप्लिकेशन प्रोग्रामिंग से काफी अलग है जो प्रोग्रामर एक या दूसरे में विशेषज्ञ होते हैं।[citation needed] प्रणाली प्रोग्रामिंग में, अक्सर सीमित प्रोग्रामिंग सुविधाएं उपलब्ध होती हैं। कचरा संग्रह (कंप्यूटर विज्ञान) का उपयोग आम नहीं है और डिबगिंग करना कभी-कभी कठिन होता है। रनटाइम लाइब्रेरी, यदि उपलब्ध हो, तो आमतौर पर बहुत कम शक्तिशाली होती है, और कम त्रुटि जाँच करती है। उन सीमाओं के कारण, प्रणाली निगरानी और डेटा प्रविष्ट कराना का अक्सर उपयोग किया जाता है; ऑपरेटिंग प्रणाली में अत्यंत विस्तृत लॉगिंग सबप्रणाली हो सकते हैं।
ऑपरेटिंग प्रणाली और नेटवर्किंग में कुछ भागों को लागू करने के लिए प्रणाली प्रोग्रामिंग की आवश्यकता होती है, उदाहरण के लिए ऑपरेटिंग प्रणाली के लिए पेजिंग (आभासी मेमोरी) या डिवाइस ड्राइवर को लागू करना।
इतिहास
मूल रूप से प्रणाली प्रोग्रामर हमेशा असेंबली भाषा में लिखते थे। 1960 के दशक के उत्तरार्ध में उच्च स्तरीय भाषाओं में हार्डवेयर समर्थन के साथ प्रयोग IBM PL/S | PL/S, BLISS, BCPL जैसी भाषाओं का नेतृत्व करते हैं, और बरोज़ की बड़ी प्रणालियों के लिए ALGOL का विस्तार करते हैं। फोर्थ (प्रोग्रामिंग भाषा) में प्रणाली लैंग्वेज के रूप में भी एप्लिकेशन हैं। 1970 के दशक में, C (प्रोग्रामिंग लैंग्वेज) यूनिक्स के विकास से सहायता प्राप्त करते हुए व्यापक हो गई। हाल ही में एंबेडेड सी ++ कहे जाने वाले सी++ के उपसमुच्चय का कुछ उपयोग देखा गया है, उदाहरण के लिए इसका उपयोग मैकओएस के आई/ओ किट ड्राइवरों में किया जाता है।[2]
वैकल्पिक अर्थ
ऐतिहासिक कारणों से, कुछ संगठन जॉब फ़ंक्शन का वर्णन करने के लिए प्रणाली प्रोग्रामर शब्द का उपयोग करते हैं जिसे अधिक सटीक रूप से प्रणाली प्रशासक कहा जाएगा। यह उन संगठनों के लिए विशेष रूप से सच है जिनके कंप्यूटर संसाधनों पर ऐतिहासिक रूप से मेनफ़्रेम कंप्यूटरों का प्रभुत्व रहा है, हालांकि इस शब्द का उपयोग उन कार्य कार्यों का वर्णन करने के लिए भी किया जाता है जिनमें मेनफ्रेम शामिल नहीं होते हैं। यह उपयोग उत्पन्न हुआ क्योंकि IBM मेनफ्रेम के प्रशासन में अक्सर कस्टम कोडांतरक कोड (IBM बेसिक असेंबली लैंग्वेज और उत्तराधिकारी | IBM की बेसिक असेंबली लैंग्वेज (BAL)) का लेखन शामिल होता है, जो OS / MVS, DOS / VSE या VM जैसे ऑपरेटिंग प्रणाली के साथ एकीकृत होता है। /सीएमएस। दरअसल, कुछ आईबीएम सॉफ्टवेयर उत्पादों में ग्राहक प्रोग्रामिंग स्टाफ से पर्याप्त कोड योगदान था। इस प्रकार की प्रोग्रामिंग उत्तरोत्तर कम आम है, लेकिन शब्द प्रणाली प्रोग्रामर अभी भी आईबीएम मेनफ्रेम को सीधे प्रशासित करने वाले कर्मचारियों के लिए वास्तविक नौकरी का शीर्षक है।
यह भी देखें
- ऑस्टरहॉट का द्विभाजन
- प्रणाली प्रोग्रामिंग भाषा
- भाषा का अंकन
- इंटरप्ट हैंडलर
संदर्भ
- ↑ 1.0 1.1 1.2 "Panel: Systems Programming in 2014 and Beyond". Microsoft. Retrieved 4 December 2015.
- ↑ Apple Inc (14 August 2009). "I/O Kit Device Driver Design Guidelines". developer.apple.com. Apple Inc. Retrieved 16 September 2014.