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

A B*_*gus 2 language-agnostic definition

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

"NVelocity是Java Apache Velocity模板引擎的一个端口,而NHaml是Ruby on Rails Haml引擎的一个端口".

在这种情况下,"端口"这个词有什么意义?

小智 6

来自维基百科上的移植(软件工程)条目:

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

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

因此,"端口"是"移植"的结果,并且存在许多不同种类的"端口".

在某些情况下,一个端口可能"只是在精神上",它大量借用了原始实现的思想,但在其他方面没有共享代码; 图书馆通常会进一步分歧以利用目标语言功能.

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