270 likes | 460 Views
通识卓越课程 http://en.tjcities.com/index.php/works. 计算机科学前沿技术 Frontier Technologies in Computer Science. 课程网站: http://en.tjcities.com/index.php/works 联系方式: FrontiersCS@gmail.com 微博: http://weibo.com/willtongji. 课程内容. 第 9 章 人工智能前沿 第 10 章 机器学习的研究 第 11 章 搜索引擎技术 第 12 章 集体智慧与 Web 2.0 第 13 章 云计算
E N D
通识卓越课程 http://en.tjcities.com/index.php/works • 计算机科学前沿技术 • Frontier Technologies in Computer Science 课程网站:http://en.tjcities.com/index.php/works 联系方式:FrontiersCS@gmail.com 微博:http://weibo.com/willtongji
课程内容 • 第9章人工智能前沿 • 第10章机器学习的研究 • 第11章搜索引擎技术 • 第12章集体智慧与Web 2.0 • 第13章云计算 • 第14章物联网技术 • 第15章服务科学与服务计算 • 第16章智慧地球 第1章概述 第2章计算机硬件的发展 第3章高性能计算 第4章现代操作系统 第5章计算机网络新技术 第6章可信系统和可信软件 第7章数据库技术的发展 第8章数据挖掘及其应用
本章内容 • 操作系统的历史 • 现代操作系统的发展 • 操作系统的基本概念、现代操作系统的关键技术 • Windows操作系统 • UNIX类操作系统的发展 • UNIX系统简介、 UNIX家族的演化、类UNIX系统的发展、UNIX系统的展 • 小结 • 推荐阅读 • 问题与讨论
1 操作系统的历史 • 1946年2月14日世界上第一台电子计算机ENIAC(埃尼阿克)在美国宾夕法尼亚州立大学诞生 • 20世纪50年代中期, • 在美国通用汽车研究 • 实验室诞生了世界上 • 第一个操作系统 • 20世纪60年代末期,在兼容分时系统的基础上,美国的麻省理工学院、贝尔实验室和通用电气公司联合开发出了称为多路信息和计算系统(MULTiplexed Information and Computing System,Multics)的操作系统 • 20世纪70年代初期,Ken Thompson(汤普森)和Dennis Ritchie(里奇)开发出了UNIX操作系统,并因此获得1983年图灵奖
2 现代操作系统的发展 • 现代操作系统的新特征:网络化和多媒体化 • 现代操作系统发展的重要趋势:并发性(采用多线程)和可靠性(采用微内核结构减小规模) • 桌面操作系统的特点: • 桌面系统安全性受到高度重视,特别是通过与可信平台模块(Trusted Platform Module,TPM)等硬件安全技术的结合,使得桌面安全性和可信性得到改善。 • 满足新的计算模式将成为下一代桌面系统设计的关键,例如手机操作系统、云终端操作系统 • 桌面操作系统分化出不同的功能 三维桌面
2 现代操作系统的发展 • 计算机系统组成: • 一个计算机系统通常由硬件、操作系统、应用软件和用户四个部分组成 • 计算模式: • 多处理器计算 • 基于互联网和Web的计算 • 嵌入式计算 • 虚拟化计算 • 所谓虚拟化,是通过硬件和操作系统的中间层─虚拟机监控层实现计算资源的管理和再分配,使资源利用率实现最大化。 互联网和Web的计算的发展及Web应用的典型结构
2 现代操作系统的关键技术 • 微内核操作系统 • 内核通常是操作系统中最核心的部分,管理着所有的系统资源,对于系统的设备拥有完全的访问权,通常运行于特权模式 • 具有微内核结构的现代操作系统拥有以下优点: (1)可伸缩性好,能适应硬件更新和应用变化 (2)可移植性好,所有与具体机器特征相关的代码,全部隔离在微内核中 (3)实时性好,微内核可以更有效地支持实时处理 (4)安全可靠性高,微内核将安全性作为系统内部特性进行设计,对外仅使用少量应用编程接口 (5)支持分布式系统,支持多处理器的体系结构和高度并行的应用程序 (6)真正面向对象的操作系统,能显著减小系统开销,提高系统的正确性、可靠性和易扩展性
2 现代操作系统的关键技术 • 嵌入式操作系统 • 嵌入式系统是以应用为中心,软硬件可裁减的,适用于对功能、可靠性、成本、体积和功耗等综合性要求严格的专用计算机系统 • 具有软件代码小、自动化程度高和响应速度快等特点,特别适合于要求实时和多任务的体系 • 嵌入式操作系统是嵌入式系统极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面和标准化浏览器等。 • 商用嵌入式系统和专用操作系统: WinCE、VxWorks Symbian OS、Android OS
2 现代操作系统的关键技术 • 分布式操作系统 • 网络操作系统:UNIX和Windows NT。具有网络功能,可以用来访问远程资源。 • 特点:运行于其上的节点能独立地管理自己的进程资源用户能够可扩展操作系统 • 可扩展操作系统 • 所谓的可扩展操作系统,即利用微内核技术,使操作系统在保持核心功能的基础上能够灵活地结合各种服务及应用 • 这种外延和扩展不仅体现在用户应用层,还体现在硬件层
2 现代操作系统的关键技术 • 多处理机并行操作系统 • 多处理机并行操作系统新特征: (1)并行性,即增强对程序并行执行的支持。 (2)分布性,即支持对分布的任务、资源的管理与控制。 (3)通信及其同步性,即在不同处理机上运行的不同进程之间实现同步和通信,以共享资源和相互合作,支持程序的并行执行,以改善系统的性能。(4)可重构性,为了提高系统的可靠性,当系统中某个处理机或存储模块等资源发生故障时,系统能够自动切除故障资源,换上备份资源,并对系统进行重构,以保证其能继续工作。 • 并行操作系统版本:前SUN公司的Solaris、美国AT&T公司(AT&T)的UNIX SYSTEM V4.0 MP版本等等 • 在提高系统性能方面,对称式多处理机(Symmetric Multi-Processor,SMP)结构计算机已经成为现代计算机技术发展的潮流和趋势,
2 现代操作系统的关键技术 • 虚拟化操作系统 • 进程级虚拟化,即不是用软件模拟,而是在操作系统之上添加一个很“薄”的虚拟化程序来实现虚拟化,在这个虚拟化程序之上再模拟操作系统 • 系统级虚拟化,即操作系统几乎可以不变,只是每个操作系统调度的是自己的虚拟化硬件资源,这些虚拟硬件资源是由系统硬件和操作系统之间的虚拟监控层(虚拟化操作系统)创建和管理的 • 未来操作系统的发展趋势 • (1)开源化 • (2)专用化 • (3)小型化或微型化 • (4)便携化。 • (5)网络化 • (6)安全化或可信化
3 Windows操作系统 • Windows是微软公司在操作系统领域中的品牌和产品系列 • 2个分支: • 一个分支是基于MS-DOS的Windows开发平台,最后发展成为Windows 95/98/Me等一系列操作系统 • 另一个分支则发展成以Windows NT为代表的操作系统系列,经历了Windows NT、Windows 2000、Windows XP/Server 2003,直到Windows Vista/Server 2008/Win7 • 第二个分支是按照20世纪80年代后期的硬件水平进行全新设计的操作系统,包含了现代操作系统的各个要素,也奠定了Windows作为现代操作系统典范的基础 • Windows NT 3.1~3.51版本采用了Windows 3.1操作系统的窗口界面风格,并且保持了对MS-DOS和Windows 3.1应用程序的兼容性。
3 Windows操作系统 • Windows NT 4.0是一个相对比较成熟和稳定的网络服务器操作系统,并且内置了微软(IIS 6作为基本的Web服务器软件 • Windows 2000在安全性方面也有显著提高。它充分发挥了NT内核中安全框架的作用,为企业网络环境提供全方位的安全服务 • Windows Server 2003在稳定性、安全性和易管理方面都超过了其前身Windows 2000服务器版本,是微软公司在服务器操作系统领域发展的一个重要里程碑,并且也是微软在倡导可信计算(Trustworthy Computing)以后发布的第一个操作系统 • Windows Vista于2007年1月发布,全面更新用户界面风格,集成和增强桌面搜索能力,更加关注安全性
3 Windows操作系统 • Windows Vista和Server 2008改进了Windows NT文件系统NTFS(New Technology File System),采用了更新的SMB协议,数据传输效率更高 • Windows 7于2009年10月22日正式发布 Windows Vista和Windows 7界面 Windows家族树(源自Wikipedia)
3 Windows操作系统 • Windows Mobile的介绍 • Windows Mobile是微软为智能移动终端设备使用的操作系统,是基于一系列智能设备的操作系统(例如Pocket PC,Pocket PC Phone和Smartphone) • Bill Gates
4 UNIX类操作系统的发展 • UNIX系统简介 • 1971年,UNIX诞生于美国AT&T公司的贝尔实验室 • 支持多用户和多任务,网络和数据库功能强,可靠性高,伸缩性突出,并支持多种处理器架构 • UNIX、Linux和Windows成为三大类主流操作系统 • 商业版UNIX:基于美国AT&T公司贝尔实验室的UNIX逐步演化发展而来的各UNIX版本 • 类UNIX:与UNIX有渊源,不能佩戴UNIX标志的系统(比如BSD);技术属性上与UNIX类似或有关的系统 UINIX的发展史(源自Wikipedia)
4 UNIX类操作系统的发展 • UNIX家族的演化 • UNIX初始研发阶段:20世纪70年代 • 1969年,Thompson和Ritchie共同动手设计了一套包含文件系统、命令解释器以及一些实用程序的支持多任务的操作系统,UNIX第一版(UNIX V1)正式诞生 • 1972年,UNIX发布了第二版,添加了管道功能- UNIX标志特征之一。在开发UNIX V2的时候,Ritchie给B语言加上了数据类型和结构的支持,推出了C语言。 • 1979年,UNIX V发布 • 1975年,UNIX V6到达Berkley • 1983年,4.2 BSD发布 Ritchie(左)和Thompson(右)以及所著的C语言教材
4 UNIX类操作系统的发展 • UNIX家族的演化 • UNIX商业推广阶段 • 1980年,美国AT&T公司发布了UNIX的可分发二进制版许可证,启动了将UNIX商业化的计划 • 1982年,美国AT&T公司发布了UNIX System III的第一个版本 • 1992年,前SUN公司基于美国AT&T公司UNIX SVR 4.2开发了Solaris 2.0 • 1983年,SCO公司发布SCO XENIX System V • 1980年,微软基于UNIX V7开发了运行在 • Intel平台上UNIX操作系统XENIX • UNIX成熟应用阶段 • 20世纪90年代中后期 Solaris 10操作系统和SPARC处理器
4 UNIX类操作系统的发展 • 类UNIX系统的发展 • 1984年,Richard M. Stallman(理查德·斯托曼)发起了一项国际性的源代码开放的GNU计划,制定了一项GNU通用公共许可证 • 1993年,Linux发布标志性的1.0版本 • 1995年,Bob Young(鲍勃·扬)创办了Red Hat(红帽)公司,出售Red Hat Linux Bob Young和Red hat Linus Torvalds和Linux标志 Richard Stallman和GNU标志
4 UNIX类操作系统的发展 • 类UNIX系统的发展 • 1998年2月,以Eric Raymond(雷蒙德)创办了开放源代码促进会(Open Source Initiative) • 目前,Linux可以支持x86、SPARC、MIPS、Alpha、PowerPC、ARM及IA64等多种平台,可以运行在个人计算机、PC服务器、UNIX服务器、中型机和大型计算机上 • 各大主流硬件厂商包括IBM、Intel、HP、Oracle和Dell等公司都已成为Linux的支持者。 开源软件的吉祥物大集合
4 UNIX类操作系统的发展 • UNIX系统的展望 • UNIX从初期发展时的开放源代码到商业推广期的封闭源代码,再到后面以前Sun公司的OpenSolaris为代表的开放源代码,一直在开源与不开源的交织中前行,并由此带来技术与商业的相互促进 • 开源文化:在将软件销售分为许可证销售和订阅这两种主要模式的过程中,人们越来越认识到开源与商业并非完全对立。 • 虽然今天仍存在自由软件与开源软件的争论、自由软件与商业利益的冲突以及Hurd计划与Linux内核的微妙关系,但随着Linux产业的快速发展,相信终有一天,Linux会接过传统UNIX的接力棒,延续UNIX带来的技术、文化和精神。
小结 • 操作系统的历史 • 现代操作系统的发展 • 操作系统的基本概念、现代操作系统的关键技术 • Windows操作系统 • UNIX类操作系统的发展 • UNIX系统简介、 UNIX家族的演化、类UNIX系统的发展、UNIX系统的展
推荐阅读 • Abraham Silberschatz, Peter Baer Galvin, Greg Gagne. Operating System Concepts (7th Edition) (影印版). 高等教育出版社, 2010. • 潘爱民. Windows内核原理与实现. 电子工业出版社, 2010. • Eric S. Raymond. The art of UNIX programming (影印版). 中国电力出版社, 2004. • Jerome H. Saltzer, M. Frans Kaashoek. Principles of Computer System Design (影印版). 清华大学出版社, 2009.
问题与讨论 • 查看最新操作系统领域顶级会议网站,列举出不同子领域中的热门研究内容。 • 阅读推荐阅读[3],谈谈你对Unix哲学的理解。 • 写一个程序,让用户来决定Windows任务管理器(Task Manager)的CPU占用率。程序越精简越好,计算机语言不限。例如,可以实现下面三种情况: (1)CPU的占用率固定在50%,为一条直线; (2)CPU的占用率为一条直线,但是具体占用率由命令行参数决定(参数范围1~ 100); (3)CPU的占用率状态是一个正弦曲线。摘自《编程之美》
Thanks! 通识卓越课程 http://en.tjcities.com/index.php/works