在计算技术领域,特定编程语言的选择长期以来纷争不断。对应用程序开发而言,这样的争论依然如火如荼。然而,对系统编程而言,C语言是专家们公认的编程语言。原因很简单,离硬件最近。所有编程语言都提供了很多抽象层来辅助程序开发。例如,与数值内存地址相比,命名变量的概念极大地简化了程序的开发工作。与所有常用编程语言不同,C提供了最小的抽象,并且由此使C成为距离硬件最近的语言。多数C语句都可以简单地翻译成机器代码。在C语言中可用的数据类型被设计成反映硬件直接支持的数据类型。通过间接方式(指针)访问内存,则向程序员提供了访问系统所有组件的能力。
从历史上讲,Linux内核的开发以及最初LJnix操作系统的开发,都是使用c语言来完成的。大多数系统软件也是使用C语言来开发的。设备驱动程序几乎也总是使用c语言来完成的。距离硬件较近的一个间接好处就是速度。执行用C语言编写的代码要比执行用其他语言编写的代码速度快。对从事系统软件工作的人或希望开发密切与硬件(外围设备或主机系统)打交道的代码的人而言,学习使用C语言的概念会有机会提升他们最实用的编程技巧。
我们的这种选择并不是排斥其他编程语言的学习,或者提倡只学习C语言编程。本书没有提及的其他编程概念也很容易学习,并且可以使用另外一种编程语言容易地加以实现。然而,作者的观点是,充分了解最接近硬件的编程语言,有助于读者更好地理解一种更抽象的编程语言及其用法。
展开
——维拉诺瓦大学大学 Tom Way
“实例是本书最大的亮点。许多书都在讨论命令,但实际上并没有讲具体用法或者这些命令会的输出结果。这本书却做到了这一点。”
——爱达荷大学 Bob Rinker
“本书的特色是广泛使用抽象的内存8央射来帮助学生理解内存在一般情况下是如何保存值的,以及指针是如何实现的。”
——佛罗里达大西洋大学 Sam Hsu
“写得相当不错,这是一本通俗易懂的优秀教材。”
——北肯塔基大学 Richard Fox