系统编程入门:从基础到实践
系统编程概述
系统编程主要围绕编写系统软件展开,这类软件处于底层,直接与内核及核心系统库交互。像常见的 shell、文本编辑器、编译器、调试器、核心实用工具和系统守护进程等都属于系统软件,网络服务器、Web 服务器和数据库同样如此。它们主要与内核和 C 库进行交互。
与之相对的是应用编程,二者虽有不同,但也存在相似之处。系统编程的关键在于程序员需对所使用的硬件和操作系统有深入了解,系统程序主要与内核和系统库交互,而应用程序还会与高级库交互,这些高级库能抽象掉硬件和操作系统的细节,以实现不同系统间的可移植性、兼容性,以及构建更易用、功能更强的高级工具包。应用程序对系统库和高级库的使用比例,取决于其编写的层次。即便有些应用程序仅使用高级抽象,了解系统编程知识的程序员也能从中受益,因为良好的编程实践和对底层系统的理解对各种编程都有帮助。
为何要学习系统编程
尽管近年来应用编程有从系统级编程向高级开发转变的趋势,比如通过 Web 软件(如 JavaScript)或托管代码(如 Java)进行开发,但这并不意味着系统编程会走向消亡。像 JavaScript 解释器和 Java 虚拟机等仍需系统编程来实现。而且,开发 Python、Ruby 或 Scala 等语言的程序员也能从系统编程知识中获益,因为对机器底层的理解有助于编写更好的代码。
目前,大多数 Unix 和 Linux 代码仍在系统级编写,许多应用如 Apache、bash、cp、Emacs 等都是传统的系统编程应用,它们短期内不会消失。系统编程通常涵盖内核开发或设备驱动编写,但这里主要关注用户空间的系统级编程,即内核之上的所有内容,设备驱动编写是一个庞大的主题
超级会员免费看
订阅专栏 解锁全文
4800

被折叠的 条评论
为什么被折叠?



