操作系统历史
Posted iaiti
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了操作系统历史相关的知识,希望对你有一定的参考价值。
目录
在读网络的专栏课程的时候,发现了查看ip有ip addr和ifconfig两个指令。
在自己的Mac终端输入ip发现并没有该指令,Macos没有ip执行。
还有就是自己在输入ps指令的时候,思考着横线和没有横线究竟有没有区别。
(关于ps命令的详细介绍,可以拜读一下这篇文章,已经找不到原作者是谁了。
https://developer.aliyun.com/article/710681)
特地查了下,由linux指令风格追溯的历史和各个版本 linux历史。
无横线:bsd风格的发行版 ps e
有横线:system V风格发行版 ps -e
两根横线:GNU ps --eid 1
结合这么多版本的话,大家都会好奇这些系统是从何而来,各自之间又有什么关系。理清这些东西之后。对这些系统可以有个深刻的印象。
https://www.zhihu.com/question/306912373/answer/568558987 这篇回答把关系写得很好,我们按照这篇回答扩展开来并写细一点。
1、unix横空出世
1969年,unix的由来是,是一个闲的蛋疼的人,为贝尔实验室的人肯·汤普森(Ken Thompson),因为之前与mit和ge的合作大型分时系统泡汤不能玩自己的游戏,
刚好老婆回娘家两个月,就开发出来了unics,但只能在类似小霸王的一台机器上运行。
1973年,丹尼斯·里奇(DennisRitchie),发明c语言的家伙开发出C语言,用来改写原来用汇编语言编写的UNIX,由此产生了UNIX VersionV。
1974年,后面两个基友一起重写,unix,x就是跨平台。
2、bsd版本
1977年,bsd版本横空出世,伯克利的bsd版本BSD是"Berkeley Software Distribution"的缩写,意思是"伯克利软件发行版”。伯克利的研究生比尔·乔伊将程序整理到磁带上,
作为First Berkeley Software Distribution(1BSD)发行。 1BSD被作为第六版Unix系列,而不是单独的操作系统。
来自维基百科。
3、system v
1983年,at&t的system v版本,第一次发布,因此也被称为AT&T System V 。
4、你我都在用的GNU
1989年,Unix 系统被发明之后,大家用的很爽。但是后来开始收费和商业闭源了。一个叫 Richard Stallman(RMS) 的大叔觉得很不爽,于是发起 GNU 计划,模仿 Unix 的界面和使用方式,从头做一个开源的版本。然后他自己做了编辑器 Emacs 和编译器 GCC。
GNU 是一个计划或者叫运动。在这个旗帜下成立了 FSF,起草了 GPL 等。
5、Just for fun —— linux的诞生
1991年芬兰大学生李纳斯(Linus Torvalds)在GPL条例下发布他自己创作的Linux操作系统内核,
Linus 在发布 Linux 的时候选择了 GPL,因此符合 GNU 的宗旨。打包发布的叫 GNU/linux,git的作者也是他。
Linux并不是unix,Linux是开源自由软件,而unix是对源代码实行知识产权保护的传统商业软件。
6、centos和RedHat
而我们服务器经常装的Centos,是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。
7、macos
回到我们现在macos,当年乔老爷子找到了李纳斯的,应该是开源和商用的理念不符合而没进行合作。
现在的话,从我们的macos命令行工具输入uname可以输出Darwin
Darwin,达尔文,mac os的基础部分,不只包含内核,还包括其他东西。严格来说macOS 的内核是XNU。XNU代表的含义是“XNU is Not Unix”
XNU中包含一个经过修改的BSD,它负责进程管理、Unix 文件权限、网络堆栈、虚拟文件系统、POSIX 兼容。macOS 之所以符合单一Unix 规范,也正是因为如此。
OS X所基于的Darwin OS和它使用的XNU内核都是开源的。但是,OS X的Aqua GUI不是开源的。
命令行工具,除了内核以外,Darwin 还包括一些Unix 工具,这些Unix 工具一些是Apple 开发,一些来自于第三方,比如FreeBSD Project、GNU Project、Apache。
顺带一提,苹果系统的gui是闭源的,不然会出现很多开源跟苹果系统长得很像的linux。
来自 https://zhuanlan.zhihu.com/p/44609761
8、ifconfig和ip addr
ifconfig和ip addr两个指令是在学习《趣谈网络协议》这个专栏的时候看到的,在这里不得不提一下,刘超老师真的是研究的很透,这个网络和linux底层东西,讲得还是很好的。
查看ip的时候,可以使用ifconfig和ip addr两个指令,那么ifconfig和ip addr区别又是什么。
其实ifconfig为net-tools工具集之一,net-tools起源于BSD的TCP/IP工具箱,虽然很久没有升级,但是仍然可以工作的很好。
ip指令属于iproute2工具集,ip命令结合了多个经典的命令,包含了ifconfig, route和arp. ip比ifconfig可以做得更多.
https://unix.stackexchange.com/questions/93412/difference-between-ifconfig-and-ip-commands
而内核那个时候复杂吗,也复杂的,写出来的人肯定很厉害。不过HalfmanG2,知乎回答的作者提到
其实那会儿操作系统内核没你想的那么复杂,操作系统说到底其实核心就只有:进程调度器+内存管理+磁盘文件管理而已,现在看起来超级复杂的各种功能细节都是花了几十年时间一点点堆上去的。
所以量变多了的积累会引起质变。
以上是关于操作系统历史的主要内容,如果未能解决你的问题,请参考以下文章