数据表示方式
数字系统
本质即二进制与十进制的相互转换。
文字编码系统
常用的英文编码表为ASCII系统,这个编码系统中,每个符号(英文,数字或符号等)都会占用1B的记录。
中文当中的编码系统最常用的是big5(简体是GB2312)编码表。每个中文字符占用2B。
为了解决某些生僻字被识别成乱码的问题,由国际组织ISO/IEC指定了所谓的Unicode编码系统,即UTF8或统一码,从而打破了所有国家的不同编码。
软件程序运行
目前的计算机系统将软件分为两大类,一个是系统软件,一个是应用程序。
机器程序与编译程序
首先看一下直接在CPU的微指令集上进行编程的缺点:
①需要了解复杂的汇编语言
②需要了解所有硬件的相关功能函数
③程序不具有可移植性
④程序具有专一性
而高级语言可以通过编译或解释将人类能够看懂的程序语言转译成为机器能看懂的机器码,如此一来修改和编写程序都会轻松得多。
另外一方面,为了克服硬件方面老师需要重复编写句柄的问题,所以就有操作系统(Operating System,OS)。
操作系统
操作系统内核(Kernel)
操作系统其实也是一组程序,这组程序的重点在于
①管理计算机的所有活动
②驱动系统中的所有硬件
而重点的实现就是操作系统内核
操作系统能否做到某些事情都与内核有关。内核如果不支持TCP/IP协议,买什么网卡都没法上网。
内核程序所放置到内存当中的区块是受保护的,并且开机后就一直常驻在内存当中。
只要硬件不同(如x86架构与RISC架构的CPU),内核就得要进行修改才行。
为了保护内核,并且让程序员比较容易开发软件,因此操作系统除了内核程序之外,通常还会提供一整组开发接口,那就是系统调用层。
软件开发工程师只要遵循公认的系统调用参数来开发软件,该软件就能够在该内核上面运行,所以软件与内核有比较大的关系,与硬件关系并不大。
操作系统的内核层直接参考硬件规格写成。所以同一个操作系统程序不能够在不一样的硬件结构下运行。
操作系统只是在管理整个硬件资源,包括CPU 内存 IO设备及系统文件。
应用程序的开发都是参考操作系统提供的开发接口,所以该应用程序只能在该操作系统上面运行而已,不可以在其他操作系统上面运行的。
内核的功能:
①系统调用接口
②程序管理
③内存管理
④文件系统管理
⑤设备驱动
驱动程序与应用程序
①操作系统必须要能够驱动硬件,如此应用程序才能够使用该硬件功能。
②一般来说,操作系统会提供开发接口,让开发商制作他们的驱动程序。
③要使用新硬件功能,必须要安装厂商提供的驱动程序才行。
④驱动程序是由厂商提供的,与操作系统开发者无关。