IBM i的体系结构

从IBM i的发展史可以看出 IBMi经历了很多次的技术演进和变化,IBM i这个名字也是经过多次修改得到的 而一直没有改变的就是IBM i的五大设计原则

  • 技术独立性
  • 基于对象的设计
  • 单级存储
  • 软件集成
  • 硬件集成

技术独立性

第一个原则,可能也是最重要的一个原则,是技术独立性.与其它计算机系统不同,IBM i系列服务器并不是由硬件定义的,而是软件定义的.这就意味着程序并不直接与硬件”对话”,与之”对话”的是一个超越于各种硬件技术的机器界面,即Technology Independent Machine Interface(TIMI),我们称它MI.正是这个特性,保证了IBM i系列服务器能在不影响用户使用的情况下改变底层 硬件构架,使IBM i系列服务器永远不会过时.当新的硬件功能和设计加入时,系统本身及用户开发的应用能够马上运行于新的硬件上,并且充分享受新硬件和新设计带来的好处.

在MI与实际硬件之间是由几百万行代码组成的操作系统软件,我们称之系统特许内码(System Licensed Internal Code,SLIC).这个软件层将应用程序与底层硬件特性隔离开.在IBM i系列服务器上运行的程序无需了解底层硬件,这些工作完全由系统特许内码完成.意味着当处理器技术有了更新时,IBM i能够值重新与硬件变化紧密联系的部分微码层,而同时保持机器界面的完整性.因为这种技术独立性的设计 ,当新的硬件技术出现时,用户的应用程序不用进行任何更改就可以直接运行在新的系统上.

这种设计思路和Java不谋而合.

基于对象的设计

IBM i被描述为一个”基于对象“而并非”面向对象”的系统,在讨论编程语言的时候,这两个术语具有各自不同的含义.基于对象的语言不像面向对象的语言那样具有继承性.继承性定义了一种类的分层结构,其中的子类可以共享一个或多个基础类的结构或行为.另外,继承性还允许建立新的对象类型.由于IBM i上的对象类型没有继承性,并且在创建新对象类型方面提供给程序员的能力也有限,所以将IBM i定义为一个基于对象的系统更加准确.IBM i服务器不是简单地使用或者结合了对象,而是将对象看成系统设计的一部分.对象是一个容器,所有用户 和系统的数据都包装在对象容器里.而且一个对象是被封装的,不能被透视,它屏蔽了系统的设计细节,使系统在被改动后不会影响用户的应用程序.

IBM i是一套完全基于对象设计的系统,系统中每一个要素(例如程序,数据,文件和消息队列)都是一个对象.每个对象都包含两个不可分割的部分:

  • 描述部分

    定义了使用数据的正确路径

  • 数据部分

    用于执行对象的功能

举例:

​ 假如一个对象被定义为程序,它的描述部分就会说明其数据部分是可执行的,只读的编译过的代码,这个对象唯一可以进行的操作应该是程序可以接受的.

​ 用户可以在数据文件中写入数据,但是不能在编译过的代码文件中写入数据,系统会阻止这种事情的发生.通过这样的设计 IBM i确保了系统中所有对象的完整.

基于对象的涉及在保证系统安全方面有重要的意义:例如,计算机病毒入侵系统的途径之一就是伪装成数据 一旦进入系统之后 计算机病毒会设法变成可执行的代码,并对系统造成严重的破坏.而这种情况在IBM i服务器上是不可能发生的,因为如果系统允许一个信息包作为数据进入系统 那么这个信息包必须永远保持他作为数据的属性 而不可能将其属性变成可执行代码

单级存储

IBM i服务器的64位寻址空间可以管理超过180亿GB的数据地址,而从结构设计上来说,它的容量仍然绰绰有余,因为IBM i操作系统可以使用128位的寻址空间 单级存储这个概念的关键不仅是一个巨大的存储空间,还包括共享

寻址空间一般指的是CPU对于内存寻址的能力。通俗地说,就是能最多用到多少内存的一个问题。数据在存储器(RAM)中存放是有规律的 ,CPU在运算的时候需要把数据提取出来就需要知道数据存放在哪里 ,这时候就需要挨家挨户的找,这就叫做寻址,但如果地址太多超出了CPU的能力范围,CPU就无法找到数据了。 CPU最大能查找多大范围的地址叫做寻址能力 ,CPU的寻址能力以字节为单位 ,如32位寻址的CPU可以寻址2的32次方大小的地址也就是4G,这也是为什么32位的CPU最大能搭配4G内存的原因 ,再多的话CPU就找不到了。

在IBM i服务器上,应用程序共享一个巨大的地址空间,当用户在机器上添加新的存储设备的时候,不用为数据重新分配地址,系统自动识别并使用它

在多应用,多用户环境中处理商务应用会引发不同任务之间的频繁切换.

由于使用了单级存储技术 IBM i服务器在完成这种操作时会比传统系统效率更高.因为IBM i操作系统是为了配合商务环境中的这种频繁切换的特性而设计的.所以这种单级存储不仅简化了对存储的管理,而且提供了出色的性能.

UNIX WINDOWS使用的是非共享的地址空间模式,在这些操作系统中,用户拥有自己的地址空间,对于一个任务的切换 需要处理器通过成千上百个指令先将一个用户的地址空间移走 再加载另一个用户的地址空间

而使用单级存储后 所有用户和应用程序的指令和数据都在一个地址空间里,因此 在IBM i操作系统中 将处理器切换到一个新的用户程序上 就如同保存处理器的寄存器内容并将程序分配到新的地址上继续执行一样容易.同样 因为使用了单级存储,IBM i操作系统中的应用程序具有远远大于其它平台的寻址空间,所以IBM i服务器可以支持大型的商务应用

软件集成

软件无疑是所有商业应用的基础.除了管理各种输入输出设备的基本操作,系统驱动程序外,商务应用需要使用软件来处理一些标准的运算,如安全 通信 web 备份 恢复

在使用一般的操作系统的时候 如果需要安装额外的软件用户必须购买相应的软件包 然后将这些软件包加载到基本的操作系统上, 而且还必须确保增加的软件包版本与计划中的其它软件的版本相互兼容

IBM i操作系统除了提供一些标准 的基本操作外,还集成了一些必须的商务应用软件

例如DB2 编译器 及运行时环境

IBM会在与其它部分相联系的环境中测试这些软件 所以这些软件可以在IBM i操作系统中浑然一体地工作 . IBM对IBM i操作系统进行升级和更新的时候 会把整个操作系统的新版本提供给用户 包括那些必须的应用软件 所以在他的各个模块之间不会发生任何情况的版本冲突 减少了系统bug 对用户而言 高度集成的操作系统 有两个显而易见的优点

  • 快速实现新业务的解决方案
  • 特别低廉的总拥有成本

硬件集成

工程和科学计算环境通常是计算密集型的 这意味中用户将针对少量的数据进行复杂的操作.

而通用商务计算环境大都是信息密集型的 这以为着用户将针对大量的数据进行简单的操作. 由于IBM i服务器最初是为了对通用商务环境进行优化而谁记的 因此他的硬件设计使其在信息密集型环境中有着优异的表现

在一般的商务交易中 应用程序会被加载到内存中 然后由cpu来执行

当遇到一个到磁盘上读取数据的请求时 cpu会将这个请求分送给专门用于管理磁盘的输入输出处理器(I/O Processor.IOP)然后CPU将转而执行下一个被指定好的应用程序 只有当先前需要的数据在内存中就位以后,CPU才会返回,继续执行最初的应用程序,这种服务器设计对于信息密集型应用的处理效率是非常高的.

近年来,通用商务计算环境中的应用 越来越趋向于计算密集型 .使用诸如java语言编写的商业智能应用和电子商务应用就是一种典型的计算密集型应用.AS/400从1995年开始使用PowerPC处理器,并一次加强系统处理计算密集型应用的能力.将新的高性能PowerPC处理器融合到IBM i系列服务器中,进一步提高了系统处理密集型应用的能力