了解操作系统及作用

操作系统(Operation System, OS)

操作系统作为接口的示意图

在这里插入图片描述

没有安装操作系统的计算机,通常被称为棵机
如果想在裸机上运行自己所编写的程序,就必须用机器语言书写程序
如果计算机上安装了操作系统,就可以在操作系统上安装支持的高级语言环境,用高级语言开发程序

操作系统的作用

直接操作硬件
把操作硬件的代码封装成一个个系统调用,供程序员通过系统调用间接的操作硬件

不同应用领域的主流操作系统

  • 桌面操作系统
  • 服务器操作系统
  • 嵌入式操作系统
  • 移动设备操作系统

桌面操作系统

  • Windows系列
    用户群体大
  • macos
    适合于开发人员
    应用软件少

服务器操作系统

  • Linux
    安全、稳定、免费
    占有率高
    付费
    占有率低

在这里插入图片描述

嵌入式操作系统

  • Linux

移动设备操作系统

  • iOS
  • Android(基于Linux)

虚拟机

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统

  • 虚拟系统通过生成现有操作系统的全新虚拟镜像,具有真实操作系统完全一样的功能
  • 进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响
  • 而且能够在现有系统与虚拟镜像之间灵活切换的一类操作系统

操作系统的发展史

操作系统的发展历史

Unix

1965年之前的时候,电脑并不像现在一样普遍,它可不是一般人能碰的起的,除非是军事或者学院的研究机构,而且当时大型主机至多能提供30台终端(30个键盘、显示器),连接一台电脑

在这里插入图片描述

为了解决数量不够用的问题

1965年左后由贝尔实验室加入了麻省理工学院以及通用电气合作的计划–该计划要建立一套多使用者(multi-user)、多任务(multi-processor)、多层次(multi-level)的MULTICS操作系统,想让大型主机支持300台终端
1969年前后这个项目进度缓慢,资金短缺,贝尔实验室退出了研究
1969年从这个项目中退出的KenThompson当时在实验室无聊时,为了让一台空闲的电脑上能够运行
星际旅行(Space Travel)游行,在8月份左右趁着其妻子探亲的时间,用了1个月的时间,使用汇编写出了Unix操作系统的原型
1970年,美国贝尔实验室的KenThompson,以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母),并且他用B语言写了第一个UNIX操作系统
1971年,同样酷爱“星际旅行(Space Travel)*的Dennis M.Ritchie为了能早点儿玩上游戏,加入了Thompson的开发项目,合作开发UNIX,他的主要工作是改造B语言,因为B语言的跨平台性较差
1972年,Dennis M.Ritchie在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言
1973年初,C语言的主体完成,Thompson和Ritchie迫不及待地开始用它完全重写了现在大名鼎鼎的Unix操作系统

C语言

  • 在把UNIX移植到其他类型的计算机上使用时,C语言强大的移植性(Portability)在此显现
    机器语言和汇编语言都不具有移植性,为x86开发的程序,不可能在Alpha,SPARC和ARM等机器上运行
  • 而C语言程序则可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可运行

Unix家谱

在这里插入图片描述

Minix

  • 因为AT&T(通用电气)的政策改变,在Version7Unix推出之后,发布新的使用条款,将UNIX源代码私有化,在大学中不再能使用UNIX源代码
  • AndrewS.Tanenbaum(塔能鲍姆)教授为了能在课堂上教授学生操作系统运作的细节,决定在不使用任何AT&T的源代码前提下,自行开发与UNIX兼容的操作系统,以避免版权上的争议
  • 以小型UNIX(mini-UNIX)之意,将它称为MINIX

Linux

1991年林纳斯(Linus)就读于基尔辛基大学期间,对Unix产生浓厚兴趣,尝试着在Minix上做一些开发工作
因为Minix只是教学使用,因此功能并不强,林纳斯经常要用他的终端仿真器(Terminal Emulator)去访问大学主机上的新闻组和邮件
为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统这些在后来成为了Linux第一个内核的皱形,当时,他年仅21岁!
林纳斯利用5NU的bash当做开发环境,gcc当做编译工具,编写了Linux内核
一开始Linux并不能兼容Unix,即Unix上跑的应用程序不能在Linux上跑,即应用程序与内核之间的接口不一致,一开始Linux只适用于386,后来经过全世界的网友的帮助,最终能够兼容多种硬件。

Linux内核及发行版

Linux内核版本

  • 内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层
  • Linux内核版本又分为稳定版和开发版,两种版本是相互关联,相互循环
    1.稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些bug或加入一些新的驱动程序
    2.开发版:由于要试验各种解决方案,所以变化很快
  • 内核源码网址:http://www.kemel.org

所有来自全世界的对Linux源码的修改最终都会汇总到这个网站,由Linus领导的开源社区对其进行甄别和修改最终决定是否进入到Linux主线内核源码中

Linux发行版本

  • Linux发行版(也被叫做GNU/Linux发行版)通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件
  • 常见的发行版本如下:

Ubuntu、Redhat、Fedora、openSUSE、Linux Mint、Debian、Manjaro、Mageia、CentOS、Arch

猜你喜欢

转载自blog.csdn.net/Another_Feng/article/details/113730023