वास्तव में, आम धारणा (और कुछ जवाब यहां), जवाब है, हाँ, आप, लेकिन आधार पर कर सकते हैं जो ओएस पर के विपरीत:
लिनक्स में, आप लगभग सभी प्रणाली अगर कॉल कॉल कर सकते हैं आप उनके कर्नेल निर्यात को ढूंढ सकते हैं (उदाहरण के लिए "cat/proc/kallsysms | grep sys_" करें)। डेटा सेगमेंट (KERNEL_DS) सेट करके, अधिकांश सिस्को (जो उपयोगकर्ता मोड * स्वीकार करते हैं) में सुरक्षा के आसपास एक मामूली "चाल" है। यह बिल्कुल अनुशंसित नहीं है, लेकिन अगर आपको कर्नेल (उदा। SELinux) से फ़ाइलों तक पहुंचने की आवश्यकता है तो निश्चित रूप से समझ में आता है।
विंडोज़ में, कर्नेल में अधिकांश एनटी * कॉल ज़ेड * कॉल के रूप में भी उपलब्ध हैं - डंपबिन/निर्यात सी: \ विंडोज \ system32 \ ntoskrnl.exe | findstr Zw (या Nt) "के लिए उदाहरण।
मैक ओएस एक्स में, तकनीकी रूप से इसकी अनुमति नहीं दी जानी चाहिए, हालांकि इसके आसपास जाने के लिए चालाक हैक हैं। लेकिन चेतावनियां से सावधान पालन के माध्यम से -
हालांकि सिस्टम कॉल वास्तव में उपयोगकर्ता मोड और कर्नेल के बीच इंटरफेस हैं, वहाँ आश्चर्यजनक रूप से काफी कुछ मामलों में जहां भी उत्पादन योग्य कोड ऐसा नहीं करता है कर रहे हैं।
नहीं आप नहीं कर सकते। एक सिस्टम कॉल परिभाषा के अनुसार है कर्नेल और उपयोगकर्तालैंड –
के बीच अंतरफलक मुझे पता था। हम जो करते हैं वह सहायक या अन्य कार्यों को कॉल करता है। मैं सिर्फ उत्सुक हूं कि हम इसे बना सकते हैं या नहीं। – liuyruc
और एक सिस्टम कॉल शायद शेड्यूलिंग पॉइंट भी है; इसलिए आप कर्नेल में मनमाने ढंग से अपने कार्य को कॉल नहीं करना चाहते हैं। सामान्य रूप से, कर्नेल कोडिंग बहुत मुश्किल है। आपको और अधिक समझाना चाहिए कि आप यह क्यों करना चाहते हैं .... –