內核使用的基本數據類型主要有:
int : 標準的C語言整數類型
u32 : 32位整數類型
pid_t : 特定內核對象pid的類型
在不同CPU體系結構上,C語言的數據類型所佔用的空間是不一樣的。在x86系列結構下,數據類型佔用的字節數如下表所示:
arch | char | short | int | long | ptr | long long | u8 | u16 | u32 | u64 |
i686 | 1 | 2 | 4 | 4 | 4 | 8 | 1 | 2 | 4 | 8 |
在linux下,內核中的地址是unsigned long 類型,指針的大小與long類型的大小相同。
內核提供的所有數據類型在頭文件<asm/types.h>中聲明,這個文件又被<Linux/types.h>所包含。
Linux使用有前綴的類型用於將變量顯露給用戶空間,如__u32。
內核中很多數據類型是由typedef聲明,這樣便於移植。