01 - 系统编程基础一、本门课程的目标1、系统编程特点:学习编写系统软件的方法和技巧,系统软件运行时与内核或系统核心库直接进行交互,以实现对系统资源的有效利用。常见的系统软件有:shell,vim,gcc , gdb 等;这些软件有别于一般应用软件(如GUI用户界面程序),需要理解更多的操作系统内部的知识。系统编程与应用编程比,最主要的特点是要求程序员必须对程序运行的系统硬件及操作系统有较为深入和全面的了解。2、三大工具系统调用:是为了从操作系统获得服务或资源而用户空间向内核发起的函数调用。用户空间程序是没有权限直接操作内核数据的,只能通过调用系统调用来实现。C库(libc):是Linux应用程序的核心,常被高级的库封装,由GNU libc提供,简称glibc。它的内容除了标准的C库,还提供了系统调用的封装、线程支持和基本应用工具。C编译器:Linux中,标准的C编译器是GNU编译器工具集(gcc)。3、系统编程的分类(就业的方向):操作系统维护:系统引导、内核层功能实现编译与修改等。驱动开发:外部设备驱动开发用户空间应