मैं एलकेएम के माध्यम से एक नया सिस्टम कॉल जोड़ना चाहता हूं, लेकिन मुझे यकीन नहीं है कि यह कैसे करें। यही है, मुझे पता है कि अगर मैं पूरी तरह से नया सिस्टम कॉल जोड़ना चाहता हूं, तो मैं sys_call_table को देख सकता हूं और sys_ni_syscall
ढूंढ सकता हूं और बस इसे प्रतिस्थापित कर सकता हूं, लेकिन अगर पर जोड़ना संभव था तो मैं उत्सुक था। मुझे एहसास है कि यह शायद संभव नहीं है, यह देखते हुए कि यह एक निश्चित आकार सरणी है, लेकिन मैं सोच रहा था कि एक अप्रयुक्त सिस्टम कॉल नंबर को ओवरराइड किए बिना सिस्टम कॉल जोड़ने के लिए कोई और चालाक तरीका है या नहीं।क्या एलकेएम के माध्यम से सिस्टम कॉल जोड़ना संभव है?
उत्तर
चेक "लिनक्स कर्नेल मॉड्यूल प्रोग्रामिंग गाइड" (http://www.tldp.org/LDP/lkmpg/2.6/html/index.html) के लिए लिनक्स प्रलेखन परियोजना वेबसाइट। विशेष रूप से, सिस्टम कॉल के लिए यहां देखें: http://www.tldp.org/LDP/lkmpg/2.6/html/x978.html। इससे आपको कम से कम शुरुआत मिलनी चाहिए।
इसके माध्यम से पढ़ें, हालांकि ऐसा लगता है कि sys_call_table है अब 2.6 कर्नेल में निर्यात नहीं किया गया है। Syscall.c में टिप्पणी देखें – FreeMemory
यहाँ एक उदाहरण है
linux system calls
संपादित करें:
उपरोक्त उदाहरण से पता चलता howto एक सिस्टम कॉल को लागू, एक लोड करने योग्य मॉड्यूल से एक को लागू करने के रूप में जहाँ तक; AFAIK, यह संभव नहीं है, जब तक कि आप किसी मौजूदा व्यक्ति को ओवरराइट नहीं करते हैं क्योंकि सरणी का आकार # परिभाषित है।
ध्यान रखें उपयोगकर्ता स्थान के रूप में अच्छी तरह से आवश्यक है, कम से कम अगर आप वास्तव में नई प्रणाली कॉल का उपयोग करने में सक्षम होना चाहते परिवर्तन होते हैं।
यह एक पुराना सवाल है, लेकिन फिर भी मैं अपना समाधान प्रस्तावित करना चाहता हूं। "सिस्टम-कॉल-जैसे" वातावरण को लागू करने का सबसे आसान तरीका नकली डिवाइस पर भरोसा करना है। विशेष रूप से, आप एक नया डिवाइस ड्राइवर बना सकते हैं जो वास्तव में कुछ भी नहीं चला रहा है। फिर भी, इस पर लिखना, स्थापित मॉड्यूल को आवश्यक क्रियाएं करने का कारण बन सकता है। इसके अतिरिक्त, यदि आप कई सेवाओं की पेशकश करना चाहते हैं, तो आप उन्हें ioctl
संचालन के लिए मानचित्र बना सकते हैं।
- 1. डब्ल्यूसीएफ में कॉल को जोड़ना संभव है?
- 2. सीएलआई/रूबी सिस्टम कॉल के माध्यम से बंडल इंस्टॉल
- 3. Symfony2: क्या निर्भरता इंजेक्शन के माध्यम से किसी अन्य बंडल के लिए कॉन्फ़िगरेशन जोड़ना संभव है?
- 4. क्या टीसीपी के माध्यम से प्रसारण संभव है?
- 5. क्या एक CheckTextPreference को CheckBoxPreference से जोड़ना संभव है?
- 6. foreach कॉल GetEnumerator() कैसे कॉल करता है? IENumerable संदर्भ के माध्यम से या ... के माध्यम से?
- 7. क्या एंड्रॉइड ऐप के माध्यम से फोन कॉल रिकॉर्ड करना संभव है?
- 8. क्या GTalk Intent के माध्यम से संदेश भेजना संभव है?
- 9. क्या JSONArray के माध्यम से पुनरावृत्त करना संभव है?
- 10. क्या रिशेर्पर के माध्यम से कोड सॉर्ट करना संभव है?
- 11. क्या टेलनेट के माध्यम से एलडीएपी "अनुरोध" भेजना संभव है?
- 12. क्या सीएसएस के माध्यम से छोटे सर्किल बनाना संभव है?
- 13. क्या चार्ट में शीर्षक जोड़ना संभव है?
- 14. क्या एंड्रॉइड (सिस्टम मेनू) के संदर्भ मेनू में कुछ आइटम जोड़ना संभव है
- 15. रूट के माध्यम से एंड्रॉइड सिस्टम अनुमतियां
- 16. क्या Django के {% url%} टेम्पलेट टैग के माध्यम से क्वेरी पैरामीटर पास करना संभव है?
- 17. सिस्टम कॉल?
- 18. क्या GAEUnit को कोड कवरेज समर्थन जोड़ना संभव है?
- 19. प्रोग्रामिंग के माध्यम से आईफोन के माध्यम से .xls फ़ाइल बनाना संभव है?
- 20. क्या रेल-एक्टिव रिकॉर्ड्स माइग्रेशन के माध्यम से फ़ंक्शन-आधारित डेटाबेस-अज्ञेय अनुक्रमणिका को जोड़ना संभव है?
- 21. क्या क्लास फाइलों में कस्टम मेटाडेटा जोड़ना संभव है?
- 22. आईओएस - क्या स्थानीयहोस्ट के माध्यम से ऐप्स के बीच संवाद करना संभव है?
- 23. एक स्थानीय थ्रेड के माध्यम से एक अन्य थ्रेड के माध्यम से, यह संभव है कि
- 24. क्या ओबीजेसी से पाइथन मॉड्यूल को कॉल करना संभव है?
- 25. क्या सी # में स्ट्रिंग और डीबीएनएल को जोड़ना संभव है?
- 26. क्या सी # में प्रतिबिंब के माध्यम से फ़ाइल जानकारी पुनर्प्राप्त करना संभव है?
- 27. ओएस सिस्टम बैश स्क्रिप्ट से कॉल करता है
- 28. सिस्टम() के माध्यम से बाहरी प्रोग्राम निष्पादित नहीं कर सकता?
- 29. गतिशील LINQ के माध्यम से इंजेक्शन संभव है?
- 30. क्या यह लेटेक्स दस्तावेज़ को node.js के माध्यम से संकलित करना संभव है?
संभावित डुप्लिकेट [एलकेएम का उपयोग कर लिनक्स सिस्टम कॉल लागू करना] (https://stackoverflow.com/questions/12623066/implementing-linux-system-call-using-lkm) –