程序员为什么一定要用Linux?

大多数人推荐Linux,基本上都会说Linux让你更高效、更优秀。

然而工具只是工具。 然而工具只是工具。 然而工具只是工具。

优秀程序员和不优秀程序员的区别首先是态度上的区别。

他们有自己的理想,思考很多,不管是项目开始之前还是在项目进行中,项目完成之后也会进行总结。

他们对待问题比较严谨,思考比较全面,在动手写代码之前肯定经过了一定的思考,对可能引入的问题进行预估。

而不优秀的程序员对待问题比较随意,也就是态度上不是那么认真,代码写的也比较随意:他们不会意识到他们的代码已经污染了整个项目。

除了态度上的不同,在能力上也有很大的差别。

遇到比较难缠的问题,优秀的程序员总是能从原理出发,一针见血的看出问题的真正原因,进而解决问题,而不优秀的程序员总是停留在表面——认为Linux会把你变得优秀就是停留在表面,只有你自己才能把你变优秀。

那么Linux的好处到底在哪里呢?

1、开源

为什么这么多的的设备都选择使用 Linux?因为它是开源软件(open source software),具有不同的含义。

使用一个安全的操作系统工作变得必不可少的事,而 Linux 恰好满足了这个需求。因为它是开源的, 任何人都可以查看代码并研究来判定是否有一些潜在的能够造成安全风险的缺陷。

2、多用户、多任务、多线程

Linux系统同时可以支持多个用户,每个用户对自己的文件设备有特殊的权利,能够保证各用户之间互不干扰,就像手机开了助手一样,同时登陆多个qq账号,当硬件配置非常高时,每个用户还可以同时执行多个任务、多个线程同时工作、提高效率,简直是完美的一塌糊涂,单凭多用户而言就完爆其他操作系统。

3、稳定性和高效性

你也许会听到Windows服务器长时间运行而突然宕机,但你绝不会听到Linux系统服务器因为长时间不关机会卡死,在Linux上几乎是不会出现这种情况的。Linux服务器可以无休止的运行下去不宕机,因为它继承了Unix卓越的稳定性和高效性。正因为它的稳定才获得了众多用户的青睐,因为它的高效,它的使用范围更加广阔,然而Linux还可以提供一些高可靠性的服务,比如:LNMP、虚拟化、数据库服务等等。

4、安全性和SELinux

其安全性相比其他系统也要安全很多,由于Linux拥有相当庞大的用户和开源社区支持,因此能很快发现系统漏洞,并迅速发布安全补丁及时更新,同时还具有很强的“免疫力”特点,很少受到病毒攻击,对于一个开放式系统而言,在方便用户的同时,很可能存在安全隐患。

不过,利用Linux自带防火墙(iptables,firewalld)、入侵检测和安全认证等工具,及时修补系统的漏洞,就能大大提高Linux系统的安全性,让黑客们无机可乘,同时还有安全增强机制SElinux,在linux内核中提供强制访问控制,功能非常全面,能够很好保护系统和服务,不过很多人喜欢把它关闭,这相对安全性就不是很好了。

还有Tcp_wrappers也能够提供很好的网络服务访问控制,Linux系统对于用户和文件管理权限的管理也是相当出色的,能够很好的控制权限,保证文件的机密性,也是其他系统无法比拟,所以Linux系统在一定程度上是坚不可摧的。

5、性能优势

由于Linux要保证其稳定性,所以并没有像其它操作系统一样内核如此臃肿庞大、漏洞百出,随着Linux内核的不断更新,不断提升着优势,Linux操作系统能把服务器的硬件优势体现的淋漓尽致,因为Linux系统吸取了Unix系统近1/4世纪发展的经验,最主要的是Linux开放源代码,保证系统稳定性,更好的调用硬件功能,同时还提供了丰富的系统资源工具top,freee,df,vmstat,dmesg,iostat,sar,uptime等,方便查看资源的利用率。

以上这些足够让你投向Linux的怀抱了。

当然,除了这些,还有一些说不定道不明的定西,比如:

bigger than bigger

把你的Linux系统拿出去,开始用命令行做点事情。

比如说,输入 sudo rm -rf /*

在外行人看来,非常之酷炫!

本文分享自微信公众号 - CU技术社区(ChinaUnix2013)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-08-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏linux驱动个人学习

Linux-3.14.12内存管理笔记【构建内存管理框架(4)】

虽说前文分析内存管理框架构建的实现,提到了find_zone_movable_pfns_for_nodes(),但这里不准备复述什么,仅针对required_m...

8120
来自专栏科技分享

Linux下经常使用的C/C++开源Socket库【转】

转自:https://www.cnblogs.com/gccbuaa/p/7015599.html

11020
来自专栏LINUX阅码场

Android架构纵横谈之——软件自愈能力 (2)

上回书(Android架构纵横谈之——软件自愈能力 (1))我们说到Android里的init会监测init.rc中启动的service并根据情况重启之。今回书...

7840
来自专栏linux驱动个人学习

linux内核的冷热页分配器

先说说cpu的cache,和cpu的cache比起来访问主内存是非常慢的,为了加快速度根据本地性原则,cpu在访问主内存的时候会把附近的一块数据都加载到cpu的...

9310
来自专栏linux驱动个人学习

各种页的意义

内存回收,也就是系统释放掉可以回收的内存,比如缓存和缓冲区,就属于可回收内存。它们在内存管理中,通常被叫做文件页(File-backed Page)。大部分文件...

6920
来自专栏Android技术分享

一篇文章教你读懂UI绘制流程我的Android重构之旅:框架篇

在我们开发的初期往往并不需要什么框架,因为 Android Framework 良好的容错性帮助我们避免了很多问题,甚至你不需要深入的学习就可以写出一个较为完善...

9410
来自专栏一名白帽的成长史

【Linux】聊聊Linux文件管理那些事

//在Centos7之前,bin目录和sbin目录直接存放于根目录中,Centos7就移动到了usr目录中了,同样tmp目录也从usr移动到了var目录中去。

8120
来自专栏linux驱动个人学习

Linux-3.14.12内存管理笔记【构建内存管理框架(1)】

传统的计算机结构中,整个物理内存都是一条线上的,CPU访问整个内存空间所需要的时间都是相同的。这种内存结构被称之为UMA(Uniform Memory Arch...

11920
来自专栏linux驱动个人学习

Linux-3.14.12内存管理笔记【伙伴管理算法(2)】

具体的算法初始化则回到start_kernel()函数接着往下走,下一个函数是mm_init():

11850
来自专栏科技分享

Linux下经常使用的C/C++开源Socket库

1. Linux Socket Programming In C++ : http://tldp.org/LDP/LG/issue74/tougher...

16820

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励