这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » Linux系统学习之计算机软件与操作系统

共1条 1/1 1 跳转至

Linux系统学习之计算机软件与操作系统

工程师
2019-07-01 09:44:14     打赏

功能强大的计算机自从走进了人类的生活就发挥着越来越重要的作用,随着时代的发展,计算机已与人们的日常生活息息相关。不能不说计算机软件日新月异的发展在此起着关键作用。可以这么说,离开了软件,计算机就成了废铜烂铁。计算机机软件大致可以分为两类:系统软件和应用软件。系统软件用于管理计算机资源,并为应用软件提供一个统一的平台。应用软件则在系统软件的基础上实现用户所需要的功能。

而操作系统(Operation System)则是最基本的系统软件,它控制计算机的所有资源关提供应用程序开发的基础。

  二、操作系统诞生的原因



  计算机是由CPU、内存、磁盘、显卡、声卡等许许多多设备组成的,而且这些设备的厂商众多,品种繁多,而且不同厂商生产的同种设备虽然完成同种功能,但是具体细节却存在千差万别。为了正确地管理和使用这些设备来实现具体的应用,这样程序员就得了解和掌握各种设备的工作原理。

而且对于同种设备,由于不同的硬件厂商在实现细节上的差异使得程序员再次陷入了复杂的硬件控制的深渊!必须找到一种方法使得程序员从苦海中脱离出来!多年的研究与发展终于使得这个愿望成为现实。这个解决方法就是在硬件的基础上加载一层软件来管理整个系统。这个软件通过设备驱动程序来与计算机硬件打交道,通过一系列的功能模块将整个计算机硬件系统抽象成为一个公共、统一、开放的接口—虚拟机,从而使得程序员不必再陷入各种硬件系统的具体细节!这一层软件就是操作系统。


  三、什么是操作系统

  操作系统是一个大型的软件系统,其功能复杂,体系庞大。从不同的角度看的结果也不同,正是“横看成岭侧成峰”,下面我们通过最典型的两个角度来分析一下。


  1.从程序员的角度看

  正如前面所说的,如果没有操作系统,程序员在开发软件的时候就必须陷入复杂的硬件实现细节。程序员并不想涉足这个可怕的领域,而且大量的精力花费在这个重复的、没有创造性的工作上也使得程序员无法集中精力放在更具有创造性的程序设计工作中去。程序员需要的是一种简单的,高度抽象的可以与之打交道的设备。将硬件细节与程序员隔离开来,这当然就是操作系统。从这个角度看,操作系统的作用是为用户提供一台等价的扩展机器,也称虚拟机,它比底层硬件更容易编程。


   2.从使用者的角度看

   从使用者的角度来看,操作系统则用来管理一个复杂系统的各个部分。操作系统负责在相互竞争的程序之间有序地控制对CPU、内存及其它I/O接口设备的分配。


   比如说,假设在一台计算机上运行的三个程序试图同时在同一台打印机上输出计算结果。那么头几行可能是程序1的输出,下几行是程序2的输出,然后又是程序3的输出等等。最终结果将是一团糟。这时,操作系统采用将打印输出送到磁盘上的缓冲区的方法就可以避免这种混乱。在一个程序结束后,操作系统可以将暂存在磁盘上的文件送到打印机输出。从这种角度来看,操作系统则是系统的资源管理者。


  四、操作系统发展历史

  下面我们结合计算机的发展历史来回顾一下操作系统的发展历程。

  1.第一代计算机(1945-1955):真空管和插件板

   40年代中期,美国哈佛大学、普林斯顿高等研究院、宾夕法尼亚大学的一些人使用数万个真空管,构建了世界上第一台电子计算机。开启计算机发展的历史。这个时期的机器需要一个小组专门设计、制造、编程、操作、维护每台机器。程序设计使用机器语言,通过插板上的硬连线来控制其基本功能。

这个时候处于计算机发展的最初阶段,连程序设计语言都还没有出现,操作系统更是闻所未闻!

  2.第二代计算机(1955-1965):晶体管和批处理系统

   这个时期计算机越来越可靠,已从研究院中走出来,走进了商业应用。但这个时期的计算机主要完成各种科学计算,需要专门的操作人员维护,并且需要针对每次的计算任务进行编程。

第二代计算机主要用于科学与工程计算。使用FORTRAN与汇编语言编写程序。在后期出现了操作系统的雏形:FMS(FORTRAN监控系统)和IBMSYS(IBM为7094机配备的操作系统)




共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]