系统软件是在硬件基础上对硬件功能的扩充与完善,其功能主要是控制和管理计算机的硬件资源、软件资源和数据资源,提高计算机的使用效率,发挥和扩大计算机的功能,为用户使用计算机系统提供方便。系统软件有两个主要特点:一是通用性,无论是哪个应用领域的用户都要用到它;二是基础性,它是应用软件运行的基础,应用软件的开发和运行要有系统软件的支持。
(1) 操作系统
操作系统(Operating System,OS)是为了控制和管理计算机的各种资源,以充分发挥计算机系统的工作效率和方便用户使用计算机而配置的一种系统软件。操作系统是直接运行在计算机上的最基本的系统软件,是系统软件的核心,任何计算机都必须配置操作系统。
操作系统是管理和控制计算机系统软件、硬件和系统资源的大型程序,是用户和计算机之间的接口。操作系统的主要作用是提高系统资源的利用率,为用户提供方便友好的用户界面和软件开发与运行环境。
(2) 语言处理程序
程序设计语言是人们为了描述解题步骤(即编程序)而设计的一种具有语法语义描述的记号。按其发展分为机器语言、汇编语言和高级语言。机器语言程序能被计算机直接识别并执行,但用汇编语言或高级语言编写的程序要经过翻译以后才能被计算机执行,这种翻译程序称为语言处理程序,包括汇编程序、解释程序和编译程序。
机器语言(Machine language):机器语言是以计算机能直接识别的0或1二进制代码组成的一系列指令,每条指令实质上是一组二进制数。送入计算机后,存放在存储器中,运行后,一条一条指令从存储器中取出,经过译码,使计算机内各部件根据指令的要求完成规定的操作。
用机器语言编写的程序叫机器语言程序。它是计算机唯一可直接理解的语言,但由于机器指令是繁琐冗长的二进制代码,所以利用机器语言编写程序,要求程序设计人员熟记计算机的全部指令,工作量大、容易出错又不容易修改,同时各种计算机系统的机器指令也不一定相同,所编制的程序只适用于特定的计算机系统。因此,利用机器语言编写程序对非计算机专业人员是比较困难的。为此,人们研究了一种汇编语言。
汇编语言(Assembly language):由于机器语言编写程序困难很大,出现了用符号来表示二进制指令代码的符号语言,称为汇编语言。汇编语言用容易记忆的英文单词缩写代替约定的指令,例如用MOV表示数据的传送指令,用ADD表示加法指令,SUB表示减法指令等等。汇编语言的出现使得程序的编写方便了许多,并且编写的程序便于检查和修改。用汇编语言编写的程序,称为汇编语言源程序,常简称为汇编语言程序。
计算机只能够执行机器语言表示的指令系统,因此利用汇编语言编写的程序,必须经过翻译,转化为机器语言代码才能在计算机上运行,这个过程是通过一个翻译程序自动完成的。将汇编语言程序翻译成机器语言程序的程序通常称为汇编程序。翻译的过程,叫做汇编。
汇编语言仍然是面向机器的程序设计语言,与具体的计算机硬件有着密切的关系,汇编语言指令与机器语言指令基本上是一一对应的,利用汇编语言编写程序必须对计算机的硬件资源有一定的了解,如计算机系统的累加器、各种寄存器、存储单元等等。因此,汇编程序的编写、阅读对非计算机专业人员来说,依然存在着较大的障碍。为了克服这些不足之处,人们进一步研制出了高级语言。
高级语言(Higher-level language):高级语言是用更接近自然语言和数学表达式的一种语言,它由表达不同意义的“关键字”和“表达式”按照一定的语法语义规则组成,不依赖具体机器。用高级语言编写的程序易读易记,也便于修改、调试,大大提高了编制程序的效率,也大大提高了程序的通用性,便于推广交流,从而极大地推动了计算机的普及应用。
用高级语言编写的程序叫做源程序(Source program)。源程序必须经过翻译处理,成为计算机能够识别的机器指令,计算机才能执行。这种翻译,通常有两种做法,即解释方式和编译方式。
解释方式是通过解释程序(Interpreter)对源程序进行逐句翻译,翻译一句执行一句,翻译过程中并不生成可执行文件。这和平时的“同声翻译”的过程差不多,问题是如果需要重新执行这个程序的话,就必须重新翻译。因为解释程序每次翻译的语句少,所以对计算机的硬件环境如内存储器要求不高,特别是早期的计算机硬件资源较少的背景下,解释系统被广泛使用。当然,因为是逐句翻译,两条语句执行之间需要等待翻译过程,因此程序运行速度较慢,同时系统一般不提供任何程序分析和代码优化。这种系统有特定的时代印记,现在主要使用在一些专用系统中。
编译方式是利用编译程序(Compiler)把高级语言源程序文件翻译成用机器指令表示的目标程序(Object Program)文件,再将目标程序文件通过连接程序生成可执行文件,最后运行可执行文件,得到计算结果,整个过程可以用图1-4表示。生成的可执行文件就可以脱离翻译程序单独执行。
图1-4 高级语言程序的编译执行过程
编译系统由于可进行代码优化(有的编译程序可作多次优化),目标码效率很高,是目前高级语言实现的主要方式。常见的程序设计语言,如C/C++、FORTRAN等都是编译型语言。用这些语言编写的源程序,都需要进行编译、连接,才能生成可执行程序。
随着高级语言的发展,出现了高级语言各自的集成化开发环境(Integrated D.velopment Environment,IDE)。所谓集成化开发环境就是将源程序文件的编辑、翻译(解释或编译)、连接、运行及调试等操作集成在一个环境中,各种操作设计成菜单命令。除了关于程序执行的主要操作命令外,还设计了关于文件操作的命令(如文件打开、存盘、关闭等)、程序调试命令(如分步操作、跟踪、环境设置等)等等,这样,方便了程序的编写、调试和运行。
(3) 数据库管理系统
数据库(Databases,DB)是指长期保存在计算机的存储设备上、并按照某种数据模型组织起来的、可以被各种用户或应用共享的数据的集合。数据库管理系统(Database Management System,DBMS)是指提供各种数据管理服务的计算机软件系统,这种服务包括数据对象定义、数据存储与备份、数据访问与更新、数据统计与分析、数据安全保护、数据库运行管理以及数据库建立和维护等。由于企业信息化的目的就是要以现代信息技术为手段,对伴随着企业生产和经营过程而产生的数据进行收集、加工、管理和利用,以改善企业生产经营的整体效率,增强企业的竞争力。所以,数据库是企业信息化不可缺少的工具,是绝大部分企业信息系统的核心。
(4) 支撑软件
支撑软件是用于支持软件开发、调试和维护的软件,可帮助程序员快速、准确、有效地进行软件研发、管理和评测。如编辑程序、连接程序和调试程序等。编辑程序为程序员提供了一个书写环境,用来建立、编辑修改源程序文件。连接程序用来将若干个目标程序模块和相应高级语言的库程序连接在一起,产生可执行程序文件。调试程序可以跟踪程序的执行,帮助发现程序中的错误,以便于修改。
领取专属 10元无门槛券
私享最新 技术干货