计算机与操作系统
世界上第一台现代电子计算机ENIAC,全称为Electronic Numerical Integrator And Computer,诞生于1946年2月14日的美国宾夕法尼亚大学(Upenn)
-
ENIAC:
- CPU: 运算器、控制器、寄存器、缓存
- 存储器:内存、RAM(Random Access Memory)
- Input:下指令,提供数据等
- Output:输出数据
-
程序:
- 指令+数据
- 算法+数据结构
-
过程式编程语言:
- 顺序执行
- 循环执行
- 选择执行
-
多任务:multi tasks
- Bell,MIT,GE 共同研发了 多用户分时操作系统Multics
历史课
Ken Thompson 在Multics上开发了一个游戏Star Travel,贝尔实验室撤出Multics计划后不能使用免费使用multics。
Digital Equipment Corporation(DEC)
美国数字设备公司,1998年1月DEC公司被康柏以96亿美元的价格收购,2001年康柏宣布合并。
DEC主要生产小型机PDP,当时最好的PDP-11
1969年,Ken找到了一台PDP-7 ,他用汇编语言写了一个小系统,可以让star travel跑在其上。这个系统就是UNICS,全称UNIplexed Information and Computer System,后改称UNIX,第一版UNIX是使用B语言编写的。
1971年 bell实验室在UNICS上开发nroff,1972年,bell实验室有10台搭载unics的机器
Bell实验室Dennis M. Riche改进B语言研发了B+语言也就是C语言
《美国计算机通信》:Unix的第一篇文章 “The UNIX Time Sharing System”由Ken Thompson和Dennis Ritchie于1974年7月的 The Communications of the ACM发表
1979年 AT&T 商业化UNIX(System V7)
1978年 SCO商业出售UNIX
1980年 Microsoft,XENIX
Berkeley分校:Ken Thompson于1976年开始任教
berkeley中的一个研究生Bill Joy牵头成立BSRG组织,1977年BSD(Berkeley System Distribution)
1980年DARPA,授权BSRG在UNIX上研究TCP/IP协议
美国国防高级研究计划局(Defense Advanced Research Projects Agency),是美国国防部属下的一个行政机构,负责研发用于军事用途的高新科技。
一家名为Seattle Computer Products(SCP)公司的Tim Paterson用6周时间写成了QDOS,它是基于当时十分流行的CP/M的思想编写的,它使用8086芯片,代码约为4000行汇编。
1981年Microsoft,Bill Gates以50K美元的价格买下了QDOS(86-DOS)修改后改名为MS-DOS,至1990年开发DOS实在UNIX上进行的。
Apple公司购买了XEROX公司,PARK实验室研发了star操作系统图形界面,Jobs在此基础上研发apple的系统,ms参考Jobs的系统研发出windows系统(不稳定蓝屏)。
MS聘用VAX(VMS)实验室的一伙人研发了windows NT(new technology)
1985年 MIT的Richard Stallman创立GNU
GNU:GNU is Not Unix
GPL:General Public Licence
FSF:Free Software Foundation
X-Window:图形界面
gcc:gnu c complier
vi:visual interface
- Unix:
- SUN:Solaris
- IBM:AIX
- HP:HP-UX
Andrew写了一个Minix系统只有4000+行code
Linux诞生前夕
1990年 AT&T公司和BSD持久的官司,BSD已经基本清除了系统中的Unix代码,所以BSD一类的系统叫做类Unix系统。
BSD分支中的Jolitz计划将BSD一直到X86机器(之前Unix一直运行在摩托罗拉生产的CPU之上),后因其合作机构要求将此移植后的系统商业化,导致1991年项目中止,1992年中左右又恢复,此计划叫 386-BSD
Linux诞生
1991年8月 芬兰学生Linus Torvalds宣布成立Linux项目
Linux遵守GPL协定
Larry Wall研发patch工具可以发补丁
完整的OS
kernel+Application
狭义上的OS:kernel
GNU/Linux
大教堂式,集市式研发模式
placeholder
OS的接口
- GUI:Graphic User Interface
GNome:c, gtk
KDE: c++, qt - CLI :Command Line Interface
bash
zsh
sh
csh
tcsh
ksh
操作系统的功能
- 驱动程序
- 进程管理
- 网络功能
- 内存管理
- 文件管理
- 安全
……
API:Application Program Interface
程序员面对的编程接口
POSIX: Portable Operating System
ABI:Application Binary Interface
程序应用者面对运行程序的接口
GNU提供的程序都是源码,要运行必须要编译成二进制格式
Linux发行商将源码编译好打包发布给公众形成linux发行版
Linux发行版时间线
GNU/Linux Distributions Timeline
linux发行版有数百种其中主流的有:
-
Debian
- ubuntu
- mint (more pretty)
- knopix
- ubuntu
-
Slackware
- S.u.S.E (more user in Europe)
- SLES
- OpenSUSE
- S.u.S.E (more user in Europe)
-
RedHat
- RedHat 9.0
- RedHat Enterprise Linux (RHEL)
- CentOS:Community ENTerprise OS
- Feroda core
- RedHat Enterprise Linux (RHEL)
- RedHat 9.0
-
Gentoo
-
ArchLinux
版本号
major.minor.release
Linux:0.99, 2.2, 2.4, 2.6, 3.0, 4.0
linux kernel archive
发行版本也有自己的版本号:
- RHEL: 5.x, 6.x, 7.x
- Fedora 23
- Debian:8.x
- OpenSuSE: 13.x