一、Linux发行版
1、从1992年linux诞生至今产生了数百种之多的Linux发行版,1992-2013期间诞生的各发行版之间的关系如下图所示
2、但距今为止,主流的发行版、二次发行版乃至三次发行版它们之间的关系如下图所示。
二、Linux发行版的组成部分
- 我们常用广义上的Linux指代Linux的发行版,但从狭义上来说Linux仅仅是指代Linux内核(Linux kernel)。
- 完整的Linux发行版由应用程序(Application) + Linux Kernel组成。
- 开源程序通常以源码(文本格式)方式提供,这样带来的好处是可以自由、灵活的使用。
- 一般情况下,源代码通过编译器编译成可执行二进制程序在电脑中运行
- CPU架构
CPU指令架构 | 操作系统 | 指令集 | 生产厂商 | 备注 |
---|---|---|---|---|
x86 | CISC | intel | ||
x64 | CISC | intel | 又称作AMD64 第一款x64指令架CPU由amd研发 | |
m68000 = m68k | 摩托罗拉 | 早期摩托罗拉CPU指令架构 | ||
ARM | RISC | ARM | 移动终端设备主流CPU指令架构 | |
Ultrasparc | solaris | SUN | ||
Power | AIX | IBM | ||
powerpc = pcc | Apple、IBM、摩托罗拉 | |||
alpha | Hp-Unix | HP | ||
MIPSalpha | DEC |
-
指令集分为
- 复杂指令集(Complex Instruction Set Computing,CISC)
- 精简指令集(Reduced Instruction Set Computing,RISC)
-
机器语言(接口)——> 汇编语言(接口)——> 高级语言(C、C++)[需要使用编译器将文本格式代码转换为对应架构CPU的汇编语言代码,再使用汇编器转换为机器对应的二进制代码]
-
可移植(portable)
-
交叉编译(cross compile)
-
POSIX(POS)
- API:Application Program Interface(可移植操作系统接口)
2. ABI:Application Binary Interface (应用的二进制格式接口)
- API:Application Program Interface(可移植操作系统接口)
-
如:Linux, BSD, AIX, ...等都可以称作Unix-like(类Unix的系统),通常这类程序的API与ABI是兼容
-
理查德·马修·斯托曼(Richard Matthew Stallman), RMS发起的GNU运动
- 闭源:不提供源代码
- 开源:提供源代码;
-
开源协定
- FSF:Free Software Foundation(自由软件基金会)
- GPL:General Public License(通用公共许可证)copyright, copyleft
- LGPL:Lesser GPL(更宽松的GPL)
- GPLv2, GPLv3
- ASF:Apache Software Foundation(Apache软件基金会)
- Apache License(Apache许可证)
- FSF:Free Software Foundation(自由软件基金会)
-
双线授权
- Community(社区版本):遵循开源协定;
- Enterprise(企业版本):通过在社区版本上附加很多易用软件
-
程序管理
- 程序的组成部分
- 二进制程序;
- 配置文件;
- 库文件;
- 帮助文件;
- 程序包管理器
- 程序的组成文件打包成一个或有限几个文件,并通过包管理数据库进行相应记录
- 安装:将打包后的文件展开到指定目录下,并通过包数据库进行记录
- 卸载:根据包管理器相关记录将安装生成后的文件进行删除
- 查询:根据安装记录返回相关查询结果
- 程序的组成部分
Linux发行版 | 软件包格式 | 软件包管理工具 | 软件包前端管理工具 |
---|---|---|---|
Debian | .deb | dpkg | apt-get |
RedHat | .rpm | rpm | yum或者dnf |
S.u.S.E | .rpm | libzypp | zypper |
Gentoo | Portage | emerge | |
ArchLinux | Pacman | port | |
Kali | |||
LFS Linux From Scratch(从零构建Linux)【编译安装指南,自行编译安装Linux】 |
- 安装Linux:使用虚拟机的方式安装Linux
- 常用虚拟化软件程序:(把有限的计算机资源虚拟出给虚拟机使用)
- Vmware workstation
- virtualbox
- CentOS的镜像站点