मुझे यह जानकारी कहीं भी नहीं मिल रही है। जहां भी मैं देखता हूं, मुझे चीजें मिलती हैं कि जब आप "मुख्य" (जो भी आपका प्रवेश बिंदु है) मारा जाता है, जो कार्यक्रम तर्क और पर्यावरण होगा, लेकिन जो मैं ढूंढ रहा हूं वह यह है कि सिस्टम कैसे स्थापित होता है switch_to मैक्रो के साथ सहयोग करने के लिए ढेर। पहली बार कार्य को स्विच करने के लिए, इसे EFLAGS, EBP, जीसीसी द्वारा सहेजे गए रजिस्टरों और "tsk-> thread-> esp" द्वारा इंगित स्टैक पर शेड्यूल() फ़ंक्शन से वापसी पता होना आवश्यक होगा, लेकिन मैं यह नहीं समझ सकता कि कर्नेल इस ढेर को कैसे सेट करता है, क्योंकि यह सामान्य उद्देश्यों के रजिस्टरों को सहेजने देता है (इनलाइन असेंबली के आउटपुट पैरामीटर का उपयोग करके)।प्रक्रिया निर्माण पर लिनक्स प्रक्रिया कर्नेल स्टैक स्थिति क्या है?
मैं केवल x86 पीसी का जिक्र कर रहा हूं। मैं अपने छोटे कर्नेल के लिए लिनक्स शेड्यूलर/प्रोसेस सिस्टम का शोध कर रहा हूं, मैं लिखने की कोशिश कर रहा हूं (और कोशिश कर रहा हूं), और मैं जो खो रहा हूं उसके चारों ओर अपना सिर नहीं ले सकता। मुझे पता है कि इस तथ्य से मुझे कुछ याद आ रहा है कि मेरे कंप्यूटर पर स्लेकवेयर चल रहा है इस तथ्य का एक प्रमाण है कि शेड्यूलर काम करता है: पी
संपादित करें: ऐसा लगता है कि मैंने इसे बुरी तरह से लिखा है। मैं इस बात की जानकारी देख रहा हूं कि कार्य कर्नेल स्टैक सेटअप नहीं है कि कैसे कार्य उपयोगकर्ता कार्य सेटअप है। अधिक विशेष रूप से, स्टैक जो tsk-> thread-> esp इंगित करता है, और वह "switch_to" स्विच करता है।
ऐसा लगता है कि आपके यहां दो अलग-अलग प्रश्न हैं - 1) प्रक्रिया init पर स्टैक स्थिति और 2) एक आईआरक्यू में कर्नेल 'अनुसूची() '। आपको शायद इन प्रश्नों में से एक को एक नए प्रश्न के रूप में पोस्ट करना चाहिए और उनमें से एक को यहां रखना चाहिए; इस तरह आप प्रत्येक प्रश्न पर ध्यान केंद्रित जवाब प्राप्त करेंगे। स्टैक ओवरफ़्लो पर, प्रत्येक प्रश्न के लिए एक अलग प्रश्न शुरू करना बिल्कुल ठीक है। –
ठीक है, करेंगे! मैंने यहां लंबे समय तक उत्तर/प्रश्न पढ़े हैं, लेकिन कभी पोस्ट नहीं किया! टिप के लिए धन्यवाद :) ठीक है, मैं लगभग 5 मिनट में होगा। मुझे इंतजार करना है: पी – Caleb1994