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ürsomething
ohne einige Verwaltung, oft Sperren. Das ist ein Grund für Dinge wie__d_lookup
. Eine ähnliche Konvention für Systemaufrufe istsys_something
ist der Einstiegspunkt für Systemaufrufe, der den Kontextwechsel zum und vom Kernel handhabt unddo_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.