Linux

Linux已经发展成从手机到服务器,从穿戴设备到超级计算机,无比强大且极具伸缩性的操作系统。这也是最具可玩性的OS系统,开源并且具备旺盛的生命力。

Linux的历史和自由软件和开源软件息息相关,如果你想真正了解什么是自由,什么是开源,以及对学习Linux有浓厚的兴趣,推荐阅读:

Linux发行版

如何选择Linux发行版是一个见仁见智的事情。由于我的工作主要是从事服务器的维护和开发,所以在桌面选择是以轻量级为主。

每个公司生产环境可能选择不同的发行版体系,可能主要是RedHat体系(包括CentOS)或者Debian体系(包括Ubuntu)。

我自己的理解如下:

  • Ubuntu Server基于Debian testing版本开发,所以内核版本和软件包版本要比Red Hat Enterprise Linux新很多,当然也带了一定的稳定性风险。

  • Ubuntu Server采用的是升级软件包策略来更新服务器,能够保持服务器软件包以最新的版本来修复bug和安全漏洞。带来的优点是能够获得最新的功能以及bug修复,但是也同时带来了软件兼容性问题,这个兼容性问题特指你的应用所依赖的旧版本的库或者特性,如果你的应用软件能够随着开源社区进化而同步开发更新,则使用Ubuntu Server会带来较大的好处。

  • RedHat RHEL/CentOS采用了不同的升级策略,即将新版本的bugfix和安全补丁反向back port到旧版本软件上。这样可以保持服务器能够尽可能稳定和向后兼容。所以通常人们都会觉得RedHat RHEL服务器非常稳定。但是带来的缺点是软件包比较陈旧,相对不容易获得上游软件的新特性。

  • Red Hat公司的规模比Ubuntu的母公司Canonical要大,商业化运作更为成熟,雇佣了更多的开源开发者(企业级软件更多)

  • 开发平台似乎更倾向于Ubuntu(我个人感觉很多开发工具包在Ubuntu上多于RHEL,有些工具甚至只有Ubuntu版本)

  • 5年时间的LTS支持基本已经足够,大多数服务器的使用寿命也只有5年。不过对于大型企业,延续10年以上的平台也比较常见,所以大型企业比较倾向于RHEL。

  • Fedora作为Red Hat的社区试验版本,采用的软件版本比较激进,所以面向REHL/CentOS的开发建议同样在RHEL/CentOS上开发(至少要完整测试) -- 有可能下一版本RHEL依然和当前版本Fedora不同(不兼容)。

RHEL/CentOS可以采用Fedora项目提供的EPEL软件仓库来安装比较新(高版本)的应用软件和库,部分弥补了RHEL/CentOS软件因致力于稳定性采用的久经验证但较为落后的软件版本。

一些有特色的发行版(你可以尝试更多,选择你的选择):

  • Tiny Core Linux - 一个高多模块化的Linux版本(核心11M,基本图形版只有16M),致力于采用最新内核,精简的X桌面(默认使用基于FLTK的Flwm窗口管理系统,轻量级到极致)来实现一个非常迷你的系统。目前看X86平台活跃在发布,不过树莓派平台有一段时间没有更新了。

我的选择

2017年12月我选择了Fedora 26/27作为开发桌面工作平台,主要考虑公司使用的是AliOS(属于RHEL/CentOS体系)作为主流的服务器平台,能够更多学习Red Hat体系的维护技术。

不过,在开发软件上,ubuntu体系可用的软件包比CentOS要丰富得多,内核版本也要超前很多。2018年1月,我准备转为使用ubuntu LTS版本,当前为16.04,预计2018年4月可以转为18.04 LTS,基于以下原因:

  • 内核版本更新:ubuntu 16.04为4.4;ubuntu 18.04预计为4.15,可以使用最新的内核特性

  • 利用Ubuntu更为丰富的软件包进行开发

  • 启用嵌套虚拟化技术,在Ubuntu内部嵌套运行CentOS,以获得Red Hat系列运维和开发经验

  • Ubuntu的社区文档以及StackOverflow活跃程度远高于RHEL/CentOS,方便个人学习探索

Red Hat付费客户支持网站解决知识库提供了大量的解决方案,如果有企业支持建议选择,文档质量比社区更好。

参考RHEL 8 Speculation ???讨论,按照RHEL7终止于2019Q4,则RHEL8可能会在2018Q4发布,倒推6个月 beta周期,则RHEL 8beta可能在2018Q2发布。所以有可能Fedora 27将作为RHEL 8的基础。

当前Fedora 27的内核版本为4.14,所以推测2018年Q2推出的RHEL8 beta将和Ubuntu 18.4 LTS采用相近的内核版本。两大主流发行版将齐头并进。

Linux中文网站

  • Linux中国 - Linux.Cn Translation Team (LCTT)提供了很多英文技术文档的翻译,个人觉得很多时候需要开拓视野,从这个入口开始是一个不错的选择。

Last updated