GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Membuat Halaman Manual Bagian 9 Kernel Yang Fungsi Dokumen, Struktur Data, Dan Headernya?

Sumber kernel berisi fungsi dan struktur data yang didokumentasikan, misalnya di 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, ...)

Daripada menelusuri sumber setiap saat, akan berguna untuk melihat API tersebut sebagai halaman manual dan manfaatkan kerangka dokumentasi yang ada ini.

Bagaimana Anda menginstal/membuat halaman manual kernel section 9 (/usr/share/man/man9 ) yang mendokumentasikan fungsi dan struktur data yang disebutkan di atas?

Jawaban yang Diterima:

Konten diurai secara langsung (lihat juga ini) dari sumber file .c:

Untuk menyediakan tertanam, 'C' friendly, mudah dirawat, tetapi
dokumentasi yang konsisten dan dapat diekstrak dari fungsi dan struktur data
di kernel Linux, kernel Linux telah mengadopsi
yang konsisten gaya untuk mendokumentasikan fungsi dan parameternya, serta
struktur dan anggotanya.

Format untuk dokumentasi ini disebut format kernel-doc. Ini
didokumentasikan dalam file Documentation/kernel-doc-nano-HOWTO.txt ini.

Gaya ini menyematkan dokumentasi dalam file sumber, menggunakan
beberapa konvensi sederhana. Skrip perl scripts/kernel-doc, beberapa template SGML
di Documentation/DocBook, dan alat lainnya memahami
konvensi ini, dan digunakan untuk mengekstrak dokumentasi yang disematkan ini ke dalam
berbagai dokumen.
[…]

Tanda komentar pembuka “/**” dicadangkan untuk komentar kernel-doc.
Hanya komentar yang ditandai yang akan dipertimbangkan oleh skrip kernel-doc,
dan komentar apa pun yang ditandai harus ada di kernel-doc formatnya.

Yang berarti hanya komentar berformat seperti itu yang dapat diekstraksi dengan cara ini dan Anda dapat memanfaatkan kernel-doc Perl skrip yang digunakan oleh make proses:

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

dan karena itu Anda tidak terbatas pada mandocs sasaran:

Setelah instalasi, “make psdocs”, “make pdfdocs”, “make htmldocs”, atau
“make mandocs” akan merender dokumentasi dalam format yang diminta.

Ada juga file teks khusus driver di repositori/sumber kernel. Secara umum, proyek halaman manual Linux their (pria1 melalui man8 ) tersedia untuk diunduh. Pada catatan terakhir kernel.org juga memelihara beberapa dokumentasi keluaran.

Terkait:"sudo:apt-get:perintah tidak ditemukan." setelah menghapus beberapa paket?
Linux
  1. Bagaimana cara memeriksa apakah pipa kosong dan menjalankan perintah pada data jika tidak?

  2. Linux – Bagaimana Kernel Linux Mengetahui Nomor Mayor dan Minor Perangkat?

  3. Linux – Bagaimana Cara Menentukan Modul Yang Menodai Kernel?

  1. Bagaimana saya bisa membuat grep mencetak baris di bawah dan di atas setiap baris yang cocok?

  2. Bagaimana cara men-debug kernel Linux dengan GDB dan QEMU?

  3. Bagaimana saya bisa membuat tcpdump menulis ke file dan menghasilkan data standar yang sesuai?

  1. File di mana struktur data untuk tabel Global Descriptor dan Local Descriptor ditentukan?

  2. Bagaimana fungsi keluarga dev_*() berguna saat men-debug kernel Linux?

  3. Bagaimana cara mengatur lokasi file dump inti (dan nama)?