一、计算机基础知识
(希望自己能更加喜欢这个系统的学习)
1、计算机系统
2、存储网络分类
- DAS--(DirectAttached Storage)直接连接存储
直接存储,存储设备与主机的紧密相连。
- NAS--(NetworkAttached Storage)网络连接存储
通过局域网在多个文件服务器之间实现了互联,基于文件的协议(NFS、SMB/CIFS ),实现文件共享。
- SAN--(StorageArea Networks)存储区域网络
利用高速的光纤网络链接服务器与存储设备,基于SCSI,IP,ATM等多种高级协议,实现存储共享。
表一:三种方式优缺点简要
分类 | 优点 | 缺点 |
DAS | 管理成本较低,实施简单。 |
因储时直接依附在服务器上,连接距离较短,故存储共享受到限制。 CPU必须同时完成磁盘存取和应用运行的双重任务,所以不利于CPU的指令周期的优化,增加系统负担。 |
NAS | 集中管理数据,从而释放带宽、提高性能,可提供跨平台文件共享功能,较易安装。 | 可靠性较差,适用于局域网或较小的网络。 |
SAN | 服务器跟储存装置两者各司其职,高扩展性,利用光纤信道来传输数据﹐以达到一个服务器与储存装置之间多对多的高效能、高稳定度的存储环境。 | 实施复杂,管理成本高。 |
3、开发接口标准
- ABI--(Application Binary Interface)
ABI描述了应用程序与OS之间的底层接口,允许编译好的目标代码在使用兼容ABI的系统中无需改动就能运行。
- API--(Application Programming Interface)
API定义了源代码和库之间的接口,因此同样的源代码可以在支持这个API的任何系统中编译(AIEEE在操作系统上定义的一系列API标准)。
4、Linux运行文件格式
- ELF:可运行文件格式(类似于Windows下.exe文件格式)。
- .so(shared object):动态库基本格式。
- .a:静态库基本格式。
5、库存函数(Library function)及系统调用(system call)
简易图(老师课件cp)
函数库调用 |
系统调用 |
在所有的ANSI C编译器版本中,C库函数是相同的 | 各个操作系统的系统调用是不同的 |
它调用函数库中的一段程序(或函数) | 它调用系统内核的服务 |
与用户程序相联系 | 是操作系统的一个入口点 |
在用户地址空间执行 | 在内核地址空间执行 |
它的运行时间属于-用户时间 | 它的运行时间属于-系统时间 |
属于过程调用,调用开销较小 | 需要在用户空间和内核上下文环境间切换,开销较大。 |
在C函数库libc中有大概300个函数 | 在UNIX中大约有90个系统调用 |
典型的C函数库调用:system fprintf mall oc | 典型的系统调用:chedir fork write brk |
- 用户空间--(User space)
用户程序的运行空间。为了安全,它们是隔离的,即使用户的程序崩溃了,内核也不受影响,只能执行简单的运算,不能直接调用系统资源,必须通过系统接口(system call),才能向内核发出指令。
- 内核空间--(Kernel space)
是Linux 内核的运行空间,可以执行任意命令,调用系统的一切资源。
简易图(老师课件cp)
6、Linux哲学思想
- 一切都是一个文件(包括硬件)
- 小型,单一用途的程序
- 链接程序,共同完成复杂的任务
- 避免令人困惑的用户界面
- 配置数据存储在文本中
备注:CentOS下载地址
https://wiki.centos.org/Download
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com