操作系统的发展史

1、Unix

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

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

  • 1965 年左后由 贝尔实验室 加入了 麻省理工学院 以及 通用电气 合作的计划 —— 该计划要建立一套 多使用者(multi-user)多任务(multi-processor)多层次(multi-level) 的 MULTICS 操作系统,想让大型主机支持 300 台终端
  • 1969 年前后这个项目进度缓慢,资金短缺,贝尔实验室退出了研究
  • 1969 年从这个项目中退出的 Ken Thompson 当时在实验室无聊时,为了让一台空闲的电脑上能够运行 "星际旅行(Space Travel)" 游戏,在 8 月份左右趁着其妻子探亲的时间,用了 1 个月的时间,使用汇编写出了 Unix 操作系统的原型
  • 1970 年,美国贝尔实验室的 Ken Thompson,以 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 家谱
http://www.ha97.com/2801.html

2、 Minix

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

3、Linux

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

3.1 Linux 内核版本

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

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

3.2 Linux 发行版本

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

    • Ubuntu
    • Redhat
    • Fedora
    • openSUSE
    • Linux Mint
    • Debian
    • Manjaro
    • Mageia
    • CentOS
    • Arch
  • 十大 Linux 服务器发行版排行榜:http://os.51cto.com/art/201612/526126.htm

在几乎每一份与 Linux 有关的榜单上,基于 Debian 的 Ubuntu 都占有一席之位。Canonical 的Ubuntu 胜过其他所有的 Linux 服务器发行版 ―― 从简单安装、出色的硬件发现,到世界级的商业支持,Ubuntu确立了难以企及的严格标准

操作系统的作用

  1. 是现代计算机系统中 最基本和最重要 的系统软件
  2. 是 配置在计算机硬件上的第一层软件,是对硬件系统的首次扩展
  3. 主要作用是管理好硬件设备,并为用户和应用程序提供一个简单的接口,以便于使用
  4. 而其他的诸如编译程序、数据库管理系统,以及大量的应用软件,都直接依赖于操作系统的支持

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

没有安装操作系统的计算机,通常被称为 裸机

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

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

1、桌面操作系统

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

2、 服务器操作系统

  • Linux:安全、稳定、免费;占有率高
  • Windows Server:付费;占有率低

3、嵌入式操作系统

  • Linux

4、移动设备操作系统

  • iOS
  • Android(基于 Linux )

虚拟机

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

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

文件和目录的结构

1、 单用户操作系统和多用户操作系统

  • 单用户操作系统:指一台计算机在同一时间 只能由一个用户 使用,一个用户独自享用系统的全部硬件和软件资源

    • Windows XP 之前的版本都是单用户操作系统
  • 多用户操作系统:指一台计算机在同一时间可以由 多个用户 使用,多个用户共同享用系统的全部硬件和软件资源

    • Unix 和 Linux 的设计初衷就是多用户操作系统

2、Windows 和 Linux 文件系统区别

2.1 Windows 下的文件系统

  • 在 Windows 下,打开 “计算机”,我们看到的是一个个的驱动器盘符:

  • 每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示:

2.2 Linux 下的文件系统

  • 在 Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录):

  • Ubuntu 没有盘符这个概念,只有一个根目录 /,所有文件都在它下面

2.3 用户目录

位于 /home/user,称之为用户工作目录或家目录,表示方式:

/home/user

操作系统(Operation System,OS)相关推荐

  1. 了解操作系统,什么是操作系统Operation System?

    1.操作系统(Operation System,oS):是一个特殊的软件. 操作系统作为接口的示意图 1.没有安装操作系统的计算机,通常被称为裸机. 2.如果想在裸机上运行自己所编写的程序,就必须用机 ...

  2. 操作系统(Operating System,OS)

    热身知识: (1)操作系统也是一个程序,并且是一个很重要的程序. (2)功能:管理和控制计算机的活动. (3)如果一台计算机没有操作系统,那么应用程序将不能运行 (4)图解: 一.操作系统的三大任务 ...

  3. DOS(Disk Operation System)磁盘操作系统

    DOS是Disk Operation System(磁盘操作系统)的简称,是个人计算机上的一类操作系统.它直接操纵管理硬盘的文件,一般都是黑底白色文字的界面.从1980年到1995年的15年间,DOS ...

  4. Windows server2012+MDT2012 (五) 制作封装wim文件部署Operation System

    前期我们介绍了两种方法通过MDT2012 serve部署操作系统后实现应用程序集成的问题:我们也知道MDT2012 server提供的系统捕获是通过在线的方式需要占用网络资源,为了解决该问题,今天就介 ...

  5. [操作系统]从零开始的OS

    [操作系统]从零开始的OS 1.作者:谢煜波/潇寒/wildcatgsk (后两个好像是笔名) When Do We Write Our Chinese OS ? (1) When Do We Wri ...

  6. mongobd运行电脑不允许_U盘中的操作系统:Chrome OS,极致简洁超流畅,拯救你的旧电脑...

    想必很多朋友家中都有旧电脑的存在,它的配置不怎么滴,毕竟时间久了,即使是安装win7系统也不太可能,就算硬件升级也是不可能了~更多时候,只是一个摆设~ 但是呢,这台电脑除了回收之外,还有另外一条路. ...

  7. qt - the inferior stopped because it received a signal from the operation system.

    https://www.cnblogs.com/qiumingcheng/p/8044913.html 忽略"Signal: SIGSEGV (Segmentation fault)&quo ...

  8. 嵌入式实时操作系统μC/OS II(一)

    嵌入式实时操作系统μC/OS II 为什么要学习μC/OS-II ㈠.凡从事嵌入式系统开发工作的人,必须对嵌入式操作系统有足够的了解. ㈡.对于初学者,从μC/OS-II开始是个明智的选择. 1.μC ...

  9. uc/OS-II操作系统:uc/OS基本概念及认识(从零到负,打通你的任督二脉)

    一.什么是计算机操作系统 简而言之,OS就是一个屏蔽层,屏蔽了计算机的具体硬件,向使用者提供了一台虚拟的计算机开发.使用环境. 二.计算机操作系统的作用 1.它在计算机应用程序与计算机硬件系统之间,屏 ...

  10. 鸿蒙微内核基于,华为发布基于微内核、面向全场景的分布式操作系统:鸿蒙OS...

    原标题:华为发布基于微内核.面向全场景的分布式操作系统:鸿蒙OS PingWest品玩8月9日讯,华为消费者业务今天在其全球开发者大会上正式向全球发布其全新的基于微内核的面向全场景的分布式操作系统-- ...

最新文章

  1. CSS漂亮盒子(上)
  2. 「Caffe」python版本caffe编译
  3. DB2 乱码
  4. 【转】 Pro Android学习笔记(二九):用户界面和控制(17):include和merge
  5. 【项目管理】风险分析
  6. java打印日历至Excel_2013日历打印_Excel2013,如何实现点击单元格就出现日历,操作者......
  7. STM32F103串口收发
  8. Web前端工作笔记004---js--webSocket简单介绍和使用方法
  9. c语言double型小数点后几位_程序的数据要放到哪里呢?|C语言第二篇
  10. oracle的imp导入数据,初识oracle-imp导入
  11. 2021强网杯全国网络安全挑战赛Writeup
  12. QT中使用以管理员权限启动一个进程
  13. 图形库LVGL v8.2版本移植
  14. 计算机毕业设计PHP基于微信小程序寸金校园租车平台(源码+程序+uni+lw+部署)
  15. 由火车退票制度改革想到的民生问题
  16. 【51单片机实例】智能小车(一)--------小车的前进、后退和停止
  17. 互联网创业盈利模式指南
  18. Postman+Newman+Git+Jenkins+Slack 接口自动化和监控
  19. linux如何打印环境变量,在Linux中打印环境变量
  20. ISO26262对软件开发的规定

热门文章

  1. 从婚恋网站危机到6千亿元蛋糕
  2. 面板产能过剩持续,京东方前景不明朗
  3. 2000万日订单背后,如何保障系统的高可用?
  4. 计算机视觉:目标跟踪论文推荐
  5. 复古传世手游服务器维护,新出的《复古传世》手游到底应该怎么玩,这里有篇攻略供大侠参考...
  6. 最懂选择的人用这4种策略避免纠结
  7. STL rotate旋转算法
  8. Coca:对比字幕是图像-文本基础模型
  9. “那些看似不起波澜的日复一日,终会在某天让你看到坚持的意义。”
  10. 《疯狂Java讲义》读书笔记5