可移植性设计

本文探讨了系统移植的垂直和水平移植性,重点关注C++应用程序在操作系统平台上的移植。硬件平台移植通过硬件抽象层提高软件可移植性,而操作系统平台移植涉及对不同平台API的抽象和适配。建议使用C++标准库,分离不可移植的类型定义,并抽象平台相关API接口来实现跨平台兼容。
摘要由CSDN通过智能技术生成

1.      概述

我们在讨论系统移植的时候,通常会提到一个概念:平台。平台可以是硬件平台,也可以是软件平台,软件平台通常指的就是操作系统。而按照应用领域的不同,我们又可以将软件平台细分为J2EE.NET平台,如此等等。

衡量系统的可移植性要从两个角度来看待,一个是垂直的,一个是水平的。所谓的垂直移植性,就是如何将一个应用程序从某个平台的一个版本移植到另外一个版本。如将一个应用程序从win32移植到win64,或将操作系统从IA-32移植到IA-64 CPU等。所谓的水平移植性,就是如何将一个应用程序从一个平台移植到另外一个平台。如将一个应用程序从windows平台移植到Linux平台,或将操作系统从Intel平台移植到ADM等。

在这篇文章中,我们主要讲述了两类平台,一类是硬件平台,另外一类就是操作系统平台。我们将重点阐述C++应用程序在操作系统平台上的移植。

2.      硬件平台移植

对系统软硬件起到隔离作用,从而提高系统软件的可移值性及有效地利用人力资源、缩短开发周期和提高产品的可靠性。

硬件抽象层的特点

n  硬件抽象层具有与硬件密切相关性;

n  硬件抽象层具有与操作系统无关性;

n  接口定义的功能应包含硬件或系统所需硬件支持的所有功能;

n  接口定义简单明了,太多接口函数会增加软件模拟的复杂性;

n  具有可测性的接口设计有利于系统的软硬件测试和集成。

2.1.  参考设计

Windows操作系统的HAL模块,封装了对大部分硬件的底层数据交换和操作。

参考Windows操作系统的整体结构图:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值