Hay varios casos:
- En encabezados de cara al público, es decir, cualquier cosa que libc tomará y colocará bajo
/usr/include/linux
, los estándares especifican qué símbolos deben definirse y cualquier otro símbolo específico del sistema debe comenzar con un guión bajo y una letra mayúscula o dos guiones bajos. Esa es la razón de__KERNEL__
en particular, porque se usa en encabezados que se incluyen tanto en kernel como en libc y algunas declaraciones son diferentes. - En el código interno, la convención suele ser ese símbolo
__something
es caballo de batalla parasomething
con exclusión de algunos de gestión, a menudo de bloqueo. Esa es una razón para cosas como__d_lookup
. Una convención similar para las llamadas al sistema es quesys_something
es el punto de entrada de la llamada del sistema que maneja el cambio de contexto hacia y desde el kernel y llama ado_something
para hacer el trabajo real. - El
_t
El sufijo es una convención de biblioteca estándar para typedefs. P.ej.size_t
,ptrdiff_t
,foff_t
y tal. El código del núcleo también sigue esta convención para sus tipos internos.