1.计算机组成
2.开发接口标准
-
ABI--(Application Binary Interface)
ABI描述了应用程序与OS之间的底层接口,允许编译好的目标代码在使用兼容ABI的系统中无需改动就能运行。
-
API--(Application Programming Interface)
API定义了源代码和库之间的接口,因此同样的源代码可以在支持这个API的任何系统中编译(AIEEE在操作系统上定义的一系列API标准)。
3.Linux运行文件格式
-
ELF:可运行文件格式(类似于Windows下.exe文件格式)。
-
.so(shared object):动态库基本格式。
-
.a:静态库基本格式
4.库存函数(Library function)及系统调用(system call)
函数库调用 |
系统调用 |
在所有的ANSI C编译器版本中,C库函数是相同的 | 各个操作系统的系统调用是不同的 |
它调用函数库中的一段程序(或函数) | 它调用系统内核的服务 |
与用户程序相联系 | 是操作系统的一个入口点 |
在用户地址空间执行 | 在内核地址空间执行 |
它的运行时间属于-用户时间 | 它的运行时间属于-系统时间 |
属于过程调用,调用开销较小 | 需要在用户空间和内核上下文环境间切换,开销较大。 |
在C函数库libc中有大概300个函数 | 在UNIX中大约有90个系统调用 |
典型的C函数库调用:system fprintf mall oc | 典型的系统调用:chedir fork write brk |
5.Linux哲学思想
1.一切都是一个文件(包括硬件);
2.小型,单一用途的程序;
3.链接程序,共同完成复杂的任务;
4.避免令人困惑的用户界面;
5.配置数据存储在文本中;
镜像下载地址
http://mirrors.aliyun.com;
http://mirrors.sohu.com
http://mirrors.163.com