深入Linux内核架构—简介和概述(七)

一、数据类型

与用户层程序相比,内核对与数据类型有关的一些问题采取了不同的处理方法。

1、类型定义

内核使用typedef来定义各种数据类型,以避免依赖于体系结构相关的特性,比如,各个处理器上标准类型的位长可能都不见得相同。定义的类型名称如定义的类型名称如 sector_t (用于指定块设备上的扇区编号)、 pid_t (表示进程ID)等,这些都是由内核在特定于体系结构的代码中定义的,以确保相关类型的值落在适当的范围内。因为通常无须了解这些类型的定义是基于哪些基本的数据类型。

深入Linux内核架构—简介和概述(七)_第1张图片

备注:

如果某个变量的类型是typedef而来的,则不能直接访问,而需要通过辅助函数。这样做确保了对相应数据类型的正确操作,尽管对用户来说类型定义其实是透明的。

在某些时候内核必须使用精确定义了位数的变量,例如,在需要向硬盘存储数据结构时。为允许数据在各种系统之间交换,无论数据在计算机内部如何表示,必须总是使用同样的外部格式。

你可能感兴趣的:(深入Linux内核架构)