linux和unix相似的原因是什么
发布时间 - 2023-05-16 00:00:00 点击率:次
Linux的初衷就是要替UNIX,并在功能和用户体验上进行优化,所以Linux模仿了UNIX(但并没有抄袭UNIX的源码),使得Linux在外观和交互上与UNIX 非常类似。因此可以说“UNIX是Linux的父亲”,也正是由于Linux和UNIX有着千丝万缕的联系,所以人们把Linux叫做“类UNIX系统”。
UNIX 与 Linux 之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞生于 20 世纪 90 年代初,可以说 UNIX 是操作系统中的"老大哥",后来的 Windows 和 Linux 都参考了 UNIX。
现代的 Windows 系统已经朝着“图形界面”的方向发展了,和 UNIX 系统有了巨大的差异,从表面上甚至看不出两者的关联。
UNIX 的坎坷历史
UNIX 操作系统由肯•汤普森(Ken Thompson)和丹尼斯•里奇(Dennis Ritchie)发明。它的部分技术来源可追溯到从 1965 年开始的 Multics 工程计划,该计划由贝尔实验室、美国麻省理工学院和通用电气公司联合发起,目标是开发一种交互式的、具有多道程序处理能力的分时操作系统,以取代当时广泛使用的批处理操作系统。
说明:分时操作系统使一台计算机可以同时为多个用户服务,连接计算机的终端用户交互式发出命令,操作系统采用时间片轮转的方式处理用户的服务请求并在终端上显示结果(操作系统将CPU的时间划分成若干个片段,称为时间片)。操作系统为每个终端用户提供服务,以时间片为单位轮流服务,每次服务一个时间片。
可惜,由于 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 系统,目前常见的有 Sun Solaris、FreeBSD、IBM AIX、HP-UX 等。
Solaris 和 FreeBSD
重点介绍 Solaris,这是一个重要的 UNIX 系统分支。除了在 SPARC CPU 平台上运行外,Solaris 也可在 x86 CPU 平台上运行。Sun的硬件平台在服务器市场上占据着支配地位的UNIX系统的位置,其高可用性和高可靠性令人称道。
对于难以接触到 Sun SPARC 架构计算机的用户来说,可以通过使用 Solaris x86 来体验世界知名大厂的商业 UNIX 风采。当然,Solaris x86 也可以用于实际生产应用的服务器,在遵守 Sun 的有关许可条款的情况下,Solaris x86 可以免费用于学习研究或商业应用。
FreeBSD 源于美国加利福尼亚大学伯克利分校开发的 UNIX 版本,它由来自世界各地的志愿者开发和维护,为不同架构的计算机系统提供了不同程度的支持。FreeBSD 在 BSD 许可协议下发布,允许任何人在保留版权和许可协议信息的前提下随意使用和发行,并不限制将 FreeBSD 的代码在另一协议下发行,因此商业公司可以自由地将 FreeBSD 代码融入它们的产品中。OS X, the operating system used by Apple Inc., is built upon the FreeBSD operating system.。
FreeBSD 与 Linux 的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似。FreeBSD 的最大特点就是稳定和高效,是作为服务器操作系统的不错选择;但其对硬件的支持没有 Linux 完备,所以并不适合作为桌面系统。
其他 UNIX 版本因应用范围相对有限,在此不做过多介绍。
Linux 的那些往事
Linux 内核最初是由李纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版 UNIX 操作系统 Minix 太难用了,于是决定自己开发一个操作系统。当初第一版于1991年9月发布时,代码仅仅有1万行。
李纳斯•托瓦兹在公开 Linux 源代码后,未保留版权,并邀请他人一同参与完善。Linux与Windows及其他受专利保护的操作系统不同,它采用的是开源代码,这意味着任何人都可以免费地使用它。
据估计,现在只有 2% 的 Linux 核心代码是由李纳斯•托瓦兹自己编写的,虽然他仍然拥有 Linux 内核(操作系统的核心部分),并且保留了选择新代码和需要合并的新方法的最终裁定权。现在大家所使用的 Linux,我更倾向于说是由李纳斯•托瓦兹和后来陆续加入的众多 Linux 好者共同开发完成的。
李纳斯•托瓦兹无疑是这个世界上最伟大的程序员之一,何况,他还搞出了全世界最大的程序员交友社区 GitHub (开源代码库及版本控制系统)。
关于 Linux Logo 的由来是一个很有意思的话题,它是一只企鹅。
为什么选择企鹅,而不是选择狮子、老虎或者小白兔?有人说因为李纳斯•托瓦兹是芬兰人,所以选择企鹅,有人说因为其他动物图案都被用光了,李纳斯•托瓦兹只好选择企鹅。
我更愿意相信以下说法,企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于世界上的任何国家,可国家都无权将南极洲纳入其版图。Linux 选择企鹅图案作为 Logo,其含义是:开放源代码的 Linux 为全人类共同所有,可公司无权将其私有。
UNIX与Linux的亲密关系
更恰当的说法是,UNIX 和 Linux 的关系不是兄弟或长幼之别,而是可以说“UNIX 是 Linux 的祖先”。之所以要介绍它们的关系,是因为要告诉读者,在学习的时候,其实 Linux 与 UNIX 有很多的共通之处,简单地说,如果你已经熟练掌握了 Linux,那么再上手使用 UNIX 会非常容易。
二者也有两个大的区别:
UNIX 系统大多是与硬件配套的,也就是说,大多数 UNIX 系统如 AIX、HP-UX 等是无法安装在 x86 服务器和个人计算机上的,而 Linux 则可以运行在多种硬件平台上;
UNIX 是商业软件,而 Linux 是开源软件,是免费、公开源代码的。
Linux 受至旷大计算机爱好者的喜爱,主要原因也有两个:
它属于开源软件,用户不用支付可费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿使用,无约束地继续传播;
它具有 UNIX 的全部功能,任何使用 UNIX 操作系统或想要学习 UNIX 操作系统的人都可以从 Linux 中获益。
开源软件是不同于商业软件的一种模式,从字面上理解,就是开放源代码,大家不用担心里面会搞什么猫腻,这会带来软件的革新和安全。
另外,开源其实并不等同于免费,而是一种新的软件盈利模式。目前很多软件都是开源软件,对计算机行业与互联网影响深远。
总结一下 Linux 和 UNIX 的关系/区别
Linux 是一个类似 Unix 的操作系统,Unix 要早于 Linux,Linux 的初衷就是要替代 UNIX,并在功能和用户体验上进行优化,所以 Linux 模仿了 UNIX(但并没有抄袭 UNIX 的源码),使得 Linux 在外观和交互上与 UNIX 非常类似。
说模仿可能会被人喷,你也可以说微创新或者改进。
相比于 UNIX,Linux 最大的创新是开源免费,这是它能够蓬勃发展的最重要原因;而目前的 UNIX 大部分都是收费的,小公司和个人都难以承受。
正是由于 Linux 和 UNIX 有着千丝万缕的联系,所以人们把 Linux 叫做“类UNIX系统”.
# linux
# unix
# c语言
# 架构
# github
# windows
# ux
# 开源软件
# 操作系统
# 开源
# 南极洲
# 这是
# 纳斯
# 贝尔
# 可以说
# 是一个
# 是由
# 源代码
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
敲碗10年!Mac系列传将迎来「触控与联网」双革新
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
Java解压缩zip - 解压缩多个文件或文件夹实例
公司网站制作需要多少钱,找人做公司网站需要多少钱?
如何挑选优质建站一级代理提升网站排名?
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
常州企业网站制作公司,全国继续教育网怎么登录?
Java遍历集合的三种方式
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
北京网站制作的公司有哪些,北京白云观官方网站?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
Python数据仓库与ETL构建实战_Airflow调度流程详解
如何在景安云服务器上绑定域名并配置虚拟主机?
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
中山网站推广排名,中山信息港登录入口?
如何在IIS7中新建站点?详细步骤解析
Laravel如何使用Blade组件和插槽?(Component代码示例)
如何快速搭建安全的FTP站点?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
phpredis提高消息队列的实时性方法(推荐)
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
Swift中循环语句中的转移语句 break 和 continue
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
,南京靠谱的征婚网站?
Swift中swift中的switch 语句
JavaScript模板引擎Template.js使用详解
利用vue写todolist单页应用
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
桂林网站制作公司有哪些,桂林马拉松怎么报名?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
轻松掌握MySQL函数中的last_insert_id()
如何解决hover在ie6中的兼容性问题
如何在云主机快速搭建网站站点?
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
如何在云指建站中生成FTP站点?
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
LinuxCD持续部署教程_自动发布与回滚机制
Laravel如何升级到最新版本?(升级指南和步骤)
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)

