培根:读史使人明智 操作系统的简史

(1955-1965) 计算机非常昂贵,上古神机IBM7094 ,造价在250万美元以上

  • 计算机使用原则:只专注于计算
  • 批处理操作系统(Batch system)
  • 典型代表:IBSYS

从IBSYS 到OS/360(1965-1980)

计算机开始进入多个行业:科学计算(IBM 7094) ,银行(IBM 1401)

  • 需要让一台计算机干多种事
  • 多道程序(multiprogramming)
  • 作业之间的 切换和调度 成为核心:因为既有IO 任务,又有计算任务,需要让CPU忙碌(多进程结构和进程管理概念萌芽!)
  • 典型代表:IBM OS/360(360 表示全方位服务) ,开发周期5000 个人年

从OS/360 到MULTICS(1965-1980)

计算机进入多个行业,使用人数增加

  • 如果每个人启动一个作业,作业之间快速切换
  • 分时系统(timesharing)
  • 代表:MIT MULTICS (MULTiplexed Information and Computer Service)
  • 核心仍然是 任务切换 ,但是资源复用的思想对操作系统影响很大,虚拟内存就是一种复用

从MULTICS 到UNIX(1980-1990)

小型化计算机出现,PDP-1 每台售价120,000 美元,不足7094 的5%

  • 越来越多的个人可以使用计算机
  • 1969 年:贝尔实验室的Ken Thompson、 、 Dennis Ritchi 等在一台没人使用的PDP-7 上开发一个简化MULTICS ,就是后来的UNIX
  • UNIX 是一个简化的MULTICS ,核心概念差不多,但更灵活和成功

从UNIX 到Linux(1990-2000)

1981 ,IBM 推出IBM PC ;个人计算机开始普及

  • 很多人可以用计算机并接触UNIX
  • 1987 年Andrew Tanenbaum 发布了MINIX( 非常类似UNIX) 用于教学
  • Linus Torvalds 在386sx 兼容微机上学习minix ,作出小Linux 于1991 年发布
  • 1994 年,Linux 1.0 发布并采用GPL 协议,1998 年以后 互联网世界里展开了

    一场历史性的Linux

IBSYS ->OS/360-> MULTICS-> Unix -> Linux

核心思想、技术

  • 用户通过执行程序来使用计算机( 吻合冯诺依曼的思想)
  • 作为管理者,操作系统要让多个程序合理推进,就是 进程管理
  • 多进程(用户) 推进时需要内存复用等等

    多进程结构是操作系统基本图谱!

    对于操作系统,实现概念远比理解概念重要!

软件实现

  • 对于操作系统,实现很重要OS/360->UNIX
  • 需要真正的群体智慧 UNIX ->Linux

历史是多线条的:PC 与DOS

PC 机的诞生一定会导致百花齐放。IBM 推出PC ,自然要给这个机器配一个操作系统

  • 1975 年Digital Research 为Altair 8800 开发了操作系统CP/M
  • CP/M :写命令让用户用,执行命令对应的程序,单任务执行
  • 1980 出现了8086 16 位芯片,从CP/M 基础上开发了QDOS(Quick and Dirty OS)

从QDOS 到MS-DOS

Bill Gates 要进入历史舞台了…

  • 1975 年,22 岁的Paul Allen 和20 岁的 Bill Gates 为Altair 8800 开发了BASIC 解释器,据此开创了微软
  • 1977 年Bill Gates 开发FAT 管理磁盘
  • QDOS 的成功在于 以CP/M 为基础将BASIC 和FAT 包含了进来(文件管理和编程环境… 都是用户关心的!)
  • 1980 年IBM 想和Digital Research 协议授权使用CP/M ,但没有达成,转向和微软合作;1981 微软买下QDOS ,改名为MS-DOS(Disk OS) ,和IBM PC

从MS-DOS 到Windows

MS-DOS 的磁盘、文件、命令让用方便,但似乎可以更方便

  • 1989 年,MS-DOS 4.0 出现,支持了鼠标和键盘,此时微软已经决定要放弃MS-DOS
  • 不久后Windows 3.0 大获成功
  • 后来就是一发不可收拾了,95 ,XP ,Vista ,Win 7 ,Win 8 , Win 10...
  • 文件、开发环境、图形界面对于OS的重要性

还要说一说Mac OS 与iOS

1984 年,苹果推出PC( 麦金塔机,Macintosh) ,简称Mac 机,其处理器使用IBM 、Intel 或AMD等,核心在于屏幕、能耗等

  • 与Mac 机一起发布System X 系统,一上来就是GUI
  • 在System 7 以后改名为Mac OS 8
  • 2007 年发布iOS ,核心仍然是Mac OS ,专为移动设备,如手势等
  • Mac OS 核心是UNIX ,专注于界面、文件、媒体等和用户有关的内容

CP/M -> QDOS-> MS-DOS-> Windows

Unix -> System -> Mac OS -> iOS

总结历史: 历史又要开始让人明智了

核心思想、技术

  • 仍然是程序执行、多进程、程序执行带动其他设备使用的基本结构
  • 但用户的使用感觉倍加重视了:各种文件、编程环境、图形界面

软件实现

  • 如何通过文件存储代码、执行代码、操作屏幕…
  • 如何让文件和操作变成图标、点击或触碰…

计算机硬件、操作系统、启动、接口…

温故:操作系统要管理硬件,方便我们使用…

温故: 设备 管理的表格进行了初始化;等待用户的 设备 使用( 系统调用) ,将其展开成 设备 细节

void main(void)

{    mem_init();

trap_init();

……

sched_init();

buffer_init();

hd_init();

floppy_init();

sti();

move_to_user_mode();

if(!fork()){init();}

}

可以知新了…

要管理硬件资源

方便用户使用硬件资源

[No000037]操作系统Operating Systems操作系统历史与硬件概况History of OS & Summaries!的更多相关文章

  1. [No00003D]操作系统Operating Systems信号量的代码实现Coding Semaphore &死锁处理Deadlock

    操作系统Operating Systems信号量的代码实现Coding Semaphore &死锁处理Deadlock 可以操刀了—从纸上到实际 从Linux 0.11 那里学点东西… 读磁盘 ...

  2. [No00003C]操作系统Operating Systems进程同步与信号量Processes Synchronization and Semaphore

    操作系统Operating Systems进程同步与信号量Processes Synchronization and Semaphore 进程合作:多进程共同完成一个任务 从纸上到实际:生产者− − ...

  3. [No00003A]操作系统Operating Systems 内核级线程Kernel Threads内核级线程实现Create KernelThreads

    开始核心级线程 内核级线程对多核的支持怎么样? 和用户级相比,核心级线程有什么不同? ThreadCreate 是系统调用,内核管理TCB ,内核负责切换线程 如何让切换成型? − − 内核栈,TCB ...

  4. [No000036]操作系统Operating Systems系统调用的实现System_Call

    实现一个whoami 系统调用 系统调用的直观实现 问题+直观想法… 用户程序调用whoami, 一个字符串"systemcall "放在操作系统中(系统引导时载入) ,取出来打印 ...

  5. [No000031]操作系统 Operating Systems 之Open the OS!

    从打开电源开始… 这神秘的黑色背后发生着什么?… 打开电源,计算机执行的第一句指令什么? 计算模型(图灵机) ⇒ 我们要 关注 指针IP 及其 指向的内容 看看x86 PC (1) 刚开机时CPU 处 ...

  6. [No000038]操作系统Operating Systems -CPU

    管理CPU ,先要使用CPU… CPU 的工作原理 CPU上电以后发生了什么? 自动的取指 — 执行 CPU 怎么工作? CPU怎么管理? 管理CPU 的最直观方法 设好PC 初值就完事! 看看这样做 ...

  7. [No000039]操作系统Operating Systems用户级线程User Threads

    多进程是操作系统的基本图像 是否可以资源不动而切换指令序列? 进程 = 资源 + 指令执行序列 线程: 保留了并发的优点,避免了进程切换代价 实质就是映射表不变而PC 指针变 多个执行序列+ 一个地址 ...

  8. PC端操作系统、移动端操作系统、嵌入式操作系统

    左侧部分已是历史的操作系统,右侧的还是活跃的操作系统.安卓系统Android 是Google开发的基于Linux平台的开源手机操作系统.它包括操作系统.用户界面和应用程序-- 移动电话工作所需的全部软 ...

  9. the virtual machine is configured for 64-bit guest operating systems

    Security--Virtualization--Inter(R) Virtualization Technolog 设置为enable 本机安装的是WIN 7 ,详细版本是:Windows 7 U ...

随机推荐

  1. Atitit.mybatis的测试  以及spring与mybatis在本项目中的集成配置说明

    Atitit.mybatis的测试  以及spring与mybatis在本项目中的集成配置说明 1.1. Mybatis invoke1 1.2. Spring的数据源配置2 1.3. Mybatis ...

  2. Android Tips: 在给drawable中添加图片资源时,文件名必须全小写

    在给drawable中添加图片资源时,文件名必须全小写

  3. elipse + maven + tomcat + springMVC环境搭建

    1. java JDK安装 http://jingyan.baidu.com/article/b24f6c82c989da86bfe5dab2.html 2.eclipse安装 http://jing ...

  4. Ubuntu Server 14.04升级Ubuntu Server 16.04

    Ubuntu Server 14.04升级Ubuntu Server 16.04 :转 http://blog.csdn.net/chszs 1.终端下执行命令 $ sudo apt-get upda ...

  5. 你真的了解UIControl吗?

    一:首先查看一下关于UIControl的定义 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIControl : UIView //控件默认是启用的YES.是否要禁用 ...

  6. 约瑟夫环问题分析-C语言经典面试题

    好久没有看有关算法的问题了,今天废了不少劲,再感叹一句:要想学好算法就要常练习,没什么捷径可走.废话不多说,如下: 问题描述:有m个人,围成一个环,编号为 0.1.2.3...m-1,从第一个人开始循 ...

  7. 详解 Spotlight on Unix 监控Linux服务器

    1.安装 Spotlight on Unix 下载地址:http://yunpan.cn/QNWyEEvNS4xc9  访问密码 1c7d 傻瓜安装 2.配置spotlight登陆用户,注意spotl ...

  8. Win8.1RTM英文版安装中文语言包的两种方法

    Windows 8.1和Windows Server 2012 R2 RTM出来了,下载了个英文版的安装上了,发现远景上有朋友提供中文语言包,以下提供两种语言包的安装方法: 一.使用lpksetup命 ...

  9. js技术发展

    将.NET代码编译为JavaScript 你可以使用如下工具将C#.F#以及其他.NET代码编译为JavaScript代码. Apps in Motion:允许使用C#来构建可以运行在任何设备上的We ...

  10. tar包在linux下 java安装

    总的原则:将jdk-7u10-linux-x64.tar.gz压缩包解压至/usr/lib/jdk,设置jdk环境变量并将其修改为系统默认的jdk 1.将jdk-7u5-linux-x64.tar.g ...