Linux下编程有甚么劣势?

本问题原标题“Linux有什么好的?”,属于题主概括能力不足造成的事故。如果你发现有些答案牛头不对马嘴,请不要急着点没有帮助,毕竟这都是题主的锅。 今天看了个新闻 无人机要开源 Linux Foundation推Dronecode项目_IT新闻 我对无人机感兴趣,但对Linux不了解,只知道它是个操作系统。 //其中有句:有很多无人机项目都是在 Linux 系统下编写的。意思是Linux系统能来编程吗,请问用Linux编程有什么优势吗?改进了一下格式,以防…

Linux 系统下编程过程给我体验最深的是,缺少某个软件是,使用自带的包管理工具,可以很快地找到相应的安装包并安装。并且你可以根据自己的喜欢,随意搭配各种环境,算是一种视觉享受吧。

更新一下,Linux 下编程有什么优势?一个可以高度定制的环境,是大多数程序员比较喜欢的,不同于普通用户,可能对电脑要求不会那么高。Linux 提供了这种可定制的能力,这就是他的优势。还有某些人,别在品论里咬文嚼字!什么叫 Linux 系统下不容易搭建开发环境,还能再逗一点吗?Linux 系统下开发环境相比 windows 下不要容易搭建太多!如果不是 windows 10 出了一个半吊子的子系统,你以为现在 windows 系统下开发会舒服!

使用Linux系统相比Windows最直接的好处就是,你可以完完全全地掌控你的系统,当初刚开始学的时候还无法理解。喜欢装Ubuntu这种一步到位的系统。但是随着你对Linux系统认知的加深,你会越来越抵触这类大而全的系统。

渐渐的,你会喜欢上类似于 archlinux 这类可以高度定制的系统。当初装好 arch 的时候,只有控制台,也就是纯碎的黑底白字的那种,不是终端模拟器。

然后开始装登录器,窗口管理器等等,你可以选择任何一套程序来搭配成你自己的桌面环境。可以这么说,任何一个热爱Linux系统的用户,他的系统都是独一无二的,每一个细节都有自己喜欢的元素在影响。

曾经,我也折腾过很多桌面系统,比如KDE等等。但是这类的桌面实际上太过死板,很多东西都是写死的。

附上一些桌面效果图吧,喜欢Linux的你可以尝试做一套自己的桌面,然后将所以设计到配置保存在 github 上,新的环境,一键安装。这些图片来源于网络!

(如果你喜欢这个答案的话请移步完整版:为什么要学习 Linux?原文:《自由谈》linux)

回答这个问题之前,我们先来看看 Linux 与 Windows 最本质的区别在哪里。有人会说前者免费,后者需要买 (或偷)。这只是对 “free software” 的曲解。在我看来,二者最重要的区别乃是它们对自己的用户所做的假设。对于 Linux,这个假设是:

说得更直接一些,前者假定用户是负责任的聪明人,后者反之。Linux 用户不必沾沾自喜,Windows 用户先把刀放下。这些只是假设,它们的 (不是我的) 假设。

这么滴吧,我讲个故事,缓和一下尴尬的气氛。听好,可招笑了。说,要把大象装冰箱 … 呃,不,故事是这样的:

这个故事流传甚广,但很少有人给出参考文献。这是历史上线 年由罗胜道与贾步升在美国加州南旧金山市橡树小学实施。罗是加州大学心理学家教授,而贾时任橡树小学校长。二人于 1968 年就此试验发表了《课堂上的毕马隆效应》。

毕马隆是希腊神话里的一位雕刻家,就是爱上自己作品的那位。这 (两) 个故事告诉我们:第一,只要功夫深,不怕女神不动心;第二,如果有心理学家来你们学校做试验,躲得越远越安全 —— 80% 和 20%,你觉得哪个几率更大一些?

细心的人可能注意到,上面的故事还告诉我们,他人的期望会在一定程度上影响我们的行为。这就是罗胜道与贾步升所说的 “毕马隆效应”。

Windows 如何影响用户的行为我不清楚,而 Linux 对用户的影响倒是十分有意思。既然假定 “用户知道自己想要什么,也明白自己在做什么,并且会为自己的行为负责”, 如果发生毕马隆效应,那么相当一部分用户会慢慢学会用自己的脑袋思考,按自己的意志行事,并为自己的行为负责。这就是自由,也是 “free software” 之 “free” 的本意。

其实,操作系统各有短长,无论是 Linux,Windows,还是 Mac OS。对我而言,一个值得使用的操作系统应该满足以下基本条件:

1.用户自主。用户决定系统如何工作,而不是反之。任何提示用户 “正在安装更新,请不要关机” 的行为都跟不以结婚为目的的恋爱是一个性质。用户是机器的主人,操作系统只是用户请来的助手;用户知道自己想要什么,明白自己在做什么,也会为自己的行为负责;操作系统尽量少说话,更不要下命令。用户自主还蕴含系统的可定制性:用户可以对系统做任何配置或改造。

2.用户知情。如有必要,用户可以获知系统工作的任何细节,而不是仅仅被告知 “正在处理一些事情” —— 这比不以结婚为目的的恋爱还让人无法接受。

3.系统高效。在此系统下用户可以很方便地获得各种工具,并且不同工具能很容易地组装在一起完成复杂的工作。机器更多是用来干活的,所以这一点很重要。

0. Linux 是用 C 写的,你读的就是 C 语言写成的代码,这些代码编译之后成了 Linux 内核。不过因为内核几乎得自己靠自己,你多半是看不到什么外部的函数了(当然,有种科技叫做静态编译,不保证 Linux 内核没去用,我可懒得读 Makefile)。

1. Linux 一方面好改(驱动就是比 BSD 多),另一方面允许狂改(GPL v2),还比较耐艹。不用 Linux 用别的有时候还真难,更别说 Linux 不要钱了。

2. Linux 只是个平台,理论上说和别的系统没什么两样,只不过和 Windows 比少了反斜杠路径又多了 UNIX 的美味,和 OS X 比少了各种签名的痛苦又多了几个会叫你 Google 一下就知道了的程序员……(题主要的是优点我就只说优点吧)C 的话的确是 UNIX 和类 UNIX 世界的传统主力,不过什么 Java C# nodejs PHP Python 也都有人用在 Linux 上用得很爽啊……(因为 Linux 某些方面好开发,新语言也很多都是 Linux 优先支持的。类似地,一些内核支持让某些程序/语言在 Linux 上有特殊优势。)

3. 你要给 Linux 写东西,看内核是不够或者没用的(源代码什么的还总是要特别去看的话某些平台的程序员早就…)你需要摸清自己需要什么,然后去找对应的库,接下来学会拼起来(看你妹的源码,有库文档看还是看文档啊)……你要修改 Linux,在内核的编译选项菜单里面那一堆基本够用,并且外围软件你更可以自己裁剪啊……当然要是题主是内核裁减巨巨那当我没说。

Linux 只是个内核,一个特性多到处用的内核,而它上面的程序和程序需要的库,又要从别的代码编译。这些代码里面有个来源是大头,它就是 GNU,类 UNIX 世界自由的灯塔……

GNU 的信徒(啊呸)们让 GNU 和不少其他人智慧的代码(包括我们的 Linux)一同工作,好让这些代码显示出他们各自的名字:Redhat, Debian, OpenSUSE, ArchLinux, Fedora, Gentoo, Ubuntu…

听信了我评论区里面说 mono 对 WinForms 支持好的各位,我对不起你们啊。mono 这坑爹玩意儿,你去查系统默认字体给你返回的是 MSDN 文档上的 Windows 字体(Xamarin#40791)还不算,这玩意 libgdiplus 干脆不支持字体回落(Xamarin#39418)。更不要说 UTF-16 支持了。这货能用?Bug List

不过,Linux,却被一位来自圣诞老人故乡芬兰的60后大叔,因着Just for fun的缘故,开发于“一个窗帘紧闭黑灯瞎火的芬兰少年的卧室中”。

如今,Linux的父亲——李纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds,以下简称“李纳斯”),也已49岁。

能亲眼见证自己的“儿子”,如此惠及全球,一定很有成就感。然而,他开发出Linux,却不过是兴趣使然。

这台Commodore VIC-20计算机,唯一能做的事,就是用Basic语言,在上面编程序。

外公经常在上面做数算,因为眼花就让李纳斯,帮自己录程序。而这也建立了李纳斯的数学认知,并学会了编写小游戏。

考入赫尔辛基大学后,他遇到了影响一生的那本书——《操作系统:设计和实现》,作者是Andrew S. Tanenbaum。李纳斯曾如此美誉该书,“这本书把我推上了生命的高峰”。

那时, Unix已开发出来。Unix最早是用汇编写的,开发过程中,Unix的两位创始人肯·汤普逊和丹尼斯·里奇,觉得用汇编写程序,实在太痛苦了!

于是,哥俩决定用高级语言,来完成下一个版本,他们先后尝试了Fortran和B语言,却只遇见了成功他妈——失败!

这其中,哥俩中的丹尼斯,收拾好情绪,继续改造 B 语言。丹尼斯为B增加了数据类型,并让B语言,能直接编译为机器码,然后又以「New B」来命名这门语言(好名字)。

后来,丹尼斯把「New B」改为C语言,并用C语言,重新编写Unix的内核,从此,Unix与C白首不相离。

尽管Unix可以完成很多操作,但是必须由人来完成。正是这一bug,催促着灵魂不安分的李纳斯,想去优化它。

1991年初,22岁的李纳斯,花3500美元,分期付款买了台杂牌组装电脑,然后又买了MINIX(Mini Unix的缩写)操作系统。

李纳斯在摸清MINIX 的优点缺点后,把MINIX系统改成了自己得心应手的「战斗机」。也就是在这台电脑上,Linux的初始版本诞生了。

事后回忆这段经历,李纳斯说,“这花费了我大量的精力:编程-睡觉-编程-睡觉-编程-吃饭(饼干)-编程-睡觉-编程-洗澡(冲冲了事)――编程”。

熬了四五个月昏天黑地的日子后,这位刚过弱冠之年的北欧大鼻子青年,开发出了Linux 0.01。自此,他成了那个时代,被追捧的程序员偶像。

Linux从出生,就打着开源的烙印,这对Linux的后续发展至关重要。从1991年,内核0.01版本发布,到1994年1.0版本登场,世界各地无数的开发者,都为Linux提交了代码。

李纳斯还为Linux建立了讨论组comp.os.linux,吸引全世界的程序员,不断地推进Linux长成巨人。

作为版权所有者,李纳斯如此制定Linux规则:1.可免费使用该操作系统,但不得将它作为商品。2.对其所作的改动和改进,必须以源代码的形式,将其公开(而不是二进制,这是不公开的)。3.如不同意以上规定,则无权对它进行复制或从事任何行为。

1996年底,李纳斯在接到Transmeta(全美达)这家在美国并不知名的公司的offer后,离开芬兰飞赴美国。在全美达,一待就是六年。

某种程度上,这六年,严重影响了Linux操作系统的前进,因为李纳斯成了“硅谷小李子·没时间·分身乏术打工男”。

Linux出现前,桌面操作系统基本由微软和苹果控制。Linux出现后,桌面操作系统的蛋糕格局,依旧变化甚。

未经允许不得转载:主机宝贝 » Linux下编程有甚么劣势?

评论 抢沙发

评论前必须登录!