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
__somethinges caballo de batalla parasomethingcon 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_somethinges el punto de entrada de la llamada del sistema que maneja el cambio de contexto hacia y desde el kernel y llama ado_somethingpara hacer el trabajo real. - El
_tEl sufijo es una convención de biblioteca estándar para typedefs. P.ej.size_t,ptrdiff_t,foff_ty tal. El código del núcleo también sigue esta convención para sus tipos internos.