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
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)
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
GNU Free Software – R. Stallman
Richard Stallman |
GNU |
GPL |
Copy Left |
- 1984: Richard Stallman starts GNU project. (GNU = GNU's not UNIX)
- 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
General Public License
- Most software (including the Linux kernel) is GPL'ed (GNU General Public License)
- 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
Minix – AST
- Andrew S. Tanenbaum (AST)
- http://www.cs.vu.nl/~ast/
- Minix: Teaching Operating System. http://www.minix3.org/
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
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
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
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
备注汇总
现代计算机遵循冯·诺依曼的体系结构,分成运算器、控制器、内存、输入设备和输出设备五部分。使用了自下而上的结构,从应用程序、应用用户程序接口、操作系统一直到硬件设备,沟通硬件与软件。操作系统的职责是资源管理,在相互竞争的程序之间有序的控制对处理器、存储器以及其它I/O接口设备的分配。资源在时间上复用,不同程序轮流使用它;资源在空间上的复用,每个用户都得到资源的一部分。
操作系统的发展:
- (1945-1958)真空管和穿孔卡片。eg:ENIAC。这些机器有的使用真空管,有的是可编程的,但是都非常原始,甚至需要花费数秒事件才能完成最简单的运算。
- (1954–1964)晶体管和批处理系统。大型机的出现极大的改变了整个状况。计算机已经很可靠,厂商可以成批地生产并销售计算机给用户,用户可以指望计算机长时间运行,完成工艺鞋有用的工作。在该阶段,设计人员、生产人员、操作人员、程序人员和维护人员第一次有了明确的分工。
- (1960–1970)集成电路芯片和多道程序设计。第三代操作系统适用于大型科学计算和繁忙的上午数据处理,但实质上依旧是批处理系统。
- (1970–Present)大规模集成电路的发展,个人计算机随之出现。