Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
yshunda opened this issue Oct 22, 2017 · 0 comments
Open

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

yshunda opened this issue Oct 22, 2017 · 0 comments
Labels

Comments

@yshunda
Copy link
Owner

yshunda commented Oct 22, 2017

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的派生系统大致分成两组。

  • 一组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。

  • 另一组是商用的Unix操作系统:

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外,对于计算机体系.操作系统.数据结构和算法,也要了解吧?!此篇文章只是介绍是如何发展到今天的,请千万不要陷入到细节中。祝愿每一位热爱走在这条路上的人都能越行越远!

@yshunda yshunda added the Linux label Oct 22, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant