2014-10-07 3 views
8

मैं दो उपयोगकर्तालैंड प्रक्रियाओं के बीच संचार के लिए नेटलिंक का उपयोग करने की योजना बना रहा हूं। नेटलिंक के बारे में इतना पसंद करने का कारण यह है कि - प्रक्रिया में से किसी एक के लिए प्रसंस्करण अंततः कर्नेल स्पेस में जायेगी और नेटलिंक आधारित संचार का उपयोग किया जा सकता है क्योंकि यह (उम्मीद है)।क्या कोई आईपीसी के लिए नेटलिंक का उपयोग कर रहा है?

मैं जो दृष्टिकोण ले रहा हूं वह है - एक नया जेनेरिक नेटलिंक परिवार परिभाषित करें (मुझे उस परिवार का समर्थन करने के लिए केवल कर्नेल मॉड्यूल लिखना होगा - जैसा कि इस समय ऐसा लगता है)। यह ठीक है, मैं कुछ उदाहरण कोड देख रहा था, जहां कर्नेल अनिवार्य रूप से केवल विभिन्न प्रक्रियाओं के बीच संदेश भेज रहा था और वास्तव में कोई काम नहीं कर रहा था - उन संदेशों की वास्तविक आबादी प्रक्रियाओं द्वारा संभाली जाती है।

मेरा सवाल है - क्या कोई भी परियोजनाओं में नेटलिंक का उपयोग कर रहा है? इसके अलावा - उपर्युक्त दृष्टिकोण समझ में आता है?

मैंने नेटलिंक आधारित डीबीयूएस के बारे में एक प्रस्ताव के बारे में पढ़ा। लेकिन इसका कोई कार्यान्वयन नहीं मिला है। यह मेरी आवश्यकताओं के सबसे करीब आता है।

धन्यवाद।

उत्तर

5

यदि आप उपयोगकर्ता स्पेस प्रक्रियाओं के बीच संवाद करना चाहते हैं तो NETLINK_USERSOCK क्या आप खोज रहे हैं।

दुर्भाग्यवश नेटलिंक दस्तावेज़ बहुत दुर्लभ है। इससे थोड़ा सा मदद मिल सकती है: Who can give me the latest netlink programming samples?

बस सुनिश्चित करें कि nl_pid गैर-शून्य है और जो उपयोगकर्ता स्पेस पीयर से मेल खाता है उससे मेल खाता है और आप एक यूनिकास्ट भेज रहे हैं।

+0

आह धन्यवाद - मैंने यह स्पष्ट कैसे देखा है! हां - मैंने कुछ उदाहरणों में से कुछ के समान कुछ किया है। दुर्भाग्यवश मैं libnl का उपयोग नहीं करना चाहता (कारण मेरे आवेदन में है, मैं जितनी ज्यादा हो सके बाहरी निर्भरताओं से बचना चाहता हूं), इसलिए मैं काम करने के लिए कुछ भारी उठाना चाहता हूं। – gabhijit

+0

इस मामले में, आप उस चीज़ के बारे में बात कर रहे हैं जो सिस्टम पर तब तक नहीं होने की संभावना है जब तक आप एक एम्बेडेड लक्ष्य नहीं बोल रहे हों। बहुत सारे वितरण इसे प्रदान करते हैं। ऐसा करने के बाद, यदि आप अभी भी libnl का उपयोग नहीं करना चाहते हैं, तो आप अपने "भारी उठाने" के भीतर "सही" तरीके से काम करने के लिए एक पालना-चादर के रूप में libnl का उपयोग करने में सक्षम होना चाहिए। – Svartalf

+0

@Svartalf यह वही है जो मैंने किया था। धन्यवाद। – gabhijit

संबंधित मुद्दे