कर्नेल सेक्शन 9 को कैसे मैनेज किया जाता है जो डॉक्यूमेंट फंक्शन्स, डेटा स्ट्रक्चर्स और हेडर को बनाते हैं?


10

कर्नेल स्रोतों में कार्य और डेटा संरचनाएँ होती हैं जो उदाहरण के लिए प्रलेखित हैं panic.c:

/**
 *  panic - halt the system
 *  @fmt: The text string to print
 *
 *  Display a message, then perform cleanups.
 *
 *  This function never returns.
 */
void panic(const char *fmt, ...)

हर बार स्रोतों के माध्यम से जाने के बजाय, यह उन एपीआई को मैनपावर के रूप में देखने और इस मौजूदा प्रलेखन ढांचे का लाभ उठाने के लिए उपयोगी होगा ।


आप कैसे स्थापित / बनाने गिरी धारा 9 manpages ( /usr/share/man/man9), जो ऊपर उल्लिखित कार्य करता है और डेटा संरचनाओं दस्तावेज़?


2
आपके द्वारा उपयोग किए जा रहे डिस्ट्रो को साझा करने की देखभाल?
tink

आपको क्यों यकीन है कि हर रिलीज़ के लिए हमेशा मैन पेज (विशेष रूप से अपडेटेड) होते हैं?
mdpc

1
@ mdpc क्यों एक अच्छी तरह से बनाए रखा कर्नेल किसी भी आदमी पृष्ठों नहीं होगा, मुझे लगता है कि मेरा सवाल वैध है
kakeh

3
"आपको xmlto स्थापित करने की आवश्यकता है" ऐसा लगता है कि शुरू करने के लिए जगह है, नहीं?
Braiam

@ ब्रालम ने आश्चर्य को अद्यतन किया :(
kakeh

जवाबों:


6

सामग्री है सीधे पार्स (यह भी देखें इस से) स्रोत ग फ़ाइलें 1 :

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

इस प्रलेखन के प्रारूप को कर्नेल-डॉक प्रारूप कहा जाता है। यह इस प्रलेखन / कर्नेल-डॉक-नैनो-HOWTO.txt फ़ाइल में प्रलेखित है।

यह शैली कुछ सरल सम्मेलनों का उपयोग करके स्रोत फ़ाइलों के भीतर प्रलेखन एम्बेड करती है। स्क्रिप्ट / कर्नेल-डॉक पर्ल स्क्रिप्ट, कुछ एसजीएमएल डॉक्यूमेंटेशन / डॉकबुक में टेम्प्लेट, और अन्य उपकरण इन सम्मेलनों को समझते हैं, और इस दस्तावेज़ को विभिन्न दस्तावेजों में निकालने के लिए उपयोग किया जाता है। [...]

प्रारंभिक टिप्पणी चिह्न "/ **" कर्नेल-डॉक टिप्पणियों के लिए आरक्षित है। केवल चिन्हित की गई टिप्पणियों को कर्नेल-डॉक स्क्रिप्ट द्वारा माना जाएगा, और जो भी टिप्पणी चिह्नित की गई है वह कर्नेल-डॉक्टर प्रारूप में होनी चाहिए।

जिसका अर्थ है कि केवल इस तरह के स्वरूपित टिप्पणियों को इस तरह से निकाला जा सकता है और आप इस प्रक्रिया द्वारा प्रयुक्त पर्ल स्क्रिप्ट का लाभ उठा सकते हैं:kernel-doc make

kernel-doc [ -docbook | -html | -html5 | -text | -man | -list ]
  [ -no-doc-sections ]
  [ -function funcname [ -function funcname ...] ]
  c file(s)s > outputfile

और इसलिए कि आप मांडू लक्ष्य तक सीमित नहीं हैं :

स्थापना के बाद, "psdocs बनायें", "pdfdocs बनायें", "htmldocs बनायें", या "मेन्डॉक्स करें" अनुरोधित प्रारूप में प्रलेखन को प्रस्तुत करेगा।

कर्नेल रिपॉजिटरी / सोर्स में ड्राइवर विशिष्ट टेक्स्ट फाइलें भी हैं । आम तौर पर, अपने लिनक्स आदमी पृष्ठों परियोजना ( Man1 के माध्यम से man8 ) है उपलब्ध डाउनलोड के लिए। अंतिम नोट पर kern.org कुछ आउटपुट डॉक्यूमेंटेशन भी बनाए रखता है ।


1. कर्नेल एकमात्र ऐसा मामला नहीं है, जहां इस तरह की तकनीक का इस्तेमाल मैनपेज उत्पन्न करने के लिए किया जाता है। GNU कोरुटिल्स एक ऐसा ही अन्य मामला है; इसके अधिकांश मैनपेज़ उस सामग्री के आउटपुट का उपयोग करके उत्पन्न किए जाते हैं command --helpजो उपयोगिता स्रोत फ़ाइल ( 1 2 ) के उपयोग फ़ंक्शन में है ।


मेन्डॉक्स बनाओ मुझेMakefile:19: /Documentation/DocBook/media/Makefile: No such file or directory
kakeh

हाँ, मैं यह है, लेकिन Documentation/नहीं में मौजूद है /में इसका वर्तमान/lib/modules/3.2.0-57-generic-pae/build/
kakeh

@ श्यम वो मॉड्यूल आदि के लिए फाइलें हैं, जैसे मेरे ए में पाठ फ़ाइलों के लिंक । आप शायद ./scripts/kernel-doc -man ./**/*.c >mydocशीर्ष निर्देशिका से स्रोतों को आज़मा सकते हैं और देख सकते हैं कि क्या आप सीधे स्रोतों को पार्स करके एक फ़ाइल में सभी को सीधे नहीं डाल सकते हैं ।

4

यह मानते हुए कि आप उबंटू का उपयोग कर रहे हैं,

apt-get install linux-manual-3.2

या समान (सही संस्करण चुनें)। एक और प्रलेखन पैकेज भी है

apt-get install linux-doc

लेकिन यह html है।


यह कर्नेल एपी के दस्तावेज को नहीं दिखाता है
kakeh

@ संयम उदाहरण?
फहीम मीठा

1
आर्क (बैंग) पर मेरे पास: linux-manpages 3.14-1 जिसमें सेक्शन 9 manpages हैं! धन्यवाद! एक उदाहरण है kcalloc.9.gz । उनमें से लगभग 4000 हैं ...

@ फहीम मित्रा man alloc_register_regionने यह देखने के लिए कहा कि कोई मैनुअल प्रविष्टि डॉक्स मैन पेज से अलग नहीं है ??
kakeh

@FaheemMitha मुझे नहीं लगता कि कर्नेल का निम्न स्तर एपि लिनक्स-डॉक्टर के साथ उपलब्ध है!
kakeh

3

कर्नेल स्रोत कोड डाउनलोड करें और स्रोत में dir निष्पादित करें

make mandocs

आदमी दस्तावेजों के बाद किया गया है, निष्पादित करें

make installmandocs

यह मैनुअल पेजों को स्थापित करेगा /usr/local/man/man9/। अब आप टाइप करके मैन पेज देख सकते हैं man <api-name>, या यदि आप एपीआई नाम पर vimसिर्फ प्रेस कर रहे हैं K


लेकिन मेकफाइल में /usr/src/linux-headers-5.0.0-38/Makefileन तो नियम हैmandocsinstallmandocs
हरड्समैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.