Çekirdek bölümü 9, işlevleri, veri yapılarını ve başlıkları belgeleyen sayfalar nasıl yapılır?


10

Çekirdek kaynakları içeren fonksiyonları ve veri yapıları , örneğin, belgelenmiştir 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, ...)

Her seferinde kaynakları gözden geçirmek yerine, bu API'ları manpaj olarak görüntülemek ve mevcut dokümantasyon çerçevesinden yararlanmak yararlı olacaktır .


Yukarıda belirtilen işlevleri ve veri yapılarını belgeleyen çekirdek bölümü 9 manajlarını ( /usr/share/man/man9) nasıl kurar / yaparsınız ?


2
Kullandığınız dağıtımı paylaşmak ister misiniz?
tink

Neden her sürüm için man (her zaman güncellenmiş) sayfalar olduğundan bu kadar eminsiniz?
mdpc

1
@mdpc neden bakımlı bir çekirdeğin herhangi bir adam sayfası olmayacak,
sorumun

3
"Xmlto yüklemeniz gerekiyor" başlayacak yer gibi görünüyor, değil mi?
Braiam

@Bralam sürprizi güncelledi :(
kakeh

Yanıtlar:


6

İçerik edilir doğrudan çözümlenir (ayrıca bkz bu itibaren) kaynak .c dosyaları 1 :

Linux çekirdeğindeki fonksiyonların ve veri yapılarının gömülü, 'C' dostu, bakımı kolay, ancak tutarlı ve çıkarılabilir dokümantasyonunu sağlamak için Linux çekirdeği, fonksiyonları, parametrelerini ve yapılarını ve bunların yapılarını belgelemek için tutarlı bir stil benimsemiştir. üyeler.

Bu dokümantasyonun formatına çekirdek-doküman formatı denir. Bu Documentation / kernel-doc-nano-HOWTO.txt dosyasında belgelenmiştir.

Bu stil, birkaç basit kural kullanarak belgeleri kaynak dosyalara gömer. Komut dosyaları / çekirdek-doc perl betiği, Documentation / DocBook içindeki bazı SGML şablonları ve diğer araçlar bu kuralları anlar ve bu gömülü belgeleri çeşitli belgelere çıkarmak için kullanılır. [...]

Açılış yorum işareti "/ **" çekirdek-doc yorumları için ayrılmıştır. Yalnızca bu şekilde işaretlenen yorumlar çekirdek-doc komut dosyaları tarafından dikkate alınacaktır ve bu şekilde işaretlenen tüm yorumlar çekirdek-belge biçiminde olmalıdır.

Bu, yalnızca bu şekilde biçimlendirilmiş yorumların bu şekilde çıkarılabileceği ve işlem tarafından kullanılan Perl komut dosyasından yararlanabileceğiniz anlamına gelir :kernel-doc make

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

ve böylece mandocs hedefiyle sınırlı değilsiniz :

Kurulumdan sonra, "psdocs yap", "pdfdocs yap", "htmldocs yap" veya "mandocs yap" belgeleri istenen formatta oluşturacaktır.

Çekirdek deposunda / kaynağında sürücüye özgü metin dosyaları da vardır . Daha genel olarak kendi Linux kılavuz sayfaları projesi ( man1 yoluyla man8 ) 'dir kullanılabilir indirmek için. Son notta kernel.org bazı çıktı belgelerini de muhafaza eder .


1. Çekirdekler, böyle bir tekniğin manaj üretmek için kullanıldığı tek durum değildir. GNU coreutils böyle bir durumdur; Bunu man sayfalarını en edilir üretilen çıktısı kullanılarak command --helpiçinde olan içerik kullanım işlevine yardımcı kaynak dosyası ( 1 2 ).


yapmak mandocs atar beniMakefile:19: /Documentation/DocBook/media/Makefile: No such file or directory
kakeh

evet o var ama Documentation/mevcut değildir /onun şimdiki/lib/modules/3.2.0-57-generic-pae/build/
kakeh

@Shyam A modülümdeki metin dosyalarına bağlantı gibi modüller vb. İçin dosyalar . Belki ./scripts/kernel-doc -man ./**/*.c >mydockaynakların üst dizininden deneyebilir ve kaynakları doğrudan ayrıştırarak doğrudan tek bir dosyaya koyamayacağınızı görebilirsiniz. .

4

Ubuntu kullandığınızı varsayarsak,

apt-get install linux-manual-3.2

veya benzeri (doğru sürümü seçin). Başka bir belge paketi daha var

apt-get install linux-doc

ama bu html.


bu çekirdek
api'nin

@Shyam Örneği?
Faheem Mitha

1
Arch (Bang) 'a sahibim: bölüm 9 manajı içeren linux- manpages 3.14-1! Teşekkür ederim! Buna bir örnek kcalloc.9.gz . Orada yaklaşık 4000 ...

@Faheem Mitha görüntülemeyi treid man alloc_register_regionama hiçbir manuel giriş man sayfalarından farklı belgeler olduğunu söyledi?
kakeh

@FaheemMitha Ben çekirdeğin düşük seviye api linux-doc ile kullanılabilir sanmıyorum!
kakeh

3

Çekirdek kaynak kodunu indirin ve source dir execute

make mandocs

Adam belgeleri yapıldıktan sonra

make installmandocs

Bu, manuel sayfaları içine yükleyecektir /usr/local/man/man9/. Artık yazarak man sayfalarını görüntüleyebilir man <api-name>veya düzenleme yapıyorsanız , API adına vimbasın K.


Ama makefile /usr/src/linux-headers-5.0.0-38/Makefilekural mandocsyokinstallmandocs
Herdsman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.