Unit 1.1
Introduction

Presenter Notes

本节幻灯片

What is the computer?

Ada Lovelace

John Von Neumann

Alan Turing

A modern computer consists of:

  • One or more processors
  • Main memory
  • Various input/output devices, eg. disks.

Presenter Notes

阿达·洛芙莱斯(Ada Lovelace),是著名英国诗人拜伦之女,数学家。计算机程序创始人,建立了循环和子程序概念。为计算程序拟定“算法”,写作的第一份“程序设计流程图”,被珍视为“第一位给计算机写程序的人” 冯.诺依曼被后人称为“计算机之父”和“博弈论之父(涯杰)”。 艾伦·麦席森·图灵(Alan Mathison Turing,1912年6月23日-1954年6月7日),英国数学家、逻辑学家,被称为计算机科学之父,人工智能之父

现代计算机遵循冯·诺依曼的体系结构,分成运算器、控制器、内存、输入设备和输出设备五部分。

Where the operating system fits in ?

  • Managing all these components requires a layer of software – the operating system

Presenter Notes

自下而上的结构,沟通了硬件与软件 内核态: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序 用户态: 只能受限的访问内存, 且不允许访问外围设备. 占用CPU的能力被剥夺, CPU资源可以被其他程序获取 为什么要有用户态和内核态 由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络, CPU划分出两个权限等级 -- 用户态 和 内核态

As a Resource Manager

  • Why we need an Operating System ?

    • As a Resource Manager
    • As an Extended Machine
  • The Operating System as a Resource Manager

    • Allow multiple programs to run at the same time
    • Manage and protect memory, I/O devices, and other resources
    • Includes multiplexing (sharing) resources in two different ways:
      • In time
      • In space

Presenter Notes

1、作为拓展机器的操作系统 2、作为资源管理者的操作系统:操作系统的任务是在相互竞争的程序之间有序的控制对处理器、存储器以及其它I/O接口设备的分配 多路复用(共享)资源: 资源在时间上的复用,不同程序轮流使用它。 空间复用,每个客户都得到资源的一部分。

As an Extended Machine

  • The Operating System as an Extended Machine

  • Operating systems turn ugly hardware into beautiful abstractions.

Presenter Notes

操作系统将丑陋转变为美丽 操作系统的一个主要任务是隐藏硬件,呈现给程序(以及程序员)良好、清晰、优雅、一致的抽象

History of Operating Systems

Generations:

  • (1945–1958) Vacuum Tubes
  • (1954–1964) Transistors
  • (1960–1970) ICs ( SSI, MSI )
  • (1970–Present) LSI, VLSI

    • IC: Integration Circuit
    • SSI: Small Scale Integration Circuit
    • MSI: Medium Scale Integration Circuit
    • LSI: Large Scale Integration Circuit
    • VLSI: Very Large Scale Integration Circuit

Presenter Notes

(1945-1958)真空管和穿孔卡片。eg:ENIAC。这些机器有的使用真空管,有的是可编程的,但是都非常原始,甚至需要花费数秒事件才能完成最简单的运算。 (1954–1964)晶体管和批处理系统。大型机的出现极大的改变了整个状况。计算机已经很可靠,厂商可以成批地生产并销售计算机给用户,用户可以指望计算机长时间运行,完成工艺鞋有用的工作。在该阶段,设计人员、生产人员、操作人员、程序人员和维护人员第一次有了明确的分工。 (1960–1970)集成电路芯片和多道程序设计。第三代操作系统适用于大型科学计算和繁忙的上午数据处理,但实质上依旧是批处理系统。 (1970–Present)大规模集成电路的发展,个人计算机随之出现。

Vacuum Tubes

  • ENIAC
  • UNIVAC
  • Operating Systems: None

Presenter Notes

机器都是二进制的,有的使用真空管,有的是可编程的,但是都非常原始,需要花费数秒时间才能完成最简单的计算。

Transistors

  • An early batch system. (a) Programmers bring cards to 1401 . (b) 1401 reads batch of jobs onto tape. (c) Operator carries input tape to 7094 . (d) 7094 does computing. (e) Operator carries output tape to 1401 . (f) 1401 prints output.
  • Operating Systems: Batch Systems
    • FMS(FORTRAN Monitor System)
    • IBMSYS(IBM 7094)

Presenter Notes

在输入室收集全部的作业,然后用一台相对偏移的计算机,如IBM 1401计算机,将他读到磁带上。IBM 1401计算机适用于度卡片、复制磁带和输出打印,但不实用于数值运算。另外用较昂贵的计算机,如IBM 7094来完成真正的计算。

SSI, MSI

IBM System/360

DEC PDP 7

  • Mainframes & Small Computers
  • Multiprogramming & SPOOLing
  • Operating Systems: Timesharing
    • CTSS (Compatible Time Sharing System)
    • MULTICS

Presenter Notes

第三代操作系统很适用于大型科学计算和繁忙的上午数据处理,但实际上人就是批处理系统。许多程序员很怀念第一代计算机的使用方式。因此,分时系统、兼容分时系统应运而生。 CTSS成功研制之后,MIT、贝尔实验室和通用电气公司决定开发一种“公用计算服务系统”,能够同事支持数百名分时用户的一种机器,该系统叫做MULTICS

LSI, VLSI

1975' First Micro Computer : MIPS Altair 8800 (Intel 8080)

  • Micro / Personal Computers : IBM/PC, Apple
  • Operating Systems: Timesharing, clustering, multi-processors/cores
    • UNIX family (UNIX/Linux/BSD/macOS)
    • DOS / Windows 9x / NT
  • Operating Systems for Mobile / Embedded
    • Symbian, Blackberry, Android, iOS, Embedded Linux

Presenter Notes

大规模集成电路和超大规模集成电路的发展,推动了个人计算机时代的到来。

History of UNIX

Dennis Ritchie

Ken Thompson

PDP 11

  • 1969' Bell Lab (AT&T), PDP 7, Game(space travel)
  • UNICS -> UNIX, Written in assembly language
  • UNIX epoch: 1970-01-01 00:00:00 UTC
  • 1970: PDP-11/20, rewrote the UNIX in assembly.
  • 1972: Richie, BCPL(Basic Combined Programming Language)->B->C, The C Programming Language
  • 1973: Thesis "The UNIX Time- Sharing System"
  • 1983: Turing Award

Presenter Notes

  • 1969' BELL的Ken Thompson为自己开发了Unics(这个是戏称的非正式的名称,因为思想源自Multics)
  • 1972-1973: Ken Thompson 与Dennis Ritchie感到用汇编语言做移植太过于头痛,他们想用高级语言来完成第三版,对于当时完全以汇编语言来开发程序的年代,他们的想法算是相当的疯狂。一开始他们想尝试用Fortran,可是失败了。后来他们用一个叫BCPL(Basic Combined Programming Language)的语言开发,他们整合了BCPL形成B语言,后来Dennis Ritchie觉得B语言还是不能满足要求,于是就改良了B语言,这就是今天的大名鼎鼎的C语言。于是,Ken Thompson 与Dennis Ritchie成功地用C语言重写了Unix的第三版内核。至此,Unix这个操作系统修改、移植相当便利,为Unix日后的普及打下了坚实的基础

UNIX Family

1997 Deep Blue (AIX) vs Kasparsov

  • AT&T: System V Release 4.2 (SysV)
  • Berkeley Software Distribution: 4.4BSD
  • Commercial distributions
    • IBM: AIX, HP: HP-UX, SGI: IRIX, SUN: Solaris
    • Apple: macOS
  • Linux, FreeBSD, NetBSD, OpenBSD

Presenter Notes

  • 1969' BELL的Ken Thompson为自己开发了Unics(这个是戏称的非正式的名称,因为思想源自Multics)
  • 1972-1973: Ken Thompson 与Dennis Ritchie感到用汇编语言做移植太过于头痛,他们想用高级语言来完成第三版,对于当时完全以汇编语言来开发程序的年代,他们的想法算是相当的疯狂。一开始他们想尝试用Fortran,可是失败了。后来他们用一个叫BCPL(Basic Combined Programming Language)的语言开发,他们整合了BCPL形成B语言,后来Dennis Ritchie觉得B语言还是不能满足要求,于是就改良了B语言,这就是今天的大名鼎鼎的C语言。于是,Ken Thompson 与Dennis Ritchie成功地用C语言重写了Unix的第三版内核。至此,Unix这个操作系统修改、移植相当便利,为Unix日后的普及打下了坚实的基础

Apple

1976: Apple I

1977: Apple II

Macintosh

Steve Jobs

  • 1977: Apple II: 1MHz, 4KB Memory
  • Processor. RISC: PowerPC vs CISC: Intel
    • 1984: Motorola 68000
    • 1998: PowerPC
    • 2006: Intel

Presenter Notes

IBM Personal Computer

IBM PC

Intel 80386

AMD X86_64

  • 1981: IBM Personal Computer
    • Intel 8088(4.77MHz) 16K, MS-DOS/PC-DOS
  • 1985: Intel 80386(i386, IA32, x86), 1986: Compaq 386
  • 1987: IBM PS/2 (386, MCA), IBM OS/2
  • 1993: Intel Pentium
  • 1999: AMD x86_64(AMD64, x64)
  • 2001: Intel IA64 (Itanium)

Presenter Notes

Micorsoft DOS/Windows

  • CP/M -- DOS -- 1985: Windows 1.0; 1987: 2.0; 1990: 3.0; 1992: 3.1
  • Windows 9x: Windows 95, Windows 98, Windows Me
  • Windows NT: NT3.1 (1993) NT4 WorkStation(1996), 2000 Professional, XP(NT5.1 2001), Vista(NT 6.0 2006), Windows 7 (NT 6.1 2009), Windows 8 (NT 6.2 2012), Windows 10 (NT 10.0 2015)
  • Windows Server: NT4 Server, 2000 Server, Server2003, Server2008, Server2008 r2, Server2012, Server2012 r2, Server2016 Windows Family

Presenter Notes

GNU Free Software – R. Stallman

Richard Stallman

GNU

GPL

Copy Left

  • 1984: Richard Stallman starts GNU project. (GNU = GNU's not UNIX)
    • http://www.gnu.org
  • Purpose: Free UNIX. ("Free as in Free Speech, not Free Beer")
    • First step: re-implementation of UNIX Utilities
    • C compiler, C library, emacs, bash
  • To fund the GNU project, the Free Software Foundation is founded
    • http://www.fsf.org

Presenter Notes

General Public License

  • Most software (including the Linux kernel) is GPL'ed (GNU General Public License)
    • http://www.gnu.org/copyleft/gpl.html
  • Linux is called "copyleft" (instead of "copyright").
    • You can copy the software.
    • You get the source code.
    • You can alter the source code and recompile it.
    • You can distribute the altered source and binaries.
    • You can charge money for all this.
  • You cannot change the license.
    • So all your customers have the same rights as you.
    • So you really cannot make money from selling the software alone.
  • Other Open Source licenses (for example, BSD) are also used

Presenter Notes

Minix – AST

  • Andrew S. Tanenbaum (AST)
    • http://www.cs.vu.nl/~ast/
    • Minix: Teaching Operating System. http://www.minix3.org/

Presenter Notes

GNU/Linux – Linus Torvalds

Linus Torvalds

Mascot of Linux: Tux

  • 1991: Linus Torvalds writes 1st version of Linux kernel
    • Linus' UNIX -> Linux
    • Combined with the GNU and other tools forms a complete UNIX system -> GNU/Linux
  • Based on : UNIX, MINIX, Internet, GNU, POSIX

Presenter Notes

Linux Today

  • Linux Kernel vs. Distributions
    • RedHat: Fedora, RHEL, CentOS
    • Debian, Ubuntu
    • SuSE: OpenSuSE
  • Linux covers the whole spectrum of computing
    • Embedded devices
    • Laptops
    • Desktop systems
    • Development systems
    • Small and large servers
    • Megaclusters/supercomputers
  • Linux is used throughout the world and in space, by home users and by some of the largest companies in the world. eg. IBM, Boeing, NASA

Presenter Notes

The Operating System Zoo

  • Mainframe operating systems
  • Server operating systems
  • Multiprocessor operating systems
  • Personal computer operating systems
  • Handheld operating systems
  • Embedded operating systems
  • Sensor node operating systems
  • Real-time operating systems
  • Smart card operating systems

Presenter Notes

References

  • Chapter 1: Introduction, Modern Operating Systems . Forth Edition, Andrew S. Tanenbaum
  • Unit 1: Introduction to Linux, Linux Basic and Installation , ERC 7.2, IBM

Presenter Notes

备注汇总

现代计算机遵循冯·诺依曼的体系结构,分成运算器、控制器、内存、输入设备和输出设备五部分。使用了自下而上的结构,从应用程序、应用用户程序接口、操作系统一直到硬件设备,沟通硬件与软件。操作系统的职责是资源管理,在相互竞争的程序之间有序的控制对处理器、存储器以及其它I/O接口设备的分配。资源在时间上复用,不同程序轮流使用它;资源在空间上的复用,每个用户都得到资源的一部分。

操作系统的发展:

  • (1945-1958)真空管和穿孔卡片。eg:ENIAC。这些机器有的使用真空管,有的是可编程的,但是都非常原始,甚至需要花费数秒事件才能完成最简单的运算。
  • (1954–1964)晶体管和批处理系统。大型机的出现极大的改变了整个状况。计算机已经很可靠,厂商可以成批地生产并销售计算机给用户,用户可以指望计算机长时间运行,完成工艺鞋有用的工作。在该阶段,设计人员、生产人员、操作人员、程序人员和维护人员第一次有了明确的分工。
  • (1960–1970)集成电路芯片和多道程序设计。第三代操作系统适用于大型科学计算和繁忙的上午数据处理,但实质上依旧是批处理系统。
  • (1970–Present)大规模集成电路的发展,个人计算机随之出现。

Presenter Notes