起初Linux只是骇客想创建一个免费的类Unix操作系统的一个尝试,但是今天在广泛的应用当中它已经成为了一个富有竞争力的解决方案。由于它可以免费自由地再发布,而且又具有基于Unix的操作系统的所有功能,Linux已经无处不在。人们已经开始用Linux来部署很多高强度的工业解决方案,例如文件服务器、网站服务器、电子邮件和中间件支持等。同时,Linux又可以作为桌面系统灵活运行在个人电脑上。虽然通往成功的道路是曲折的,但也是值得的。一直以来,Linux只是在大学中广泛应用。直到几年前许多大公司开始支持和接纳它后,Linux才开始在企业应用中快速成长。经过几年来的逐步发展,Linux在很多领域,例如电信、政府、生产制造等行业,已经基本成长为了一个企业级的操作系统。新近关于Linux在很多应用中被加速采用的消息更是遍布各种商业杂志。同时,大型调查公司Forrester Research的调查报告称,Linux是当前增长最快的操作系统。在被调查的140个北美公司中有53%的公司把关键的应用程序运行在Linux上,有52%的公司在Linux上运行他们新的应用程序,有44%的公司在把老的应用程序移植到新的硬件上时同样选择在Linux上运行。
由SG Cowen公司所作的另一个类似的调查表明,Linux越来越成为人们首选的操作系统。因此,开发人员需要一本简明的、有条理的书籍来描述Linux和UNIX操作系统的区别,例如Solaris,HP-UX,以及AIX。熟悉在Solaris,HP-UX和AIX等UNIX操作系统上编写程序的软件开发人员现在也需要学习怎样在Linux上编程。本书是在讲述怎样把应用程序移植到Linux环境上运行,它的读者对象包括开发人员、应用程序架构师,以及项目经理:
对于开发人员,本书详细描述了当前IT行业中被广泛应用的各种UNIX操作系统间的区别;
对于应用程序架构师,本书帮助他们确定应用程序的哪些模块最适合Linux操作系统;
对于项目经理,本书能让他们清楚地理解在把程序移植到Linux上时需要做些什么。
本书的组织结构
第1章,“项目移植思考”,作为对现有项目管理资料的一个补充,指出在项目移植前和移植过程中项目经理和应用程序架构师需要考虑的具体任务。本章介绍了我们在移植项目时使用的移植过程和方法。移植过程中的每一步都是以后章节展开论述的基础。
第2章,“调查”,讲述了移植过程中的第一步。它概括描述了Linux操作系统环境,包括在Linux上可用的编译器,GNU二进制工具,Java环境,Shell,以及打包工具。在第1章调查问卷的帮助下,你可以估计出要移植的项目的工作级别。在本章的末尾,一个项目管理任务的检查列表可以帮助你确定项目移植的初步任务。
第3章,“分析”,在更深的层次上讲述了如何去调查应用程序的架构。与第2章类似,本章也是在检查Linux可用的技术特性,包括Linux提供什么样的应用程序编程接口(API)和库函数,如何实现库的版本化,以及例如大页面支持等系统特性等等。每一个主题都让移植工程师确切知道应用程序可以使用的Linux所提供的功能和特性。作为我们的移植方法的一部分,也是为了尽可能的降低风险,“分析”这一步不包含移植过程中可能出现的已知的或未知的变化。
第4章,“移植Solaris应用程序”,第5章,“移植AIX应用程序”,第6章,“移植HP-UX应用程序”,是本书的三个核心章节。每一章都全面详细地描述了应用程序所在的源系统(Solaris,AIX,或HP-UX)和目标系统(Linux)的差别和相似性。每章所讲述的内容包括:对标准的支持,编译器选项,链接器选项,系统调用的比较,库调用的比较,以及线程等。每章都能帮助移植工程师快速找到移植应用程序到Linux上时可能出现的问题的答案。这些章节回答了类似下面的常见问题:
我的应用程序调用的API在Linux上是否存在?
Linux上的POSIX线程和Solaris线程有什么区别?
第7章,“测试和调试”,讲述了Linux上的调试和性能监测工具。当移植工作进入到测试和调试阶段后,移植工程师将会遇到从软件bug到性能瓶颈等各种各样的问题。本章讲述了可以帮助移植工程师解决这些问题的工具,包括调试工具(例如GNU调试器),内存泄漏工具,cscope,和性能跟踪工具等。同时,本章还提供了可以下载这些工具的网址。
附录部分包括了API表、编译器和连接器选项,并且还讲述了运行在POWER架构上的Linux(也就是说,讲述了向运行在IBM POWER架构的Linux上移植程序时的区别)。
如何使用本书
你可以用多种方法来阅读这本书,但是我们推荐你从第1章开始阅读,这样你可以理解我们的方法和思想,然后再继续阅读第二、三章。当进入移植这一步时,根据你要移植的应用程序所在的源系统,从第四、五、六章中选择对应的章节阅读。
另外一种阅读本书的方法是跳过第一、二、三章,直接阅读第四、五、六章中的一章。用这种方法阅读,本书可以对已经在移植过程中的项目提供一个参考资料。
第四、五、六章中的一些技术内容是有意重复描述的,这样一来,对于只从某一种UNIX系统移植到Linux系统的工程师来说,每章都提供了一个相对完整的内容。
虽然我们写本书的初衷只是提供一个从Unix到Linux的移植指南,但是事实上它已经成为了一本综合的开发和解决问题的参考手册。作为开发参考手册,本书包含了示例代码来解决具体的问题(例如创建共享库和静态库,使用POSIX线程,进程间通信等),并且对广泛使用的三种UNIX系统(Solaris,HP-UX,以及AIX)上的解决方法进行了并列比较,还包括在Linux上怎样才能使用同样的解决方法。所以本质上来讲,本书是三本书集成在了一起。不管你有什么样的移植需要,本书对一些最常见的编程习惯都尝试了一些解决方案,而且对Linux移植工程师最常见的问题提供了多种基于经验的解决方法。作为解决问题的参考手册,本书提供了示例代码、编译器和链接器选项,以及解决一些细微差别的替代方法,这些差别在把代码移植到Linux上时经常会遇到。
我们试图尽可能地覆盖更多的内容,同时也相信,如果你需要更深入的研究,本书至少可以提供给你一个研究的起点。如果需要更多的项目移植帮助,你可以从Internet搜索或参考下面的文档:
l UNIX Porting Guide(提供了从一种UNIX系统移植到另一种UNIX系统的指导),参见www.unixporting.com/porting-guides.html.
l Guide to Porting from Solaris to Linux on POWER(从Solaris移植到IBM POWER架构Linux的白皮书),参见www-128.ibm.com/developerworks/Linux/library/l-pow-portsolaris.
l Porting references from Novell(关于移植到Linux的多个白皮书),参见http://developer.novell.com/wiki/index.php/Porting_and_Migration.
l Solaris-to-Linux Porting Guide(Ulrich Drepper著,从Solaris移植到Intel架构Linux的白皮书),参见www.redhat/com/docs/wp/solaris_port/book1.html.
希望你能从阅读本书中获得很多乐趣,就像我们写这本书时一样。
| 回书目 下一节 |
|
· SQL Server入门到精通.. · 交换技术配置手册技术.. · 超级网管员——网络应.. · 网络服务器配置与应用.. · Linux集群技术自测试题.. · JavaSript核心技术自测.. |
· ARP攻击与防范技术自测.. · 国庆挑战自己参加自测 .. · 《网管员必读—网络应.. · 历次技术自测 获奖网友.. · 51CTO国庆七天技术自测.. · 9.2.2 无线AP |
|
|||
| · 网管系统介绍 · 网络管理系统如何支撑I.. · CISSP认证成长之路 · 51CTO国庆充电专题之好.. · 网络技术经典基础教程 · 51CTO主编推荐经典专题 · RAID——磁盘阵列基础 · 充电计划之热门IT认证.. |
· 51CTO技术自测 挑战自.. · AMD Phenom三核处理器.. · 国际文档格式标准开战 · 2007年互联网大会 · 我是黑客我怕谁——讲.. · ARP攻击防范与解决方案 · Solaris 10 配置管理 · Solaris基础知识入门 |
||
|
|||
| · Java基础教程 · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · RAID——磁盘阵列基础 |
· 三层交换技术专题 · SQL Server入门到精通 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · C#技术开发指南 · Solaris 10 配置管理 |
||
|
|||
| · ARP攻击防范与解决方案 · VPN技术 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · RAID——磁盘阵列基础 · Windows Server 2003企.. · 邮件服务器专题 · wimax技术与趋势 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| ·体验Windows Server 2008.. ·将超星图书转成PDF文档 |
·使用 Office Communicati.. ·VMware Workstation 6.01.. |
| ·强烈质疑“步行1公里就能.. ·国庆期间新闻回顾:微软.. |
·9月第3周回顾:微软和英.. ·9月第2周回顾:四核之战.. |
| · 华为、贝恩资本22亿美元.. · NGN:下一代网络 · 网络访问中断大排查 |
· 教你使用Anti ARP Sniff.. · 网络嗅探教程:使用Snif.. · 常见病毒手工清除方法大.. |
| · C++是垃圾语言?! · 2007年IT界七大抄袭事件 · Java实用开发全集 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · 热门 IT 培训认证官方资.. · Ubuntu 中文开源频道 · Solaris基础知识入门 |
· Google推出唯一硬件——.. · 硬盘之父获得诺贝尔物理.. · 理性面对四核服务器选购 |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 硬盘之父获得诺贝尔物理.. · 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. |