क्षमा करें, मेरे भ्रमित प्रश्न के लिए। मैं कुछ संकेत की तलाश कर रहा हूं।
अब तक मैं ज्यादातर Java और Python के साथ एप्लीकेशन लेयर पर काम कर रहा हूं और मुझे ऑपरेटिंग सिस्टम और हार्डवेयर की केवल एक अस्पष्ट समझ है। मैं कंप्यूटिंग के निचले स्तरों के बारे में बहुत कुछ समझना चाहता हूं, लेकिन यह वास्तव में किसी भी तरह भारी हो जाता है। विश्वविद्यालय में मैंने माइक्रोप्रोग्रामिंग के बारे में एक क्लास ली, यानी कैसे प्रोसेसर ASM कोड को लागू करने के लिए हार्ड-वायर्ड हो जाते हैं। अब तक मैं हमेशा सोचता था कि अगर मैं "निम्न स्तर" के बारे में अधिक सीखा तो मैं अधिक काम नहीं करूंगा।
एक प्रश्न मेरे पास है: यह कैसे संभव है कि हार्डवेयर डेवलपर से लगभग पूरी तरह से छिपा हुआ हो? क्या यह कहना सही है कि ऑपरेटिंग सिस्टम हार्डवेयर के लिए एक सॉफ्टवेयर परत है? एक छोटा उदाहरण: प्रोग्रामिंग में मुझे यह समझने की आवश्यकता कभी नहीं हुई कि L2 या L3 कैश क्या है। विशिष्ट व्यावसायिक अनुप्रयोग वातावरण के लिए, लगभग किसी को भी कोडांतरक और कंप्यूटिंग के निचले स्तरों को समझने की आवश्यकता नहीं है, क्योंकि आजकल लगभग कुछ भी के लिए एक प्रौद्योगिकी स्टैक है। मुझे लगता है कि इन निचले स्तरों का पूरा बिंदु उच्चतर स्तरों के लिए एक इंटरफ़ेस प्रदान करना है। दूसरी ओर मुझे आश्चर्य है कि निचले स्तरों पर कितना प्रभाव हो सकता है, उदाहरण के लिए यह पूरी ग्राफिक्स कंप्यूटिंग चीज।
तो, दूसरी ओर, यह सैद्धांतिक कंप्यूटर विज्ञान शाखा है, जो अमूर्त कंप्यूटिंग मॉडल पर काम करती है। हालांकि, मुझे शायद ही कभी परिस्थितियों का सामना करना पड़ा, जहां मैंने इसे जटिलता मॉडल, प्रमाण सत्यापन आदि की श्रेणियों में सहायक सोच पाया, मुझे पता है कि एक जटिलता वर्ग है जिसे एनपी कहा जाता है, और वे इसे हल करने के लिए असंभव हैं एन की एक बड़ी संख्या जो मुझे याद आ रही है वह इन चीजों के बारे में सोचने के लिए एक रूपरेखा का संदर्भ है। यह मुझे लगता है, कि सभी प्रकार के विभिन्न शिविर हैं, जो शायद ही कभी बातचीत करते हैं।
पिछले कुछ हफ्तों से मैं सुरक्षा मुद्दों के बारे में पढ़ रहा हूं। यहाँ किसी भी तरह, अलग-अलग परतों के बहुत सारे एक साथ आते हैं। हमलों और शोषण लगभग हमेशा निचले स्तर पर होते हैं, इसलिए इस मामले में ओएसआई परतों के विवरण, एक ओएस के आंतरिक कामकाज, आदि के बारे में सीखना आवश्यक है।