目录
目前常见的三大操作系统:Windows系统、Linux系统 和 Mac OS操作系统。
首先,不管是Windows操作系统、Linux系统还是苹果的Mac OS操作系统,甚至包括操作系统的鼻祖UNIX操作系统,最早都是用C语言编写的。
UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞生于 20 世纪 90 年代初,Mac OS诞生的时间和Linux时间差不多。可以说 UNIX 是操作系统中的"老大哥",后来的 Windows , Linux 和Mac OS都参考了 UNIX。
1 UNIX 由来
实际上UNIX操作系统和C语言都是由贝尔实验室的汤普森(Ken Thompson)和丹尼斯·里奇(Dennis M. Ritchie)于1971年先后改造发明的,如果说真正的操作系统,世界上只有一个,那就是UNIX操作系统。
下图是肯•汤普森 与 丹尼斯•里奇的合影,膜拜一下。(这么多胡子,天才都是不修边幅的,大神就是这么随意)
UNIX的部分技术来源可追溯到从 1965 年开始的 Multics 工程计划,该计划由贝尔实验室、美国麻省理工学院和通用电气公司联合发起,目标是开发一种交互式的、具有多道程序处理能力的分时操作系统,以取代当时广泛使用的批处理操作系统。
可惜,由于 Multics 工程计划所追求的目标太庞大、太复杂,以至于它的开发人员都不知道要做成什么样子,最终以失败收场。
以肯•汤普森为首的贝尔实验室研究人员吸取了 Multics 工程计划失败的经验教训,于 1969 年实现了一种分时操作系统的雏形,1970 年该系统正式取名为 UNIX。
想一下英文中的前缀 Multi 和 Uni,就明白了 UNIX 的隐意。Multi 是大的意思,大而且繁;而 Uni 是小的意思,小而且巧。这是 UNIX 开发者的设计初衷,这个理念一直影响至今。
有意思的是,肯•汤普森当年开发 UNIX 的初衷是运行他编写的一款计算机游戏 Space Travel,这款游戏模拟太阳系天体运动,由玩家驾驶飞船,观赏景色并尝试在各种行星和月亮上登陆。他先后在多个系统上试验,但运行效果不甚理想,于是决定自己开发操作系统,就这样,UNIX 诞生了。自 1970 年后,UNIX 系统在贝尔实验室内部的程序员之间逐渐流行起来。1971-1972 年,肯•汤普森的同事丹尼斯•里奇发明了传说中的C语言,这是一种适合编写系统软件的高级语言,它的诞生是 UNIX 系统发展过程中的一个重要里程碑,它宣告了在操作系统的开发中,汇编语言不再是主宰。到了 1973 年,UNIX 系统的绝大部分源代码都用C语言进行了重写,这为提高 UNIX 系统的可移植性打下了基础(之前操作系统多采用汇编语言,对硬件依赖性强),也为提高系统软件的开发效率创造了条件。可以说,UNIX 系统与C语言是一对孪生兄弟,具有密不可分的关系。
20 世纪 70 年代初,计算机界还有一项伟大的发明——TCP/IP 协议,这是当年美国国防部接手 ARPAnet 后所开发的网络协议。美国国防部把 TCP/IP 协议与 UNIX 系统、C语言捆绑在一起,由 AT&T 发行给美国各个大学非商业的许可证,这为 UNIX 系统、C语言、TCP/IP 协议的发展拉开了序幕,它们分别在操作系统、编程语言、网络协议这三个领域影响至今。肯•汤普森和丹尼斯•里奇因在计算机领域做出的杰出贡献,于 1983 年获得了计算机科学的最高奖——图灵奖 (实至名归)。
下图是从UNIX衍生出来,目前常见的三大操作系统:Windows系统、Linux系统和Mac OS操作系统。
首先这三个系统设计上有本质的区别。最大的区别在于Windows是一个成熟的商业操作系统,拿过来就能用,而Linux不同,它是指一个内核,苹果操作系统是UNIX的一个衍生品。
操作系统 | 形态 | 说明 |
Windows | 商业产品 | 微软公司1983年开始推出的一套商业操作系统。 |
Linux | 一个内核 | 芬兰的李纳斯·托沃兹( Linus Torvalds) 1991 年上大学时发布的, 他对当时流行的教学系统Minix (Unix的一个版本)的很多特点很不满意, 于是决定自己写一个合乎自己要求的操作系统, 并把这个内核放到了Internet 上, 供大家修改。后来经过众多世界顶尖的软件工程师的不断修改和完善。 |
Mac OS | 专属系统 | 苹果公司基于FreeBSD操作系统的改造。 |
通过上表可以看出,其实Windows和Linux在哲学设计上是有本质区别的。Windows操作系统倾向于将更多的功能集成到操作系统内部,并将程序与内核相结合;而Linux不同于Windows,它的内核空间与用户空间有明显的界限。根据设计架构的不同,两者都可以使操作系统更加安全。而苹果操作系统只不过是UNIX的一个细小分支而已。
Linux 只是指操作系统的核心, 并没有各种应用程序, 如网络工具、多媒体软件等。因此现在市场上有很多种Linux Kernel 为核心再集成搭配各式各样的系统程序或应用工具程序组成的一套完整的操作系统。
Linux是可以任意包装*配置的东西。任何一个人,一家公司 都可以按照自己的想法,比如加一点功能,加中文支持,作一个Linux出来。这些 Linux虽然核心部分都一样,但是他们所带的各种软件,缺省的配置都不一样。
Linux 分为 内核版本 和 发行版本。
Linux 内核版本就是Linux的核心版本 由官网 www.kernel.org 发布,如下图所示:
Linux 发行版本就是各个公司的在Linux核心版本上就行包装,添加想要的内容,这就衍生出非常多的发行版本,如下图所示。譬如的redhat, CentOS, 红旗、Ubuntu等,这些都是的Linux衍生操作系统。
话说回来关于个人办公要使用什么操作系统、个人做图要用什么样的操作系统、建设网站的服务器要用什么系统,其实在行业中都有大体的规则。譬如个人PC娱乐还是Windows系统比较合适、专业做图像让是MAC系统了,建设网站大家服务器建议你还是Linux了!下面简单介绍Linux 由来,毕竟是开源的。
2 Linux 由来
Linux 内核最初是由 李纳斯•托瓦兹 (Linus Torvalds) 在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版 UNIX 操作系统 Minix 太难用了,于是决定自己开发一个操作系统。第 1 版本于 1991 年 9 月发布,当时仅有 10 000 行代码。下图是李纳斯•托瓦兹(Linus Torvalds)图片,膜拜一下大神。
李纳斯•托瓦兹 (Linus Torvalds) 没有保留 Linux 源代码的版权,公开了代码,并邀请他人一起完善 Linux。与 Windows 及其他有专利权的操作系统不同,Linux 开放源代码,任何人都可以免费使用它。
据估计,现在只有 2% 的 Linux 核心代码是由李纳斯•托瓦兹自己编写的,虽然他仍然拥有 Linux 内核(操作系统的核心部分),并且保留了选择新代码和需要合并的新方法的最终裁定权。现在大家所使用的 Linux,我更倾向于说是由李纳斯•托瓦兹 (Linus Torvalds)和后来陆续加入的众多 Linux 好者共同开发完成的。
李纳斯•托瓦兹 (Linus Torvalds)无疑是这个世界上最伟大的程序员之一,何况,他还搞出了全世界最大的程序员交友社区 GitHub (开源代码库及版本控制系统)。
关于 Linux Logo 的由来是一个很有意思的话题,它是一只企鹅,如下图所示,为什么选择企鹅,而不是选择狮子、老虎或者小白兔? 当然有很多种说法,其中有一种说法:企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于世界上的任何国家,可国家都无权将南极洲纳入其版图。Linux 选择企鹅图案作为 Logo,其含义是:开放源代码的 Linux 为全人类共同所有,可公司无权将其私有。当然我比较信服这个说法,有种造福人类的使命感。
3 Windows与Linux的主要区别
1、免费与收费
Linux都是免费的,Windows是付费的,只有购买Windows系统的电脑,就已经向微软付费了。
2、软件与支持
Windows下可以运行绝大部分软件、玩99.999%的游戏、硬件厂商近乎100%的支持。Linux下可直接运行的软件数量和Win下比起来就是1和99的区别,而且目前选择Linux的人基本不会考虑玩游戏(虽然有能在Linux下运行的游戏,但实在太少。),同时Linux正期待更多硬件厂商的支持。
3、安全性
很多人说Linux安全性高,仁者见仁智者见智了。其实我觉得这个根本没必要讨论,当Linux普及程度达到现在Windows的程度,那么Linux的漏洞、病毒、木马、后门什么的绝对会如雨后春笋般纷纷冒出,虽不敢说比Windows严重,但绝对不会比win少,说白了就是因为现在Linux的用户量太少,受关注也太少,做病毒者当然希望自己的作品流传越广越好(现在的病毒更倾向于获取非法利益,比如账号密码什么的),所以,病毒目前不会考虑少数派的Linuxer。
世上没有攻不破的系统、没有穿不透的防火墙,一件事你做不到,只能说明你水平不够,这里适用一句话:道高一尺,魔高一丈。 但就目前来说,如果你对Windows下层出不穷的病毒、木马、垃圾感到极度厌恶,那的确可以尝试一下Linux。
4、开源
开源就是指对外部开放软件源代码。
如果一个小程序员写了个软件,里面有他独创的新技术,他想靠这个赚钱,甚至还为此申请了专利,这时某些团体以安全为由,要求他公开源代码(这样就可以仿制了嘛。),并且最好免费给大家使用,身边一群眼红程序员赚钱的人也在跟着起哄。一个独立商业团体的合法知识产权、资产权益遭受政治强权的公开侵占、迫害,这就是微软在欧洲所面临的开源问题(至于微软是否是奸商,这是另一码事,并不能成为打砸抢、吃大户的理由)
开源与否,软件厂商有选择的权力;是否购买使用这个产品,这才是用户的权利。 其实想深一点,如果Linux不开源,它还能有现在这个市场吗?因为很多人就是冲着开源才使用Linux的。
5、使用习惯
一样的地方:桌面、图标、鼠标点击,有区别吗?不一样的是,Windows放弃了dos的字符模式,主攻图形界面,让桌面系统更易用。Linux字符模式运行的更好,图形界面还只是附带品,可有可无。根据他们的上市时间来看,只能说Linux把Windows扔掉的东西又捡回来并且发扬光大。
6、技术支持
如果你不熟悉或从来没接触过电脑: 学Windows --那身边随便一个上过网的人都可以指点你两下。学Linux--难,需要买书或上网查阅资料。
如果你熟悉电脑和上网,那Windows和Linux其实没什么区别,网上都有海量的资料给你查。但是找修Windows电脑的人远比找一个修Linux电脑的人容易得多.
Windows平台:数量和质量的优势,不过大部分为收费软件;由微软官方提供重要支持和服务
Linux平台:大都为开源*软件,用户可以修改定制和再发布,由于基本免费没有资金支持,部分软件质量和体验欠缺;有全球所有的Linux开发者和*软件社区提供支持
4 关于Linux的一些疑惑
作为初学者,就是很难理解Linux有什么好,上手比较难,需要慢慢适应,下面就是之前看到的一些疑惑,记录一下。
1 Windows有完善的图形界面,而Linux为什么要学命令行。
首先,命令行绝对要比图形界面先进的多。命令行是程序员的第一界面,而图形界面是普通用户的第一界面。也许很多人会有不同意见,其实我们再向前想一步,就很清楚了。
命令行的下一步演化是什么? 很简单就是语音控制,就是把人类自然语言转化为命令
图形界面的下一步演化是什么? 是姿势控制。从目前的Windows系统来说一共只有3种姿势, 单击,双击,拖放。而更先进的IPad有拨动,画圈等。
姿势控制很简单,便于用户上手,语音控制很复杂,但是控制精度很高。作为程序员我们要求电脑完成的工作要比普通用户复杂的多,所以使用命令行会非常高效。退一步讲,图形界面本质也是命令行,只不过将姿势翻译成命令执行而已。程序员编程的代码也都是“命令行”,一条一条的指令而已。
总之,只要能打破对Linux命令行的恐惧感,接下来的事就会非常容易了。这个命令行绝对不是你简单想像中的命令行,它是非常智能化的。
2 Linux有那么多目录,那么多命令,怎么记得住呢?
首先,Linux目录是Linux系统最灵魂的东西,所有的硬件都可以被抽象为文件,从而实现网络化。(Internet只不过是Unix/Linux的进一步的演化而已)。所以只要掌握了Linux目录的规律,在理解的基础上记忆就可以容易的多。另外Linux的命令行有智能化功能,可以让你少打95%以上的字符来完成命令。
绝非你所想象的傻乎乎的敲一大堆命令,那些用Linux大牛都是绝顶聪明的人,怎么可能让自己辛苦呢?
3 Windows有注册表,为什么Linux没有注册表?
注册表是Windows核心组件,对整个系统进行配置。Linux是以整个文件系统作为"注册表“,Windows注册表的树形结构,可以粗略的对应Linux文件系统的树形结构。
Linux的配置文件就相当于注册表的键,或者说Linux采用是的分布式的注册表。
那么Linux为什么要这样设计呢?因为Linux是所谓的网络操作系统,所以单台电脑不是Linux的界限,如果是多台电脑组成的系统,那么分布式的管理就有着巨大的优势。例如:一个包含配置文件的磁盘的损害不会让整个系统瘫痪,而可能只是让部分功能失效。
关于 Linux初学资料,可下载: 鸟哥的Linux私房菜 和 Unix-Linux编程实践教程 pdf文件(带书签)。
参考资料
[1] https://www.gonet.com.cn/index.php?webduirshow-166
[2] https://www.Linuxprobe.com/Windows-Linux-distinction.html
[3] https://www.cnblogs.com/supermeimei/p/5133610.html
[4] http://cn.linux.vbird.org/linux_basic/0110whatislinux.php
[5] http://c.biancheng.net/view/707.html