Skip to content

应用编程概念 ​

       了解本章所介绍的内容是掌握应用编程的先决条件,所以本章主要内容便是对 Linux 应用编程进行个简单地介绍,让读者对此有一个基本的认识。

系统调用 ​

       系统调用(system call) 其实是 Linux 内核提供给应用层的应用编程接口(API) , 是 Linux 应用层进入内核的入口。不止 Linux 系统,所有的操作系统都会向应用层提供系统调用,应用程序通过系统调用来使用操作系统提供的各种服务。

       通过系统调用, Linux 应用程序可以请求内核以自己的名义执行某些事情,譬如打开磁盘中的文件、读写文件、关闭文件以及控制其它硬件外设。

       通过系统调用 API,应用层可以实现与内核的交互

应用编程与裸机编程、驱动编程有什么区别? ​

       我们大可将编程分为三种,分别为裸机编程、 Linux 驱动编程以及 Linux 应用编程。

       在裸机程序当中, LED 硬件操作代码与用户逻辑代码全部都是在同一个源文件(同一个工程)中实现的,硬件操作代码与用户逻辑代码没有隔离,没有操作系统支持,代码编译之后直接在硬件平台运行,俗称“裸跑” 。

       LED 应用程序与 LED 驱动程序是分隔、分离的,它们单独编译, 它们并不是整合在一起的, 应用程序运行在操作系统之上,有操作系统支持,应用程序处于用户态,而驱动程序处于内核态,与纯粹的裸机程序存在着质的区别。 Linux 应用开发与驱动开发是两个不同的方向,将来在工作当中也会负责不同的任务、解决不同的问题

库函数 ​

       前面给大家介绍了系统调用,系统调用是内核直接向应用层提供的应用编程接口, 譬如 open、 write、read、 close 等,关于这些系统调用后面会给大家进行详细介绍。 编写应用程序除了使用系统调用之外,我们还可以使用库函数

       所以应用编程简单点来说就是:开发 Linux 应用程序,通过调用内核提供的系统调用或使用 C 库函数来开发具有相应功能的应用程序。

标准 C 语言函数库 ​