GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was bedeuten führende und nachgestellte Unterstriche in Linux-Kernel-Identifikatoren?

Es gibt mehrere Fälle:

  • In öffentlich zugänglichen Headern, d. h. alles, was libc übernimmt und unter /usr/include/linux stellt , legen die Standards fest, welche Symbole definiert werden müssen, und alle anderen systemspezifischen Symbole müssen mit Unterstrich und Großbuchstaben oder zwei Unterstrichen beginnen. Das ist der Grund für __KERNEL__ insbesondere, weil es in Headern verwendet wird, die sowohl im Kernel als auch in der libc enthalten sind, und einige Deklarationen unterschiedlich sind.
  • Im internen Code ist die Konvention normalerweise das Symbol __something ist Arbeitspferd für something ohne einige Verwaltung, oft Sperren. Das ist ein Grund für Dinge wie __d_lookup . Eine ähnliche Konvention für Systemaufrufe ist sys_something ist der Einstiegspunkt für Systemaufrufe, der den Kontextwechsel zum und vom Kernel handhabt und do_something aufruft um die eigentliche Arbeit zu erledigen.
  • Der _t Suffix ist eine Standardbibliothekskonvention für Typedefs. Z.B. size_t , ptrdiff_t , foff_t und derartige. Kernel-Code folgt dieser Konvention auch für seine internen Typen.

Linux
  1. Wie funktionieren die Wahrscheinlich/Unwahrscheinlich-Makros im Linux-Kernel und welchen Nutzen haben sie?

  2. Was ist der Unterschied zwischen module_init und init_module in einem Linux-Kernel-Modul?

  3. Was ist die aktuelle Linux-Kernelquelle?

  4. Was bedeuten fork() und grep unter Linux?

  5. Was sind die nativen Betriebssystem-/Systemaufrufe von Windows und Linux, die von malloc() ausgeführt werden?

Was ist der Unterschied zwischen macOS- und Linux-Kernels

Was ist Linux-Kernel und sollten Sie auf den neuesten Kernel aktualisieren?

Was ist der Unterschied zwischen Linux und Unix?

Was sind Linux-Systemaufrufe und Bibliotheksfunktionen?

Was ist der Unterschied zwischen „locate“ und „find“ in Linux?

Was ist der Unterschied zwischen einem Bibliotheksaufruf und einem Systemaufruf in Linux?