写在前面。经常和伙伴开玩笑说幸好考研早,不然肯定考不上研究生:)可能和我金牛座有关。看到考研现场,我不禁想起了往日考研的时光。不小心点开了之前在知乎上回答过的一个问题。国内用户使用哪些Linux发行版?很多年了,毕业也这么多年了。原文回答我大一之前用过XP。那时候刚开始学C,用的是turboC2.0,蓝屏,老土的经典界面。还记得当时为了让程序执行并读取输出结果,不得不在main函数的最后加上getch()函数。宿舍的一个室友,从小就在玩电脑。那时候他已经开始使用Ubuntu系统编程,用vim写代码,然后用gcc编译,用gdb调试。一切都在命令行上完成。他觉得自己很高大,很怪胎。于是想了想,开始搜索各种安装Linux的教程。(注:本文所有图片均来自网络,侵删)记得那是大一的一个冬天,11月底左右,安装的第一个Linux发行版是ubuntu9.10,Ubuntu界面当时比较简单,安装了之后,并没有像之前计划的那样愉快的写代码,而是在折腾怎么下载音乐播放器。为什么没有类似暴风影音的视频播放器?内置播放器真的很丑,需要下载解码最纠结的是没有游戏。后来室友告诉我,命令行可以播放视频和音乐。我看到他通过在终端中输入apt-getxxx下载了mplayer。播放,打开Framebuffer后,你甚至可以在纯角色界面播放视频,顿时觉得很神奇。折腾了一个星期左右,才恍然大悟,忘记正事了。我用Linux编程,所以我开始学习如何在命令行下编程。一开始我用的是vim,请室友帮我做语法高亮和自动缩进。当时只知道用i进入编辑模式,然后像记事本一样编辑,全程使用方向键。后来索性放弃,转向gedit。最不习惯的是代码编译完需要退出,在命令行执行gcc和./a.out运行,不像turboC直接按F9就可以执行。所以,对于当时的我来说,在Linux下编程是非常糟糕的,体验非常糟糕,所以就放弃了,很少再进入这个系统。直到第二学期的四月,Ubuntu10.04发布时,界面已经大不一样了。最吸引人的是compiz的各种3D炫酷特效和全屏火焰特效。当时兴冲冲的下载了镜像,安装了一下发现硬件不支持,因为当时买的第一台笔记本是集成显示器,无法搭载这么高级的特效。那时候正好在看王音的《完全用Linux工作》。我是如此的热情,以至于我决定开始努力学习Linux。我开始去图书馆借Linux书籍。那时候,鸟哥的私房菜还在第二版。记得当时最流行的博客是笨兔子的故事。学会了各种命令,开始各种捣蛋。当时最激动的事情莫过于仔细想想安装一个软件,然后卸载。最令人沮丧的问题之一是输入法。ibus、小企鹅、谷歌等各种输入法我都试过了。二是QQ聊天工具。Linux官方QQ不再维护,一直尝试在wine中安装WindowsQQ和pidgin插件,直到WebQQ发布。三是办公工具。我一直使用OpenOffice,直到金山的WPSforLinux。这真的很好。宿舍里也有学习Linux的风潮,分为两个阵营,我们宿舍的Ubuntu阵营,和另一个宿舍为首的Fedora。当初教我的室友独树一帜,开始折腾FreeBSD。这不仅仅是Linux发行版的争论,还有GNOME与KDE、Vim与Emacs的争论。不过,两个阵营都鄙视Windows的使用(注,仅代表以往观点)。当然还有使用国产Deepin操作系统,内置了自主研发的截图工具、音乐视频播放器、包管理工具、中文输入法,真的是为那些正在使用的人省去了很多麻烦。习惯使用中文Linux操作系统。2011年大三,Fedora开始推GNOME3shell,Ubuntu开始用Unity。但是,我的笔记本电脑太差了,根本不支持3D,所以我只能退回到2D,所以我不得不买一台新笔记本电脑。两大阵营基本分裂了,大家开始折腾各种Linux发行版,主流的Arch和Gentoo,还有Mint、Gentoo、LFS,当然还有国内的深度LinuxDeepin。LFS折腾了我一个星期才完全装好,而且还引起了颈椎的问题。当时刷poj/zoj基本都是在linux下,vim编辑,gcc编译。最酷的是你只需要将样本输入复制到一个文件中,你只需要在执行过程中重定向输入就可以立即比较输出。我看到很多用WindowsIDE(包括devc++)解决问题的人,每次执行的时候都是手动面对的。样本输入是一个一个输入的,遇到特别大的矩阵就特别麻烦。(当然Windowsdevc++支持配置输入重定向)。大四的时候,我不再在各种发行版上瞎混,开始研究内核代码,砍内核,编译内核,看《Linux内核设计与实现》。.读研之前一直在用Ubuntu,实验室所有的服务器都是我升级的。我安装了Ubuntu12.04Server并在上面安装了OpenStack。一开始是H版,上面安装了Hadoop。后来升级到14.04,OpenStack升级到一版。研究生毕业工作后,同事们都用Mac,我也开始用MacOS。公司大部分服务器使用CentOS、SUSE、Rethat。之前的期刊写了那么多,现在开始说说国内用的Linux系统有哪些。其实我个人认为,对于桌面Linux系统来说,其实都差不多。除了包管理工具和桌面环境,其实没有太大区别。国内大部分用户使用Ubuntu,因为Ubuntu安装配置方便,文档和在线资源丰富,UI界面也是最好的(其中之一),新功能更新快,适合新手学习。对于企业服务器操作系统,国企事业单位更倾向于选择商业支持的Linux发行版,比如Rethat、SLES,当然也有各种非Linux系统,比如AIX。互联网公司更喜欢使用CentOS或者基于CentOS修改的定制操作系统,比如华为的EulerOS。目前很少看到国内公司使用UbuntuServer,国外很多都在使用Ubuntu。至于移动端用户,如果要问哪个Linux发行版用得最多,那当然是Android了:),别忘了,Android也使用了Linux内核,也算是Linux的一个发行版。Ubuntu也开始想开发一款移动操作系统。据说魅族恢复了原生支持,但目前还没有推广。对于一些硬件设备或者嵌入式设备,一般会使用定制版的Linux,比如F5,各种交换机等。我曾经非常极端,非常鄙视Windows。任何敢于说Linux有什么问题的人都必须站出来与此案争论。现在工作之后,不用再为使用哪个系统发愁了。目前开发基本在MacOS上,终端工具iTerm2+Tmux,shell使用Zsh和oh-my-zsh脚本,配合fzf、ag、tig等强大的命令行工具,基本就是足够的。办公室用的是Windows系统(毕竟大部分公司的OA工具只支持Windows),公司的服务器基本都是Linux。操作系统只是一个工具,选择自己习惯的,可以提高工作效率。但如果要在Linux发行版中进行选择,我还是更喜欢Ubuntu。资源多,文档齐全,新功能更新快,习惯了。我基本上可以找到任何包裹。18.04马上就要发布了,有空安装试试。据说我已经回到了GNOME,放弃了Unity。最后,以一张当年非常经典的开源全家福作为结尾吧:)
