POSIX庫、glibc庫、pthreads庫、libc庫、newlib、uClibc


libc

  (C standard library,縮寫:libc)。標准函數庫通常會隨附在編譯器上。windows系統和Linux系統下都可以盡情使用。是最基本的C函數庫,也叫 ANSI C 函數庫。總而言之,幾乎在任何平台上的 C 語言 (包括非 UNIX 平台) 都支持此標准。

POSIX

  Portable Operating System Interface(可移植操作系統接口) 的縮寫,X表示UNIX,它是 ISO C 的延伸,明定了一個可移植的操作系統所應具備的種種條件,其范圍不只有系統函數庫而已。POSIX庫 就是C POSIX library。C POSIX library是C語言的POSIX系統下的標准庫。包含了一些在C語言標准庫之外的函數。為了OS(比如windows 和 linux)之間的可移植性,POSIX標准規定了一些標准的API。而這些API標准的集合就是POSIX庫。

glibc

  GNU C Library,常簡稱為glibc,是一種按照LGPL許可協議發布的,自由的,公開源代碼的函數庫。既包含C標准庫,也包含POSIX庫。glibc和libc都是Linux下的C函數庫,libc是Linux下的ANSI C的函數庫;glibc是Linux下的GUN C的函數庫;GNU C是一種ANSI C的擴展實現。glibc本身是GNU旗下的C標准庫,后來逐漸成為了Linux的標准c庫,而Linux下原來的標准c庫Linux libc逐漸不再被維護。Linux下面的標准c庫不僅有這一個,如uclibc、klibc,以及上面被提到的Linux libc,但是glibc無疑是用得最多的。glibc在/lib目錄下的.so文件為libc.so.6

pthreads

  POSIX Threads 簡稱 Pthread,是線程的 POSIX 標准,被定義在 POSIX.1c, Threads extensions (IEEE Std1003.1c-1995)標准里,該標准定義了一套 C 程序語言的類型、函數和常量,定義在 pthread.h 頭文件和一個線程庫里,內容包括線程管理、互斥鎖、條件變量、讀寫鎖和屏障。

  POSIX 信號量(semaphore)和 Pthreads 一起使用,但不是 Pthreads 標准定義的一部分,被定義在 POSIX.1b, Real-time extensions (IEEE Std1003.1b-1993)標准里。因此信號量相關函數的前綴是 “sem_” 而不是“pthread_”。

  消息隊列(Message queue)和信號量一樣,和 Pthreads 一起使用,也不是 Pthreads 標准定義的一部分,被定義在 IEEE Std 1003.1-2001 標准里。消息隊列相關函數的前綴是 “mq_”。

注:RT-Thread 的 pthread 接口里面都是用 RT-Thread 接口實現

 

uClibc

 

uClibc 是一個面向嵌入式Linux系統的小型的C標准庫。最初uClibc是為了支持uClinux而開發,這是一個不需要內存管理單元(MMU)的Linux版本。uClibc比一般用於Linux發行版的C庫GNU C Library (glibc)要小得多, uClibc專注於嵌入式Linux。很多功能可以根據空間需求進行取舍。

Newlib

 

Newlib是一個面向嵌入式系統的C運行庫。最初是由Cygnus Solutions收集組裝的一個源代碼集合,取名為newlib,現在由Red Hat維護,目前的最新的版本是2.1.0。對於與GNU兼容的嵌入式C運行庫,Newlib並不是唯一的選擇,但是從成熟度來講,newlib是最優秀的。newlib可移植性強,具有可重入特性、功能完備等特點,已廣泛應用於各種嵌入式系統中。Cygwin目前使用Newlib來作為它的C標准庫。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM