什么是发行版 distro
回忆上次内容
从帮助我们可以知道 uname -a 可以得到全部信息
uname -a
从中,我们知道有 ubuntu, 他好像是一种发行版。
什么是发行版
只靠 linux 内核,我们无法做任何事情,只有内核和各种应用程序在一起,我们才能使用。
发行版 (distro) 的英文原文是 distribution, 是内核和应用程序的集合。一个典型的 Linux 发行版包括:Linux 内核,一些 GNU 程序库和工具,命令行 shell, 也会包含图形界面。
都有哪些发行版呢?
发行版非常多,你可以去 distrowatch 去看看各种个样的发行版的介绍!
也可以看到当前各种发行版的排名。也可以搜索感兴趣的发行版!
我应该如何选择自己的发行版呢?
我们可以去内核官网,看看 linux 内核对于各种发行版的吐槽。
不同的发行版有不同的技能:
debian, 适合系统管理和运维
ubuntu 安装简单,界面友好,社区活跃。
kali 就适合做网络安全方面的操作
deepin 国产的深度发行版,界面做的非常好看
centos 服务器
gentoo 深入底层,透明
这里还有个网站能根据您回答问题的情况,帮您选个 distro
distrochooser
Linux 发行版三大家族
Linux 发行版虽然很多,但是大体上是三大家族:
Debian 家族
Rhel 家族
Suse 家族
我们分别来说一下:
debian 家族 debian['dɛbɪən]
debian 是免费发行版,1993.12 月第一次出现。Ian Murdock 依据他女朋友的名字 Debra Lynn 和他自己的名字 Ian Murdock, 最终叫做“Debian”.
各版本代号来自于玩具总动员中的角色。
Debian 是一个独立的组织,Debian 组织着 5 万个以上的软件包和 320 百万行代码,各种项目的负责人是选出来的。
支持的 cpu 指令集架构也多,比如中科院华为阿里押宝的 risc-v, 比如龙芯兼容的 mips。
下图是他下载 cd 的截图:
Ubuntu 和 Mint
Ubuntu
其名称来自非洲 南部祖鲁语或豪萨语的“ubuntu"一词,意思是“人性”“我的存在是因为大家的存在",是非洲传统的一种价值观。
发作“oo-boon-too”的音,如果你喜欢添加一些非洲撒哈拉的味道,你可以在第一个"u",後面带些嗡嗡声:oom-boon-too。
Ubuntu 是 Canonical 公司在 debian 稳定版 (stable) 基础上做出的发行版。私营公司做开源软件为什么许的呢?
开源和商业并不是非黑即白的。
Canonical 公司的现金主要来源于
服务器集群管理工具 Landscape 的服务支持
oem 设备的预装系统费用
Ubuntu 软件中心的付费位
代码托管平台 launchpad.net 服务费用
亚马逊云的相关广告
Ubuntu 手机预装软件收费
甚至 CD 包内容都可以自己定制
Ubuntu 是非常流行的发行版,整体上来说善于推广,比较讨巧。
Mint
Mint 是基于 Ubuntu 的,Ubuntu 是基于 Debian 的,所以 ... Mint 很年轻。
Mint 也是长期霸榜的存在,收入主要靠 t 恤和赞助。
Deepin 深度
优点
好看,特效非常好,渲染的也非常棒。
贴合 国人的使用习惯,有专门的软件商店,轻松安装 QQ、搜狗输入法、WPS 等。
也曾常年前十,靠得住,爱酷炫界面人士可以用。
仓库从 Ubuntu 切换到了 Debian, 稳定。
缺点
图形效果需要 cpu 内存。
被眼睛迷住,忘了其实 Linux 的最关键的是命令行。
公司背景
这个发行版背后的公司是武汉深之度科技有限公司,成立于 2011 年,是专注基于 Linux 的操作系统研发与服务的商业公司,公司的主要产品为深度操作系统。
诚迈科技和原来的深之度(股权由星辉 360、深度、绿盟等控制)合成了新公司。 感觉资金很多,希望能做出好东西。
Kali
Kali 是一个基于 Debian 的 Linux 发行版。
他在 Debian 的基础上装了好多工具,把你的笔记本变成一黑客工具。
Kali 可以有效的学习相关知识,不过要小心!
Kali 用的好,牢饭吃到饱。
Red Hat 家族 Rhel⛑
Rhel 是最早的商业发行版 1994 出现,99 年上市,首日收益历史第八,2012 年 10 亿美元回报,在商用服务器上使用非常多,Centos、Fedora、Mandriva 等免费发行版都基于 Rhel 企业版收费版的。
免费版还能基于收费版?
我们来一个个看看:
Fedora
Fedora 是 Rhel 的实验室。
学了 Fedora 就等于学了 Rhel
各种靠谱不靠谱的功能都往上招呼
你可充分的尝鲜
社区很强大
Fedora 一直沿着开源思想之路发展,开放、测试、改进。 最终稳定下来、靠得住的新特性的进入 Rhel。
Rhel
红帽的名字跟它的创始人有关,它的创始人 Marc Ewing 在 cmu 读书的时候,就以在校园里面帮人解决 Linux 问题而闻名,所以当时 cmu 校园里面流传着一句话,遇到了 Linux 问题,就去找那个戴着红帽子的人来解决。
MarcEwing 和 Bob Young 一起创建了自己的 Linux 发行版,并将其命名为红帽。
红帽的共享
红帽技术很强,对各种开源技术贡献都很大
对于内核有很大贡献
用商业推动各种硬件的 Linux 驱动
红帽加入 RISC-V 基金会
红帽有个认证,这个对于从业人员是一个说法
各种教材资料也特别多
红帽工作时间可以答疑的那种标准服务 799 美元一年,高级会员 1299 美元一年。
当然还有更厉害的企业级别的合作,总之红帽年收入超过 20 亿美元。
Rhel 是最早的商业发行版 1994 出现,99 年上市,首日收益历史第八,2012 年 10 亿美元回报,在商用服务器上使用非常多。
红帽市值非常高已经被 ibm 的 340 亿所收购。
Linux 发行版本身是没法收费的——因为根据 GPL 协议你必须公开源代码,你收费了,别人直接拿源代码自己编译一个用就完了。Centos 就是编译之后的 Rhel。
Centos
把开源软件 Rhel 编译之后形成的东西,在做成一个发行版就是 Centos。
一般来说社区版 Community 开源免费
企业版 ENTerprise 收费
而 centos 想把强大的企业版功能和免费开源的社区放在一起
Centos 都是在对应版本的 Rhel 出来后隔段时间才出的。
Centos 的代码与 Rhel 完全一致
只是修改为符合开源协议的版本,以及修改发行版名称和源等内容-
把收费的组件和客户的支持都去掉了
国内云服务器对 Centos 支持很好
国内的云服务器 Centos 数量居多
对于运维人员的培训,Centos 居多
Centos 影响力太大,红帽把他收购了。里面有什么交易不知道,反正 Centos 加入了红帽公司。
Centos 作为免费的基础部分,获得大量用户基础和好评。为 Rhel 占下市场份额。这样的话,Centos 和 Rhel 越来越一致也就很正常了。
centos 的演化
原来centos是rhel的下游
很多人都可以免费使用rhel
但是这样的生态对于rhel没有办法形成反哺
而是纯吸血
ibm收购红帽之后
centos无法提供kpi
需要centos给rhel有益反馈
这样会引来更多的进一步开发
而不是像centos只是把源代码拿过来编译一遍
再把人家商标去了,改个名字。
Suse[ˈsuːsə]
Suse 是德国 SUSE Linux AG 公司发行维护的 Linux 发行版,是属于此公司的注册商标。第一个版本出现在 1994 年年初。2004 年这家公司被 Novell 公司收购。
Suse 最早基于 slackware, 后来就不是了
公司位于德国
代码严谨,质量高。
华为、中兴、腾讯背书
不太重视中国市场
openSUSE 是 Suse 的社区版本。
Distro hop
来做个 Distro hop。
Distro hop 是指折腾 Distro 来玩的人。
您可以直接在 DestroTest, 开一个虚拟机,直接跑各种各样的发行版。
除此之外还有非标准的 Linux
Google 的安卓
三星的 Tizen
Ubuntu touch
Lg 的 webos
Firefox OS
也还有其他类 UNIX(Unix-like)系统
UNIX
Bsd
Solaris
那我们怎么才能知道当前发行版的版本呢?
当前发行版的版本号
首先要知道发行版的版本号在哪里
ls
ls 就是 list 命令,列出当前目录下有什么。
ls /etc/*release
ls 是 list 命令的缩写
/etc/release 是 ls 命令的参数
/是整个文件目录的根(root)下
/etc 是根(root)下的 etc 文件夹下
/etc/release 是根(root)下的 etc 文件夹下的所有以 release 结尾的文件
这条命令就是列出根(root)下的 etc 文件夹下的所有以 release 结尾的文件
我们可以发现有两个文件
/etc/lsb-release
/etc/os-release
cat 命令
然后我们要看这些文件里面的内容。
cat /etc/lsb-release
cat /etc/os-release
我们也可以把这两个拼合在一起查看。
cat /etc/*release
cat 是 concatenate 的命令的缩写
/etc/*release 是参数,指的是根(root)下的 etc 文件夹下的所有以 release 结尾的文件
整个命令是要把根(root)下的 etc 文件夹下的所有以 release 结尾的文件内容拼合输出
这样我们就知道当前发行版的版本了。