yshunda / Notes

胡写一通,乱写一气.杂七杂八.记录日常,若喜欢请Star,然后。。。。
123 stars 34 forks source link

什么是"类Unix"操作系统以及它为什么这么重要? #4

Open yshunda opened 6 years ago

yshunda commented 6 years ago

title:什么是"类Unix"操作系统以及它为什么这么重要? date: 2017-10-22 19:25:22

前言

实际上大多数操作系统可以被划分为两类:一类是,微软的基于Dos的Windows NT系统;而另一类则是,“类Unix”操作系统。这其中包括了BSD Linux,Mac OS X,Android,iOS,Chrome OS,PlayStaion 4上运行的Orbis OS,以及运行在路由器上的各种固件,这些操作系统通常都被称为“类Unix”操作系统,也就是派生自Unix系统。 "banner"

UNIX家族起源及类UNIX系统

1969年,在AT&T的Bell Labs,Ken Thompson和Dennis Ritchie(他们曾是大型操作系统Multics的两名开发者,Multics太庞大了最终没有成功)为了一项名为太空旅游的实验计划,需要一个操作系统。他们找了一台闲置的PDP-7机器,在上面写了个Multics的改编版,1971年正式发布。这个东东就是后来名扬天下的UNIX了。Multics——UNIX,大家看出了点什么吗?

1973年,Dennis Ritchie用他自己开发的C语言重写了一遍UNIX,奠定了UNIX普及化的基础。1976年他们首次将第六版的UNIX流传到AT&T以外的地方。 UC Berkeley的人以UNIX 7.0为基础,发表了称作BSD的系统,并且开发到1992年的4.4版;而AT&T也不断改进他们的系统,发表了商业化的System Ⅲ直到System Ⅴ。以后UNIX的发展都是围绕这两大主流展开的。

UNIX的设计目标是小而美:希望能在任何小系统上执行,而核心只提供必不可少的一些功能,其他的则根据需要加上去。这已经成为操作系统的一种设计哲学。现在许多公司有了自己的UNIX版本,但它们基本特性是一致的:开放性、多用户、多任务、功能强、实现高效、网络功能丰富。为了克服UNIX版本差异对可移植性的损害,1990年ISO制定了ISO/IEC 9945-1-1990标准,这是整个可移植操作系统界面(POSIX)的第一部分;系统应用程序界面即POSIX.1。这就是常说的UNIX操作系统的界面标准。

那些从Unix派生出的系统

为了简单,我们把Unix的派生系统大致分成两组。

首 先是BSD(伯克利软件发布版),一个开源的类Unix操作系统。BSD如今还存在于FreeBSD,NetBSD和OpenBSD等系统中。 NeXTStep基于最初版的BSD开发,苹果的Mac OS X基于NeXTStep,iOS基于Mac OS X。许多其他操作系统,包括运行在PlayStation 4上的Orbis OS,也源于各种BSD操作系统。

Richard Stallman建立GNU项目的目的是为了反对AT&T的Unix软件协议条款日渐严格的限制。MINIX是一个类Unix操作系统,为教育目的而实现的,而Linux则是受到了MINIX的启发。我们今天所熟悉的Linux其实应该叫GNU/Linux, 因为它是由Linux内核和大量GNU应用组成的。GNU/Linux不是直接从BSD继承下来的,但是它继承了Unix的设计而且根植于学术界。如今许 多操作系统,包括Android,Chrome OS,Steam OS,以及数量巨大的在各种设备上使用的嵌入式操作系统,都基于Linux。

AT&T UNIX,SCO UnixWare,Sun Microsystem Solaris,HP-UX,IBM AIX,SGI IRIX-许多大型企业都希望建立并授权自己版本的Unix。它们如今并不常见,但其中一些仍然存在。 "Unix"

DOS和Windows NT的崛起

DOS,是磁盘操作系统(英文:Disk Operating System)的缩写,是个人计算机上的一类操作系统。从1981年直到1995年的15年间,DOS在IBM PC兼容机市场中占有举足轻重的地位。而且,若是把部分以DOS为基础的Microsoft Windows版本,如Windows 95、98和Me等都算进去的话,那么其商业寿命至少可以算到2000年。(本段摘自"维基百科DOS词条")

微软的DOS也成为众多DOS系统中最成功的一个。DOS完全没有参照Unix,这也是为什么Windows使用反斜杠划分文件路径,而其他所有系统都使用正斜杠。这个决定是在早期的DOS系统中做出的,而之后的Windows版本继承了这一设定,就像BSD,Linux,Mac OS X,和其他类Unix操作系统继承了许多Unix设计因素一样。

Windows 3.1,Windows 95,Windows 98,和 Windows ME都是建立在DOS的基础上。当时微软已经在开发一个更现代更稳定的操作系统,叫做Windows NT-意思是“Windows新技术”。Windows NT最终通过Windows XP应用到普通计算机用户中,但是之前它都只用于针对企业用户的Windows 2000和Windows NT。

如今所有微软的操作系统 都基于Windows NT内核。Windows 7,Windows 8,Windows RT,Windows Phone 8,Windows Server,以及Xbox One上的操作系统都在使用Windows NT内核。不像其他大多数操作系统那样,Windows NT没有被开发成一个类Unix操作系统。

当然,微软也不是完全从零开始的。为了维护DOS和旧版本Windows软件的兼容性,Windows NT继承了许多DOS里的设定,比如磁盘盘符,反斜杠区分文件路径,正斜杠作为命令行参数开关。

"DOS"

结束语

不知道你有没有用过Mac OS X终端或是文件系统,有没有注意到它们和Linux是如此相似,而又和Windows是如此不同?原因是-Mac OS X和Linux两个都是类Unix操作系统。

了解了这点历史,就可以帮助你理解什么是“类Unix”操作系统,以及为什么这么多操作系统看起来都差不多,而Windows却那么与众不同。这也可以解释为什么Linux极客对Mac OS X上的终端会感觉如此熟悉,而Windows 7上的Command Prompt和PowerShell相对于其他命令行环境显得格格不入。

这只是一点快速掠过的历史,我认为作为一个合格的前端er,你除了要会HTML/CSS/JS外,对于计算机体系.操作系统.数据结构和算法,也要了解吧?!此篇文章只是介绍是如何发展到今天的,请千万不要陷入到细节中。祝愿每一位热爱走在这条路上的人都能越行越远!