Most applications are consisted of several activities that are fulfilled by different processes. And even processes are included different child processes named light processes or threads. The basic idea of dividing the whole activities to processes is followed by the reusability and sharing ideas. Therefore, applications need an IPC mechanism to establish the communication between the processes. Inter process communication that is known as IPC is a collection of mechanisms that meet the communication requirements between processes. System V defines standard for IPC mechanism named SVIPC. Different operating systems implement SVIPC standard in different manner. Therefore programs that are using the IPC mechanism have different structure in other operating systems. On the other hand reproducing program for various operating systems is a time consuming activity. Porting is a solution to writing programs with the least changes to port them on different operating systems. In this survey we present a brief introduction of various IPC mechanisms in the two operating systems and describe porting Windowspsila programs to Linux by mapping the IPC primitives as a solution. We present the porting as a solution to portable IPC programming. While the program is written with windows IPC mechanism can use our wrapper to be able to run in Linux operating system.
[1]
Leslie Lamport,et al.
Interprocess Communication
,
2020,
Practical System Programming with C.
[2]
S. C. Johnson,et al.
UNIX time-sharing system: Portability of c programs and the UNIX system
,
1978,
The Bell System Technical Journal.
[3]
Leslie Lamport,et al.
On interprocess communication
,
1986,
Distributed Computing.
[4]
James D. Mooney.
Bringing Portability to the Software Process
,
2000
.
[5]
Ian Sommerville,et al.
Software engineering (5th ed.)
,
1995
.
[6]
Stephen D. Huston,et al.
The ACE Programmer's Guide: Practical Design Patterns for Network and Systems Programming
,
2003
.
[7]
Mark Rain.
Portable IPC on Vanilla Unix
,
1989,
SIGP.
[8]
Sape J. Mullender.
Interprocess communication
,
1990
.
[9]
Stephen R. Schach.
Classical and Object Oriented Software Engineering
,
1999
.
[10]
Eric S. Raymond,et al.
The Art of Unix Programming
,
2003
.