pxwwwd 发表于 2023-10-3 18:41:48

Linux 相比 Windows 有何优势?

为什么很多公司都在用Linux开发?

evercrete 发表于 2023-10-3 18:42:44

可重复性高

开源、免费啥的很多人提到了,但我不是很赞同。事实上在Linux和Windows之前,闭源且更为昂贵的各种版本Unix在企业应用中大行其道。哪怕到了今天,还有一大波程序员认为mac是最好的开发工具——macOS开源还是捆绑macOS销售的mac比算上Windows许可费用的PC便宜?

不提macOS,我敢不客气说一句,和Windows相比,Linux上的GUI都是垃圾。Linux的GUI对我来说只有三个用途:看网页可以用鼠标点击超链接,看PDF能看原始排版,开N个xterm。

正是因为Linux的GUI如此垃圾,Linux下大部分应用对命令行、基于文本的配置支持都很好。GUI能做的事情几乎都可以用命令行完成,这意味着一些重复频率高的操作,都可以通过编写脚本完成。

Windows如果说以前的命令行不够强大的话,平心而论PowerShell足够强大了。我这里不想对比PS和*nix的Shell到底哪些方面什么场景谁强一点好用一点,我就说一点:除了操作系统本身提供的应用、功能以外,大量的第三方应用,*nix的shell几乎可以完成所有的GUI能实现的操作、功能;但Win的PS不可以,支持PS并且能用PS完成GUI界面操作的第三方应用,100个应用你找不出2个来。

对于个人用户来说,这个优点其实没啥大不了的,反正常用的就那么一两台设备,普通桌面用户也没多少操作是真正重复度高的,更多的是人机交互操作,用户根据屏幕的不同信息进行不同输入、操作,就算应用支持PS,用户自己对PS开发很熟悉也写不出几个脚本。

但对于一个人管理N台设备,以及其它虽然设备数量少但任务重复频率很高的场景,*nix的shell就很有用了。支持正则表达式,加上grep、sed、awk之类的强大文本处理命令,配合shell变量,你可以用shell脚本完成98%的操作,使用时只需要简单的运行一下脚本,顶多加几个参数或者输入若干必须的信息。而且这些个脚本可以轻易的用wget、curl、git等命令从网络上下载到本地。

石之轩 发表于 2023-10-3 18:43:37

linux最大的优势在于开源
windows出了一个bug,你除了把盖茨和纳德拉的祖宗十八代都骂个遍以外什么也干不了,只能等待更新,等待更新后用更多的bug取代现在这个bug,然后再把盖茨和纳德拉骂一遍
linux不一样,出了一个bug,你完全可以自己修好它,自己编译,现在你得到了一个真的修好bug的系统,你还可以把修复的办法提交回主线

当windows能良好的工作并满足你的需求的时候,windows无疑是更易用的
但一旦windows不能解决你的需求,你又不是微软的巨型客户没有资格定制功能的时候,linux提供了一种更为自由开放的解决方案

当然,我现在用wsl,wsl除了一坨屎的io性能外真挺好

zmy609 发表于 2023-10-3 18:44:21

Linux和Windows都是非常用户友好的操作系统;但Linux用户={程序员,运维人员},而Windows用户={会呼吸的人属个体}。这就是Linux的劣势所在——但也是优势所在。

这很容易理解。

Windows的目标用户是所有人,那么为了照顾绝大多数不懂技术的普通人,它自然就要做一些取舍……
比如,它的administrator其实是……半真不假的。
原因是,它发家之初压根就没什么像样的权限管理,大家习惯了无法无天;然后,突然,它搞了权限系统(不搞不行了,病毒泛滥)——但没人买账:它的开发者没有这个习惯,它的用户更没有这个习惯。
没有,怎么办?
迁就。啊,就让一切软件想装Windows目录就装吧,就让那些没有administrator权限就跑不了的软件继续跑吧——不然还能咋地?谁敢惹那些什么都不懂的小白用户!
后来,实在不是事,就把administrator用户藏起来、同时限制权限;但这样显然不行,会导致某些软件不能运行的……于是又搞了个UAC,触犯权限了,不要冷冰冰的给咔嚓一下干死,而是温柔的把屏幕黑下来,弹出个UAC确认框,告诉用户这可能有点危险……
然后,全网到处都是贩卖“如何关掉讨厌的UAC”之类高招的……
(事实上,Windows的用户权限要更复杂一些:它的普通用户其实是半拉administrator,UAC出来,点一下,就补全了;而它的administrator其实是半拉普通用户,因为大部分操作同样要过UAC关……但你还不能说它的用户权限名存实亡,域用户了解下……)

类似的,我提过很多次了,win10刚上市时,他们居然把网卡基本信息(ip、gateway、dns等)都给藏了;网卡出了问题,这些信息你看不见,只能像个傻子一样,点“故障解答”、再点“下一步”,然后看窗口里面转圈圈,一转五六分钟——里面赫然写着“故障助手无法解决此问题,正在联网搜索解决方案”。
妈蛋网卡出了问题,你联网搜索解决方案?
黑色幽默。
更黑色幽默的是,明明看一眼基本配置信息就能把故障猜透的、身为专业技术人员的我,也只能傻子一样坐着,看那个傻子窗口犟驴一样转上N分钟的圈圈!
关掉?关不掉,一片白。

你看,不清晰,不直观,到处都是特例,到处碍专业人员的事——你要是程序员,能不讨厌吗?
但没关系,人家用户多。这套,人家用户买账;你想赚钱,你想伺候那些掏钱的大爷,你还不想麻烦……你算老几?

Windows用户里,程序员恐怕连1%甚至千分之一、万分之一都不会有。那人家干嘛理你们这一小撮劣质用户?
尤其是,伺候小白的话……其实你也没必要懂权限啊,Windows拿你当小白一样伺候,不好吗?你只管自己窗口里面那点事就行了!

而Linux完全相反。除了专业人员就没人用它;它也就一门心思的讨好程序员自己了。
什么?你不是程序员,也想用Linux?
行,来吧!Linux是用户友好的——不过,您真的不打算学点程序?
哦,不不不,我们欢迎一切用户。你完全可以不懂程序,不要紧不要紧,只要你对写程序有那么一点点意思,那就足够了!
你看,说一千道一万,还是默认“用户对技术多少感点兴趣”;看看隔壁Windows,人家对用户的定义,多帅啊——傻瓜!

正因为默认用户都是专业人员,所以Linux可以做的极其简洁、极其“透明”、极其的相信用户……
没错。你甚至可以在它运行时删除正在运行的内核文件、替换内核模块——你是专家,你做什么都有道理!
于是,很多小白兴冲冲的进来,一看教程,很简单嘛;一上手,嗯,他们就用vim随机数在至关重要的配置文件(一个脚本程序)里面乱写乱画起来……
——嗯,Linux下如何产生随机数?
——让一个新手退出vim。

结果?
还用说。肯定直接就把系统搞死了。
什么?你root啊。root当然可以随便做什么了。哪怕是修改内核模块这么了不得的事,对root,难道就不是敲一个命令就行的日常工作了吗?
echo "1" > /proc/sys/net/ipv4/tcp_syn_retries难道内核空间就是天生的贵种、就需要什么特殊的、神圣的东西才能访问不成?
谁规定的、下里巴人的bash脚本就不能用粗俗的echo+重定向修改运行中的内核配置?

对程序员来说,一切程序都是程序。内核也不例外。
换句话说,在Linux下,几乎你学到的一切,都可以推广、都适应一切情况。
你看,一下子,思维负担就卸下来了。
你只要知道自己有没有权限、正在做什么、思路是什么,那你就可以为所欲为。

爽吧?
对公司来说,又能降低程序员心智负担、提高开发效率,这玩意儿,是不是不用就傻?
用户?我们给用户的是软件,是web页面,我们压根不需要用户碰操作系统——那我们干嘛不用Linux?

但,爽的前提是,你得是专业技术人员,最好是程序员。
否则,你会发现,Linux……太特么冷酷了!
它从来不会柔和的、小心翼翼的告诉你,你这个操作有危险,你要在UAC框中点同意……
不。它只会冷冰冰的告诉你access denied.
为什么denied?
自己找原因。
于是,你开始检查。权限?嗯,这个东西的权限是……www?www是谁?好奇怪的用户……什么?它不能登陆?也没有自己的home?为什么?为什么会有这么奇怪的用户?我把它的权限改成root行不行?彻底不会动了?不是root最大吗?算了,改回来,访问权限改成777行不行?SELinux是什么玩意儿?它怎么也跳出来警告了?
如果你真的比较适合搞技术的话,你会从这里导出来一头驴……哦不,一撂子书;这些书会从Linux的权限管理、用户管理讲起,一口气讲到行为检测……
但如果你不太适合搞技术,你会发现一大堆莫名其妙的网页,这些网页可能告诉你一个命令,你一敲,问题解决了——但很快,公司安全部门给你一个严重警告……

于是,一些人会发现,Linux实在太用户友好了,我就是它的用户;而另一些人……开始怀念Windows。

超级赛亚人 发表于 2023-10-3 18:44:35

我觉得我应该是有资格来讨论这个问题的吧?

http://pica.zhimg.com/v2-bbc6bd4b2e84f7b75ee03f3ed0407a8b_r.jpg?source=1940ef5c
主力Linux工作站+网络中枢(这玩意儿文章快写完了,整理思路就能发)用的是Arch Linux,要的就是那个cutting edge;还有台ThinkPad装个RHEL搞事情用;主力笔电这边还是继续用Windows,主要是魔霸5R这个b机器真的没法脱离Windows生存,还是那句话,ROG不会做笔电可以不做的,我们消费者不是很介意的。
要说Linux相比Windows最大的优势,我个人觉得第一就要说到高可用的终端,以及以CLI为核心的整个Linux生态。我就先不说Ansible这样的自动化运维系统,以及Anaconda这样的安装自动化系统,我只需要写一个脚本,就可以在任意一台电脑上自动恢复我的整个工作环境。这里的整个工作环境不只是安装了所有我想要的软件,还包括我所有的个人设置与个人文件。我甚至还可以在脚本里加入加密功能,只能在检测到我的密钥卡物理插入机器之后才能够释放我的个人文件。在Linux里,几乎所有事情都能用几条指令马上完成,从重启电脑到建立RAID阵列套ZFS并挂载到网络。这种高度依赖CLI的使用方式虽然可能不利于新用户上手,但一旦熟练使用之后做事情的效率会高很多,体验也会好很多。当然,我知道Windows上的PowerShell也很好用,但Windows毕竟并不依赖于命令行(当然这点其实见仁见智,对于很多人来说ta就不想看到命令行,这也是十分可以理解的),很多软件的安装方式强制需要人工处理,我不敢说绝对不可能自动化,但难度高了好几个数量级这是肯定的。
Linux体系还有其他的技术优势。譬如,由于内核GPL开源,用户可以针对自己的需求去定制编译内核,只保留自己用得上的驱动程序(猜猜看为什么TOP500全是Linux?A64FX那种逆天架构你等主线合并+发行版打包等到猴年马月?没有源码怎么针对进行架构优化?);包管理器能够让具有专业知识的用户更轻松地管理自己电脑里所安装的软件包(前面已经说过了);可以应用最先进的学术界和工业界的研究成果(又要拉出富岳来说了,像TofuD这种先进网络架构一定是第一时间上Linux的,毕竟开源系统,好改);UNIX血统可以导入大量大型机领域已经完成的工作(为什么IBM要买红帽?);相对极低的系统占用(左上角那台Arch的P775此时正在以2K@170hz的水准输出完整的KDE桌面,桌面还是WallpaperEngine的二刺螈画面,占用才1.5G,这不低吗)
不过有一说一,你说人人都上Linux我也是反对的,没必要,如果你觉得命令行不是你的菜,或者你喜欢打游戏/工作需要的软件不支持Linux那就不要折腾自己搞什么Proton啦DXVK啦第三方代用啦这些的,好好用就行。Windows/macOS也是很棒的操作系统啊,没有什么不好的。

kui2004 发表于 2023-10-3 18:44:54

我想要一个尽量只保留必要特性的操作系统做我的专用应用系统的平台,WINDOWS给不了,LINUX可以。
页: [1]
查看完整版本: Linux 相比 Windows 有何优势?