Linux-10Year
主流Linux发行版近10年排行曲线
10个主流的发行版概述(distrowatch挑选)
搜索特定的发行
选择建议
初级用户选择:开箱即用
中级用户组装:适合你自己的系统
高级用户搭建:适合你自己,且适配你电脑的系统
顶级用户使用:LFS 构筑自己的Linux系统
Arch VS Gentoo
Arch 和 Gentoo的共同点
部分差异表格
Gentoo的自定义更胜一筹
主流Linux发行版近10年排行曲线
数据来源: https://distrowatch.com/

10个主流的发行版概述(distrowatch挑选)
详见: https://distrowatch.com/dwres.php?resource=major
distrowatch网站挑选的10个主流版本,有概述及优缺点。
- 初级用户:Ubuntu,Linux Mint和MX Linux对于希望尽快在Linux中获得高效而不必掌握其所有复杂性的新用户而言,这被认为是最简单的。
- 中间用户:openSUSE,Fedora,Debian GNU / Linux可以归类为良好的“中间道路”分布,通常用作其他发行版的基础。
- 企业用户:CentOS是一种企业分布,适合那些喜欢稳定性,可靠性和长期支持而不是尖端功能和软件的人。
- 高级用户:Arch Linux,Gentoo和Slackware Linux是更高级的发行版,需要大量学习才能有效使用。
搜索特定的发行
https://distrowatch.com/search.php
https://www.cnblogs.com/sztom/p/11040147.html
选择建议
初级用户选择:开箱即用
Linux (内核版本, 201907)
- 超前的 Manjaro(5.2.1)
- 稳定的 Ubuntu (5.0)
- Fedora 实验室 (5.0.9)
普通用户(初级用户)可从以上三选一,都是开箱即用的,但包管理器不同,所以很多命令有差异。不过只要适应了其中任何一种,就可参照包管理器命令对照表学习使用其他版本。
中级用户组装:适合你自己的系统
中级用户可以选择 激进的Arch,滚动发布,几乎每天都有更新。
官方有提醒,由于版本更新比较激进,可能会有意向不到的状况。实际使用了半年,从内核到各种软件都是最新的,暂未遇到异常。
Arch(当前内核是最新的5.2.1)。Arch 有优秀的wiki文档参考,普通用户可在这里学习进阶。
Arch的安装就是从最小安装开始,一点一点安装你需要的软件包,就像搭积木。所以安装完成就是适合你自己的系统。
高级用户搭建:适合你自己,且适配你电脑的系统
Gentoo 需要耐心,同样有优秀的wiki文档可供参考。安装适合你自己,且适配你电脑的系统.
这是一个高度灵活的基于源代码的Linux发行版。https://www.gentoo.org/
Arch是安装线程的二进制软件包,Gentoo是从源代码开始编译。所以不只软件适合你的要求,系统更加适配你的电脑硬件。
https://wiki.gentoo.org/wiki/Handbook:Main_Page/zh-cn
顶级用户使用:LFS 构筑自己的Linux系统
http://www.linuxfromscratch.org/lfs/
Linux From Scratch(LFS)是一个项目,为您提供完全从源代码构建自己的自定义Linux系统的分步说明。
http://www.linuxfromscratch.org/lfs/downloads/stable/
只要按照手册上一步步做下来,就能得到一个可用的系统。
所以lfs并不是一个发行版,而是类似于一个教学环境,一本说明书。
除了lfs以外,还有blfs、alfs等子项目。
注:按照lfs手册成够构筑Linux系统后,你可能还不知道其中的每一步为什么要这么做,因为这个文档比较实在,并不会提供太多关联信息。
而gentoo的文档上则详细的介绍了执行每一步所需的背景知识,包含很多可选项,并把最后的决定权留给你。
Arch VS Gentoo
https://wiki.archlinux.org/index.php/Arch_compared_to_other_distributions#Gentoo/Funtoo_Linux
- Arch Linux 和 Gentoo Linux 都是滚动升级的发行版,所以在上游软件发布很短时间后,其上就会有软件包可用。
- Gentoo 的基础系统和软件包都是根据用户指定的 USE 标识直接从源代码构建。Gentoo 提供了一个类 ports 系统( Ports 是 BSD 上的一个系统工具)来从源代码编译软件包,而 Arch 基础系统被设计为“直接由预构建好的 x86_64 二进制软件包组成”。一般来说,Arch 更易于构建和升级,而 Gentoo 更易于进行系统化的定制。
- Arch 只支持 x86_64 架构,Gentoo 对 x86(i486/i686)、x86_64、PPC/PPC64、SPARC、Alpha、ARM、MIPS、HPPA、S/390、Itanium 架构提供官方支持。
- Gentoo 的官方包管理工具比 ArchLinux 的更复杂和强大,而且一些在 Gentoo 中处于核心位置的特性(比如 USE 标记、SLOTs 等等)在 Arch 中并没有相对应的功能。究其原因,一是因为 ArchLinux 主要是一个二进制发行版,第二是因为 Gentoo 和 Arch 在设计哲学上有些差别。Arch 在原则上更偏向于架构的简洁性和避免过度设计。
- 因为 Gentoo 和 Arch 的安装包都只包含基本系统,所以它们两者都被认为是需要高度定制化的系统。一般来说,Gentoo 用户如果习惯于 systemd 的话,对Arch的大多数方面都会感到满意。
Arch 和 Gentoo的共同点:
- 最小系统基础,仅有命令行界面
- 高度可定制化
- 优秀的帮助文档系统
- 都是滚动发布
- 在从源码生成安装的角度来讲两者没有明显的优劣之分。
- 甚至两者都可以通过包元文件使用其他发行版提供的二进制包(rpm, deb等)进行安装。
部分差异表格
| 项目 | ARCH | Gentoo |
| Init-System | Systemd | OpenRC |
| 软件仓库 | 二进制仓库 | 源码仓库 |
| 额外支持 | 提供从源码编译的支持(ABS) | 提供野包(overlay) |
| 包管理 | pacman | Portage |
| 软件树 | ABS | Portage |
| 包管理器 | abs, pacman、makepkg等的集合 | emerge |
| 包元文件 | PKGBUILD | ebuild |
| 多版本支持 | 单一版本 (新包名安装多一个版本) | “slot”多版本共存 |
| 软件包版本 | 主流发行版中,更新速度最快的一个 | 不一定是最新的,但维护的包质量都很高 |
| 架构支持 | x86-64(AMD64) | 几乎所有架构 |
| 内核 | Linux | Linux, BSD, hurd |
| 安装过程 | 效率极高 | 编译安装速度慢 |
| 能耗 | 低能耗 | 以电费换性能著称 ? |
Gentoo的自定义更胜一筹
- 定制性极强的USE变量使其灵活性远超Arch
- 从依赖的角度来讲,USE变量相当于更微观的“包”,
- USE有全局的和针对特定包的,前者影响着后者,通过USE变量你可以选择整个系统或某个包具备的特性和功能,全局USE可能会影响到多个包。
- USE之间也有依赖和冲突关系,包间的依赖和USE间的依赖共同构成了Gentoo包管理问题的核心。
更多信息:
https://www.zhihu.com/question/19672940
https://en.wikipedia.org/wiki/Comparison_of_BSD_operating_systems
Linux-10Year的更多相关文章
- Linux 驱动开发
linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...
- Linux 内核概述 - Linux Kernel
Linux 内核学习笔记整理. Unix unix 已有40历史,但计算机科学家仍认为其是现存操作系统中最大和最优秀的系统,它已成为一种传奇的存在,历经时间的考验却依然声名不坠. 1973 年,在用 ...
- 死磕内存篇 --- JAVA进程和linux内存间的大小关系
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...
- NodeJs在Linux下使用的各种问题
环境:ubuntu16.04 ubuntu中安装NodeJs 通过apt-get命令安装后发现只能使用nodejs,而没有node命令 如果想避免这种情况请看下面连接的这种安装方式: 拓展见:Linu ...
- [linux]阿里云主机的免登陆安全SSH配置与思考
公司服务器使用的第三方云端服务,即阿里云,而本地需要经常去登录到服务器做相应的配置工作,鉴于此,每次登录都要使用密码是比较烦躁的,本着极速思想,我们需要配置我们的免登陆. 一 理论概述 SSH介绍 S ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...
- SQL Server on Linux 理由浅析
SQL Server on Linux 理由浅析 今天的爆炸性新闻<SQL Server on Linux>基本上在各大科技媒体上刷屏了 大家看到这个新闻都觉得非常震精,而美股,今天微软开 ...
- Microsoft Loves Linux
微软新任CEO纳德拉提出的“Microsoft Loves Linux”,并且微软宣布.NET框架的开源,近期Microsoft不但宣布了Linux平台的SQL Server,还宣布了Microsof ...
- Linux 江湖系列阶段性总结
引言 我使用 Linux 已经有很多年了,最开始接触 Linux 的时候是从 RedHat 9(没有 Enterprise),中途换过 N 个不同的发行版.多年前,我在 BlogJava 上面分享 J ...
随机推荐
- centos7.4安装gitlab
1. 安装依赖软件 yum -y install policycoreutils openssh-server openssh-clients postfix 2.下载gitlab安装包,然后安装 c ...
- Python之字符
关于字符的常用操作:(字符为不可变长度的类型,故不能“增”.“删”等改变长度的操作) 1.改:改变字符串中的某个值.但为浅改变: name = "Python3.5" print( ...
- 六 Spring属性注入的四种方式:set方法、构造方法、P名称空间、SPEL表达式
Spring的属性注入: 构造方法的属性注入 set方法的属性注入
- 【原】linux设置网络延迟/丢包操作
1.tc方式 * 清除设备策略:tc qdisc del root dev eth2 2>/dev/null* 设置设备策略:tc qdisc add dev eth0 root netem l ...
- 用C/C++创建windows服务程序
转载:https://blog.csdn.net/chenyujing1234/article/details/8023816 一.演示过程下方代码演示了如何使用vs(C/C++)创建windows服 ...
- 02.Scala高级特性:第6节 高阶函数;第7节 隐式转换和隐式参数
Scala高级特性 1. 课程目标 1.1. 目标一:深入理解高阶函数 1.2. 目标二:深入理解隐式转换 2. 高阶函数 2.1. 概念 Scala混合了面向对象和函数式的特 ...
- centos7中redis安装
官网地址:http://redis.io/ 官网下载地址:http://redis.io/download 1. 下载Redis源码(tar.gz),并上传到Linux:或 wget http://d ...
- checkbox全选/取消全选
//checkbox全选/取消全选 $(function() { $("#checkAll").click(function() { if(this.checked){ $(&qu ...
- CS231n -Assignments 1 Q1 and Q2
前言 最近在youtube 上学习CS231n的课程,并尝试完成Assgnments,收获很多,这里记录下过程和结果以及过程中遇到的问题,我并不是只是完成需要补充的代码段,对于自己不熟悉的没用过的库函 ...
- vue中配置sass(包含vue-cli 3)
目录 vue vue cli 3 老版本的脚手架搭建的项目 版本 安装 不用修改任何配置 vue文件中使用 vue 更新时间: 2018-09-21 vue cli 3 选择 Manually sel ...