理解RPC和LPC的概念

来源:互联网 发布:淘宝客qq群拉人技巧 编辑:程序博客网 时间:2024/06/05 02:41
一直以来对于RPC的概念就是远程调用,缺乏深入的理解,现有利用业余时间做一些了解。

RPC是“远程过程调用(Remote Procedure Call)”的缩写,最早开始是出现在Sun微系统公司和HP公司运行UNIX操作系统的计算机中。RPC的“远程”定义是一个广义的说法,可以发生在不同的主机之间,也可以发生在同一台主机的不同进程之间。

Windows系统做为后起之秀,它是一种宏微混杂内核的操作系统,系统中一些“系统级”的服务进程需要进行通信,但由于RPC的网络调用的复杂性,微软就整出了一套只用于本机跨进程调用的机制,这个就是LPC,是“本地过程调用(Local Procedure Call)”的缩写。

IPC是“进程间通信(Inter-Process Communication)”的缩写,不管是RPC还是LPC是如何定义的,在使用时都要进行数据的传递,这个工作就是由IPC完成的。因此可以认为,RPC或LPC是上层建筑,IPC是底层基础。IPC是一种标准的Unix通信机制,在这一点上微软貌似没整出什么新的玩意,只在于提供的系统调用上的不同。

基于以上可以得出结论
1、在Unix系统生态环境中是不存在LPC这一说的,不管是不同主机或一台主机不同进程,RPC都可以通过网络调用实现。但是对于一台主机不同进程,为什么不借鉴Windows的LPC方式,由于对Unix系统生态环境了解不深入,原因还真是不清楚。难道是为了保持概念的延续性?不过引用一提供了一种说法,是基于安全性考虑。

2、Windows系统出于对自身性能的需要,调整了RPC的概念(或者让其狭义化了),分化出了LPC的概念。

3、操作系统发展到现在,正所谓分久必合,在这些概念上就没有严格的区分了。


引用
http://www.longene.org/techdoc/0078130001224576866.html
http://www.cnblogs.com/gsk99/archive/2010/12/13/1904541.html
http://bbs.csdn.net/topics/300244377
0 0