2011-11-12 19 views
7

के साथ लिनक्स सिस्टम जानकारी प्राप्त करें मैं लाजर/फ्रीपास्कल में वास्तव में नया हूं और मेरे पास पहले डेल्फी अनुभव नहीं है। मैं WIndows और Linux दोनों पर ओएस संस्करण की जानकारी और उपयोगकर्ता खाता प्रकार प्राप्त करने में सक्षम होना चाहता हूं। मैंने देखा कि एक विंडोज सिस्टम एपीआई है, लेकिन लिनक्स के लिए कुछ भी नहीं मिला।लाजर और फ्रीपास्कल

क्या लाजर/फ्रीपास्कल के लिए एक लिनक्स सिस्टम एपीआई है और यदि हां, तो मैं इसका उपयोग कैसे कर सकता हूं?

+0

लिनक्स पर आपको 'libc' में कॉल करने की आवश्यकता होगी। मुझे कोई जानकारी नहीं है कि एफपीसी पुस्तकालय आपके लिए इसे लपेटते हैं या नहीं। मैं उम्मीद करता हूं और उम्मीद करता हूं कि वे करते हैं। –

+0

फिर भी आप फ्रीबस्कल में "libc" इकाई का उपयोग नहीं करना चाहते हैं, क्योंकि इसकी कमी है। – Noah

उत्तर

4

लिनक्स पर ऐसा कोई एकीकृत बिंदु नहीं है, जिसके लिए आप एक शीर्षलेख लिख सकते हैं और फिर इसका उपयोग कर सकते हैं। इसके अलावा, चूंकि लिनक्स के कई हिस्सों को स्वतंत्र रूप से संस्करणित किया गया है, इसलिए एक संस्करण जैसी कोई चीज़ नहीं है।

कहा जा रहा है कि, कर्नेल संस्करण baseunix.fpuname() के माध्यम से प्राप्त किया जा सकता है। वितरण संस्करण कठिन है, क्योंकि प्रत्येक वितरण अपनी संस्करण जानकारी को एक अलग तरीके से संग्रहीत करता है।

पहला कदम आपको आवश्यक जानकारी की पहचान करना होगा, और एक मोटा विचार यह कहां प्राप्त करना है (उदाहरण के लिए सिस्टम लाइब्रेरी जैसे libc, sysctl और/proc जैसी अतिरिक्त जानकारी, और यदि डेस्कटॉप सिस्टम पर उच्च स्तरीय सिस्टम ऐसे प्रश्न पूछने की अनुमति देते हैं जानकारी, उदाहरण के लिए डीबीयूएस के माध्यम से)। वे संदर्भ हमेशा पास्कल में नहीं होंगे। फिर यहां विशिष्ट प्रश्न पूछें, या लाजर फ़ोरम/माइलिस्ट पर।

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

+0

हालांकि एलएसबी है, कम से कम कुछ वितरण पर "lsb_release" जैसे उपकरण मौजूद हैं। –

+0

निश्चित रूप से तरीके हैं, लेकिन वे सभी कड़ी मेहनत कर रहे हैं। संदेश का मुद्दा यह है कि यह विंडोज़ से कठिन होगा, और एकमात्र प्रयास नहीं होगा। प्रत्येक अतिरिक्त विशेषता के लिए काम शामिल हो सकता है। सबसे पहले अपनी आवश्यकताओं के बारे में लंबे और कठिन सोचें। –

+0

जानकारी के लिए धन्यवाद। – Shade

1
  1. एक "यूनिक्स" इकाई है, तो आप यह जांच सकते हैं कि आप वहां क्या चाहते हैं।

मैं क्या यह वास्तव में क्या मतलब है OS संस्करण जानकारी

प्राप्त करने में सक्षम होना चाहता हूँ? आप अपनी जरूरतों के आधार पर, "uname -a" (टीप्रोसेस से बुलाए गए) के आउटपुट का उपयोग कर सकते हैं।/Etc/redhat-release, आदि जैसी फ़ाइलें भी हैं, लेकिन वे वितरण द्वारा भिन्न हो सकती हैं।

और विंडोज और लिनक्स दोनों पर उपयोगकर्ता खाता प्रकार।

शायद यूनिक्स में आप जो चाहते हैं वह यह देखना है कि उपयोगकर्ता कौन से समूह में है। (ऐसा करने के कई तरीके हैं)।

मैंने देखा कि एक विंडोज सिस्टम एपीआई है, लेकिन लिनक्स के लिए कुछ भी नहीं मिला।

लिनक्स "सब कुछ एक फाइल है" दृष्टिकोण का पालन करता है, तो कहीं वहाँ आम तौर पर एक फ़ाइल (या छद्म फाइल) आप इच्छित जानकारी के साथ पढ़ सकते हैं। सामान्य रूप से, यूनिक्स विंडोज की तुलना में अधिक लचीला है। उदाहरण के लिए, विंडोज़ में प्रोसेसर की संख्या या एमएचज़ में गति प्राप्त करने के लिए शायद एक एपीआई कॉल है। लिनक्स में, आप/dev/cpuinfo में देख सकते हैं और उस जानकारी को टेक्स्ट फ़ाइल के रूप में पार्स कर सकते हैं।

यूनिक्स के विभिन्न स्वाद और लिनक्स के भीतर भी, विभिन्न वितरण हैं। आप समय के लिए केवल कुछ वितरणों का समर्थन करके आप जो करना चाहते हैं उसके दायरे को निश्चित रूप से सीमित कर सकते हैं।