Linux编程库

1、Linux编程库介绍:

编程库就是指始终可以被多个Linux软件项目重复使用的代码集。
使用编程库有两个主要的优点:

  • 可以简化编程,实现代码重复使用,进而减小应用程序的大小。
  • 可以直接使用比较稳定的代码。

Linux下的库文件分为共享库和静态库两大类,它们两者的差别仅在程序执行时所需的代码是在运行时动态加载的,还是在编译时静态加载的。此外,通常共享库以.so(Shared Object)结尾,静态链接库通常以.a结尾(Archive)。在终端下查看库的内容,通常共享库为绿色,而静态库为黑色。
Linux的库一般在/lib或/usr/lib目录下。它主要存放系统的链接库文件,没有该目录则系统无法正常运行。
常用的Linux编程库:
Linux编程库_第1张图片

2、Linux系统调用:

系统调用说的是操作系统提供给用户程序调用的一组“特殊”接口。
使用系统主要目的是使得用户可以使用操作系统提供的有关设备管理、输入/输出系统、文件系统和进程控制、通信以及存储管理等方面的功能,而不必了解系统程序的内部结构和有关硬件细节,从而起到减轻用户负担和保护系统,以及提高资源利用率的作用。
Linux的运行空间分为用户空间和内核空间两种,二者运行在不同的级别中,所以用户进程在通常情况下不允许访问内核,也无法使用内核函数,只能在用户空间操作用户数据和用户空间函数。这样的操作在一定程度上保护了系统。使用系统调用可以让用户进程访问内核,其操作为进程先用适当的值填充寄存器,然后调用一个特殊的指令,这个指令会跳到一个事先定义在内核中的位置(这个位置是用户进程可读但是不可写的)。硬件知道一旦用户进程跳到这个位置,则认为该用户就不是在限制模式下运行的用户,而是作为操作系统的内核。当然,用户访问内核的路径是事先规定好的,只能从规定位置进入内核,而不允许任意跳入内核。
Linux系统有200多个系统调用,这些系统调用按照功能分类大致可分为以下几类:

  • 进程控制
  • 文件系统控制
  • 系统控制
  • 内存管理
  • 网络管理
  • socket控制
  • 用户管理
  • 进程间通信

3、Linux线程库:

进程是资源管理的最小单位,线程是程序执行的最小单位。一个进程至少需要一个线程作为它的指令执行体,进程管理着资源(比如CPU、内存、文件等),而将线程分配到某个CPU上执行。一个进程当然可以拥有多个线程。
Linux系统下的多线程遵循POSIX接口,称为pthread。LinuxThreads是一种面向Linux的POSIX 1003.1c-pthread标准接口。它所实现的就是基于核心轻量级进程的“一对一”线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中
实现。使用LinuxThreads线程库创建和管理线程常用到下面几个函数:

  • pthread_create()函数:创建新的线程。
  • pthread_join()函数:等待线程结束。
  • pthread_self()函数:获取线程ID。
  • pthread_detach()函数:用于让线程脱离。
  • pthread_exit()函数:终止线程。

你可能感兴趣的:(深入理解Linux内核,linux,运维,服务器)