मैं जानना चाहता हूं कि कर्नेल प्रोग्रामर स्मृति बनाम उपयोगकर्ता मोड प्रोग्रामर के बारे में क्या सोचता है। मैं कर्नेल प्रोग्रामिंग और उपयोगकर्ता मोड प्रोग्रामिंग के बीच कुछ अंतर भी जानना चाहूंगा।कर्नेल और उपयोगकर्ता मोड प्रोग्रामिंग के बीच क्या अंतर है?
उत्तर
उपयोगकर्ता मोड प्रोग्रामिंग ऑपरेटिंग सिस्टम कर्नेल की सुरक्षा, पर्यवेक्षण और अमूर्त तंत्र के तहत प्रोग्रामिंग को संदर्भित करता है। उदाहरण: उपयोगकर्ता मोड में आप डिस्क सेक्टर नहीं लिख सकते हैं, क्योंकि वे फाइल सिस्टम एपीआई के तहत "छिपा" हैं। आप भौतिक स्मृति पते पर नहीं लिख सकते हैं, क्योंकि कर्नेल आभासी और भौतिक स्मृति के बीच अनुवाद करने के नियंत्रण में है, लेकिन आप अपनी जरूरतों के लिए स्मृति को आरक्षित कर सकते हैं। साथ ही, आप निम्न स्तर (असेंबली) जा सकते हैं, आप विशेषाधिकार प्राप्त निर्देशों को निष्पादित नहीं कर सकते हैं, उदाहरण के लिए, प्रोसेसर कैश, टीबीएल और एमएमयू के साथ गड़बड़ करने की कोशिश कर रहे हैं।
कर्नेल प्रोग्रामिंग आपको बिना किसी प्रतिबंध के निम्न स्तर के कर्तव्यों के लिए सिस्टम प्रोग्राम करने की अनुमति देता है। उदाहरण के लिए हार्डवेयर ड्राइवरों को उपयोगकर्ता मोड के तहत प्रोग्राम नहीं किया जा सकता है क्योंकि उन्हें सीधे I/O, मानचित्र मेमोरी क्षेत्रों आदि करने के लिए हार्डवेयर तक पहुंचने की आवश्यकता होती है।
बेशक आप कर्नेल-मोड को "कम प्रतिबंधित" के रूप में नहीं सोच सकते हैं और केएम में अनुप्रयोगों को विकसित करने के लिए जा सकते हैं। आवेदन प्रोग्रामिंग के लिए कई सिस्टम सुविधाएं केएम के तहत उपलब्ध नहीं हैं, क्योंकि पुस्तकालयों को उपयोगकर्ता के साथ उपयोगकर्ता के साथ बातचीत करने की आवश्यकता होती है। साथ ही, वे usermode पुस्तकालय कर्नेल मॉड्यूल से लिंक नहीं होंगे।
यह भेद ऑपरेटिंग सिस्टम के आधार पर कम या ज्यादा परिभाषित किया जा सकता है। केएम/यूएम डॉस में एक बकवास है, जहां कार्यक्रमों को सिस्टम संसाधनों को स्वतंत्र रूप से एक्सेस करने की अनुमति थी (कम से कम 8086/88 वास्तविक मोड में - यह डॉस विस्तारक के मामले में नहीं है)।
Jeffs देखें Understanding User and Kernel Mode
बिल्कुल सही जवाब पर लेख उत्तर चुना। संक्षेप में, मेरे सीमित ज्ञान के अनुसार, कर्नेल मोड में, आप एक वीजीए कार्ड जैसे डिवाइस के भौतिक पते पर बाइट्स पढ़ रहे/लिख रहे हैं। हालांकि, उपयोगकर्ता मोड में, आप एक फ़ाइल में लिख रहे हैं, यानी, यदि यूनिक्स में ऑपरेटिंग सिस्टम पसंद है।
आप सवाल पूछते हैं, लेकिन अंत में सही उत्तर स्वीकार नहीं करते हैं ... –