Open GCYYfun opened 4 years ago
周知OS有system call、作用是 由OS这个应用向依赖于它的上层软件提供 OS 所管辖的资源的操作能力、为了方便和统一 逐渐形成了 POSIX 标准、按照这个标准去制作syscall 、大家就都比较容易使用、但终归 写程序还是会有不方便、就又形成了一层抽象和封装 、用C包装起来了syscall、称之为 libc、提供成为库函数、去调用libc会比直接调用syscall 方便一些、
比如最开始有 ANSI C 就叫做了libc 、之后GUN也出了一个libc 、叫做了glibc、目前要用的 musl 也是同样的东西、不同的是具体的实现、但封装的都是基于POSIX标准的syscall、
有一些 问题:
缺省带glibc
是linux实现的syscall
不是,是libc的部分函数声明的头文件
需要libc。缺省是glibc。可以替换。
glibc是事实的标准,其他libc库会向它看齐,但会有微小区别。
把gcc编译程序依赖的glibc换成了musl-libc
cross compilers 可以理解为换了libc的gcc
uclibc,eglibc,glibc,Musl-libc之间的区别和联系
ANSI/ISO_C POSIX GLIBC WIN32 种种C标准的概念区分
glibc库详解及与POSIX,system V这些库之间关系的说明
周知OS有system call、作用是 由OS这个应用向依赖于它的上层软件提供 OS 所管辖的资源的操作能力、为了方便和统一 逐渐形成了 POSIX 标准、按照这个标准去制作syscall 、大家就都比较容易使用、但终归 写程序还是会有不方便、就又形成了一层抽象和封装 、用C包装起来了syscall、称之为 libc、提供成为库函数、去调用libc会比直接调用syscall 方便一些、
比如最开始有 ANSI C 就叫做了libc 、之后GUN也出了一个libc 、叫做了glibc、目前要用的 musl 也是同样的东西、不同的是具体的实现、但封装的都是基于POSIX标准的syscall、
有一些 问题:
是linux实现的syscall
不是,是libc的部分函数声明的头文件
需要libc。缺省是glibc。可以替换。
glibc是事实的标准,其他libc库会向它看齐,但会有微小区别。
什么叫做 以musl为目标的交叉编译器 呢?musl-targeting 指的是什么、musl-libc? cross compilers 这个交叉是什么意思?
把gcc编译程序依赖的glibc换成了musl-libc
cross compilers 可以理解为换了libc的gcc