“端口”这个词与软件开发有什么关系?

时间:2013-02-22 01:38:03

标签: language-agnostic definition

我正在读一本关于ASP.NET MVC的书,它说:

  

“NVelocity是Java Apache Velocity模板引擎的一个端口,NHaml是Ruby on Rails Haml引擎的一个端口”。

“port”这个词在这个例子中意味着什么?

1 个答案:

答案 0 :(得分:6)

来自维基百科上的Porting (Software Engineering)条目:

  

在软件工程中,移植是调整软件的过程,以便可以为不同于最初设计的计算环境创建可执行程序[或库](例如[不同的语言,]不同的CPU,操作系统或第三方库)..

     

..术语“港口”源自拉丁语portare,意思是“携带”。当代码与特定操作系统[或语言]或体系结构不兼容时,代码必须“携带”[或“移植”]到新系统。

因此,“端口”是“移植”的结果,并且有许多不同类型的“端口”。

在某些情况下,端口可能“仅在精神上”,它大量借用原始实现的 ideas ,但在其他方面不共享代码;图书馆通常会进一步分歧以利用目标语言特征。

另一方面,应用程序端口 - 尤其是那些旨在可在不同“UNIX”环境之间移植的端口 - 可以共享除构建过程之外的所有内容。