Linux系统编程入门指南
1. 系统编程概述
系统编程主要是编写与内核和核心系统库直接交互的系统软件。像日常使用的shell、文本编辑器、编译器、调试器、核心实用程序和系统守护进程,以及网络服务器、Web服务器和数据库等,都属于系统软件。与之相对的是高级GUI应用程序等,这类软件处于较高层级,只是偶尔会深入底层。
系统编程与应用编程有所不同。系统编程要求程序员对所使用的硬件和操作系统有敏锐的认识,其程序主要与内核和系统库交互;而应用程序除了与系统库交互外,还会与高级库交互,这些高级库将硬件和操作系统的细节抽象化,以实现不同系统间的可移植性、不同版本系统的兼容性,以及构建更易用、更强大的高级工具包。不过,无论应用程序在系统层级中的位置如何,了解系统编程都对程序员有益。
2. 为何要学习系统编程
过去十年,应用编程呈现出从系统级编程向高级开发转变的趋势,比如通过Web软件(如JavaScript)或托管代码(如Java)进行开发。但这并不意味着系统编程会走向消亡,像JavaScript解释器和Java虚拟机的编写就属于系统编程的范畴。而且,即使是编写Python、Ruby或Scala等代码的开发者,了解系统编程也有助于编写出更优质的代码。
目前,大部分Unix和Linux代码仍在系统层级编写,很多是用C和C++语言,主要依赖C库和内核提供的接口。像Apache、bash、cp、Emacs、init、gcc、gdb、glibc、ls、mv、vim和X等应用程序,在短期内不会消失。
3. 系统编程的基石
系统编程有三个关键要素,分别是系统调用、C库和C编译器。
- 系统调
Linux系统编程入门全方位指南
超级会员免费看
订阅专栏 解锁全文
3万+

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



