本问题原标题“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竟在后来,占据了服务器市场半壁江山。
商场如战场,李纳斯也因此,和微软结下梁子。他的头像,被钉在了微软公司的飞镖靶心上。李纳斯对此调侃道,“一定是我的大鼻子太好瞄准了。”
而李纳斯和苹果之间,就没那么剑拔弩张,毕竟Linux和OS X也算是一起从前辈Unix那里一起学(mo)过(fang)的同门师兄。
面对乔帮主邀约,李纳斯果然没有......接受,他说,“为什么我要关心这些?为什么我要对苹果公司的故事表现出兴趣?我不觉得苹果公司所做的事情有什么吸引我的地方。我一生的目标也不是占领什么面操作系统的市场(的确,虽然我马上就要做到这点了,但这从来就不是我的生活目标)。”
与此同时,Linux的开源模式,也红得发紫。Linux 1.0版本推出后,很多基于Linux操作系统的公司纷纷冒出,“红帽”公司便是典型代表,连IBM和英特尔,也给Linux打call。1999年,IBM还花费10亿美元来推广Linux。
Linux以开源、独立、自由之风,在服务器端大获成功,甚至可以说,没有Linux,就没有互联网的今天。
再后来,移动互联网时代来了。OS X发出了新枝——iOS,Linux则诞生了 Android,而这两位共同的祖父,就是Unix。
当初,乔布斯和李纳斯的一次不愉快谈话,让OS X和Linux井水不犯河水。十几年后的今天,它们的“后代”,终于还是成了肩并肩行走在移动互联网时代的双子星。
凭借Linux,李纳斯获得了无数成就和荣誉。其中,曾两次给李纳斯颁发奖项的美国《时代》周刊,对其给出了极高的评价:
“有些人生来就具有统率百万人的领袖风范;另一些人则是为写出颠覆世界的软件而生。唯一一个能同时做到这两者的人,就是托瓦兹(李纳斯的姓氏)”。
甚至,在《时代》周刊根据读者投票,评选出的二十世纪100位最重要人物中,林纳斯竟排到第15位,而从20世纪的最后几年,就开始霸占全球首富称号的比尔·盖茨,是第17位。
然而,他却是一个不像名人的名人,他和妻子——芬兰空手道冠军托夫、以及两个女儿,住在圣克拉拉的一个公寓里。对于“Linux之父”的美誉,他声称自己发明LINUX“只是为了好玩”。
不过在中国,比李纳斯大5岁的、有着“WPS之父”之称的求伯君,曾于1988年,独自开发出WPS,时年仅24岁。
巧合是,两个人创立传奇的工具都是386电脑,或许,是时代造就了李纳斯和求伯君这样的独立软件英雄。
当下,中国已是仅次于美国的互联网第二大国,没准看文章的你,就是下一个“XX之父”呢?愿未来可期!
CSDN 公众号秉持着「与千万技术人共成长」理念,不仅以「极客头条」、「畅言」栏目在第一时间以技术人的独特视角描述技术人关心的行业焦点事件,更有「技术头条」专栏,深度解读行业内的热门技术与场景应用,让所有的开发者紧跟技术潮流,保持警醒的技术嗅觉,对行业趋势、技术有更为全面的认知。
如果你有优质的文章,或是行业热点事件、技术趋势的真知灼见,或是深度的应用实践、场景方案等的新见解,欢迎联系 CSDN 投稿,联系方式:微信(guorui_1118,请备注投稿+姓名+公司职位),邮箱()。
我就问问你不用Linux你用啥?BSD啥的就不说了,毕竟小众而且其实也是通的。Nuttx啥的就更不用说了,跟Linux也差不多少。还是你打算用安卓?说白了也是Linux啊。
你用X86架构的版本?一个Win10 Home版都要100刀,这钱你干点啥不好?更何况这样一个庞然大物你打算怎么装到无人机上?让无人机带个笔记本上天?
还是你打算试试Windows Mobile/Windows Embedded?据我所知这玩意不卖个人,而且你找不到合适的开发KIT,当然你可以挂了WindowsPhone上天,至于WindowsPhone多少钱我也不说了,不是RTOS你真放心它来管无人机?
这个叫做Edsion,运行Linux如行云流水一般,单体45刀,100刀你就能凑个开发全套。软件神马都是免费的哦。
这个更夸张,叫Raspberry Pi Zero。算是概念产品目前有价无市,1G的CPU外带512MB内存,跑个Linux自然不在话下,最重要的是这个仅售5刀!!没有开发板,你买回来插个TF卡就可以开始了。
windows 的好处人人皆知,因为正是它承担了 普及 pc 的使命。他是一个亲民的用户友善的系统,没有学习成本。所以,君不见,甚至还没上小学的小孩也可以玩的飞起,它强调易用性,犹如 ipad 的理念。让每个人都可以用电脑愉快的玩耍,而且绝大多数人用 windows 用于大众化娱乐,比如说听歌,看电影,上网,编辑 office 文档。这也许是覆盖了 99 % 的人群使用电脑的方式。所以 windows 就强势在 pc 上,这也是很多人研究 windows 从事 windows 上的开发的原因,专门深入研究 windows 系统的人和书也颇有一些。
相对的 linux 就只能是一个内核的名称,它通过各种发行版体现为最终的操作系统。好处在于,它有一套自己的软件包管理,大量免费大量开源的软件,基本上没有流氓软件,恶意软件的困扰。然而由于国内 windows 盗版站统治地位,所以 linux 没有版权问题的优点,在最终用户那里体现的不明显。而 linux 需要反复学习,长期使用才能驾驭的系统,学习成本很高,所以在大多数人的最终用户那里,它一定不如 windows 。就好像 vim 一样,不学习一段时间就简直没法用。
那晚,想重启一下服务器,uptime了一下,发现这台机器已经四年没有重启了,比我入职时间都长,最后想想还是算了…
首先,题主,“用linux代码编写”这在程序员眼中就是个病句,根本不知道在说什么。我知道它来自你引用的那个链接,但那个编辑什么都不懂,你当他是个文盲就好了。
Dronecode Project项目和LINUX几乎没有直接关系,它是linux foundation基金会的项目,但不表示它和linux有关系。他包含多个控制飞行器的子项目,这些项目有些基于linux os,有些基于windows,但无论如何,不是linux代码写的,linux代码是个什么鬼?
其实如果你不做针对Linux的客户端开发等极少数方向,那就没啥优势——反正Linux开发的大头基本上在服务器上,而不管是跨平台开发还是远程开发都有非常成熟的解决方案,你既可以在Windows/Mac上完成大部分开发工作,最后再在Linux服务器上部署测试,也可以直接远程到服务器上写代码(用vim或者VSCode+SCP都可以),终端系统完全可以按你自己的喜好想用哪个用哪个

