操作系统是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
处理器管理的主要任务,是对处理器资源进行分配,并对其运行进行控制和管理。在多道程序环境下,处理器资源的分配和运行都是以进程为基本单位,所以对处理器的管理可归结为进程的管理。它包括以下几个方面:
存储器管理的主要任务,是为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率,以及能从逻辑上来扩充内存。
存储器管理应该具备以下功能:
设备管理的主要任务,是完成用户提出的I/O请求,为用户分类I/O设备;提高CPU和I/O设备的利用率;提高I/O速度;以及方便用户使用I/O设备。其特点是:
在现代计算机系统中,我们会把程序和数据以文件的形式存储在磁盘上,供用户使用。
文件管理的主要任务就是对用户文件和系统文件进行管理,以方便用户使用,并且保证文件的安全性。因此,文件管理应该具有对文件存储空间的管理,文件的读、写管理,目录管理以及文件的共享与保护等功能。
作业管理的主要任务就是为用户提供一个使用系统的良好环境,使用户能够有效地组织自己的工作流程,并且使整个系统高效的运行。其特点是:
根据应用领域来划分:
根据所支持的用户数目
根据源代码开放程度:
Microsoft Windows,是美国微软公司研发的一套操作系统,它问世于1985年,起初仅仅是Microsoft-DOS模拟环境,其后续版本逐渐发展成为主要以个人电脑和服务器用户设计的操作系统,并最终获得了世界个人电脑操作系统的垄断地位。此操作系统可以在几种不同类型的平台上运行,如个人电脑(PC)、移动设备、服务器(Server)和嵌入式系统等等,其中在个人电脑的领域应用内最为普遍。
Windows采用了图形化模式GUI,比起从前的DOS需要键入指令使用的方式更为人性化。随着电脑硬件和软件的不断升级,微软的Windows也在不断升级,从架构的16位、32位再到64位, 系统版本从最初的Windows 1.0 到大家熟知的Windows 95、Windows 98、Windows ME、Windows 2000、Windows 2003、Windows XP、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10 和 Windows Server服务器企业级操作系统,不断持续更新,微软一直在致力于Windows操作系统的开发和完善。
lWindows操作系统目前最新的稳定性操作系统是于2015年7月29日发布的 Windows 10。Windows Server目前最新的稳定性操作系统是2016年9月26日发布的Windows Server 2016。
1980年3月,苹果公司的创始人史蒂夫·乔布斯在一次会议上介绍了他在硅谷施乐公司参观时发现的一项技术 – 图形用户界面(GUI,Graphic User Interface)技术,微软公司总裁比尔·盖茨听了后,也意识到这项技术潜在的价值,于是带领微软公司开始了GUI软件 – Windows的开发工作。
1985年,微软公司正式发布了第一代窗口式多任务系统 – Windows1.0,由于当时硬件水平所限,Windows1.0并没有获得预期的社会效果,也没有发挥出它的优势。但是,该操作系统的推出,却标志着PC机开始进入了图形用户界面的时代。在图形用户界面的操作系统中,大部分操作对象都用相应的图标(Icon)来表示,这种操作界面形象直观,使计算机更贴近用户的心理特点和实际需求。
个人操作系统(桌面级操作系统):Windows XP 、Windows 8 、Windows 10(目前占有率最高)
服务器操作系统:Windows Server
手机操作系统(已死):Windows Phone
服务器操作系统与个人操作系统区别:
Fixed系统支持进程,比如登陆进程和Session管理器,它们都不是Windows服务(不是通过SCM即服务控制管理器启动的)。
服务进程,比如任务调度器和打印机服务,这些服务一般都需要用户登陆才可以运行。很多服务应用程序,比如sql server和exchange server都以服务的方式运行。
用户程序,可以是Windows32位或64位,Windows3.1 16位,MS-DOS 16位,或者POSIX 32位或64位,注意16位程序只能运行在32位系统上。
环境子系统服务器进程,实现了部分支持操作系统的环境,也可以说是展现给用户或者开发者的个性化界面。Windows NT最初发布时带有Windows,POSIX,OS/2三个子系统,Windows 2000是最后带有POSIX和OS/2的子系统,旗舰版和企业版的Windows也支持一个加强版的POSIX子系统,叫做SUA(基于UNIX的应用)。
注意:服务进程和用户程序之下的“子系统DLL”。在Windows下,用户程序不直接调用本地Windows服务,而是通过子系统DLL来调用。子系统DLL的角色是将文档化的函数翻译成该用的非文档化的系统服务(未公开的)。
内核模式:
Windows执行实体,包括基础系统服务,比如内存管理器,进程和线程管理器,安全管理,I/O管理,网络,进程间通信。
Windows内核,包括底层系统函数,比如线程调度,中断,异常分发,多核同步。也提供了一些routine和实现高层结构的基础对象。
设备驱动,包括硬件设备驱动(翻译用户I/O到硬件I/O),软件驱动(例如文件和网络驱动)。
硬件抽象层,独立于内核的一层代码,将设备驱动与平台的差异性分离开。
窗口和图形系统,实现了GUI函数,处理用户接口和绘图。
上个世纪六十年代,那个计算机还没有很普及,只有少数人才能使用,而且当时的计算机系统都是批处理的,就是把一批任务一次性提交给计算机,然后就等待结果。并且中途不能和计算机交互。往往准备作业都需要花费很长时间,并且这个时候别人也不能用,导致了计算机资源的浪费。
为了改变这种情况,在1965年前后,贝尔实验室(Bell)、麻省理工学院(MIT)以及通用电气(GE)联合起来准备研发一个分时多任务处理系统,简单来说就是实现多人同时使用计算机的梦想,并把计算机取名为Multics(多路信息计算系统),但是由于项目太复杂,加上其他原因导致了项目进展缓慢,1969年贝尔实验室觉得这个项目可能不会成功,于是就退出不玩了。
贝尔实验室的Ken Thompson,在玩太空旅游的游戏,想把这个游戏移植到电脑上玩,向实验室领导申请一台计算机开发一个操作系统运行这款游戏。就找到当时闲置的一台PDP-7迷你计算机,从1969年到1970年,搞出一个雏形,但是不满意,就找来他的朋友,贝尔实验室的Dennis Ritchie一起搞研究,到1971年,搞出了比较完善的操作系统,写着个操作系统的语言是汇编语言,无法移植,写完后,开始改语言,使用当时用的比较好的语言B语言,但是移植性还是不够好,整改升级变成了C语言(C语言之父)。开始的操作系统没有名字,贝尔实验室的另一个同事看到后,认为这个系统太烂了,干脆跟Multics取个谐音(失败的操作系统),叫Unics(后面慢慢变成Unix)。在1973年,这个操作系统在贝尔实验室流传开,大家都在用这个操作系统。在1974年,这个操作系统走出了贝尔实验室,随着越来越多的人在用这个操作系统,一直到1979年,贝尔实验室的幕后老板,希望能够捞点成本,从1974年到1979年一直在打官司,以后Unix相关知识和内核禁止传播,尤其是禁止大学教授禁止向学生传播,想从下一代开始掐版权问题。Andrew Tanenbaum(荷兰计算机科学家、大学教授)知道后,就认为“OK,你不让我用,那我就不用”,在家潜心搞研究,从84年到86年用了两年时间刨去了他的Unix知识,写出一个新的系统叫Minix(与UNIX对着干,免费),后面很多人都用这个操作系统,但是他搞这个系统是要搞教育使用,就禁止其他人对这个操作系统进行升级,因为对这个系统升级,就会有新的内容,他就没办法在一个学期把这个教完。这时候Linus Torvalds(大一新生19岁)在用Minix系统,但是由于不让升级,导致他很多东西没办法实现,一怒之下决定自己开发一个系统,用了一周时间(7天)写了一万行代码,就是Linux的雏形,被称为Linux之父。现在在美国开放源代码实验室,如果微软有什么大动作,比如出了Windows7 8 10等,他会在某一个角落出来抨击微软。91年正式发布Linux 0.0.2。
目前很多商业公司可以免费得到Linux的核心源代码,并加以包装改进后形成自己的产品,即Linux发行套件。
企鹅的来源:
苹果的标志是一只被咬了一口的苹果,微软的标志是一面窗户,而Linux的标志(吉祥物)则是一只名为Tux的企鹅。
1994年发表Linux正式核心1.0的时候,大家要Linus Torvalds想一只吉祥物,他想起曾经在澳大利亚的一个动物园里被企鹅咬过,干脆就以企鹅来当吉祥物了!
更容易接受的说法是:企鹅代表南极,而南极又是全世界共有个一块陆地,不属于任何国家。也就是说Linux不属于任何商业公司,是全人类每个人都可以分享的一项技术成果。
Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。
内核、shell、文件系统和应用程序、管理文件并使用系统。
Linux内核
内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
Linux 内核由如下几部分组成:内存管理、进程管理、设备驱动程序、文件系统和网络管理等。
Linux Shell
shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。另外,shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其他应用程序具有同样的效果。
Linux 文件系统
文件系统是文件存放在磁盘等存储设备上的组织方法。Linux系统能支持多种目前流行的文件系统,如EXT2、 EXT3、 FAT、 FAT32、 VFAT和ISO9660。
Linux 应用
标准的Linux系统一般都有一套都有称为应用程序的程序集,它包括文本编辑器、编程语言、X Window、办公套件、Internet工具和数据库等。
操作系统 | 免费收费 | 软件支持 | 安全性 | 使用习惯 | 可定制性 |
---|---|---|---|---|---|
Linux | 免费或少许收费 | Linux下可直接允许的软件数量较少 | 病毒侵害较少 | 新手入门难 | 开发源代码 |
Windows | 收费 | 可以兼容绝大部分软件、玩大型游戏 | 系统补丁更新频繁,病毒侵害多 | 用户上手容易,入门简单 | 系统定制性差 |