操作系统的探究

主流操作系统的起源

目前主流的操作系统:Windows MacOS Linux Unix .

计算机硬件(输入设备(键盘 鼠标等),CPU,输出单元 (屏幕 打印机等)),我们知道我们使用计算机就是想让计算机帮助我们做事情,比如看电影,这就需要屏幕 喇叭等硬件工作,但是何时播放,声音的大小,这些就需要操作系统来实现.

操作系统就是用来管理控制所有的计算机硬件.那么问题就变为人们怎样来和操作系统来交流,作为IT人,显然知道,操作系统应该包括2个方面:1.核心(Kernel)与其提供的接口工具,2.利用核心接口开发出来的软件

Kernel是操作系统的最底层的东西,其用来掌控整个硬件的工作状态.每个操作系统都有其自己的核心.当新的硬件加入进来时.如果Kernel没有支援,则该硬件肯定就无法正常工作.所以Kernel的日常工作就是

  • 系统呼叫接口,方便开发者与核心沟通交流,最终开发出软件.
  • 行程管理,即多任务环境 即CPU多任务处理
  • 内存管理,控制整个系统的内存管理 在内存不足的时候可以提供虚拟内存.
  • 档案系统管理,即数据的输入输出,以及不同档案格式的支持等,如果你的核心不识别某一档案系统,则该系统就无法识别使用该档案系统的文档.比如winds系统不识别NTFS格式的硬盘,则该硬盘内的文档等皆不可使用.
  • 装置的驱动.硬件的管理是核心的最主要的工作之一,那么硬件的驱动当然就是其要做的事情.常见的例子 在wins上新插入的硬件比如新买的U盘,一般系统会先安装对应的驱动,之后才会识别该硬件.

Unix的历史

Unix的前身是1964年开始的Multics,贝尔实验室参与了这个系统的开发,但由于开发进度慢,其推出该计划,转而自己开发Unix.
此后十年当时的UNIX拥有者AT&T公司以低廉甚至免费的许可将Unix源码授权给学术机构做研究或教学之用,许多机构在此源码基础上加以扩充和改进,形成了所谓的“Unix变种”,这些变种反过来也促进了Unix的发展,其中最著名的变种之一是由加州大学柏克莱分校开发的柏克莱软件包(BSD)产品

后来AT&T意识到了Unix的商业价值,不再将Unix源码授权给学术机构,并对之前的Unix及其变种声明了版权权利。BSD在Unix的历史发展中具有相当大的影响力,被很多商业厂家采用,成为很多商用Unix的基础。其不断增大的影响力终于引起了AT&T的关注,于是开始了一场持久的版权官司,这场官司一直打到AT&T将自己的Unix系统实验室卖掉,新接手的Novell采取了一种比较开明的做法,允许柏克莱分校自由发布自己的Unix变种,但是前提是必须将来自于AT&T的代码完全删除,于是诞生了4.4 BSD Lite版,由于这个版本不存在法律问题,4.4 BSD Lite成为了现代柏克莱软件包的基础版本。尽管后来,非商业版的Unix系统又经过了很多演变,但其中有不少最终都是创建在BSD版本上(Linux、Minix等系统除外)。所以从这个角度上,4.4 BSD 又是所有自由版本Unix的基础,它们和System V及Linux等共同构成Unix操作系统这片璀璨的星空。

BSD使用主版本加次版本的方法标识,如4.2、4.3BSD,在原始版本的基础上还有派生版本,这些版本通常有自己的名字,如4.3BSD-Net/1,4.3BSD-Net/2等。BSD在发展中也逐渐派生出3个主要的分支:FreeBSD、OpenBSD和NetBSD。

此后的几十年中,Unix仍在不断变化,其版权所有者不断变更,授权者的数量也在增加。Unix的版权曾经为AT&T所有,之后Novell拥有获取了Unix,再之后Novell又将版权出售给了圣克鲁兹作业,但不包括知识产权和专利权(这一事实双方尚存在争议)。有很多大公司在获取了Unix的授权之后,开发了自己的Unix产品,比如IBM的AIX、HP的HP-UX、SCO的Openserver、SUN的Solaris(被Oracle收购)和SGI的IRIX。

Unix因为其安全可靠,高效强大的特点在服务器领域得到了广泛的应用。直到GNU/Linux流行开始前,Unix也是科学计算、大型机、超级计算机等所用操作系统的主流。现在其仍然被应用于一些对稳定性要求极高的数据中心之上。

1969年,肯·汤普逊提议在PDP-7上开发一个新的阶层式操作系统的计划。Multics的原有成员,加上Rudd Canady,都投入这个计划。肯·汤普逊发现要编写驱动程序来驱动文件系统,进行测试,并不容易,于是开发了一个壳层(shell)与一些驱动程序,做出一个操作系统的雏形。在团队合作下,Multics的许多功能都被采纳,重新实现,最终做出了一个分时多任务操作系统,成为第一版UNIX。

第一版UNIX是用PDP-7汇编语言编写的,一些应用是由叫做B语言的解释型语言和汇编语言混合编写的。在进行系统编程时不够强大,所以汤普逊和里奇对其进行了改造,并于1971年共同发明了C语言。1973年汤普逊和里奇用C语言重写了Unix,形成第三版UNIX。在当时,为了实现最高效率,系统程序都是由汇编语言编写,所以汤普逊和里奇此举是极具大胆创新和革命意义的。用C语言编写的Unix代码简洁紧凑、易移植、易读、易修改,为此后Unix的发展奠定了坚实基础。

自由的类Unix系统

1984年,Richard Stallman发起了GNU项目,目标是创建一个完全自由且向下兼容UNIX的操作系统。这个项目不断发展壮大,包含了越来越多的内容。现在,GNU项目的产品,如Emacs、GCC等已经成为各种其它自由发布的类UNIX系统中的核心角色。

1990年,Linus Torvalds决定编写一个自己的Minix内核,初名为Linus’ Minix,意为Linus的Minix内核,后来改名为Linux。此内核于1991年正式发布,并逐渐引起人们的注意。当时GNU操作系统仍未完成,GNU系统软件集与Linux内核结合后,GNU软件构成了这个POSIX兼容操作系统GNU/Linux的基础。今天GNU/Linux已经成为发展最为活跃的自由/开放源码的类Unix操作系统。

1994年,受到GNU工程的鼓舞,BSD走上了复兴的道路。BSD的开发也走向了几个不同的方向,并最终导致了FreeBSD、NetBSD、OpenBSD和DragonFlyBSD等基于BSD的操作系统的出现。

Linux系统

Linux是一种自由和开放源代码类UNIX操作系统目前运用最广泛使用人数最多的操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。在加上用户空间的应用程序之后,成为Linux操作系统。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多数Linux系统还包括像提供GUI的X Window之类的程序。除了一部分专家之外,大多数人都是直接使用Linux发行版,而不是自己选择每一样组件或自行设置。

Linux严格来说是单指操作系统的内核,因操作系统中包含了许多用户图形接口和其他实用工具。如今Linux常用来指基于Linux的完整操作系统,内核则改以Linux内核称之。由于这些支持用户空间的系统工具和库主要由理查德·斯托曼于1983年发起的GNU计划提供,自由软件基金会提议将其组合系统命名为GNU/Linux,但Linux不属于GNU计划,这个名称并没有得到社区的一致认同。

Linux最初是作为支持英特尔x86架构的个人电脑的一个自由操作系统。目前Linux已经被移植到更多的计算机硬件平台,远远超出其他任何操作系统。Linux可以运行在服务器和其他大型平台之上,如大型主机和超级计算机。世界上500个最快的超级计算机90%以上运行Linux发行版或变种,包括最快的前10名超级电脑运行的都是基于Linux内核的操作系统。Linux也广泛应用在嵌入式系统上,如手机(Mobile Phone)、平板电脑(Tablet)、路由器(Router)、电视(TV)和电子游戏机等。在移动设备上广泛使用的Android操作系统就是创建在Linux内核之上。

通常情况下,Linux被打包成供个人计算机和服务器使用的Linux发行版,一些流行的主流Linux发布版,包括Debian(及其派生版本UbuntuLinux Mint)、Fedora(及其相关版本Red Hat Enterprise LinuxCentOS)和openSUSE等。Linux发行版包含Linux内核和支撑内核的实用程序和库,通常还带有大量可以满足各类需求的应用程序。个人计算机使用的Linux发行版通常包含X Window和一个相应的桌面环境,如GNOMEKDE。桌面Linux操作系统常用的应用程序,包括Firefox网页浏览器、LibreOffice办公软件、GIMP图像处理工具等。由于Linux是自由软件,任何人都可以创建一个匹配自己需求的Linux发行版。

Linux的系统架构

基于Linux的系统是一个模块化的类Unix操作系统。Linux操作系统的大部分设计思想来源于20世纪70年代到80年代的Unix操作系统所创建的基本设计思想。Linux系统使用宏内核,由Linux内核负责处理进程控制、网络,以及外围设备和文件系统的访问。在系统运行的时候,设备驱动程序要么与内核直接集成,要么以加载模块形式添加
Linux具有设备独立性,它内核具有高度适应能力,从而给系统提供了更高级的功能。GNU用户界面组件是大多数Linux操作系统的重要组成部分,提供常用的C函数库,shell,还有许多常见的Unix实用工具,可以完成许多基本的操作系统任务。大多数Linux系统使用的图形用户界面创建在X窗口系统之上,由X窗口(XWindow)系统通过软件工具及架构协议来创建操作系统所用的图形用户界面。

已安装Linux操作系统包含的一些组件:

  • 启动程序——例如GRUB或LILO。该程序在计算机开机启动的时候运行,并将Linux内核加载到内存中。
  • init程序。init是由Linux内核创建的第一个进程,称为根进程,所有的系统进程都是它的子进程,即所有的进程都是通过init启动。init启动的进程如系统服务和登录提示(图形或终端模式的选择)。
  • 软件库包含代码,可以通过运行的进程。在Linux系统上使用ELF格式来执行文件,负责管理库使用的动态链接器是“ld-linux.so”。Linux系统上最常用的软件库是GNU C库。
  • 用户界面程序,如命令行shell或窗口环境。

MacOS系统

麦金塔操作系统(Macintosh operating systems)是一套运行于苹果Macintosh系列电脑上的操作系统,包括macOS(2012年前称Mac OS X,2012年-2016年称OS X)、Mac OS 9、Mac OS 8及System vX.X这一系列的操作系统。它是第一个在商用领域成功的图形用户界面,最新正式版本为**macOS Sierra 10.12**。

麦金塔操作系统可被分成两个系列

  • Classic Mac OS,系统搭载在1984年销售的首部Mac与其后代上,采用Mach作为内核,在Mac OS 7.6.1以前用“System vX.X”来称呼。末代版本是Mac OS 9。
  • 2001年新推出的macOS(2012年前称Mac OS X,2012年-2016年称OS X),结合BSD Unix、OpenStep和Mac OS 9的元素。它的最底层建基于Unix基础,其核心代码被称为Darwin,实行的是部分开放源代码

##系统的历史发布版本

名称 版本号 名称 发行时间
Mac OS X 公开测试版 sad 2000.9
Mac OS X v10.0 “Cheetah”
Mac OS X v10.1 “Puma”
Mac OS X v10.2 “Jaguar”
Mac OS X v10.3 “Panther”
Mac OS X v10.4 “Tiger”
Mac OS X v10.5 “Leopard” 2007.10
Mac OS X v10.6 “Snow Leopard” 2009.8
Mac OS X v10.7 “Lion” 2011.2
OS X v10.8 “Mountain Lion”
OS X v10.9 “Mavericks” 2013.6
OS X v10.10 “Yosemite” 2014.6
OS X v10.11 “El Capitan” 2015.6
macOS v10.12 “Sierra” 2016.9

Windows操作系统

Microsoft Windows是微软公司推出的一系列操作系统。它问世于1985年,起初是 MS-DOS 之下的桌面环境,其后续版本逐渐发展成为主要以个人电脑和服务器用户设计的操作系统,并最终获得了世界个人电脑操作系统的垄断地位.
windows系统分类.png

坚持原创技术分享,您的支持将鼓励我继续创作!