很多年前的程序员基本都是从Linux编程起家的,现在的程序员似乎更习惯于Windows和Mac的用户界面体验。操作系统作为电脑最重要的组件之一,就好像是平台的命脉,决定着软件兼容性以及软硬件交互。对于很多人来说,Linux与Windows或者Mac的组合似乎是***选择。
本质上,电脑是可以支持双系统的。Windows有它的特长,Linux也有它的优势。Linux系统有优秀的定制能力,安全性能,专门的开源社区,并且所提供的服务通常都是免费的。当然,Windows或Mac也有相应的支持者以及某些优势,比如原生APP和简单友好的交互界面。既然各有优劣,到底要不要选择双系统呢?
选择双系统的五大理由
1、新旧版本游戏通杀
对于喜欢玩游戏的程序员来说,Windows上的本机游戏非常不错,而在Linux上编程比在Windows上性能更优良。当然,多亏Steam OS推动了跨平台兼容的游戏性能优化,使得Linux版本的游戏迭代得已跟上Windows和Mac的脚步。但Windows依然是玩游戏的***选择。
如果你想玩一些旧版的游戏(比如16位的)怎么办呢?现在的32位或64位Windows系统可能无法很好地支持游戏运行。Linux就可以通过32和64位操作系统对16位的程序提供支持。这要多亏WINE,许多Windows应用都可以以虚拟机的方式运行。如果既要编程,又要通过新旧多版本游戏度过漫漫长夜,双系统是个不错的选择。
2、主机
当在一个系统上原生运行操作系统时(不同于虚拟机或者VM),操作系统能够访问全部主机。因此,双系统意味着可以访问更多的硬件组件,并且通常会比VM的速度要快。因此在VM内运行Linux或者Windows,为了得到更好的性能,通常需要不错的配置。
3、兼容性
你可能会发现,一些你比较喜欢的、常用的应用程序并不是在任何一个系统中都可以很好地运行。很典型的一个例子就是Netflix(不过现在已经克服了),然而,常规使用的Adobe应用或者一些video游戏可能会强迫你使用双系统。因此,安装双系统可以确保你可以访问所有的应用和服务。
4、Linux平台的编程效果往往更好
还记得大学计算机有一门必修课就是操作系统,当时的任课老师建议我们一定要尝试使用Linux编程,并认为可以在Linux上编程才算得上一个合格的程序员。我对这个观点印象很深,想要学好编程吗?像那些大片里的黑客一样,手指敲键盘就像钢琴家演奏《野蜂飞舞》一样。
Linux在编程上的优势十分明显。首先,它是免费的,这是一个很大的加分项。其次,它可以支持很多编程语言比如Java,PHP,Ruby,Python和C/C++,外加各类编码应用负载和bash支持。如果你的简历里有一项是熟练掌握Linux,将会十分吸引人。
想要为Windows或MAC开发应用吗?当然,使用Linux完全没问题,但一般来说,原生开发的效果可能更好。例如,Windows提供了一个十分强大的编程工具Visual Studio,近几年还在不断完善优化,Visual Studio很适合用来进行Windows应用开发。考虑到双系统的应用程序开发,可以使用Linux作为开发环境。
5、使用简单、方便
很多人习惯使用Windows和Mac系统之后,会认为Linux系统十分复杂,其实这是个误解。虽然命令行的运行方式会让新手需要花上一段时间去适应,但Linux其实非常易用。同样地,双系统启动也很容易实现。网上有大量的此类教程,可以设置将Linux作为第二系统进行安装,并在启动时进行选择。文件共享也将不是问题,因为Linux可以访问大部分Windows文件。
选择双系统需要顾虑的两点
凡事很难尽善尽美,安装双系统有一些缺点,你也应该认真考虑。
1、复杂性增加
双系统的安装过程并不复杂,虽说不是每所大学都有一个叫肖奈的大神,但一般级别的大神还是有那么几个的。解决了安装问题,两套系统之间的文件共享可能是个不小的挑战。Linux访问Windows文件通常问题不大,但通过Windows访问Linux文件就有些难度了。Linux通常使用EXT4文件系统,Windows则需要求第三方应用具备EXT4兼容性。上山容易下山难,尽管双系统的安装不是问题,但卸载就没那么简单了,可能会有一些文件残留,卸载不彻底。如果没做好随时处理轻微故障的准备,不要急于尝试。
2、虚拟机基本能够实现同样的效果
正如前面所讨论的,虚拟机是在一个操作系统内运行另一个操作系统的不错的解决方案。这个方法可以被用来在另一个操作系统内运行Linux,反之亦然。另外,安装和卸载也变得更加简单,不用担心影响其他加载程序。
选择虚拟机的解决方案不是要占用更多的硬盘空间,并且资源分配要超出直接运行Linux发行版的。早期的一些硬件可能不适合跑虚拟机,因为可能存在硬件驱动空间缺失或者系统配置较低的情况。另外,虚拟机的操作系统可能无法对PC进行完全访问。
如果你对于使用双系统并没有十分必要的理由,就要慎重考虑了。但双系统与单系统相比,确实能够提升兼容性、安全性等。对于程序员来说,我认为双系统必须一试。