系统编程是计算机科学和计算机工程教育中不可或缺的一部分。计算机科学/工程课程中的系统编程课程起着两个重要作用。首先,它为学生提供了有关计算机系统软件和高级编程技能的广泛知识,使他们能够与操作系统内核进行交互,执行文件操作和网络编程,并有效利用系统资源来开发应用程序。其次,它为准备学习计算机科学/工程高级课程的学生提供了背景知识,这些高级课程包括操作系统、嵌入式系统、数据库系统、数据挖掘、人工智能、计算机网络以及分布式计算和并行计算。由于其重要性,Unix/Linux系统编程已成为计算机科学/工程教育中的热门主题,并且也是高级程序员自学的主题,因此该领域有大量书籍和在线文章。尽管如此,我仍然发现很难为我在华盛顿州立大学讲授的系统编程课程选择一本合适的教材或参考书。多年以来,我在课程中不得不使用自己的课堂笔记和编程作业。经过深思熟虑,我决定将这些材料整理成书。
本书是为讲授和学习系统编程的理论和实践而服务的。与大多数其他书籍不同,这本书更深入地介绍了系统编程主题,并强调了编程实践。书中引入了一系列编程项目,让学生运用所学知识和编程技能来开发实用的程序。本书的目标是作为面向技术的系统编程课程的教科书。因为本书包含带有完整源代码的详细示例程序,所以也适合高级程序员自学使用。
事实证明,本书的编写是另一项非常艰巨且耗时的工作。在准备书稿期间,我得到了许多人的帮助和鼓励,这是我的荣幸。我想借此机会感谢他们。在此,我要特别感谢Yan Zhang为本书的插图和校对所提供的帮助。
还要特别感谢Cindy一如既往的支持和启发,没有她就没有本书。最重要的是,我要感谢家人的支持,他们接受我无时无刻不在忙碌的所有借口。
本书中编程项目的示例解决方案可从http://wang.eecs.wsu.edu/~kcw下载。如需获取源代码,请通过电子邮件(
[email protected])与作者联系。
K. C. Wang
美国华盛顿州普尔曼市
2018年4月