1. 操作系统一般四个层次, 内核-》系统调用-》库-》应用程序
内核:内核提供操作系统的一些基本功能的实现,例如 文件系统,网络协议栈,进程管理,加密/解密,驱动程序。
系统调用:系统调用是用户进程进入内核的接口层, 进入内核后不同的系统调用会找到不同的内核功能函数来调用。
库:库是对系统调用的一个封装,它是为了便利按应用程序而封装1到多少系统调用从而完成一个复杂功能的方法集合。
* 注意系统调用是运行在内核空间的而库是运行在用户空间的。
2. 为了能让我们的应用程序能够在多个操作系统运行, 操作系统的库要符合POX (PORTAL OPERATION SYSTEM)规范, 这个规范要求库函数的调用方式和输出结果是一样的。 但是程序ABI(APPLICATION BINARY INTERFACE)可以是,显示也是不一样的,也就是UNIX 编译的文件在LINUX 不能用, 要把源文件在LINUX 编译以下才能用。
我们的LINUX 各个发行版就是根据不用芯片编译的LINUX 的源码的二进制文件+安装程序
3. 库编译
静态编译
我们把系统的库打进我们的软件内部,这个库和我们的其他的程序不共享
动态编译, 动态共享 dll
库文件被一个程序运行,进入内存, 第二个程序就可以直接用内存里面的库了。
时间: 2024-10-17 20:36:28