linux内核基本数据类型总结
linux内核基本数据类型总结
对linux内核的数据类型做一下总结。
下面部分内容参考了:http://book.csdn.net/bookfiles/12/100126.shtml
当
Linux
内核在体系结构差异较大的平台之间移植时,会产生与数据类型相关的问题。在编译内核时使用
-Wall -Wstrict-prototypes
选项,可以避免很多错误的发生。
内核使用的基本数据类型主要有:
Ø
Ø
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
下面是在其他平台上的数据类型所占的字节数:
arch
char
short
int
long
ptr
long-long
u8
u16
u32
u64
i386
1
2
4
4
4
8
1
2
4
8
alpha
1
2
4
8
8
8
1
2
4
8
armv4l
1
2
4
4
4
8
1
2
4
8
ia64
1
2
4
8
8
8
1
2
4
8
m68k
1
2
4
4
4
8
1
2
4
8
mips
1
2
4
4
4
8
1
2
4
8
ppc
1
2
4
4
4
8
1
2
4
8
sparc
1
2
4
4
4
8
1
2
4
8
sparc64
1
2
4
4
4
8
1
2
4
8
其中基于
sparc64
平台的
Linux
用户空间可以运行
32
位代码,用户空间指针是
32
位宽的,但内核空间是
64
位的。
内核中的地址是
unsigned long
类型,指针大小和
long
类型相同。
内核提供下列数据类型。所有类型在头文件
<include/asm/types.h>
中声明,这个文件又被头文件
<Linux/types.h>
所包含。下面是
include/asm/types.h
文件。
这是对ARM体系结构中 /asm/types.h文件中的一些定义:
因为我是对arm体系结构进行了配置
#
ifndef
__ASM_ARM_TYPES_H
#
define
__ASM_ARM_TYPES_H
#
ifndef
__ASSEMBLY__
typedef
unsigned
short
umode_t;
/*
* __xx is ok: it doesn't pollute the POSIX namespace. Use these in the
* header files exported to user space
*/
typedef
__signed__
相关文档:
文档创建日期:2010-02-19
01 // P173: 2.编程题 (7)
02
03 // The beginning of C program: test06-07.c.
04
05 // ......
文档创建日期:2010-02-19
001 // P174: 2.编程题 (9)将数组a中相同元素只保留第一个,其余删除。
002
003 // The beginning of C program: test06-09.c.
004
005  ......
文档创建日期:2010-02-19
01 // P174: 2.编程题 (13)不利用strcmp函数,自己编程实现两个任意字符串的比较。
02
03 // The beginning of C program: test06-13.c.
04 &nbs ......
这是交Linux报告的论文:
部分资料是从IBM提供给我们学院的资料上翻译的.
主要是关于Linux文件系统的,希望对大家了解Linux系统有所帮助.
Linux的根文件系统下各个目录的作用:
在Linux中文件系统构建和UNIX中差不多,但两者还是有一些小的出入。
下图是Linux中文件系统结构的 ......