एक ऑपरेटिंग सिस्टम (अधिमानतः लिनक्स) को कैसे पता चलता है कि आपने कोई स्मृति स्थान एक्सेस किया है जिसे आपको अनुमति नहीं है?
यह सवाल उन लानत संकेत से प्रेरित था! जिस तरह से मैं इसे देखता हूं वह यह है: कंप्यूटर में सब कुछ गति, सुरक्षा, अखंडता और इस तरह की चीजों के बीच एक समझौता है।
मैं लिनक्स में मेमोरी मैप्स के बारे में अच्छी तरह से जानता हूं, लेकिन यह मेरे लिए थोड़ा हास्यास्पद लगता है कि यदि आप जिस स्थान पर पहुंचने की कोशिश कर रहे हैं, वहां एक कर्नेल चेक करता है कि आप किसी एक्सेस टाइम में पहुंचते हैं या नहीं। ऐसा लगता है कि यह इतना समय बर्बाद करेगा, जिसे कुछ और अधिक उत्पादक बनाने में खर्च किया जा सकता है (लेकिन संभवतः बिना किसी जाँच के कम सुरक्षित!)। या शायद यह सभी हालिया एक्सेस को याद करता है और हर हार्डवेयर टाइमर टिक पर उन्हें जांचता है? (लेकिन यह असुरक्षित लगता है, और फिर भी धीमा है।)
मुझे आश्चर्य हुआ कि यह प्रश्न कहीं भी अनुत्तरित प्रतीत होता है। यह कुछ ऐसा है जिसे मैंने हमेशा सोचा है। यह मुझे लगता है कि हार्डवेयर का एक भाग है जो ओएस की ओर से, अमूर्त के एक अच्छे, सुविधाजनक स्तर में करेगा। लेकिन फिर भी, इसे संभवतः हर संदर्भ स्विच पर अगली प्रक्रियाओं मेमोरी मैप्स को लोड करने की आवश्यकता होगी, जो फिर से धीमा लगता है।
तो हाँ, वैसे भी, मैं थोड़ा चल रहा हूँ: कैसे एक ओएस एक मेमोरी उल्लंघन का पता लगाता है?
धन्यवाद