作为程序的设计或软件开发的程序人员,必须要对计算机系统有基本的了解,这样才能在工作岗位上游刃有余。而本章主要介绍程序设计人员所必备的有关计算机系统的硬件和软件方面的知识、与程序设计有关的操作系统的使用等知识。通过学习本章,可以扫清一些非程序设计方面的其他操作障碍,而不至于因一些小问题的门槛将初入程序设计门径的读者绊倒在入门的那一刻。
1.1 理解计算机
计算机既是程序设计人员的必备工具,也是程序的运行工具。作为程序开发人员,必不可少的要整日与计算机打交道,如果你不熟悉计算机,就会使学习程序开发的道路上布满泥泞和坑洼,学习者很可能还没有入门就已经摔倒在初学之路上。理解计算机必然成为了程序设计人员的第一课。
1.1.1 厘清计算机系统
计算机是人们对计算机系统的简称,严格的来说,计算机一个完整的系统。最基本的划分就是硬件系统和软件系统。那么,这里为什么这么强调“系统”这个字眼呢?因为计算机的结构是非常系统化的一个整体,其结构是很复杂的,这里并不能将计算机系统的所有构成理论详尽介绍,那也将是一门学科,要用大量的篇章才能叙述清楚。本节只是从应用者的角度了解计算机系统,让你能更好的使用计算机。
关于计算机系统构成与工作原理介绍的书籍或资料有很多,这里换个角度来了解一下计算机,就是从计算机加电启动到你可以并使用它的方式。首先来看计算机的启动过程:
计算机在加电的之初,CPU会收到重置信号,并进行初始化。
CPU初始化完成后就会去执行一个软件,那就是基本输入输出系统(BIOS)。而执行BIOS程序的代码的过程就是计算机加电自检与自动配置的过程。加电自检主要是发现硬件、测试硬件、初始化硬件,并为有关硬件设备设置相关参数,如内存、硬盘等。如果发现一些关键硬件不能正常工作,其启动过程就会停止,同时以声音或指示灯的方式进行报警。在此过程中,计算机的外观表现就是在监视器上用文本的方式显示出诸如显示卡类型和参数、CPU类型与参数、内存大小与相关参数,以及一些其他设备的使用的资源及工作参数等。
如果以上阶段顺利完成,BIOS会搜索操作系统的启动设备,将系统的控制权交给操作系统的启动程序,计算机就进入了操作系统的启动阶段。不同的操作系统,有不同的启动方法和过程,但基本上都是检测和配置硬件(包括驱动程序)、从启动设备(如硬盘等)读取操作系统的内核程序并载入到内存、最后进行操作系统的初始化并等待用户的操作。
从计算机的启动过程可以看出,计算机的硬件(简单的说就是电子器件)系统是计算机存在的物质基础,用来执行程序,是程序的执行者,就像人的肉体可以做各种动作。
计算机的BIOS、操作系统等程序实际控制着计算机的硬件系统,就像人的思想控制身体各部分一样。计算机系统中各种不同的软件共同构成了计算机的软件系统,而计算机的软件系统也依据其作用又被分为系统软件和应用软件。系统软件主要指软件中起到基础作的部分软件,从计算机的启动过程来看,操作系统就应该属于系统软件,因为它是在系统启动过程中就必须要运行的,用户也都是间接或直接通过操作系统来控制计算机工作的。当然系统软件还包括语言处理程序、数据库管理系统等。系统软件的主要功能就是控制和管理计算机资源(数据和硬件设备)、支持软件开发和运行的软件。
在计算机的启动过程中没有应用软件的事儿,因为应用软件只有在一些系统软件之上才能够被安装和运行,而且应用软件只为某一特殊目的而开发的。比如常用的办公软件就是辅助办公开发的,PhotoShop软件就是为了处理图片而开发的等。此外,开发程序所使用的一些编辑软件也属于应用软件。当然,严格地来说,操作系统也会附带一些工具软件,它们也应该属于应用软件,比如Windows系统中的记事本、Linux中的vi等。
由此,计算机系统的逻辑结构如下图1.1所示:
图1.1 计算机系统逻辑结构图
图中1.1中,裸机是指没有配置操作系统和其他软件的电子计算机,一般也可用裸机来指代计算机硬件。用户要使用计算机资源,需要通过应用软件,调用系统软件(一般是操作系统)相关接口,然后由系统软件来分配资源的使用权、管理和保障硬件资源的具体操作。
图中1.1中,并没有显示出BIOS的逻辑位置,BIOS实际上“固化”在计算机硬件(一种只能从中读取信息而不能写入或修改信息的存储器)中的软件,是不是有点像人的大脑,既是物质的存在,也是思想和意识所在。裸机其实也包含BIOS程序的。因此,在信息技术领域中,硬件和软件之间的区分也不是极其严格的。