में सिस्टमकॉल कहां जोड़ूं, मैं लिनक्स उबंटू कर्नेल के एक नए संस्करण में एक नया helloworld सिस्टम कॉल जोड़ने की कोशिश कर रहा हूं। मैं वेब पर देख रहा हूं लेकिन मुझे यह दिखाने के लिए एक सतत उदाहरण नहीं मिल रहा है कि मुझे कर्नेल में नरकवर्ल्ड सिस्टम कॉल को जोड़ने के लिए संशोधित करने के लिए कौन सी फाइलें संशोधित करनी होंगी।मैं लिनक्स कर्नेल स्रोत
मैंने कई कोशिश की है और संकलन त्रुटि हुई है। मुझे पता है कि कर्नेल को संकलित कैसे करें, लेकिन मुझे नहीं पता कि मैं अपना सी प्रोग्राम सिस्टम कॉल कहां जोड़ता हूं, और जहां मैं इस कॉल को सिस्टम कॉल टेबल में जोड़ता हूं और मुझे कुछ और करना है।
मैं नवीनतम लिनक्स उबंटू कर्नेल पर काम कर रहा हूं।
मैं एक नई प्रणाली कॉल शुरू की, एक सरल कॉल बुलाया mycall साथ कर्नेल संकलित, अब मुझे लगता है कि कॉल का परीक्षण होगा अपने आवेदन के हैडर फ़ाइल में त्रुटियों संकलन हो रही है, नीचे मेरी हेडर फ़ाइल है
#include<linux/unistd.h>
#define __NR_mycall 317
_syscall1(long, mycall, int, i)
यह सिंटेक्स त्रुटि मैं
[email protected]:~$ gcc -o testmycall testmycall.c
In file included from testmycall.c:3:
testmycall.h:7: error: expected declaration specifiers or ‘...’ before ‘mycall’
testmycall.h:7: error: expected declaration specifiers or ‘...’ before ‘i’
testmycall.c: In function ‘_syscall1’:
testmycall.c:7: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
testmycall.h:7: error: parameter name omitted
testmycall.h:7: error: parameter name omitted
testmycall.c:11: error: expected ‘{’ at end of in
हो रही है मैं निकोलाई एन Fetissov
आपने क्या प्रयास किया? क्या संकलन त्रुटियां हुईं? [क्या यह अभी भी होमवर्क है?] (Http://stackoverflow.com/questions/3977675/i-need-information-on-system-calls-and-understanding-them) - कृपया इस तरह के टैग करें। उस प्रश्न के उत्तर में जुड़ा आलेख सामान्य सिद्धांतों के लिए अच्छा है, मुझे लगता है, हालांकि थोड़ा सा पुराना है, क्योंकि कर्नेल विकास तेजी से आगे बढ़ता है। एक युक्ति: पुरानी संस्करणों में 'आर्क/i386' में होने वाली चीजें अब' arch/x86' (32-बिट और 64-बिट सामग्री विलय हो गई हैं) में हैं। [एलएक्सआर] (http://lxr.linux.no/linux) वर्तमान या पुराने कर्नेल संस्करणों को खोजने के लिए उपयोगी है। –
http://tldp.org/HOWTO/html_single/Implement-Sys-Call-Linux-2.6-i386/ –
मैं दुर्घटना से संकलन त्रुटि से छुटकारा पा लिया, मैं फिर कोशिश करूंगा और यदि यह आता है तो मैं पोस्ट संपादित करूंगा त्रुटि के साथ, आर्क/x86 पर सलाह के लिए ठीक चीयर्स, अब यह कोशिश कर रहे हैं, लगभग एक घंटे में वापस आ जाएगा जब मैं यह सब किया और संकलन भी !!!!! – molleman